[go: up one dir, main page]

DE10333087A1 - Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle - Google Patents

Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle Download PDF

Info

Publication number
DE10333087A1
DE10333087A1 DE10333087A DE10333087A DE10333087A1 DE 10333087 A1 DE10333087 A1 DE 10333087A1 DE 10333087 A DE10333087 A DE 10333087A DE 10333087 A DE10333087 A DE 10333087A DE 10333087 A1 DE10333087 A1 DE 10333087A1
Authority
DE
Germany
Prior art keywords
model
sub
models
block
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10333087A
Other languages
English (en)
Inventor
Richard Craig Union City Allen
Randy A. Newark Coverstone
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE10333087A1 publication Critical patent/DE10333087A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Ein Verfahren zum automatischen Zerlegen eines dynamischen Systemmodells in separate Teilmodelle zur letzendlichen Ausführung auf diversen Zielplattformen ist vorgesehen. Die Ausführungsbeispiele der Erfindung liefern eine Möglichkeit für einen Systemwickler, anzuzeigen, welche Abschnitte eines zuvor spezifizierten Systemmodells Teilmodelle werden sollen. Optional kann der Entwickler auch die zugeordnete Zielplattform für die Ausführung von jedem Teilmodell anzeigen. Ein Systemteilmodell für jeden Abschnitt, der durch den Entwickler bezeichnet wird, wird erzeugt, wobei alle kritischen System-Ebene-Informationen im gesamten Systemmodell konsistent gehalten werden. Jedes dieser Systemteilmodelle kann dann verwendet werden, um eine Softwareversion von jedem Systemteilmodell zu erzeugen. Jedes Softwareteilmodell kann dann an seine spezifizierte Zielplattform übertragen und in Kooperation mit den anderen Softwareteilmodellen ausgeführt werden, um eine Gesamtsystemsimulation zu bewirken, die in den zugeordneten Zielplattformen ausgeführt wird. Alternativ könnten ein oder mehrere Systemteilmodelle durch die tatsächlichen Komponenten des dynamischen Systems ersetzt werden, das durch diese Systemteilmodelle dargestellt ist.

