-
Die vorliegende Erfindung betrifft ein Verfahren zur Simulation einer ersten Recheneinheit in einer zweiten Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Hintergrund der Erfindung
-
Recheneinheiten wie beispielsweise Steuergeräte in (Kraft-) Fahrzeugen können in anderen Recheneinheiten wie PCs modelliert bzw. simuliert werden, beispielsweise indem die zu simulierende Recheneinheit bzw. deren Funktionen in der Recheneinheit durch spezielle Simulationssoftware nachgebildet wird, beispielsweise als eine virtuelle Maschine. Beispielsweise kann eine Software, welche von der zu simulierenden Recheneinheit in ihrem regulären Betrieb ausgeführt wird, im Rahmen der Simulation in der Recheneinheit bzw. in der virtuellen Maschine ausgeführt werden.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zur Simulation einer ersten Recheneinheit in einer zweiten Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung schlägt eine Möglichkeit vor, um die Simulation der zu simulierende Recheneinheit (nachfolgend auch erste Recheneinheit) auch hinsichtlich des zeitlichen Ablaufs möglichst real durchzuführen und um die Ausführung bzw. Abarbeitung der Software durch die erste Recheneinheit hinsichtlich des zeitlichen Ablaufs hinreichend akkurat in der Simulation nachbilden zu können. Die einzelnen Prozesse der Software werden im Rahmen der Simulation besonders zweckmäßig mit denselben oder zumindest im Wesentlichen mit denselben Latenz- bzw. Abarbeitungszeiten ausgeführt wie in der tatsächlichen ersten Recheneinheit. Die Ausführung der Software im Rahmen der Simulation auf der Simulationsrecheneinheit (nachfolgend auch zweite Recheneinheit) erfolgt somit zweckmäßigerweise zeitlich abgestimmt zu der Ausführung derselben Software in der tatsächlichen, zu simulierenden (ersten) Recheneinheit.
-
Im Rahmen der vorliegenden Beschreibung soll insbesondere zwischen den Begriffen „zu simulierende Recheneinheit" und „simulierte Recheneinheit" unterschieden werden. Unter der „zu simulierenden Recheneinheit" soll insbesondere die tatsächliche, physische Einheit verstanden werden, die digital nachgebildet werden soll, also z.B. ein Steuergerät mit Mikroprozessor/Mikrocontroller (Hardware), Applikationssoftware und möglicherweise einem Betriebssystem (Scheduler). Unter der „simulierten Recheneinheit“ soll entsprechend die in der zweiten Recheneinheit digital bzw. virtuell nachgebildete erste Recheneinheit verstanden werden, die damit also nur in Software existiert und nicht als tatsächliche, physische Einheit.
-
Im Rahmen der Simulation wird eine in der zu simulierenden (ersten) Recheneinheit ausgeführte Software in der zweiten Recheneinheit ausgeführt. Insbesondere wird eine tatsächliche Entwicklungsplattform, umfassend Hardwareeinheit und Betriebssystem (Scheduler), im Rahmen der Simulation in der zweiten Recheneinheit virtuell bzw. digital mittels einer entsprechenden Simulationssoftware nachgebildet, beispielsweise als virtuelle Maschine. Diese Simulationssoftware ist besonders zweckmäßig modular aufgebaut und weist mehrere verschiedene Softwaremodule auf.
-
Ein Zeitablaufmodul, insbesondere als ein erstes Softwaremodul der Simulationssoftware, bestimmt in der zweiten Recheneinheit einen zeitlichen Ablaufplan, gemäß welchem in der zu simulierenden, tatsächlichen ersten Recheneinheit Prozesse bzw. Tasks oder Teile, Komponenten bzw. Module der Software abgearbeitet werden. Das Zeitablaufmodul bestimmt somit insbesondere, wann in der zu simulierenden ersten Recheneinheit welche Tasks ausgeführt werden bzw. komplett ausgeführt sind. Der Ablaufplan beschreibt insbesondere eine Reihenfolge und Abarbeitungszeiten der einzelnen Softwareprozesse in dem regulären Betrieb der ersten Recheneinheit. Besonders zweckmäßig beschreibt der Ablaufplan, wann die einzelnen Prozesse vollständig abgearbeitet sind und wann Ergebnisse bzw. Ausgaben einzelner Prozesse vorliegen, welche wiederum als Eingaben weiterer Prozesse benötigt werden können. Der Ablaufplan ist dabei insbesondere auch dynamisch oder wird dynamisch erzeugt, um z.B. auf Änderungen eines Systemzustands (z.B. hohe Drehzahl) reagieren zu können.
-
Vorzugsweise wird auch ein Aktionsmodul verwendet, insbesondere als ein zweites Softwaremodul der Simulationssoftware, mittels dessen in der zweiten Recheneinheit Aktionsereignisse abhängig von dem zeitlichen Ablaufplan bestimmt werden, wobei gemäß diesen Aktionsereignissen im Rahmen der Simulation der ersten Recheneinheit jeweils zu einem vorgegebenen Aktionszeitpunkt eine vorgegebene Aktion durchgeführt werden soll. Aktionen können z.B. Einlesen von Daten und/oder Schreiben von Daten und/oder Starten der Abarbeitung eines Prozesses umfassen. Insbesondere identifiziert bzw. bestimmt das Aktionsmodul in dem Ablaufplan spezielle Ereignisse, die im Rahmen der Ausführung der Software im regulären Betrieb der ersten Recheneinheit erfolgen, beispielsweise den Beginn oder das Ende der Abarbeitung einzelner Prozesse, den Austausch von Daten, die Übermittlung der Ausgaben einzelner Prozesse als Eingaben an weitere Prozesse, die Kommunikation einzelner Komponenten der ersten Recheneinheit miteinander usw. Ferner identifiziert bzw. bestimmt das Aktionsmodul zweckmäßigerweise, wann diese einzelnen Ereignisse im Betrieb der ersten Recheneinheit relativ zueinander stattfinden. Besonders zweckmäßig übersetzt das Aktionsmodul diese Ereignisse, die im Rahmen der Ausführung der Software im regulären Betrieb der ersten Recheneinheit stattfinden, in entsprechende Aktionsereignisse, die im Rahmen der Simulation der ersten Recheneinheit durchgeführt werden sollen.
-
Wenigstens ein Simulationsmodul, insbesondere in der Form von wenigstens einem dritten Softwaremodul der Simulationssoftware, führt die Software in der zweiten Recheneinheit zur Simulation bzw. im Rahmen der Simulation bzw. als Simulation der ersten Recheneinheit aus. Dabei führt das wenigstens eine Simulationsmodul gemäß den bestimmten Aktionsereignissen zu den vorgegebenen Aktionszeitpunkten die jeweiligen vorgegebenen Aktionen durch.
-
Es können auch mehrere Simulationsmodule vorgesehen sein, wobei jedes Simulationsmodul beispielsweise eine spezielle Hardware- und/oder Softwarekomponente der ersten Recheneinheit nachbildet. Ferner kann beispielsweise auch jede Komponente der ersten Recheneinheit durch mehrere Simulationsmodule nachgebildet werden. Insbesondere ist das Aktionsmodul mit jedem derartigen Simulationsmodul gekoppelt, so dass jedem Simulationsmodul jeweils individuell entsprechende Aktionsereignisse vorgegeben werden können.
-
Während ein solcher zeitlicher Ablaufplan grundsätzlich eine genauere Simulation der realen, d.h. zu simulierenden ersten Recheneinheit ermöglicht, können im regulären Betrieb der realen ersten Recheneinheit manche Aktionsereignisse zu Zeitpunkten nötig sein, die wiederum von vorherigen Aktionsergebnissen abhängen. Solche Aktionsergebnisse können insbesondere Ausgabedaten der zu simulierenden ersten Recheneinheit sein wie z.B. eine Drehzahl und/oder ein Kurbelwellenwinkel (bzw. entsprechende Werte dieser Größen) eines Verbrennungsmotors. Beispielsweise kann es sein, dass eine bestimmte Aktion bei einem bestimmten Wert einer Drehzahl (z.B. eines Motors) durchgeführt werden soll. Die Drehzahl hängt aber z.B. wiederum von einem früheren Aktionsergebnis ab.
-
Vor diesem Hintergrund wird im Rahmen der vorliegenden Erfindung vorgeschlagen, basierend auf dem Aktionsergebnis einen Aktionszeitpunkt einer zukünftigen, insbesondere nächstfolgenden, Aktion zu bestimmen, und diesen dann für den zeitlichen Ablaufplan zu verwenden, also den zeitlichen Ablaufplan z.B. basierend darauf anzupassen (dies kann dann in dem Zeitablaufmodul erfolgen). Insbesondere kann damit ein nächstes Inkrement, d.h. ein nächster Wert, im Ablaufplan generiert werden. Der Aktionszeitpunkt der zukünftigen Aktion kann insbesondere durch ein Extrapolationsmodul in der zweiten Recheneinheit bestimmt werden.
-
Der Aktionszeitpunkt der zukünftigen Aktion kann weiterhin insbesondere auch basierend auf einer Extrapolationslogik bestimmt werden. Eine solche Extrapolationslogik kann, z.B. eine geschätzte zukünftige Aktion, die beispielsweise winkelsynchron sein soll, in dem Funktionsmodul auf einen Zeitpunkt abbilden, an dem der Zeitraum zwischen zwei Ereignissen nicht konstant sein muss, da sich die Drehzahl ändern kann.
-
Besonders bevorzugt ist es auch, eine Differenz eines Zeitintervalls zwischen dem aktuellen Aktionszeitpunkt und dem Aktionszeitpunkt der zukünftigen Aktion und eines Zeitintervalls zwischen einem vorhergehenden Aktionszeitpunkt und dem aktuellen Aktionszeitpunkt zu bestimmen. Diese Differenz kann dann für den zeitlichen Ablaufplan verwendet werden, insbesondere zu dessen Anpassung. Diese bevorzugte Variante besteht also darin, dem Zeitablaufmodul (also der der Zeitsimulation) die Differenz des geschätzten nächsten Intervalls (zwischen der aktuellen und der nächsten Aktion) und des letzten Intervalls (zwischen der aktuellen und der vorherigen Aktion) mitzuteilen. Die Zeitsimulation kann dann diese Differenz z.B. verwenden, um ein hinterlegtes bzw. gespeichertes (und aktuell verwendetes) und ggf. periodisches Intervall anzupassen.
-
Ein weiterer Vorteil dieser Variante besteht darin, dass die Verzögerung, die beim Start der Simulation aufgrund des unbekannten/ungenauen Auftretens der ersten Aktion, d.h. des Aktionszeitpunkts, auftritt, während der Laufzeit korrigiert wird. Der Sonderfall einer festen periodischen Aktion, z.B. keine Änderung der Periode über die Laufzeit, kann weiterhin mit der gleichen Implementierung behandelt werden wie die anpassbaren bzw. einstellbaren periodische Aktionen; die „Differenz“ ist dann immer null.
-
Durch den modularen Aufbau der Simulationssoftware in Form des Zeitablaufmoduls, ggf. des Aktionsmoduls und der Simulationsmodule sowie ggf. des Extrapolationsmoduls können einzelne Bausteine bzw. Module besonders einfach und flexibel angepasst werden, um die Simulation so akkurat wie möglich zu gestalten. Besonders zweckmäßig ist das Zeitablaufmodul über das Aktionsmodul und/oder das Extrapolationsmodul mit den Simulationsmodulen gekoppelt. Somit können in dem Aktionsmodul besonders einfach und flexibel unterschiedliche Mechanismen ausprobiert werden, um die Informationen aus dem zeitlichen Ablaufplan in konkrete Aktionsereignisse in der Softwaresimulation zu übersetzen, so dass der Betrieb der ersten Recheneinheit möglichst akkurat und konsistent nachgebildet werden kann. Über das Extrapolationsmodul wiederum können Aktionsergebnisse ausgewertet, extrapoliert und an das Zeitmodul zurückgeführt werden. Auf diese Weise wird eine Möglichkeit bereitgestellt, auf aufwandsarme und kostengünstige Weise eine effektive, konsistente Simulation der ersten Recheneinheit zu erstellen.
-
Vorteilhafterweise bestimmt das Zeitablaufmodul den zeitlichen Ablaufplan abhängig von Hardwarekomponenten der zu simulierenden ersten Recheneinheit. Wie erläutert, können Abarbeitung- und Latenzzeiten bei der Ausführung der Software in der tatsächlichen ersten Recheneinheit insbesondere von den konkreten verbauten Hardwarekomponenten abhängen, z.B. von den konkret verwendeten Prozessoreinheiten bzw. Prozessorkernen, Speichereinheiten usw. Zweckmäßigerweise wird die spezielle Hardwarekonfiguration der ersten Recheneinheit berücksichtigt, um einen möglichst akkuraten und präzisen zeitlichen Ablaufplan erstellen zu können.
-
Die vorliegende Erfindung eignet sich in vorteilhafter Weise für die Simulation von (ersten) Recheneinheiten einer Vielzahl von verschiedenen technischen Anwendungsgebieten. Besonders vorteilhaft ist die zu simulierende erste Recheneinheit ein Steuergerät oder ein Verbund aus Steuergeräten, vorzugsweise in einem (Kraft-) Fahrzeug. Besonders zweckmäßig lassen sich mit Hilfe des vorliegenden Verfahrens Abläufe in einem Steuergerät zeitlich akkurat nachbilden. Beispielsweise kann das Steuergerät durch ein Simulationsmodul oder durch mehrere Simulationsmodule nachgebildet werden, beispielsweise durch wenigstens ein FMU-Modul (FMU steht für „Functional Mock-up Unit“). Beispielsweise kann bei der Nachbildung eines Verbundes aus mehreren Steuergeräten jedes derartige Steuergerät jeweils durch ein Simulationsmodul oder auch durch mehrere Simulationsmodule abgebildet werden, zweckmäßigerweise jeweils in der Form eines FMU-Moduls. Die einzelnen Steuergeräte können jeweils individuell ausgebildet sein, beispielsweise jeweils mit Single- oder Multicore-Prozessor. Ferner können die einzelnen Steuergeräte miteinander jeweils über ein individuelles Netzwerk verbunden sein, z.B. jeweils drahtgebunden oder drahtlos. Ferner können einzelne Simulationsmodule auch vorgesehen sein, um weitere Fahrzeugkomponenten abzubilden, beispielsweise ein Kommunikationssystem, etwa ein Bus-System, oder beispielsweise Sensoren, Aktoren usw.
-
Bei der zu simulierenden ersten Recheneinheit kann es sich insbesondere um eine reale, tatsächlich existierende (erste) Recheneinheit handeln. Beispielsweise kann die erste Recheneinheit im Zuge der Simulation untersucht werden, beispielsweise um Veränderungen an der Software der (ersten) Recheneinheit in einem kontrollierten Testrahmen zu untersuchen. Ferner kann die zu simulierende erste Recheneinheit auch nicht oder zumindest noch nicht in Realität existieren. Insbesondere ist in diesem Fall jedoch zumindest ein Bauplan bezüglich konkreter Hardware- und Software-Komponenten vorhanden, gemäß welchem die erste Recheneinheit letztendlich konstruiert und betrieben werden soll. Beispielsweise kann durch die Simulation untersucht werden, welche Einflüsse Designentscheidungen wie Ressourcenallokation oder Schedulingalgorithmen auf das zeitliche Verhalten des Gesamtsystems haben.
-
Eine erfindungsgemäße Recheneinheit, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Hierbei handelt es sich insbesondere um die erwähnte zweite Recheneinheit.
-
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. In dem konkreten Fall ist zudem ein Vorteil, dass die zu simulierende Recheneinheit noch nicht physisch vorhanden sein muss. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
- 1 zeigt schematisch eine erste Recheneinheit, die einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens zugrunde liegen kann.
- 2 zeigt schematisch eine zweite Recheneinheit, die dazu eingerichtet ist, eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen.
- 3 zeigt schematisch eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens als ein Blockdiagramm.
- 4 zeigt schematisch eine weitere bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens.
-
Ausführungsform(en) der Erfindung
-
In 1 ist eine erste Recheneinheit schematisch dargestellt und mit 100 bezeichnet, die als ein Verbund von Steuergeräten in einem (Kraft-) Fahrzeug ausgebildet ist.
-
Die erste Recheneinheit 100 weist eine Vielzahl von Steuergeräten 111, 112, 113, 114 auf, die beispielsweise zur Motorsteuerung, zur Getriebesteuerung, zur Steuerung von Fahrassistenzfunktionen, Infotainmentsystemen usw. vorgesehen sein können. In jedem der Steuergeräte 111, 112, 113, 114 wird zu diesem Zweck eine entsprechende Software ausgeführt.
-
Die Steuergeräte 111, 112, 113, 114 können über ein globales Kommunikationssystem 121 miteinander in datenübertragender Verbindung stehen, beispielsweise über einen Feldbus wie CAN, Ethernet/IP, ProfiNet, Sercos 2, Sercos III, EtherCAT, FlexRay, LIN, MOST, etc.
-
Einzelne Steuergeräte, hier beispielsweise das Steuergerät 111, können ferner mit Peripheriegeräten wie Sensoren 131, 132 oder Aktoren 141, 142 verbunden sein. Beispielsweise kann das Steuergerät 111 über ein weiteres, lokales Kommunikationssystem 122 mit diesen Peripheriegeräten verbunden sein, z.B. einem lokalen Feldbus. Es versteht sich, dass mehrere oder auch alle Steuergeräte jeweils mit entsprechenden Peripheriegeräten verbunden sein können. Ferner versteht sich, dass die Hardwareeinheit 100 noch weitere Steuergeräte und weitere Komponenten aufweisen kann.
-
Die erste Recheneinheit 100 soll im Rahmen einer Simulation digital in einer zweiten Recheneinheit nachgebildet werden, beispielsweise um Veränderungen an der Software einzelner Steuergeräte in einem kontrollierten Testrahmen zu untersuchen. Beispielsweise soll in der Simulation der komplette Verbund aus allen Steuergeräten 111, 112, 113, 114 nachgebildet werden. Alternativ können auch nur einzelne der Steuergeräte oder ein Steuergerät nachgebildet werden.
-
Dabei soll die Software, die auf den jeweiligen zu simulierenden Steuergeräten 111, 112, 113, 114 im regulären Betrieb ausgeführt wird, in der Simulation zeitlich akkurat und konsistent ausgeführt werden, insbesondere derart, dass Softwaretasks bzw. Softwareprozesse in der Simulation mit derselben oder zumindest im Wesentlichen mit derselben Latenzzeit abgearbeitet werden können wie in dem regulären Betrieb der Steuergeräte 111, 112, 113, 114.
-
Zu diesem Zweck erfolgt die Simulation der erste Recheneinheit 100 im Rahmen einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens mittels einer modular aufgebauten Simulationssoftware, wie nachfolgend werden soll.
-
In 2 ist eine zweite Recheneinheit 200 schematisch dargestellt, die beispielsweise als ein PC ausgebildet sein kann und die, insbesondere programmtechnisch, dazu eingerichtet ist, eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens durchzuführen. Zu diesem Zweck wird in der zweiten Recheneinheit 200 eine entsprechende modular aufgebaute Simulationssoftware 205 ausgeführt.
-
Ein erster Funktions- bzw. Modulblock 210 ist zur zeitlichen Analyse der in der nachzubildenden ersten Recheneinheit 100 ausgeführten Software vorgesehen. Zu diesem Zweck ist ein Zeitablaufmodul 211 als ein erstes Softwaremodul der Simulationssoftware 205 vorgesehen, welches einen zeitlichen Ablaufplan bestimmt, gemäß welchem in der zu simulierenden ersten Recheneinheit 100 bzw. in den jeweiligen Steuergeräten 111, 112, 113, 114 jeweils Prozesse bzw. Tasks abgearbeitet werden. Dieser zeitliche Ablaufplan dient insbesondere als zeitliche Referenz für die Ausführung der Software im Zuge der Simulation.
-
Ein zweiter Funktions- bzw. Modulblock 220 ist z.B. vorgesehen, um den zeitlichen Ablaufplan auf die Simulation zu übertragen, insbesondere um spezielle Ereignisse des zeitlichen Ablaufplans in entsprechende Aktionsereignisse für die Simulation zu übersetzen. Zu diesem Zweck ist ein Aktionsmodul 221 als ein zweites Softwaremodul der Simulationssoftware 205 vorgesehen, welches Aktionsereignisse bestimmt, gemäß welchen im Zuge der Simulation der ersten Recheneinheit 100 jeweils zu einem vorgegebenen Aktionszeitpunkt eine vorgegebene Aktion durchgeführt werden soll.
-
Ein dritter Funktions- bzw. Modulblock 230 ist für die tatsächliche Simulation der ersten Recheneinheit 100 und für die Ausführung der Software der nachzubildenden Steuergeräte 111, 112, 113, 114 vorgesehen. Zu diesem Zweck ist eine Vielzahl von Simulationsmodulen 231, 232, 233, 234 vorgesehen, welche jeweils die Software der ersten Recheneinheit 100 ausführen. Beispielsweise kann jedes der Simulationsmodule 231, 232, 233, 234 zur Nachbildung jeweils eines der Steuergeräte 111, 112, 113, 114 vorgesehen sein, wobei jedes der Simulationsmodule 231, 232, 233, 234 die Software des jeweiligen zu simulierenden Steuergeräts 111, 112, 113, 114 ausführt. Im Zuge dessen führen die Simulationsmodule 231, 233, 233, 234 jeweils gemäß den bestimmten Aktionsereignissen zu den vorgegebenen Aktionszeitpunkten die jeweiligen vorgegebenen Aktionen durch.
-
Ein vierter Funktions- bzw. Modulblock 240 ist für das Bestimmen bzw. Extrapolieren einer zukünftigen bzw. nächstfolgenden Aktion und dessen Aktionszeitpunkt vorgesehen, um diesen dann für den zeitlichen Ablaufplan zur Verfügung zu stellen. Zu diesem Zweck ist ein Extrapolationsmodul 241 als ein viertes Softwaremodul der Simulationssoftware 205 vorgesehen, welches Aktionszeitpunkte zukünftiger, insbesondere jeweils nächst- oder nachfolgender, Aktionen bestimmt.
-
Das Zeitablaufmodul 211 und das Aktionsmodul 221, sowie das Aktionsmodul 221 und die Simulationsmodule 231, 232, 233, 234 stehen jeweils über Schnittstellen miteinander in Verbindung. So umfassen der erste Modulblock 210 und der zweite Modulblock 220 zu diesem Zweck jeweils eine entsprechende Schnittstelle 215 bzw. 225, über welche das Zeitablaufmodul 211 mit dem Aktionsmodul 221 in datenübertragender Verbindung stehen. Der zweite Modulblock 220 umfasst ferner eine zweite Schnittstelle 226. Ferner ist für jedes der Simulationsmodule 231, 232, 233, 234 jeweils eine Schnittstelle 235, 236, 237, 238 vorgesehen. Über diese zweite Schnittstelle 226 und über diese Schnittstellen 235, 236, 237, 238 des dritten Modulblocks 230 steht das Aktionsmodul 221 mit den einzelnen Simulationsmodule 231, 232, 233, 234 in datenübertragender Verbindung.
-
Ebenso stehen das Zeitablaufmodul 211 und das Extrapolationsmodul 241, sowie das Extrapolationsmodul 241 und die Simulationsmodule 231, 232, 233, 234 jeweils über Schnittstellen miteinander in Verbindung. So umfassen der erste Modulblock 210 und der vierte Modulblock 240 zu diesem Zweck jeweils eine entsprechende Schnittstelle 215 bzw. 245, über welche das Zeitablaufmodul 211 mit dem Extrapolationsmodul 241 in datenübertragender Verbindung stehen. Der vierte Modulblock 240 umfasst ferner eine zweite Schnittstelle 246. Ferner ist für jedes der Simulationsmodule 231, 232, 233, 234 jeweils eine Schnittstelle 235, 236, 237, 238 vorgesehen. Über diese zweite Schnittstelle 246 und über diese Schnittstellen 235, 236, 237, 238 des dritten Modulblocks 230 steht das Extrapolationsmodul 241 mit den einzelnen Simulationsmodule 231, 232, 233, 234 in datenübertragender Verbindung.
-
Während in diesem Beispiel die Schnittstellen des ersten und dritten Modulblocks sowohl für die Verbindung mit dem zweiten als auch dem vierten Modulblock verwendet werden, können der erste und/oder der dritte Modulblock jeweils weitere Schnittstellen aufweisen, die individuell für die Verbindung zum zweiten bzw. vierten Modulblock verwendet werden können.
-
Gemäß einer besonders bevorzugten Ausführungsform der Erfindung erfolgt die Simulation der ersten Recheneinheit 100 gemäß eines „Functional Mock-up Interfaces“ (FMI), welches eine standardisierte Schnittstelle definiert, um unterschiedliche Simulationssoftware bzw. eine Vielzahl verschiedener Softwaremodelle bzw. Softwaremodule miteinander zu koppeln und zu einem Gesamtmodell bzw. einer Gesamtsimulation zusammensetzen.
-
Zweckmäßigerweise sind die einzelnen Schnittstellen 215, 225, 226, 235, 236, 237, 238, 245, 246 jeweils als entsprechende FMI-Schnittstellen vorgesehen. Ferner sind die einzelnen Softwaremodule 211, 221, 231, 232, 233, 234, 241 jeweils gemäß einer „Functional Mock-up Unit“ (FMU) ausgebildet, insbesondere jeweils als Softwarecontainer, welche z.B. eine XML-Datei zur Definition von Variablen, sowie als C-Funktionen definierte Formeln und ferner weitere Daten wie Parametertabellen, Benutzeroberfläche, Dokumentation usw., umfassen, die in dem jeweiligen Softwaremodul für die Simulation der ersten Recheneinheit 100 benötigt werden.
-
3 zeigt eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens als ein Blockdiagramm und wird nachfolgend ferner in Bezug auf die 1 und 2 erläutert.
-
In einem Schritt 310 bestimmt das Ablaufmodul 211 den zeitlichen Ablaufplan, insbesondere abhängig von den speziellen Hardwarekomponenten der zu simulierenden ersten Recheneinheit 100, insbesondere von den in den einzelnen Steuergeräten 111, 112, 113, 114 verbauten Komponenten wie Prozessor, Speicher usw.
-
Der zeitliche Ablaufplan beschreibt insbesondere die Reihenfolge und Abarbeitungs- bzw. Latenzzeiten der einzelnen Softwareprozesse. Insbesondere beschreibt der Ablaufplan, wann die einzelnen Prozesse gestartet und vollständig abgearbeitet sind und wann Ergebnisse bzw. Ausgaben einzelner Prozesse vorliegen, welche wiederum als Eingaben weitere Prozesse weitergegeben werden.
-
In einem Block 320 bestimmt das Aktionsmodul 221 die Aktionsereignisse, und zwar abhängig von dem zeitlichen Ablaufplan, gemäß welchen im Rahmen der Simulation der Hardwareeinheit 100 jeweils zu einem vorgegebenen Aktionszeitpunkt eine vorgegebene Aktion durchgeführt werden soll.
-
In einem Schritt 330 führen die einzelnen Simulationsmodule 231, 232, 233, 234 die jeweilige Software aus. Wenn beispielsweise das Simulationsmodul 231 zu einem vorgegebenen Aktionszeitpunkt eine jeweilige vorgegebene Aktion durchführen soll, übermittelt das Aktionsmodul 221 über die Schnittstellen 226 und 235 diesem Simulationsmodul 231 eine entsprechende Anweisung, insbesondere mittels eines Kommunikationspunkts gemäß dem „Functional Mock-up Interface“.
-
Bei Ausführung des Schritts 330 werden Aktionsergebnisse, z.B. Daten mit Werten zu Drehzahl oder Kurbelwellenwinkel, erhalten. In einem Schritt 340 wird dann basierend auf einem solchen Aktionsergebnis ein Aktionszeitpunkt einer zukünftigen, insbesondere nächstfolgenden, Aktion bestimmt. Dieser Aktionszeitpunkt kann dann wieder dem Schritt 310 zugeführt werden; dort wird der zeitliche Ablaufplan dann neu bestimmt bzw. angepasst. Dies kann also insbesondere einer Art Schleife erfolgen.
-
4 zeigt schematisch eine weitere bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens, und zwar anhand eines zeitlichen Diagramms, in dem ein Aktionsergebnis W, z.B. ein Wert einer physikalischen Größe wie z.B. einer Drehzahl, über der Zeit t aufgetragen ist. Eine Aktion soll z.B. immer zu einem Aktionszeitpunkt t1, t2, t3 usw. durchgeführt werden. Ein Aktionszeitpunkt sei z.B. durch einen bestimmten Wert, z.B. einen maximalen Wert Wmax des Aktionsergebnisses bzw. der physikalischen Größen bestimmt.
-
Wenn ein aktueller Aktionszeitpunkt z. B. t2 ist, so kann nun basierend auf einem Zeitintervall T1 zwischen dem vorherigen Aktionszeitpunkt t1 und dem aktuellen Aktionszeitpunkt t2 ein nächstfolgender Aktionszeitpunkt t3 bestimmt bzw. abgeschätzt werden. Dabei kann z.B. das Zeitintervall T1 zugrunde gelegt werden, ebenso aber auch z.B. eine gewisse Extrapolationslogik, wonach z.B. bekannt ist, dass die Drehzahl (wenn dies die physikalische Größe bzw. das Aktionsergebnis ist) langsamer werden wird.
-
So wird das Zeitintervall T2 zwischen dem aktuellen Aktionszeitpunkt t2 und dem nächstfolgenden aktuellen Aktionszeitpunkt t3 z.B. um die Differenz dT länger sein als das Zeitintervall T1. Basierend auf dieser Differenz dT kann dann der zeitliche Ablaufplan (für zukünftige Aktionszeitpunkte, nächste Inkremente) angepasst werden.