Description

  • Dynamische Systeme, die durch Menschen entwickelte Systeme, die in einer bestimmten vorteilhaften Weise auf sich verändernde Konditionen innerhalb ihrer Umgebung ansprechen, sind, stellen eine beträchtliche Herausforderung für die Entwickler von solchen Systemen aufgrund der tausenden und unterschiedlichen Konditionen dar, die solche Systeme effektiv handhaben müssen. Elektrische und elektronische Schaltungen, die aber einen Typ eines dynamischen Systems darstellen, müssen zum Beispiel häufig auf sich immer wieder verändernde Eingabesignale reagieren, indem Ausgabesignale basierend auf den Eingabesignalen geliefert werden, wodurch eine günstige Aktion in der Umwelt verursacht wird, in der das System arbeitet. Elektrische und elektronische Schaltungen werden äußerst vorteilhaft bei einer Fülle von Anwendungen verwendet, von alltäglichen Verbraucheranwendungen, wie z. B. Mikrowellenherden und Personalcomputern, zu High-Tech-Militärwaffen. Zusätzlich umfassen dynamische Systeme auch einen beliebigen Typ von Software, die geschrieben ist, um eine spezifische nützliche Funktion auszuführen. Ferner können dynamische Systeme jene, jedoch nicht ausschließlich solche Systeme umfassen, die auf elektrischen, softwaretechnischen, mechanischen, pneumatischen oder chemischen Prinzipien oder einer gewissen Kombination aus denselben basieren.
  • Die Aufgabe des Entwickelns von dynamischen Systemen ist durch kontinuierliche Verbesserungen in der Technologie von einer Systemsimulation in hohem Maße verbessert worden. Eine solche Simulation erlaubt, daß Modelle von dynamischen Systementwürfen anfänglich ohne die Notwendigkeit für teuere Prototypen, die sowohl schwierig zu bauen als auch schwierig zu warten sind, getestet werden können. Durch die Simulation kann ein beliebiger imaginärer Satz von Testbe dingungen verwendet werden, um einen vorläufigen Systementwurf sorgfältig zu testen. Die Ergebnisse dieser Tests können dann durch die Systementwickler verwendet werden, um das Verhalten des Systems zu analysieren. Typischerweise werden dann, basierend auf den Ergebnissen der Tests, Veränderungen vorgenommen, die Tests erneut durchgeführt und die Ergebnisse noch einmal analysiert, um die positive oder negative Auswirkung der Veränderung zu bestimmen. Somit ermöglicht die Simulation, daß der Entwurf des dynamischen Systems mittels eines iterativen Prozesses vor der tatsächlichen Konstruktion des sich im Test befindlichen Systems verbessert werden kann, was zu einer schnelleren und produktiveren Systementwicklung führt.
  • Ein spezifisches Beispiel einer solchen Modellierungsumgebung ist das Simulink®-Systemdefinitions- und – simulationswerkzeug von The Mathworks, Inc. Wie in 2 gezeigt ist, ermöglicht eine Modellierungsumgebung 210 einem Systemdesigner, ein dynamisches System, sei dies elektrisch, mechanisch oder anderweitig, mittels eines Systemmodells 1 zu spezifizieren, das Charakteristika besitzt, die durch den Entwickler bestimmt werden. Ein Beispiel des Systemmodells 1 ist in 1 gezeigt. Das Systemmodell 1 besteht aus mehreren Funktionsblöcken 2, von denen ein jeder eine gewisse identifizierbare Aufgabe innerhalb des Systemmodells 1 ausführt. Jeder Funktionsblock 2 kann durch den Entwickler verwendet werden, um einen identifizierbaren Abschnitt des Systemmodells 1 zu bezeichnen, das mittels eines spezifischen Ziels (Target) implementiert ist, wie zum Beispiel einer Software, die auf einem DSP (DSP = digital signal processor = digitaler Signalprozessor) ausgeführt wird, einer Software, die auf einem Win32-Rechensystem läuft, oder einem Element von einer Spezialhardware, wie z. B. einem DRC (DAC = digital-to-analog converter = Digital-Analogwandler). Üblicherweise werden ein oder mehrere Eingabesignale 3 und Ausgabesignale 4 (die zusammen als externe Variablen bezeichnet werden) durch das dynamische System verwendet, das durch das Systemmodell 1 dargestellt ist, um mit der umgebenden Umgebung zu kommunizieren und dieselbe zu beeinflussen. Interne Signale 5 des Systemmodells 1 ermöglichen dem Funktionsblock 2, zu kommunizieren, wodurch eine Kooperation unter den Funktionsblöcken 2 ermöglicht wird, um die Gesamtfunktion des dynamischen Systems auszuführen. Die meisten Modellierungsumgebungen 210, wie z. B. Simulink, ermöglichen auch einen hierarchischen Entwurf, da jeder Block 2 des Systemmodells 1 ferner aus Teilblöcken (nicht gezeigt) bestehen kann, die verschiedene Funktionen innerhalb eines zugeordneten Blocks 2 höherer Ebene darstellen.
  • Zusätzliche können beliebige Funktionsblöcke innerhalb des Systemmodells 1 vordefinierte Funktionsblöcke sein (z. B. Differenzierungs- oder Integrationsfunktionsblöcke), die normalerweise innerhalb der Modellierungsumgebung 210 verfügbar gemacht werden, während andere später definierte Funktionsblöcke sind, deren Verhalten durch den Systementwickler spezifiziert sein kann. Solche später definierten Blöcke können innerhalb der Simulink-Umgebung mittels „S-Funktionen" spezifiziert sein, die ermöglichen, daß das Verhalten des Blocks mittels einer vom Benutzer bereitgestellten oder von einer dritten Partei bereitgestellten Software, die in einer beliebigen von mehreren unterschiedlichen Sprachen einschließlich C, Ada und Fortran geschrieben sein kann, spezifiziert werden kann.
  • Jedem Funktionsblock 2 (und den Teilblöcken) des Systemmodells 1 sind typischerweise verschiedene Zeitgebungsparameter und Blockprioritäten zugeordnet, die beim Definieren des Betriebsverhaltens von jedem Funktionsblock 2 helfen, insbesondere, da sich dieses Verhalten auf jenes von anderen Funktionsblöcken 2 innerhalb des Systemmodells 1 bezieht. Die Zeitgebungsparameter zeigen an, welche Zeitdauer erforderlich ist, bis eine Ausgabe eines Funktionsblocks 2 (oder eines Teilblocks) den Zustand, ansprechend auf eine Veränderung an einem der Eingänge während des Simulation des Systemmodells 1, verändert. Die Blockprioritäten hel fen, zu bestimmen, welcher Funktionsblock 2 (oder Teilblock) seine Veränderung des Ausgabezustands in dem Fall zuerst bekannt gibt, daß zwei Funktionsblöcke 2 die Ausgangszustände gleichzeitig verändern können. Zusammen bestimmen die Zeitgebungsparameter und Blockprioritäten von jedem der Funktionsblöcke 2 eine Ausführungsreihenfolge für jeden Funktionsblock 2 über dem gesamten Systemmodell 1.
  • Wie in 2 zu sehen ist, kann das Systemmodell 1, das in der Simulink-Umgebung spezifiziert ist, dann innerhalb der gleichen Umgebung unter Verwendung von Eingabesignalen 3 simuliert werden, die durch den Systementwickler entwickelt wurden. Die Analyse, anschließenden Entwurfsveränderungen und die weitere Simulation des Modells tritt normalerweise innerhalb des Wirkungsbereichs des Simulink-Werkzeugs auf. Um diesen Prozeß zu verbessern, ermöglicht Simulink einen Zugriff auf die internen Signale 5 des Systemmodells 1, die dabei helfen, das Verhalten des vorgeschlagenen Systems zu definieren. Speziell ermöglichen die internen Signale 5 dem Entwickler einen besseren Einblick in die Operationen des Systemmodells 1. Somit gestaltet ein Zugriff auf diese internen Signale 5 den gesamten Simulations- und Analyseprozeß effizienter.
  • Ein darauf bezogenes Code-Erzeugungswerkzeug 220, wie jenes, das von The Matchworks bereitgestellt wird, das als Real Time-Workshop (RTW) bezeichnet wird, nimmt die Systemmodelle 1, die ursprünglich innerhalb der Modellierungsumgebung 210 entwickelt wurden, als Eingabe und erzeugt einen Code, der ein Softwaremodell 230 ist, das das Systemmodell darstellt. Das Systemmodell 230 kann in einer von mehreren unterschiedlichen Programmiersprachen einschließlich C, Ada und andere erzeugt werden. Das Softwaremodell 230 kann dann an eine andere Plattform übertragen und dort ausgeführt werden, wobei die Ausführung des Softwaremodells 230 möglicherweise in Echtzeit fortschreitet, was von der Beschaffenheit der Plattform abhängt. Im Fall von Softwaresystemen kann die Plattform eine Zielplattform sein, die letztend lich zum Implementieren des Systems verwendet wird, wodurch eine nahezu nahtlose Progression von der Systemmodellerzeugung zum Produktionspegelcode ermöglicht wird.
  • Die meisten Modellierungsumgebungen ermöglichen lediglich die Erzeugung von Systemmodellen 1, die in ihrer Beschaffenheit monolithisch sind. In anderen Worten wird jedes Systemmodell 1, das durch einen Entwickler spezifiziert ist, innerhalb der Modellierungsumgebung als eine einzelne Entität behandelt, die en masse simuliert wird. Zusätzlich weisen die Systemmodelle 230, die anhand jener Systemmodelle 1 mittels eines Codeerzeugungswerkzeugs 220 erzeugt werden, die gleiche Charakteristik auf. Viele dynamische Systeme, die heutzutage entwickelt werden, sind jedoch nicht monolithisch, das heißt, daß solche Systeme häufig mittels einer Mischung aus unterschiedlichen Typen von einer Hardware und einer Software implementiert sind, wobei diese jeweils eine andere Funktion ausführen. Die kollektive Operation dieser verschiedenen Stücke ermöglicht dem Systemmodell 1, letztendlich seinen gewünschten Zweck zu erreichen. Jeder der Funktionsblöcke 2 des Systems 1 (wie in 1 gezeigt ist) kann beispielsweise einen Abschnitt des Systems darstellen, der auf einer anderen Hardware/Softwareplattform implementiert werden soll. Der FUNKTIONSBLOCK 1 soll beispielsweise als Software implementiert sein, die auf einem Win32-Computersystem läuft, der FUNKTIONSBLOCK 2 ist eine Software, die auf einem eingebetteten Mikroverarbeitungssystem ausgeführt werden soll, und der FUNKTIONSBLOCK 3 ist eine Software, die auf einem DSP ausgeführt wird. Um jeden dieser Funktionsblöcke 2 ausführlicher zu simulieren, wäre es vorteilhaft, ein Teilmodell vorliegen zu haben, das jedem Abschnitt des Systems zugeordnet ist, der mittels einer unterschiedlichen Plattform implementiert sein soll, da die Simulation auf einer Plattform ausgeführt werden würde, die der letztendlichen Implementierung des Systems besser nahe kommt und möglicherweise dasselbe vervielfältigt. Zusätzlich kann ein Aufteilen einer Simulation in mehrere „Teilmodelle", die jeweils auf einer separaten Plattform laufen, komplexere Simulationen beschleunigen, da die Verarbeitung, die erforderlich ist, auf mehrere Plattformen, die gleichzeitig laufen, verteilt werden würde. Abwechselnd können ein oder mehrere der Teilmodelle durch die tatsächliche Komponente, wie z. B. einen Elektromotor, ersetzt werden, den ein spezielles Teilmodell darstellt, um das Gesamtsystem exakter zu testen.
  • Derzeit, um die Simulation in einer solchen Weise zu verbessern, kann das Systemmodell 1 manuell durch den Entwickler in separate Systemteilmodelle getrennt werden, wie z. B. jeden der Funktionsblöcke 2 des Systemmodells 1. Jedes der Systemmodelle würde dann mittels eines Codeerzeugungswerkzeugs, wie zum Beispiel ein RTW, verwendet werden, um Softwareteilmodelle zu erzeugen, von denen ein jedes dann auf separaten Zielplattformen simuliert werden könnte.
  • Leider entstehen infolge eines manuellen Erzeugens der Teilmodelle mehrere Probleme. Erstens führt der Prozeß des Erzeugens der Systemmodelle von dem Systemmodell per Handeingabe möglicherweise dazu, daß Fehler in die Teilmodelle eingebracht werden, da keine automatische Verbindung zwischen dem Originalsystemmodell 1 und den Teilmodellen besteht. Zweitens muß eine spezifische Software jedem Softwareteilmodell hinzugefügt werden, um eine Kommunikation zwischen den verschiedenen Teilmodellen, die auf unterschiedlichen Zielplattformen laufen, zu liefern.
  • Drittens, da zumindest ein Teil des Betriebsverhaltens eines Teilmodells durch seine Interaktion mit dem Rest des Systems bestimmt wird, müßten jene System-Ebene-Charakteristika, die das Teilmodellverhalten beeinflussen, als ein Teil von jedem Teilmodell erfaßt werden, um den Teilmodellen zu ermöglichen, sich ordnungsgemäß als ein Abschnitt des Gesamtsystems zu verhalten. Der Entwickler muß z. B. sicherstellen, daß jedes der Softwareteilmodelle konsistente Zeitgebungsparameter und Blockprioritäten einbehält, die die Ausführungsreihenfolge bestimmen, in der die Blöcke während eines Zeitschritts der Simulation verarbeitet werden. Ansonsten kann die Simulation über den verschiedenen Softwareteilmodellen zu einer Systemblockade (bzw. Deadlock) führen, die bewirkt, daß die Simulation vor einer erfolgreichen Beendung anhält. Die Typen von Daten, die jedem Teilmodell präsentiert werden, können ebenfalls durch andere Abschnitte des Systems bestimmt werden. Bis jedes Teilmodell konfiguriert ist, um den ordnungsgemäßen Datentyp zu akzeptieren, ist somit eine ordnungsgemäße Ausführung der Teilmodelle nicht wahrscheinlich, da die eingegebenen Daten fehlinterpretiert werden können. Diese Probleme resultieren von dem separaten Systemteilmodellen, die manuell erzeugt werden, da jedes solche Teilmodell innerhalb der Umgebung des Systemmodells 1 nicht als ein Ganzes erzeugt und validiert wird. Auch werden die Veränderungen, die in dem Systemmodell 1 vorgenommen werden, nicht in früher erzeugten Systemteilmodellen reflektiert, und umgekehrt, was zu einer separaten, aufwendigen Wartung von sowohl dem Systemmodell 1 als auch den Systemteilmodellen führt.
  • Daher wären, anhand des Vorstehenden, Verfahren von Vorteil, die eine automatische Zerlegung von einem Systemmodell in separate Systemteilmodelle, gemäß einer Anweisung durch einen Systementwickler ermöglichen. Jedes Systemteilmodell könnte dann möglicherweise eingesetzt werden, um ein Softwareteilmodell zu erzeugen, das auf einer Zielplattform nach dem Ermessen des Entwicklers ausführbar ist, wodurch sowohl die Genauigkeit als auch die Geschwindigkeit der Simulation des integrierten Systems verbessert wird.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle zu schaffen.
  • Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein Computersystem gemäß Anspruch 14 sowie ein Programmspeicherungsmedium gemäß Anspruch 21 gelöst.
  • Die Ausführungsbeispiele der vorliegenden Erfindung, die nachstehend ausführlich erörtert werden, stellen ein Verfahren zum automatischen Zerlegen eines Systemmodells in Systemteilmodelle dar, wodurch die Simulation des Modells auf mehreren diversen Zielplattformen gleichzeitig geschehen kann. Als eine Vorstufe zu den Verfahren, die nachstehend beschrieben sind, organisiert der Systementwickler das Systemmodell in separate Abschnitte, von denen ein jeder ein spezielles Systemteilmodell darstellt, das auf einer Zielplattform ausgeführt werden soll. Die Ausführungsbeispiele der Erfindung liefern dann eine Möglichkeit für den Entwickler, um anzuzeigen, welche Abschnitte des Systemmodells Teilmodelle werden sollen. Optional kann der Benutzer auch die zugeordnete Zielplattform für die Ausführung von jedem Teilmodell anzeigen. Ein Code, der durch die Ausführungsbeispiele der Erfindung bereitgestellt wird, erzeugt dann ein Systemteilmodell für jeden Abschnitt, der durch den Entwickler bezeichnet wird, wobei alle kritischen System-Ebene-Informationen, wie z. B. Zeitgebungsparameter und Blockprioritäten erhalten bleiben, die im gesamten Systemmodell konsistent sind. Jedes dieser Systemteilmodelle kann dann verwendet werden, um ein Softwareteilmodell zu erzeugen, das dann an die korrekte Zielplattform für eine Ausführung übertragen werden kann. Alternativ können ein oder mehrere Systemteilmodelle durch die tatsächlichen Komponenten des Systems, die durch diese Systemteilmodelle dargestellt werden, ersetzt werden.
  • Den verschiedenen Ausführungsbeispielen der Erfindung können mehrere Vorteile zugeordnet sein. Da die Erzeugung der Systemmodelle automatisch ausgeführt wird, ist die Möglichkeit, daß Fehler in die Systemteilmodelle eingebracht werden, im wesentlichen ausgeschaltet. Die gesamte Software, die den Softwareteilmodellen hinzugefügt werden muß, um eine Kommunikation zwischen den verschiedenen Teilmodellen zu vereinfachen, wird ebenfalls automatisch erzeugt. Da das Systemmodell direkt verwendet wird, um die Systemteilmodel le zu erzeugen, werden zusätzlich konsistente Zeitgebungsparameter und Blockprioritäten zwischen den Funktionsblöcken innerhalb und zwischen jedem Teilmodell beibehalten, um eine Systemblockade zu verhindern. Da die Systemteilmodelle automatisch von dem Systemmodell erzeugt werden, können ferne alle Veränderungen an dem System ausschließlich auf der Systemmodellebene vorgenommen werden, wobei Veränderungen an den Teilmodellen automatisch berücksichtigt werden, immer wenn die Systemteilmodelle gebaut werden.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm eines Systemmodells, das innerhalb der Simulink-Modellierungsumgebung dargestellt werden kann, sowie andere Modellierungsumgebungen,
  • 2 ein Flußdiagramm eines Verfahrens aus dem Stand der Technik zum Entwickeln eines Systemmodells und eines Softwaremodells eines dynamischen Systems,
  • 3 ein Blockdiagramm des Systemmodells von 1, das durch einen Entwickler gemäß eines Ausführungsbeispiels der Erfindung eingerichtet bzw. dekoriert worden ist,
  • 4 ein Flußdiagramm eines integrierten Gesamtprozesses zum Erzeugen eines Systemmodells und zum Zerlegen dieses Systemmodells in zugeordnete Systemteilmodelle und Softwareteilmodelle,
  • 5 ein Flußdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel der Erfindung zum automatischen Erzeugen eines separaten Systemteilmodells von einem dekorierten Systemmodell, wie in 4 angemerkt ist,
  • 6 ein vereinfachtes Blockdiagramm der Zwischenbeziehung von einem Satz von Softwareteilmodellen, die von dem dekorierten Systemmodell von 3 erzeugt werden, die auf unterschiedlichen Zielplattformen ausgeführt werden.
  • Die Ausführungsbeispiele der Erfindung, die nachstehend ausführlich beschrieben sind, nutzen die vorstehend beschriebene Mathworks-Simulink®-Modellierungsumgebung als Ausgangspunkt. Andere Simulationsmodellumgebungen können jedoch in einer ähnlichen Weise als die Grundlage für alternative Ausführungsbeispiele der vorliegenden Erfindung verwendet werden.
  • Ferner kann die Software von alternativen Ausführungsbeispielen der Erfindung in verschiedenen Integrationspegeln mit der zugeordneten Modellierungsumgebung manifestiert sein. Alternative Ausführungsbeispiele können eine unterscheidbare Anschlußsoftware umfassen, die beispielsweise separat von der Modellierungsumgebung installiert ist. Andere Ausführungsbeispiele, wie jene die speziell hierin erörtert sind, können eine Software involvieren, die unabhängig entwickelt wurde, aber in die Modellierungsumgebung integriert ist. Andere Ausführungsbeispiele können auch einen Code darstellen, der zu dem Punkt in hohem Maße integriert ist, daß ein solcher Code durch einen externen Beobachter von dem nicht unterscheidbar ist, der den Rest der Modellierungsumgebung aufweist.
  • 4 zeigt eine integrierte Darstellung 400 der Schritte, die durch die Ausführungsbeispiele der Erfindung geliefert werden, die in die Schritte eingeschoben worden sind, die durch den Systementwickler oder andere Benutzer ausgeführt werden. Die direkt den Ausführungsbeispielen der Erfindung zugeordneten Schritte sind mit Hilfe der Blöcke mit gestrichelten Grenzen angezeigt.
  • Zuerst liefern die Ausführungsbeispiele der vorliegenden Erfindung einen Satz von Zerlegungsfunktionsblöcken 6, 7 und 8 (aus 3) zur Verwendung in einem Modell, das durch den Entwickler (Schritt 410 von 4) definiert ist. Die Zerlegungsfunktionsblöcke 6, 7, 8 sind typischerweise vordefinierte Blöcke oder durch Dritte definierte Blöcke, die sich in einer Bibliothek innerhalb der Modellierungsumgebung befinden. Wie andere Funktionsblöcke stehen die Zerlegungsfunktionsblöcke 6, 7, 8 zur Verfügung, um durch den Systementwickler verwendet und modifiziert zu werden.
  • In 4 modifiziert der Systementwickler ein Systemmodell 1 (von 1), indem dem Systemmodell eine Mehrzahl von Zerlegungsfunktionsblöcken 6, 7, 8 hinzugefügt wird oder das Systemmodell 1 mit denselben dekoriert wird (Schritt 420 von 4), was zu einem dekorierten Systemmodell 100 führt, das in 3 ausführlich gezeigt ist. Jeder der möglichen Zerlegungsblöcke 6, 7, 8 weist typischerweise ein maskiertes Dialogfeld auf, das denselben zugeordnet ist, das dem Entwickler nach einer Instantiierung eines solchen Blocks innerhalb des dekorierten Systemmodells 100 präsentiert wird. Solche Dialogfelder ermöglichen eine spezifische Ausführung des Funktionsblocks, dem es zugeordnet ist.
  • Die Zerlegungsfunktionsblöcke 6, 7, 8 bestehen aus mehreren unterschiedlichen Typen von Blöcken, von denen ein jeder einem speziellen Zweck dient. In den beigefügten Ausführungsbeispielen wird ein Systeminformationsblock 6 beispielsweise pro dekoriertes Systemmodell 100 verwendet. Der Systeminformationsblock 6 wird verwendet, um globale Systeminformationen, wie z. B. den Namen oder den Identifizierer des dekorierten Gesamtsystemmodells 100, allen Systemteilmodellen zur Verfügung zu stellen, um später erzeugt zu werden. Der Entwickler kann die Informationen mittels eines maskierten Dialogfelds spezifizieren, die demselben zugeordnet sind, das dem Entwickler nach einer Instantiierung des Blocks innerhalb des dekorierten Systemmodells 100 präsentiert wird. Der Systeminformationsblock 600 wird normalerweise innerhalb der Obere-Ebene-Darstellung des dekorierten Systemmodells 100, wie jenes, das in 3 dargestellt ist, plaziert. Da der Systeminformationsblock 6 nicht in „funktioneller" Weise mit dem Rest des dekorierten Systemmodells 100 arbeitet, ist der Systeminformationsblock 6 nicht mit beliebigen anderen Funktionsblöcken mittels interner Signale an und von diesen Blöcken verbunden.
  • Ein weiterer Typ von Zerlegungsfunktionsblock, der vorgesehen ist, ist der Zielinformationsblock 7, von dem einer auf der oberen Ebene für jedes Systemteilmodell plaziert ist. In dem spezifischen Fall des dekorierten Systemmodells 100 von 3, wird ein Zielinformationsblock 7 in der Beschreibung der oberen Ebene dieses Modells verwendet. Da drei unterschiedliche Systemteilmodelle innerhalb der dekorierten Systemmodells 100 definiert sind, die jeweils dem FUNKTIONSBLOCK 1 (Win32-Zielplattform), dem FUNKTIONSBLOCK 2 (der in der Mikroprozessorzielplattform eingebettet ist) und dem FUNKTIONSBLOCK 3 (digitaler Signalprozessor-Zielplattform) entsprechen, werden insgesamt drei Zielinformationsblöcke 7 verwendet. Der FUNKTIONSBLOCK 2 und der FUNKTIONSBLOCK 3 enthalten jeweils einen Zielinformationsblock auf der nächsten untersten Ebene der Abstraktion (nicht gezeigt) für jedes dieser Teilmodelle. Bei diesem speziellen Ausführungsbeispiel enthält der FUNKTIONSBLOCK 1 keinen separaten Zielinformationsblock 7, da das Diagramm auf hoher Ebene, das in 3 gezeigt ist, als die tatsächliche hohe Ebene für das Win32-Teilmodell in diesem Fall dient, wie durch den Zielinformationsblock 7, der in 3 gezeigt ist, bezeichnet ist. Somit beinhaltet das Win32-Teilmodell nicht nur den FUNKTIONSBLOCK 1, sondern auch Eingabesignale 3, Ausgabesignale 4 und beliebige Hardwarefunktionen, die innerhalb dieses speziellen Teilmodells simuliert werden. Jeder Zielinformationsblock 7 weist ein zugeordnetes Dialogfeld auf, das dem Entwickler ermöglicht, das spezielle dargestellte Systemteilmodell, die Identität des Gesamtsystemmodells, mit dem das Systemteilmodell verwandt ist, und einen Hinweis auf die spezielle Zielplattform (Win32-System, DSP, feldprogrammierbares Gatterarray, usw.) zu nennen, woraufhin das resultierende Softwareteilmodell ausgeführt wird. Ein Hinweis auf ein „NULL"-Ziel innerhalb des Dialogfelds zeigt an, daß die zugeordnete Komponente des tatsächlichen Systems den Platz des Teilmodells in dem zerlegten Simulationsmodell einnehmen wird. Die resultierenden Informationen für jeden Zielinformationsblock werden in einem Schablonenmodell zur späteren Verwendung während der Erzeugung der Systemteilmodelle gespeichert.
  • Der Entwickler besiedelt auch das dekorierte Systemmodell 100 mit I/O-Blöcken 8 (I/O = input/output = Eingabe/Ausgabe), wie in 3 gezeigt ist, wobei die Position und Beschaffenheit der Kommunikationsverknüpfungen gezeigt ist, die durch die verschiedenen Systemteilmodelle verwendet werden, um miteinander zu kommunizieren. Jeder I/O-Block 8 umfaßt typischerweise ein einfaches I/O-Teilsystem mit Eingangs- und Ausgangsports zusammen mit einem I/O-Simulationscode (nicht gezeigt) und einen I/O-Informationsblock (ebenfalls nicht gezeigt). Der I/O-Simulationscode wird verwendet, wenn das zugeordnete Teilmodell in einer vollen System-Ebene-Simulation verwendet wird. Der I/O-Informationsblock liefert einen Hinweis darauf, welcher Satz des Codes in die Teilmodelle verknüpft werden soll, um die I/O tatsächlich zu implementieren. Der durch den I/O-Informationsblock ausgewählte Code kann ein Code sein, der eine I/O-Kommunikation mit einem anderen Teilmodell liefert, oder der Code sein, der eine Kommunikation mit der tatsächlichen Komponente, die laut Entwurf ein weiteres Teilmodell darstellen soll, liefert. Dem I/O-Informationsblock ist ein Dialogfeld zugeordnet, das dem Entwickler erlaubt, anzuzeigen, welcher Satz des I/O-Kommunikationscodes verwendet werden soll. Der I/O-Informationsblock kann auch Informationen bezüglich der Zielplattform enthalten, die jedem der Eingabe- und Ausgangsports des I/O-Blocks für eine Teilmodellinterkommunikation zugeordnet ist; alternativ können diese Informationen während der tatsächlichen Erzeugung der Systemteilmodelle abgeleitet werden, da jeder Abschnitt eines dekorierten Systemmodells 100 eine Zielplattform an diesem Punkt zugeordnet ist. In dem spezifischen Fall des dekorierten Systemmodells 100 von 3 weist jede Kommunikationsverknüpfung zwischen den Teilmodellen einen I/O-Block 8 auf, der derselben zugeordnet ist.
  • Die I/O-Technologie, die für die Kommunikation zwischen den Softwareteilmodellen genutzt wird, die von dem Systemteilmodellen resultieren, können eine beliebige Kommunikationsverknüpfung sein, die innerhalb oder zwischen den Rechensystemen verwendbar ist. Beispielsweise kann die COM-Technologie (COM = Component Object Model = Komponentenobjektmodell), die durch die Firma Microsoft Corporation® entwickelt wurde, verwendet werden. Die COM ist eine in weiten Kreisen verwendete Softwarearchitekturdefinition, die „Softwarekomponenten" oder Abschnitten einer Software, die durch separate Softwareentwicklung in einer Vielfalt von Sprachen geschrieben worden sind, ermöglicht, miteinander zu kommunizieren. Im Grunde vereinfacht die COM-Architektur eine Integration von ungleichartigen bzw. disparaten Stücken einer Software, um eine integrierte Funktion durch Definieren eines Rahmens auszuführen, der reguliert, wie diese Stücke miteinander kommunizieren. Eine weitere I/O-Technologieoption ist „.NET" von Microsoft, die eine umfassendere Schnittstellenverbindungstechnologie als COM ist, die einen Satz von XML-Webdiensten verwendet, um eine Interkonnektivität von Abschnitten einer Software zu ermöglichen. Viele andere I/O-Technologien, die heutzutage verfügbar sind, wie z. B. eine gemeinsam verwendete Speicher-I/O, können ebenfalls verwendet werden. In dem Fall, das das zugeordnete Teilmodell mit einer tatsächlichen Komponente des Systems kommunizieren soll, die simuliert wird, kann die I/O-Technologie, die verwendet wird, ein hardware spezifischer Gerätetreiber sein, der speziell mit dieser Komponente schnittstellenmäßig verbunden werden soll.
  • Bei den offenbarten Ausführungsbeispielen, die sich auf Simulink beziehen, sind die Zerlegungsfunktionsblöcke 6, 7, 8 als „S-Funktionen" implementiert, wie vorstehend beschrieben ist. In anderen Worten sind die Zerlegungsfunktionsblöcke 6, 7, 8 mittels Abschnitten von einer Software definiert, die die Funktionalität der zugeordneten Zerlegungsfunktionsblöcke 6, 7, 8 beschreiben und aufweisen.
  • Nachdem der Entwickler das dekorierte Systemmodell 100 beendet hat, initiiert der Entwickler den Prozeß, wodurch die verschiedenen Systemteilmodelle automatisch erzeugt werden. Gemäß den offenbarten Ausführungsbeispielen wird dieser Prozeß durch eine Anzahl von Softwareskripten ausgeführt, die innerhalb der Modellierungsumgebung 210 geliefert werden.
  • Der Zerlegungsprozeß (Schritt 440 von 4, der in 5 ausführlicher gezeigt ist) beginnt mit einer Validierung des dekorierten Systemmodells 100, um sicherzustellen, daß es ordnungsgemäß in Systemteilmodelle (Schritt 510) zerlegt werden kann. Wenn das dekorierte Systemmodell die Validierung nicht besteht, wird der Zerlegungsprozeß angehalten.
  • Anschließend wird die Ausführungsreihenfolge eines dekorierten Systemmodells 100 erzeugt (Schritt 520). Die Ausführungsreihenfolge ist im wesentlichen die sequentielle Reihenfolge, in der die Funktionsblöcke des dekorierten Systemmodells 100 für jeden Zeitschritt während der Simulation ausgeführt werden. Die Ausführungsreihenfolge wird anhand von kritischen Systemebeneinformationen erzeugt, wie z. B. die Zeitgebungsparameter und Blockprioritäten, die dem dekorierten Systemmodell 100, wie vorstehend beschrieben, zugeordnet sind. Die Erzeugung der Ausführungsreihenfolge ist notwendig, um sicherzustellen, daß die verschiedenen Funktionsblöcke von jedem Systemteilmodell in der ordnungsgemäßen Reihenfolge ausgeführt werden, um eine Systemblockade oder andere Zeitgebungsprobleme zu verhindern, wenn die verschiedenen Teilmodelle gemeinsam ausgeführt werden.
  • Jeder der Funktionsblöcke des dekorierten Systemmodells 100 wird dann analysiert, so daß sie in den entsprechenden Systemteilmodellen organisiert sein können (Schritt 530). Jeder I/O-Block 8, der während dieses Schritts angetroffen wird, wird jedem der Teilmodelle zugewiesen, dem er zugeordnet ist. Jeder Zielinformationsblock 7, der angetroffen wird, zeigt den oberen Block oder „Wurzelblock" für jedes Teilmodell an.
  • Unter Verwendung von jedem Zielinformationsblock 7 wird dann das Systemteilmodell für diesen Zielinformationsblock 7 erzeugt. Zuerst wird das Systemteilmodell unter Verwendung von Schablonenmodellinformationen von dem Zielinformationsblock 7 (Schritt 540) erzeugt. Die innerhalb des Systeminformationsblocks 6 gespeicherten Informationen werden auch an das neue Teilmodell kopiert, um dasselbe wieder auf das dekorierte Systemmodell 100 zu beziehen (Schritt 550). Alle Blöcke, die sich unter dem Wurzelblock für dieses Teilmodell befinden, werden dann an das neue Teilmodell kopiert, zusammen mit ihren zugeordneten Zwischenverbindungen (Schritt 560). Beliebige I/O-Blöcke 8, die an das neue Teilmodell kopiert werden, werden dann mit dem ordnungsgemäßen Informationen bezüglich der Beschaffenheit bezüglich der zugeordneten Kommunikationsverknüpfung aktualisiert (Schritt 570). In diesem Schritt ist enthalten, ob jeder I/O-Block 800 eine Senke bzw. einen Verbraucher oder eine Quelle von Daten ist. Diese Informationen sind üblicherweise von dem dekorierten Systemmodell 100 erhältlich, da die meisten Modellierungsumgebungen, wie z. B. Simulink, die Richtung des Datenflusses für ein beliebiges internes Signal 5 innerhalb eines Systemmodells anzeigen. In diesem Aktualisierungsschritt ist auch die Ersetzung von I/O-Komponenten abhängig von den Informationen in den I/O-Block 8 bezüglich dessen, ob eine tatsächliche Komponente oder ein anderes Systemteilmodell durch den I/O-Block kommuniziert wird, enthalten. Schließlich wird jeder Block innerhalb des Teilmodells der Ausführungsreihenfolge zugeordnet, die von dem dekorierten Systemmodell 100 erzeugt wird (Schritt 580).
  • Nachdem jedes der Systemteilmodelle erzeugt worden ist, wird eine Systeminformationsdatei, die Informationen bezüglich der Zerlegung des Systemmodells in verschiedene Systemteilmodelle hält, erzeugt (Schritt 440 von 4). In den beigefügten Ausführungsbeispielen ist die Systeminformationsdatei in einem XML-Format (XML = eXtensible Markup Language = erweiterbare Markierungssprache), jedoch kann ein beliebiges geeignetes Datenformat verwendet werden. Die Informationen innerhalb dieser Datei werden dann anschließend verwendet, um die resultierenden Softwareteilmodelle auf ihre angeforderten Zielplattformen herunterzuladen. Zusätzlich kann die Systeminformationsdatei, die gelegentlich als das Manifest für das System bezeichnet wird, auch Informationen zum Leiten der Konstruktion des tatsächlichen Systems, das modelliert wird, umfassen. Diese Informationen können beispielsweise verwendet werden, um bei der Einordnung von elektronischen Teilen, der Kombination des Quellencodes und dergleichen zu helfen.
  • Jedes der Systemteilmodelle wird dann verwendet, um zugeordnete Softwareteilmodelle zu erzeugen (Schritt 450 von 4), die auf die spezifischen Zielplattformen, für die ein jedes eingeplant war, übertragen werden sollen. Dieser Prozeß wird normalerweise mittels eines Codeerzeugungswerkzeugs erreicht, das in den beigefügten Ausführungsbeispielen das RTW-Werkzeug von The Matchworks ist. Informationen von den Schablonenmodul für jedes Systemteilmodul unterstützen diesen Prozeß. Während der Codeerzeugung werden Informationen bezüglich jedem der Softwareteilmodelle der XML-Systeminformationsdatei hinzugefügt.
  • Nach dem Ermessen des Entwicklers kann dann jedes der Softwareteilmodelle an die entsprechende Zielplattform, auf der das Softwareteilmodell ausgeführt werden kann, übertragen werden. Typischerweise führt ein Dienst innerhalb der Modellierungsumgebung 210 diese Aufgabe, die durch die Informationen, die zuvor in der XML-Systeminformationsdatei gespeichert wurden, unterstützt wird, automatisch aus.
  • Nachdem die verschiedenen Softwareteilmodelle an die entsprechenden Ziele übertragen wurden, kann ein resultierendes verteiltes Systemteilmodell 600 für Simulationszwecke ausgeführt werden, wie in Fig. 6 gezeigt ist. Unter Verwendung des spezifischen Falls des dekorierten Systemmodells 100 von 3 wird jedes der drei Softwareteilmodelle 610, 620 und 630 gleichzeitig ausgeführt, wobei eine Kommunikation zwischen jedem der Teilmodelle 610, 620, 630 über die Kommunikationsverknüpfungen 640 stattfindet. Angesichts einer angemessenen Auswahl von Zielplattformen durch den Entwickler, wird die Ausführung von jedem Teilmodell 610, 620, 630 aufgrund der Beziehung zwischen dem Teilmodell und der ausgewählten Zielplattform potentiell effizienter. Das Win32-Teilmodell 610 könnte beispielsweise am besten auf einem aktuellen Win32-Rechensystem simuliert werden. Andererseits arbeitet das DSP-Softwareteilmodell 630 aller Wahrscheinlichkeit nach am effizientesten auf einem aktuellen DSP-System oder einem DSP-Emulator. Durch Zerlegen des Systemmodells in separate Teilmodelle, von denen ein jedes auf einer Zielplattform läuft, die einen Abschnitt des Produktionssystems tatsächlich implementiert oder demselben ziemlich angenähert ist, ist die resultierende Systemebene-Simulation wahrscheinlich eine bessere Darstellung dessen, was unter normalen Betriebsbedingungen geschieht.
  • Wie vorstehend erwähnt, ist ein weiteres Beispiel einer potentiellen Zielplattform ein FPGA. FPGAs können viele Berechnungen viele Male schneller als Mikroprozessoren ausführen. Infolgedessen sind FPGAs speziell für DSP-Anwendungen, wie zum Beispiel aktuelle simulierte Kommuni kationssysteme, besonders geeignet, was zu einem im hohen Maße verbesserten Verhalten gegenüber anderen Alternativen führt.
  • Zusätzlich, da die resultierende Systemsimulation auf mehreren Plattformen ausgeführt wird, kann die Gesamtsimulationszeit aufgrund der Menge der Simulationsverarbeitung, die gleichzeitig zwischen den Zielplattformen geschieht, beträchtlich reduziert werden, wodurch die Gesamtsimulationszeit potentiell reduziert wird, wodurch eine Marktreifezeit für das tatsächliche dynamische System verbessert wird.
  • Wie vorstehend erwähnt, können ein oder mehrere Systemteilmodelle durch tatsächliche Komponenten ersetzt werden, die schließlich im dynamischen System, das simuliert wird, verwendet werden. Eine solche Ersetzung von tatsächlichen Komponenten für Teilmodelle kann ferner die Gesamtgenauigkeit und Effizienz der Simulation des gesamten Systems verbessern.
  • Aus vorstehendem wird ersichtlich, daß die vorstehend erörterten Ausführungsbeispiele der Erfindung nachweislich ein Verfahren zum automatischen Zerlegen von dynamischen Gesamtsystemmodell in separate Systemteilmodelle schafft. Ferner sind auch andere spezifische Systeme und Verfahren, die die Erfindung verkörpern, möglich. Daher ist die vorliegende Erfindung nicht auf die spezifischen Formen, die beschrieben und dargestellt sind, begrenzt, die Erfindung ist nur durch die Ansprüche begrenzt.

Claims (33)

  1. Verfahren (400) zum Zerlegen eines Systemmodells (1) eines dynamischen Systems, wobei das Systemmodell (1) eine Mehrzahl von Funktionsblöcken aufweist, wobei das Verfahren folgende Schritte aufweist: Ermöglichen (410) einem Entwicklen, das Systemmodell (1) einzurichten, was zu einem eingerichteten Systemmodell (100) mit einer Mehrzahl von separaten Abschnitten führt; und automatisches Erzeugen (440) eines Systemteilmodells von dem eingerichteten Systemmodell (100) für jeden von der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells (100), während eine Konsistenz von allen kritischen Systemebeneinformationen von jedem Systemteilmodell mit dem eingerichteten Systemmodell (100) beibehalten wird.
  2. Verfahren gemäß Anspruch 1, das ferner folgenden Schritt aufweist: Ermöglichen (410) einem Entwickler, eine Zielplattform zu identifizieren, die jedem von der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells zuzuordnen ist.
  3. Verfahren gemäß Anspruch 2, bei dem zumindest eine der Zielplattformen, die durch den Entwickler identifiziert wird, eine gegenwärtige Komponente des dynamischen Systems ist.
  4. Verfahren gemäß Anspruch 2, das ferner folgenden Schritt aufweist: Erzeugen (450) eines Softwaremodells von zumindest einem Systemteilmodell zum Ausführen auf der Zielplattform, die diesem Systemteilmodell zugeordnet ist.
  5. Verfahren gemäß Anspruch 4, bei dem die Softwareteilmodelle unter Verwendung einer Komponenten-Objekt-Modell-Technologie miteinander kommunizieren.
  6. Verfahren gemäß Anspruch 4, das ferner folgenden Schritt aufweist: Erzeugen (440) einer Systeminformationsdatei, die den Automatisches-Erzeugen-Schritt beschreibt.
  7. Verfahren gemäß Anspruch 6, bei dem die Systeminformationsdatei eine Abbildung von dem eingerichteten Systemmodell (100) auf die gegenwärtigen Komponenten des dynamischen Systems, die durch die Systemteilmodelle dargestellt werden, liefert.
  8. Verfahren gemäß Anspruch 6, das ferner folgenden Schritt aufweist: Übertragen von jedem der Softwareteilmodelle an seine zugeordnete Zielplattform für eine anschließende Ausführung, wobei der Übertragungsschritt die Systeminformationsdatei verwendet.
  9. Verfahren gemäß Anspruch 6, bei dem die Systeminformationsdatei in einem XML-Format ist.
  10. Verfahren gemäß Anspruch 2, bei dem die Schritte des Ermöglichens (410) mittels eines Systeminformationsblocks, zumindest eines Zielinformationsblocks und zumindest eines Eingabe/Ausgabeblocks implementiert werden.
  11. Verfahren gemäß Anspruch 10, bei dem der Schritt des automatischen Erzeugens (440) ferner folgende Teilschritte aufweist: Validieren (510) des eingerichteten Systemmodells (100); Erzeugen (520) einer Ausführungsreihenfolge des eingerichteten Systemmodells (100); Analysieren (530) von jedem Funktionsblock des eingerichteten Systemmodells (100), um das eingerichtete Systemmodell (100) in Systemteilmodelle zu organisieren; und Erzeugen (540, 550, 560, 570, 580) eines Systemteilmodells für jeden Zielinformationsblock des eingerichteten Systemmodells (100).
  12. Verfahren gemäß Anspruch 11, bei dem der Schritt des Erzeugens (540, 550, 560, 570, 580) des Systemteilmodells ferner folgende Teilschritte aufweist: Erzeugen (540) eines neuen Systemteilmodells; Kopieren (550) der kritischen System-Ebene-Informationen von dem eingerichteten Systemmodell (100) an das neue Systemteilmodell; Kopieren (560) von Funktionsblöcken einschließlich I/O-Blöcken und darauf bezogenen Verbindungen zwischen den Funktionsblöcken, die dem neuen Systemteilmodell zugeordnet sind, von dem eingerichteten Systemmodell (100) an das neue Systemteilmodell; Aktualisieren (570) der I/O-Blöcke des neuen Systemteilmodells, um die Art der Kommunikationsverknüpfun gen, die den I/O-Blöcken zugeordnet sind, zu widerzuspiegeln; und Zuordnen (580) einer Ausführungsreihenfolge zu den Funktionsblöcken des neuen Systemteilmodells, das der Ausführungsreihenfolge des eingerichteten Systemmodells (100) entspricht.
  13. Verfahren gemäß Anspruch 12, bei dem der Schritt des Aktualisierens (570) ferner folgende Schritte aufweist: Ersetzen einer I/O-Komponente für jeden I/O-Block des neuen Systemteilmodells abhängig davon, ob das neue Systemteilmodell mit einem weiteren Systemteilmodell oder einer tatsächlichen Komponente des dynamischen Systems kommuniziert; und Bestimmen, ob jeder I/O-Block des neuen Systemteilmodells eine Quelle oder ein Verbraucher von Daten ist.
  14. Computersystem zum Zerlegen eines Systemmodells (1) eines dynamischen Systems, wobei das Systemmodell eine Mehrzahl von Funktionsblöcken aufweist, wobei das Computersystem folgende Merkmale aufweist: eine Einrichtung, um einem Entwickler zu ermöglichen, das Systemmodell einzurichten, was zu einem eingerichteten Systemmodell (100) mit einer Mehrzahl von separaten Abschnitten führt; und eine Einrichtung zum automatischen Erzeugen eines Systemteilmodells von dem eingerichteten Systemmodell (100) für jeden von der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells (100), während eine Folgerichtigkeit von allen kritischen System-Ebene-Informationen von jedem Systemteilmodell be züglich des eingerichteten Systemmodells (100) beibehalten wird.
  15. Computersystem gemäß Anspruch 14, das folgendes Merkmal aufweist: eine Einrichtung zum Liefern einer Abbildung von dem eingerichteten Systemmodell (100) auf gegenwärtige Komponenten des dynamischen Systems, die durch die Systemteilmodelle dargestellt werden.
  16. Computersystem gemäß Anspruch 14 und 15, bei dem die Einrichtung zum automatischen Erzeugen ferner folgende Merkmale aufweist: eine Einrichtung zum Validieren des eingerichteten Systemmodells (100); eine Einrichtung zum Erzeugen einer Ausführungsreihenfolge des eingerichteten Systemmodells (100); eine Einrichtung zum Analysieren von jedem Funktionsblock des eingerichteten Systemmodells (100), um das eingerichtete Systemmodell in Systemteilmodelle zu organisieren; eine Einrichtung zum Erzeugen eines Systemteilmodells für jeden von der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells (100).
  17. Computersystem gemäß einem der Ansprüche 14 bis 16, das ferner folgendes Merkmal aufweist: eine Einrichtung, um dem Entwickler zu ermöglichen, eine Zielplattform zu identifizieren, die jedem der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells (100) zuzuordnen ist.
  18. Computersystem gemäß Anspruch 17, bei dem zumindest eine der Zielplattformen, die durch den Entwickler identifiziert werden, eine gegenwärtige Komponente des dynamischen Systems ist.
  19. Computersystem gemäß Anspruch 17, das ferner folgende Einrichtung aufweist: eine Einrichtung zum Erzeugen eines Softwareteilmodells von zumindest einem Systemteilmodell zum Ausführen auf der Zielplattform, die dem Systemteilmodell zugeordnet ist.
  20. Computersystem gemäß Anspruch 19, das ferner folgendes Merkmal aufweist: eine Einrichtung zum Übertragen von jedem der Softwareteilmodelle an seine zugeordnete Zielplattform für eine anschließende Ausführung.
  21. Programmspeicherungsmedium, das durch ein Computersystem lesbar ist, das ein Programm verkörpert, das durch das Computersystem ausführbar ist, um Verfahrensschritte zum Zerlegen eines Systemmodells eines dynamischen Systems auszuführen, wobei das Systemmodell eine Mehrzahl von Funktionsblöcken aufweist, wobei das Verfahren folgende Schritte aufweist: Ermöglichen (410) einem Entwickler, das Systemmodell (1) einzurichten, was zu einem eingerichteten Systemmodell (100) mit einer Mehrzahl von separaten Abschnitten führt; und automatisches Erzeugen (440) eines Systemteilmodells von dem eingerichteten Systemmodell (100) für jeden von der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells (100), während eine Folgerichtigkeit aller kritischen System-Ebene-Informationen von jedem Systemteilmodell bezüglich des eingerichteten Systemmodells (100) beibehalten wird.
  22. Programmspeicherungsmedium gemäß Anspruch 21, das ferner folgenden Schritt aufweist: Ermöglichen (410) dem Entwickler, eine Zielplattform zu identifizieren, die jedem von der Mehrzahl von separaten Abschnitten des eingerichteten Systemmodells (100) zuzuordnen ist.
  23. Programmspeicherungsmedium gemäß Anspruch 22, bei dem zumindest eine der Zielplattformen, die durch den Entwickler identifiziert wird, eine gegenwärtige Komponente des dynamischen Systems ist.
  24. Programmspeicherungsmedium gemäß Anspruch 22, bei dem die Verfahrensschritte ferner folgende Schritte aufweisen: Erzeugen (450) eines Softwareteilmodells von zumindest einen Systemteilmodell zum Ausführen auf der Zielplattform, die diesem Systemteilmodell zugeordnet ist.
  25. Programmspeicherungsmedium gemäß Anspruch 24, bei dem die Softwaremodelle unter Verwendung einer Komponente-Objekt-Modell-Technologie miteinander kommunizieren.
  26. Programmspeicherungsmedium gemäß 24, bei dem die Verfahrensschritte ferner folgenden Schritt aufweisen: Erzeugen (440) einer Systeminformationsdatei, die den Schritt des automatischen Erzeugens beschreibt.
  27. Programmspeicherungsmedium gemäß Anspruch 26, bei dem die Systeminformationsdatei eine Abbildung von dem eingerichteten Systemmodell auf gegenwärtige Komponen ten des dynamischen Systems liefert, die durch die Systemteilmodelle dargestellt werden.
  28. Programmspeicherungsmedium gemäß Anspruch 26, wobei die Verfahrensschritte ferner folgenden Schritt aufweisen: Übertragen von jedem der Softwareteilmodelle an seine zugeordnete Zielplattform für eine anschließende Ausführung, wobei der Übertragungsschritt die Systeminformationsdatei verwendet.
  29. Programmspeicherungsmedium gemäß Anspruch 26, bei dem die Systeminformationsdatei in einem XML-Format ist.
  30. Programmspeicherungsmedium gemäß Anspruch 22, bei dem die Schritte (410) des Ermöglichens mittels eines Systeminformationsblock, zumindest eines Zielinformationsblocks und zumindest eines I/O-Blocks implementiert werden.
  31. Programmspeicherungsmedium gemäß Anspruch 30, bei dem der Schritt des automatischen Erzeugens (440) ferner folgende Teilschritte aufweist: Validieren (510) des eingerichteten Systemmodells (100); Erzeugen (520) einer Ausführungsreihenfolge des eingerichteten Systemmodells (100); Analysieren (530) von jedem Funktionsblock des eingerichteten Systemmodells (100), um das eingerichtete Systemmodell (100) in Systemteilmodelle zu organisieren; und Erzeugen (540, 550, 560, 570, 580) eines Systemteilmodells für jeden Zielinformationsblock des eingerichteten Systemmodells (100).
  32. Programmspeicherungsmedium gemäß Anspruch 31, bei dem der Schritt des Erzeugens (540, 550, 560, 570, 580) des Systemteilmodells folgende Teilschritte aufweist: Erzeugen (540) eines neuen Systemteilmodells; Kopieren (530) der wesentlichen System-Ebene-Informationen von dem eingerichteten Systemmodell (100) an das neue Systemteilmodell; Kopieren (560) von Funktionsblöcken einschließlich I/O-Blöcken und darauf bezogenen Verbindungen zwischen den Funktionsblöcken, die dem neuen Systemteilmodell zugeordnet sind, von dem eingerichteten Systemmodell (100) an das neue Systemteilmodell; Aktualisieren (570) der I/O-Blöcke des neuen Systemteilmodells, um die Art der Kommunikationsverknüpfungen, die den I/O-Blöcken zugeordnet sind, zu reflektieren; und Zuweisen (580) einer Ausführungsreihenfolge an die Funktionsblöcke des neuen Systemteilmodells, die der Ausführungsreihenfolge des eingerichteten Systemmodells (100) entspricht.
  33. Programmspeicherungsmedium gemäß Anspruch 32, bei dem der Schritt des Aktualisierens ferner folgende Teilschritte aufweist: Ersetzen einer I/O-Komponente für jeden I/O-Block des neuen Systemteilmodells abhängig davon, ob das neue Systemteilmodell mit einem anderen Systemteilmodell oder einer tatsächlichen Komponente des dynamischen Systems kommuniziert; und Bestimmen, ob jeder I/O-Block des neuen Systemteilmodells eine Quelle oder ein Verbraucher von Daten ist.
DE10333087A 2002-10-16 2003-07-21 Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle Withdrawn DE10333087A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/272,064 US7194726B2 (en) 2002-10-16 2002-10-16 Method for automatically decomposing dynamic system models into submodels
US10/272064 2002-10-16

Publications (1)

Publication Number Publication Date
DE10333087A1 true DE10333087A1 (de) 2004-05-13

Family

ID=32092563

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10333087A Withdrawn DE10333087A1 (de) 2002-10-16 2003-07-21 Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle

Country Status (3)

Country Link
US (1) US7194726B2 (de)
JP (1) JP2004139599A (de)
DE (1) DE10333087A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012108490A1 (de) 2012-09-11 2014-03-13 SimX GmbH Verfahren und Simulationsumgebung zur flexiblen automatisierten Verbindung von Teilmodellen

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7743361B2 (en) * 2004-09-20 2010-06-22 The Mathworks, Inc. Providing block state information for a model based development process
US8397209B2 (en) * 2005-11-17 2013-03-12 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Software modeling system and method
US8930889B2 (en) * 2005-11-17 2015-01-06 The United States Of America, As Represented By The Secretary Of The Navy Software modeling system and method
US8312420B1 (en) 2005-11-18 2012-11-13 The Mathworks, Inc. System and method for performing structural templatization
US8726232B1 (en) 2005-12-02 2014-05-13 The Math Works, Inc. Identification of patterns in modeling environments
US9329840B1 (en) 2005-12-30 2016-05-03 The Mathworks, Inc. Graphical programming of custom device drivers
US10884712B1 (en) 2005-12-30 2021-01-05 The Mathworks, Inc. Component-based framework for generating device driver model elements
US8781609B2 (en) * 2006-05-19 2014-07-15 Siemens Industry, Inc. Signal processing network
US8364514B2 (en) * 2006-06-27 2013-01-29 Microsoft Corporation Monitoring group activities
US20070299713A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Capture of process knowledge for user activities
US20070300225A1 (en) * 2006-06-27 2007-12-27 Microsoft Coporation Providing user information to introspection
US20070297590A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Managing activity-centric environments via profiles
US20070300185A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Activity-centric adaptive user interface
US7836002B2 (en) * 2006-06-27 2010-11-16 Microsoft Corporation Activity-centric domain scoping
US7970637B2 (en) * 2006-06-27 2011-06-28 Microsoft Corporation Activity-centric granular application functionality
US9141377B2 (en) * 2008-02-19 2015-09-22 International Business Machines Corporation Visualization of code units across disparate systems
CN104657136B (zh) * 2015-02-10 2018-03-06 上海创景信息科技有限公司 Simulink组件的集成系统
CN104749966B (zh) * 2015-03-26 2017-11-10 北京润科通用技术有限公司 一种全数字仿真与半实物仿真动态切换的方法与系统
US10318668B2 (en) * 2016-06-15 2019-06-11 International Business Machine Corporation Automatic decomposition of simulation model
EP3451202B1 (de) * 2017-09-01 2021-02-24 dSPACE digital signal processing and control engineering GmbH Verfahren zum erzeugen eines auf einem testgerät ausführbaren modells eines technischen systems und testgerät
CN111045669B (zh) * 2019-12-06 2023-07-14 和利时卡优倍科技有限公司 基于信息系统数据的建模方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192347B1 (en) * 1992-10-28 2001-02-20 Graff/Ross Holdings System and methods for computing to support decomposing property into separately valued components
US5917730A (en) * 1995-08-17 1999-06-29 Gse Process Solutions, Inc. Computer implemented object oriented visualization system and method
US6243706B1 (en) * 1998-07-24 2001-06-05 Avid Technology, Inc. System and method for managing the creation and production of computer generated works
US20030028579A1 (en) * 2001-08-06 2003-02-06 Kulkarni Vinay Vasant Process for component-based application development

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012108490A1 (de) 2012-09-11 2014-03-13 SimX GmbH Verfahren und Simulationsumgebung zur flexiblen automatisierten Verbindung von Teilmodellen
DE102012108490B4 (de) * 2012-09-11 2015-03-26 SimX GmbH Verfahren und Simulationsumgebung zur flexiblen automatisierten Verbindung von Teilmodellen

Also Published As

Publication number Publication date
US7194726B2 (en) 2007-03-20
JP2004139599A (ja) 2004-05-13
US20040078180A1 (en) 2004-04-22

Similar Documents

Publication Publication Date Title
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
DE69229889T2 (de) Automatische Logikmodell-Erzeugung aus einer Schaltschema-Datenbank
DE102015207656B4 (de) Verfahren und System zum Testen von Steuersoftware eines gesteuerten Systems
DE69626029T2 (de) Verfahren zum herstellen eines digitalen signalprozessors
DE102019003851A1 (de) Systeme und Verfahren zum automatischen Realisieren von Modellen zu Co-Simulation
DE69225527T2 (de) Verfahren und System zur automatischen Bestimmung der logischen Funktion einer Schaltung
DE10143101A1 (de) Verfahren zur Validierung von Simulationsergebnissen eines Systems sowie darauf aufbauender Äquivalenzvergleich digitaler Schaltungen
DE69433907T2 (de) Autonomes, evolutionsartiges Hardwareentwurfssystem
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE102020115968A1 (de) Systeme und verfahren für multi-bit-speicher mit eingebetteter logik
DE102017120016A1 (de) Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem
DE102008048480A1 (de) Systeme und Verfahren zur Auswahl einer CAE-Analyse-Lösungsvorrichtung mit einer passenden numerischen Genauigkeit in jeder einer Serie von hierarchisch zueinander in Beziehung stehenden technischen Simulationen
DE102005055133A1 (de) System für den maschinengestützten Entwurf technischer Vorrichtungen
DE102018110020A1 (de) Verfahren zum Erzeugen eines auf einem Testgerät ausführbaren Modells eines technischen Systems und Testgerät
DE102008006648A1 (de) Simulatorentwicklungssystem und Simulatorentwicklungsverfahren
DE10333088A1 (de) Verfahren zum Liefern von Zugriff auf die internen Signale eines dynamischen Systemmodells von außerhalb bezüglich der Modellierungsumgebung
DE10048941A1 (de) Zeitdiagramm-Compiler und Laufzeitumgebung für die interaktive Erzeugung von ausführbaren Testprogrammen zur Logiküberprüfung
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE102023132114A1 (de) Verfahren zum Erstellen und Bereitstellen eines FPGA Build Results eines FPGA-Modells
DE102023119621A1 (de) Simulationsplattform und Verfahren zur Konfiguration von Echtzeit- und Nicht-Echtzeitfähigen Simulatoren für die Ausführung unterschiedlicher Simulationsprogramme innerhalb einer gemeinsamen Simulationsumgebung mittels der Simulationsplattform
DE102011103861A1 (de) Funktionseinheit, Simulationssystem und Verfahren zur Simulation
DE102020123506A1 (de) Verfahren zur Erzeugung von Quellcode mit servicebasierter Kommunikation
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
WO2019211122A1 (de) Feature-development-framework und feature-integration-framework zum implementieren physikalischer funktionsfeatures in einem zielgerät
EP4270176B1 (de) Verfahren zur erzeugung von quellcode

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal