DE102018111851A1 - Verfahren zur ereignisbasierten Simulation eines Systems - Google Patents

Verfahren zur ereignisbasierten Simulation eines Systems Download PDF

Info

Publication number
DE102018111851A1
DE102018111851A1 DE102018111851.1A DE102018111851A DE102018111851A1 DE 102018111851 A1 DE102018111851 A1 DE 102018111851A1 DE 102018111851 A DE102018111851 A DE 102018111851A DE 102018111851 A1 DE102018111851 A1 DE 102018111851A1
Authority
DE
Germany
Prior art keywords
simulation
arithmetic unit
time
virtual
event
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.)
Pending
Application number
DE102018111851.1A
Other languages
English (en)
Inventor
Stephan Schedler
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.)
Dspace GmbH
Original Assignee
Dspace GmbH
Dspace Digital Signal Processing and Control Engineering GmbH
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 Dspace GmbH, Dspace Digital Signal Processing and Control Engineering GmbH filed Critical Dspace GmbH
Priority to DE102018111851.1A priority Critical patent/DE102018111851A1/de
Priority to CN201980032587.5A priority patent/CN112166428A/zh
Priority to PCT/EP2019/062576 priority patent/WO2019219796A1/de
Publication of DE102018111851A1 publication Critical patent/DE102018111851A1/de
Priority to US16/950,422 priority patent/US20210081585A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0058Bus-related hardware virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling

Abstract

Verfahren zur ereignisbasierten Simulation eines Systems, wobei die Simulation auf einem Rechnersystem umfassend eine erste Recheneinheit und wenigstens eine zweite Recheneinheit ausgeführt wird, wobei die erste Recheneinheit eine Simulationszeit hat, wobei die zweite Recheneinheit eine Betriebssystemschicht und eine Applikationsschicht aufweist, wobei die zweite Recheneinheit in der Betriebssystemschicht eine Systemzeit aufweist, wobei wenigstens die zweite Recheneinheit eine Simulator-Applikation ausführt, wobei auf der Simulator-Applikation wenigstens ein Simulationsobjekt ausgeführt wird, und wobei die erste Recheneinheit eine Ereigniswarteschlange verwaltet, wobei in der Ereigniswarteschlange wenigstens ein Ereignis pro Simulationsschritt aufgelistet ist, und dem Ereignis ein durch das Simulationsobjekt auszuführender Prozess und ein zur Ausführung des Prozesses vorgesehener Simulationszeitpunkt zugeordnet sind, wobei die zweite Recheneinheit einen virtuellen Taktgeber aufweist, wobei das Verfahren für jeden Simulationsschritt die folgenden Schritte aufweist: Übermitteln, durch die erste Recheneinheit, eines Startsignals an den virtuellen Taktgeber zum Ausführen eines nächsten Simulationsschritts in der zweiten Recheneinheit, und basierend auf einer Zeitdifferenz zwischen einem vergangenen Simulationsschritt und der Simulationszeit, Inkrementieren der Systemzeit der zweiten Recheneinheit, und Ausführen des anstehenden Prozesses zu dem dem Prozess zugeordneten Simulationszeitpunkt.

Description

  • Die Erfindung betrifft ein Verfahren zur ereignisbasierten Simulation eines Systems.
  • In der Entwicklung elektronischer Steuergeräte, welche verbreitet auch kurz als ECU (engl. Electronic Control Unit) bezeichnet werden, liegt heutzutage ein Fokus auf einer virtuellen Absicherung und damit auf frühzeitigen Tests im Entwicklungsprozess. Diese finden statt, bevor das elektronische Steuergerät an seinem Bestimmungsort getestet wird und oft bevor überhaupt ein Prototyp der zukünftigen Steuergeräte-Hardware vorliegt. Ein solches reales Steuergerät ist meist ein vollwertiger Rechner mit einem Betriebssystem und Eingangs- und Ausgangsschnittstellen (I/O-Schnittstellen), welche an ein Bussystem angebunden sind, mittels welchem das Steuergerät mit weiteren Steuergeräten kommunizieren kann. Das verwendete Betriebssystem muss oft Echtzeitbedingungen erfüllen, da die Steuergeräte in ihrem Bestimmungseinsatz sicherheitskritische Funktionalitäten abbilden sollen. Die Aufgaben der Steuergeräte sind zumeist steuerungs- und regelungstechnischer Natur und finden beispielsweise Anwendung im automotiven Bereich oder der Luft- und Raumfahrttechnik. Beispiele für solche Funktionalitäten sind die Regelung eines Verbrennungsmotors durch ein Motorsteuergerät oder die Steuerung von Fahrassistenzsystemen wie eine geschwindigkeitsadaptive Distanzregelung. In diesen Anwendungsbereichen ist die Vernetzung der Steuergeräte untereinander ein wichtiger Aspekt, da diese untereinander in einem Wirkzusammenhang stehen.
  • In der eingangs erwähnten frühzeitigen Absicherung werden häufig Software-in-the-Loop-Simulationen (auch: SIL-Simulation) verwendet, mittels welcher der fertige Produktivcode in einer virtuellen Umgebung getestet werden kann, ohne eine Steuergeräte-Hardware zu benötigen. Dafür werden virtuelle Steuergeräte eingesetzt, auf denen der Produktivcode ausgeführt wird. Virtuelle Steuergeräte simulieren die Steuergeräte-Hardware und sind die wie physikalisch vorhandene, reale Steuergeräte in der Lage, mittels I/O-Schnittstellen und Bussystem untereinander Nachrichten auszutauschen, Messungen von Sensordaten zu empfangen und auf Aktoren einzuwirken. Dafür wird eine SIL-Simulationsumgebung benötigt, die Sensordaten und das Verhalten des Bussystems simuliert, sowie das virtuelle Steuergerät bereitstellt, welches für die reale Steuergerätehardware eintritt. Dieses virtuelle Steuergerät umfasst dann auch die Softwarekomponenten, die im realen Fall zur Hardwareplattform gehören und von dem darauf ausgeführten Produktivcode zu unterscheiden sind. Diese Softwarekomponenten umfassen beispielsweise ein Betriebssystem mit Kernel und Hardwareabstraktionsschicht, eine Laufzeitumgebung, diverse Dienste für System und Kommunikation, und weitere Komponenten. Diese Funktionalitäten werden dann virtuell nachgebildet und mittels eines Simulators simuliert. Ein Simulator kann beispielsweise durch eine oder mehrere physikalisch real vorhandene Recheneinheiten gegeben sein, die auf die Simulationsaufgabe spezialisiert sind. Ebenso kann es sich um virtuell emulierte Recheneinheiten handeln, die auf einem handelsüblichen PC ausgeführt werden. Möglich ist auch, das virtuelle Steuergerät auf einem Echtzeitsystem wie einem HIL-Simulator auszuführen. Innerhalb des Simulators treten das oder die virtuellen Steuergeräte in Interaktion mit der Simulationsumgebung, die im Folgenden auch Simulator-Applikation genannt wird. Das virtuelle Steuergerät hat dazu eine äußere Datenschnittstelle, die den Austausch von Nachrichten mit einer entsprechenden Datenschnittstelle der Simulator-Applikation erlaubt. Diese Art der Simulation ist im Stand der Technik bekannt und kann beispielsweise in der Dokumentation zu den Produkten dSPACE SystemDesk V-ECU Generation Module oder dSPACE VEOS nachgelesen werden.
  • In diesem frühen Stadium des Steuergeräteentwicklungsprozesses ist es noch nicht erforderlich oder auch nicht gewünscht die Simulation, wie später im Fall von HIL-Tests des fertigen Steuergeräts, unter Echtzeitbedingungen durchzuführen. Da das Steuergerät hier simuliert wird, wird auch die real vorhanden Steuergeräte-Uhr in der Simulation abgebildet. Daher erfolgt die Simulation entlang einer simulierten Zeit, im Folgenden auch Simulationszeit genannt. Diese schreitet nicht zwingend gekoppelt an die echte, außerhalb der Simulation vergehende Zeit, voran. Die Simulationszeit verhält sich also asynchron und kann schneller oder langsamer als die wirkliche Zeit vergehen, abhängig von der Taktfrequenz und Anzahl der verwendeten Recheneinheit, und davon ob die Simulation angehalten wird. Man spricht daher im Fall dieser Simulationen von Offline-Simulationen, die auch auf einem handelsüblichen Computer durchgeführt werden können.
  • Bei solchen Offline-Simulationen bedient man sich dem Konzept der ereignisbasierten Simulation. Bei ereignisbasierten Simulationen schreitet die Simulation entlang einer Liste von abzuarbeitenden Ereignissen voran. Dabei werden nur die diskreten Ereignisse zu den Zeitpunkten simuliert, zu denen sie in der Liste, hier als Ereigniswarteschlange bezeichnet, vorgesehen sind. Die Zeit zwischen den Ereignissen wird nicht simuliert. Diese Vorgehensweise ermöglicht es, bei großen Schrittweiten zwischen zwei diskreten Ereignissen lange virtuelle Zeiträume innerhalb kurzer real vergehender Zeit zu simulieren. Darüber hinaus wird die Simulation von der sogenannten Nullzeitannahme beherrscht, was bedeutet, dass die Ereignisse selbst aus Sicht der Simulationszeit als instantan ausgeführt angenommen werden. Die Ausführungszeit, die ein solches Ereignis auf einem realen Steuergerät benötigen würde, wird nicht in der Simulation abgebildet.
  • Die Systeme aus Steuergeräten in heutigen Kraftfahrzeugen werden immer komplexer, und auch die Aufgaben, die diese Steuergeräte beispielsweise für Fahrassistenzsysteme - auch im Kontext des allseits angestrebten autonomen Fahrens - werden zunehmend umfangreicher werden. Dies hat selbstverständlich auch Auswirkungen auf die Komplexität der Testsysteme, mittels der eine frühzeitige virtuelle Absicherung solcher Steuergerätefunktionen erzielt wird. Daraus folgende Simulationsmodelle stellen erhebliche Anforderung an Rechenleistung und Speicherbedarf des vom Simulator verwendeten Rechnersystems. Vor diesem Hintergrund kann es notwendig sein, die Berechnung verschiedener Simulationsobjekte, bei denen es sich beispielsweise um virtuelle Steuergeräte handeln kann, auf verschiedene Recheneinheiten aufzuteilen. Dabei ist es unerheblich, ob die Recheneinheiten als physikalisch vorhandener Rechenknoten vorliegen oder ob es sich um in einem Hypervisor virtualisierte Recheneinheiten handelt. Dies kann beispielsweise auch notwendig sein, wenn Simulationsobjekte nicht auf dem Betriebssystem des verwendeten Simulators lauffähig sind, oder wenn es wie oben beschrieben erforderlich ist, die Rechenlast auf mehrere Rechner zu verteilen.
  • In diesem Fall gibt eine zentrale Recheneinheit, auf der die Ereigniswarteschlange verwaltet wird, die geltende Simulationszeit vor. Sie hat dann die Aufgabe, die verteilten und mit der zentralen Recheneinheit verbundenen Recheneinheiten zum Ausführen eines anstehenden Ereignisses anzutriggern. Auf diesen werden die Simulationsobjekte in ihrem jeweiligen Betriebssystem ausgeführt. Dabei kommt es regelmäßig vor, dass ein Simulationsobjekt einen Betriebssystemaufruf tätigt, um das anstehende Ereignis abzuarbeiten. Bei einem solchen Betriebssystemaufruf wird gegebenenfalls die Zeit aus der Zeitbasis des verteilten Systems abgefragt. Dabei stimmt dann aber die vom Simulationsobjekt derart abgefragte Zeit nicht mit der zentralen Simulationszeit überein, was gegebenenfalls zu einem fehlerhaften Verhalten der Simulation führt.
  • Vor diesem Hintergrund besteht die Aufgabe der Erfindung darin, den Stand der Technik weiterzubilden.
  • Die Aufgabe wird gelöst durch ein Verfahren zur ereignisbasierten Simulation eines Systems mit den Merkmalen des Patentanspruchs 1. Vorteilhafte Ausführungsformen sind Gegenstand der von Patentanspruch 1 abhängigen Unteransprüche.
  • Gemäß dem Gegenstand des Verfahrens zur ereignisbasierten Simulation eines Systems wird eine Simulation auf einem Rechnersystem umfassend eine erste Recheneinheit und wenigstens eine zweite Recheneinheit ausgeführt, wobei die erste Recheneinheit eine Simulationszeit hat, wobei die zweite Recheneinheit eine Betriebssystemschicht und eine Applikationsschicht aufweist, wobei die zweite Recheneinheit in der Betriebssystemschicht eine Systemzeit aufweist, wobei wenigstens die zweite Recheneinheit eine Simulator-Applikation ausführt, wobei auf der Simulator-Applikation wenigstens ein Simulationsobjekt ausgeführt wird, und wobei die erste Recheneinheit eine Ereigniswarteschlange verwaltet, wobei in der Ereigniswarteschlange wenigstens ein Ereignis pro Simulationsschritt aufgelistet ist, und dem Ereignis ein durch das Simulationsobjekt auszuführender Prozess und ein zur Ausführung des Prozesses vorgesehener Simulationszeitpunkt zugeordnet sind, wobei die zweite Recheneinheit einen virtuellen Taktgeber aufweist, wobei das Verfahren für jeden Simulationsschritt die folgenden Schritte aufweist: Übermitteln, durch die erste Recheneinheit, eines Startsignals an den virtuellen Taktgeber zum Ausführen eines nächsten Simulationsschritts in der zweiten Recheneinheit, und basierend auf einer Zeitdifferenz zwischen einem vergangenen Simulationsschritt und der Simulationszeit, Inkrementieren der Systemzeit der zweiten Recheneinheit, und Ausführen des anstehenden Prozesses zu dem dem Prozess zugeordneten Simulationszeitpunkt.
  • Im Kontext des erfindungsgemäßen Verfahrens wird unter einem Rechnersystem ein Verbund aus Recheneinheiten verstanden, die jeweils ein eigenes Betriebssystem aufweisen und auf denen Applikationen ausführbar sind. In diesem Rechnersystem hat eine erste Recheneinheit, welche in den folgenden Ausführungen als zentrale Recheneinheit bezeichnet wird, von der ausgehend das Fortschreiten der Simulation verwaltet wird. Darüber hinaus sind in dem Rechnersystem eine zweite oder mehrere weitere Recheneinheiten enthalten, die mit der ersten Recheneinheit über ein Bussystem verbunden sind. Das Bussystem kann auf Ethernet oder auf weiteren Bussystemen basieren. Die weiteren Recheneinheiten werden als verteilte Recheneinheiten bezeichnet, auf denen die Simulation ausgeführt werden. Die Simulation umfasst die Ausführung eines oder mehrerer Simulationsobjekte auf der den verteilten Recheneinheiten oder auch auf der zentralen Recheneinheit. Diese Simulationsobjekte können beispielsweise virtuelle Steuergeräte, Simulink-Modelle, Functional Mock-up Units (FMUs), oder virtuelle Steuergeräte nach einem AUTOSAR-Standard sein. Die beteiligten Simulationsobjekte können dabei in einem Wirkzusammenhang stehen. Dies bedeutet, dass beispielsweise ein Simulationsobjekt während der Ausführung der Simulation das Berechnungsergebnis eines Prozesses einem weiteren Simulationsobjekt zusendet und dieses in einem folgenden Simulationsschritt basierend auf diesem Berechnungsergebnis weitere Prozesse ausführt. Das Zusenden des Berechnungsergebnisses kann hierbei mittels des Bussystems erfolgen.
  • Zur Ausführung der Simulationsobjekte werden auf den verteilten Recheneinheiten Simulator-Applikationen ausgeführt. Darunter wird eine Applikation verstanden, die die ihr zugeordneten Simulationsobjekte verwaltet und die Prozesse startet, die den verwalteten Simulationsobjekten zugeordnet sind. Außerdem empfängt die Simulator-Applikation Berechnungsergebnisse von Simulationsobjekten auf anderen Recheneinheiten zur Weiterverarbeitung durch ihr zugeordneten Simulationsobjekten und/oder leitet Berechnungsergebnisse der ihr zugeordneten Simulationsobjekte an Simulationsobjekte auf anderen Recheneinheiten weiter.
  • In diesem Zusammenhang wird unter einer ereignisbasierten Simulation eines Systems eine Simulation verstanden, die anhand einer Liste von abzuarbeitenden Ereignissen, welche hier Ereigniswarteschlange genannt wird, fortschreitet. Dabei wird die Zeit, die zwischen den Ereignissen vergeht, nicht simuliert. Das Fortschreiten der Simulation orientiert sich dabei an der Simulationszeit, die durch die zentrale Recheneinheit vorgegeben wird, die die Ereigniswarteschlange verwaltet. Dafür kann die zentrale Recheneinheit beispielsweise ihre interne Hardwareuhr verwenden. Die Ereigniswarteschlange listet zu jedem Ereignis jeweils einen auszuführenden Prozess und einen Simulationszeitpunkt auf, zu dem die Ausführung stattfinden soll, sowie gegebenenfalls eine Nachricht an die ausführende Recheneinheit. Sobald also der Simulationszeitpunkt eines Ereignisses gekommen ist, wird dieses ausgeführt und überführt die Simulation in den nächsten Simulationszustand. Ist das Simulationsobjekt, welchem das nächste anstehende Ereignis zugeordnet ist, auf einer der verteilten Recheneinheiten, ist der korrekte Zeitpunkt zur Ausführung des zugehörigen Prozesses aus Sicht des Simulationsobjekts erstmal unbekannt. Das liegt daran, dass das Simulationsobjekt ohne weiteres bei Zeitabfragen an das Betriebssystem der verteilten Recheneinheit erstmal die Systemzeit der Recheneinheit zurückgeliefert bekommt. Diese stimmt aber nicht notwendigerweise mit der Simulationszeit überein. Das erfindungsgemäße Verfahren sieht daher vor, auf den verteilten Recheneinheiten virtuelle Taktgeber zu verwenden, welche als Zeitgeber für das Betriebssystem auf der jeweiligen Recheneinheit fungiert. Dieser erhält zu Beginn eines jeden Simulationsschritts ein Startsignal für diesen Simulationsschritt von der ersten Recheneinheit. Dieses Startsignal enthält die Information, dass der nächste Simulationsschritt ausgeführt werden kann. Wie diese Information übertragen wird, spielt keine Rolle. Im einfachsten Fall reicht schon ein Bit wie beispielsweise eine steigende Flanke, oder ein Wechsel von 0 zu 1.
  • Mittels des Startsignals und der darin enthaltenden Information über die Simulationszeit kann die zweite Recheneinheit nun ihre Systemzeit auf die korrekte Simulationszeit inkrementieren. Das ist nun so zu verstehen, dass die zweite Recheneinheit aus dem vorangegangenen Simulationsschritt die geltende Simulationszeit und die zu diesem Zeitpunkt passende Systemzeit kennt. Zu Beginn des neuen Simulationsschritts erhält die zweite Recheneinheit nun die für diesen Simulationsschritt geltende Simulationszeit. Die zweite Recheneinheit kann nun ihre Systemzeit um die Zeitdifferenz zwischen diesen beiden Simulationszeitpunkten - des vergangenen und des neuen Simulationsschritts - nachkorrigieren. Der im neuen Simulationsschritt anstehende Prozess wird dann zum korrekten Simulationszeitpunkt berechnet.
  • Das erfindungsgemäße Verfahren ermöglicht eine vorteilhafte Entkopplung der eventbasierten Simulation von der realen, außerhalb der Simulation ablaufenden Zeit. Dadurch wird es möglich, Simulationsergebnisse sicher zu reproduzieren, was ohne die Erfindung nicht der Fall wäre. Zudem ist es möglich, die Simulation schneller oder langsamer als in Echtzeit ablaufen zu lassen und zu pausieren.
  • In einer vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass die Zeitdifferenz zwischen dem vorangegangenen und dem neuen Simulationsschritt bereits durch die erste Recheneinheit berechnet wird und mit dem Startsignal an den virtuellen Taktgeber auf der zweiten oder einer weiteren verteilte Recheneinheit übertragen wird.
  • In einer weiteren vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass zunächst die aktuelle Simulationszeit von der ersten Recheneinheit zusammen mit dem Startsignal an die zweite oder eine weitere verteilte Recheneinheit übertragen wird. Die Simulatorapplikation auf der zweiten Recheneinheit bildet die Zeitdifferenz dann und der virtuelle Taktgeber inkrementiert die Systemzeit so, dass diese mit der Simulationszeit übereinstimmt.
  • Eine weitere vorteilhafte Ausgestaltung der Erfindung sieht vor, dass die erste und die zweite bzw. weitere verteilte Recheneinheiten über Netzwerkschnittstellen verfügen, mittels der die Kommunikation zwischen den Recheneinheiten über das Bussystem ermöglicht wird.
  • In einer weiteren vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass die Simulationsobjekte auf dem gleichen Betriebssystem ausgeführt werden wie die Simulator-Applikation, die die Simulationsobjekte verwaltet. Das verwendete Betriebssystem kann beispielsweise auf Linux basieren und/oder ein Echtzeitbetriebssystem sein. Da die Simulationsobjekte während der Simulation Betriebssystemaufrufe können, ist das jeweilige Betriebssystem als Teil der Simulation zu betrachten.
  • In einer weiteren vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass die Simulationsobjekte in einer abgeschlossenen Umgebung ausgeführt werden. Das bedeutet, dass den Simulationsobjekten der Zugriff auf Hardwareressourcen nur soweit erlaubt ist, wie es für die Simulation notwendig ist. Insbesondere wird der Zugriff der Simulationsobjekte auf die Systemzeit der verteilten Recheneinheit unterbunden, da ansonsten die Synchronisierung mit der Simulationszeit nicht mehr gewährleistet wäre. Den Simulationsobjekten kann in der abgeschlossenen Umgebung, welche beispielsweise eine Sandbox sein kann, Zugriff auf Festplattenspeicher, Netzwerkschnittstelle, Arbeitsspeicher, Prozessorkernen, und weiteres erlaubt sein.
  • Eine weitere vorteilhafte Ausgestaltung der Erfindung sieht vor, dass die erste und die zweite bzw. weitere verteilte Recheneinheiten über virtuelle Netzwerkschnittstellen verfügen, mittels der die Kommunikation zwischen den Recheneinheiten über ein virtuelles Bussystem ermöglicht wird. Dies ermöglicht die Ausführung der Simulation auf mehreren, virtuellen Rechenknoten.
  • Eine weitere vorteilhafte Ausgestaltung der Erfindung sieht vor, dass ein oder mehrere der Simulationsobjekte in der Simulation durch virtuelle Steuergeräte gegeben sind, die das Verhalten physikalisch vorliegender Steuergeräte nachbilden. Unter einem virtuellen Steuergerät wird eine Software-Applikation verstanden, die die umfangreichen Komponenten eines Seriensteuergeräts wie zum Beispiel Laufzeitumgebung, Systemdienste, Kommunikationsdienste, oder Hardwareabstraktionsschicht, nachbildet um in einem Simulator simuliert werden zu können.
  • In einer weiteren vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass die die Berechnungsergebnisse der Simulationsobjekte von der virtuellen Netzwerkschnittstelle einer ersten Recheneinheit über einen Netzwerktunnel an die virtuelle Netzwerkschnittstelle einer zweiten Recheneinheit übertragen werden.
  • Eine weitere vorteilhafte Ausgestaltung der Erfindung sieht vor, dass die verwendeten Recheneinheiten jeweils physikalische Rechenknoten sind.
  • Eine weitere vorteilhafte Ausgestaltung der Erfindung sieht vor, dass die verwendeten Recheneinheiten virtuelle Rechenknoten sind, wobei dessen Betriebssystem von einem Hypervisor ausgeführt wird.
  • In einer weiteren vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass der virtuelle Taktgeber in der Applikationsschicht implementiert ist.
  • In einer weiteren vorteilhaften Ausgestaltung der Erfindung ist vorgesehen, dass der virtuelle Taktgeber in der Betriebssystemschicht implementiert ist.
  • Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen näher erläutert. In den Zeichnungen sind Teile gleicher Gattung mit gleichlautenden Bezeichnern beschriftet.
    • 1 eine schematische Ansicht auf eine Ausführungsform der Erfindung mit einem System aus drei Recheneinheiten
    • 2 eine Darstellung des zeitlichen Ablaufs einer ereignisbasierten Simulation auf zwei Recheneinheiten unter Anwendung des aus dem Stand der Technik bekannten Verfahrens
    • 3 eine Darstellung des zeitlichen Ablaufs einer ereignisbasierten Simulation auf zwei Recheneinheiten unter Anwendung des erfindungsgemäßen Verfahrens
  • 1 zeigt eine Abbildung einer Ausführungsform der Erfindung auf einem verteilten Rechnersystem, welches drei Recheneinheiten RE1, RE2 und RE3 umfasst. Die Anzahl der Recheneinheiten in diesem Ausführungsbeispiel ist willkürlich gewählt. Genauso wie in 1 skizziert und im Folgenden erläutert würde die Erfindung auch auf einem Rechnersystem bestehend aus zwei, vier oder mehr Recheneinheiten funktionieren. Es ist außerdem unerheblich, ob die Recheneinheiten als physikalische Rechenkerne oder virtuelle Rechenknoten vorliegen. Die Recheneinheiten RE1, RE2, und RE3 weisen jeweils ein Betriebssystem OS auf, auf dem jeweils eine Simulatorapplikation SAP1, SAP2 oder SAP3 ausgeführt wird. Das Betriebssystem OS ist nicht notwendigerweise auf jeder Recheneinheit das gleiche. Die Aufgabe der Simulatorapplikation SAP1 auf Recheneinheit RE1 ist die Verwaltung einer Ereigniswarteschlange, welche zur Durchführung der ereignisbasierten Simulation abgearbeitet wird. Die Ereigniswarteschlange umfasst eine Auflistung von Ereignissen, und eine Zuordnung von den Ereignissen zugeordneten Prozessen TASK und die Information zu welchem Zeitpunkt in der Simulationszeit die aufgelisteten Ereignisse abzuarbeiten sind, sowie die Information durch welche Recheneinheit die Ausführung vorgesehen ist. Bei Ausführung der Simulation sendet die Simulatorapplikation SAP1 auf der zentralen Recheneinheit RE1 ein Startsignal an die Simulatorapplikation SAP2 und SAP3, die zur Ausführung des anstehenden Ereignisses vorgesehen ist.
  • Die Simulatorapplikationen SAP2 und SAP3 auf den Recheneinheiten RE2 und RE3 haben wiederrum die Aufgabe, die Abarbeitung der Ereignisse durch die jeweils zuständige verteilte Recheneinheit RE2 oder RE3 anzustoßen, sobald das Startsignal S1 erhalten wurde und der Zeitpunkt der Simulationszeit gekommen ist, zu der die Ausführung des Ereignisses durch die mit dem Ereignis assoziierten Recheneinheit vorgesehen ist. Nach Abarbeiten des Ereignisses sendet die Simulatorapplikation der jeweils ausführende Recheneinheit ein Abschlusssignal S2 (nicht in 1 dargestellt) an die Simulatorapplikation SAP1 auf der zentralen Recheneinheit RE1. Das Abschlusssignal signalisiert, dass die Abarbeitung des Ereignisses erfolgt ist.
  • Zum Austausch der Start- und Abschlusssignale weisen die Recheneinheiten RE1, RE2, und RE3 darüber hinaus jeweils eine Netzwerkschnittstelle ETH1, ETH2, und ETH3 auf, welche an ein Bussystem BUS angeschlossen sind, welches den Simulatorapplikationen SAP1, SAP2 und SAP3 den Austausch von Nachrichten zwischen der zentralen Recheneinheit RE1 und den verteilten Recheneinheiten RE2 und RE3 erlaubt. Diese Netzwerkschnittstellen ETH1, ETH2, und ETH3 können beispielsweise durch einen Ethernet-Controller realisiert werden. Die Recheneinheiten tauschen dann Nachrichten basierend auf einem Ethernet-Protokoll aus.
  • Im Ausführungsbeispiel, welches 1 zugrunde liegt, ist die Rolle der Recheneinheit 1 eine zentrale Recheneinheit zu bilden, während Recheneinheiten RE2 und RE3 verteilte Recheneinheiten darstellen.
  • Recheneinheiten RE2 und RE3 weisen zusätzlich zu den bereits beschriebenen Komponenten jeweils einen virtuellen Taktgeber VCLK, einen Betriebssystem-Kernel KRN und eine abgeschlossene Umgebung BOX auf. In der abgeschlossenen Umgebung BOX werden die Simulationsobjekte ausgeführt, die der jeweiligen verteilten Recheneinheit RE2 oder RE3 zur Ausführung zugeordnet sind, wobei hier die Simulationsobjekte SO1 und SO2 der Recheneinheit RE2 und die Simulationsobjekte SO3 und SO4 der Recheneinheit RE3 zugeordnet sind. Diese abgeschlossene Umgebung kann beispielsweise eine Sandbox sein, oder ein Kernel Namespace, falls das verwendete Betriebssystem OS auf der jeweiligen Recheneinheit RE2 oder RE3 Linux-basiert ist. Die Aufgabe der abgeschlossenen Umgebung ist sicherzustellen, dass die darin ausgeführten Simulationsobjekte lediglich auf die ihnen zugewiesenen Hardware-Ressourcen Zugriff haben. Diese Hardware-Ressourcen können zum Beispiel Festplatten-Speicher, die Netzwerkschnittstellen ETH2 oder ETH3, ein oder mehrere Prozessor-Kerne, oder der Arbeitsspeicher sein.
  • Die Recheneinheiten RE2 und RE3 weisen in diesem Ausführungsbeispiel jeweils einen virtuellen Taktgeber VCLK auf. Die Aufgabe des virtuellen Taktgebers VCLK ist, die Systemzeit im Betriebssystem-Kernel KRN der verteilten Recheneinheiten entsprechend einer ermittelten Taktdifferenz zwischen einem vergangenen Simulationsschritt und der zum Zeitpunkt des Ermittelns geltenden Simulationszeit zu inkrementieren. In diesem Sinne ist der virtuelle Taktgeber als virtueller Ersatz für den originalen Taktgeber zu verstehen, den die betreffende Recheneinheit zum Inkrementieren ihrer Systemzeit verwenden würde. Da die ermittelte Taktdifferenz direkten Bezug zur Simulationszeit hat, die durch die zentrale Recheneinheit RE1 vorgegeben wird, verwenden die verteilten Recheneinheiten so indirekt die zentrale Simulationszeit als Systemzeit. Die Ermittlung der Taktdifferenz kann dabei durch den virtuelle Taktgeber VCLK selbst erfolgen, oder auch schon von der ersten Recheneinheit RE1 berechnet und an den virtuellen Taktgeber übermittelt worden sein. In beiden Fällen verwendet der virtuelle Taktgeber die Taktdifferenz um die Systemzeit in der verteilten Recheneinheit - in diesem Ausführungsbeispiel Recheneinheiten RE2 oder RE3 - zu inkrementieren und mit der Simulationszeit zu synchronisieren.
  • In der Abbildung der 2 ist eine Skizze des zeitlichen Ablaufs einer ereignisorientierten Simulation gemäß des Verfahrens, wie es im Stand der Technik bekannt ist. In diesem Beispiel finden sich zwei Recheneinheiten RE1 und RE2. Die Anzahl ist hier völlig willkürlich gewählt, genauso würde sich der abgebildete Sachverhalt auch auf drei oder mehr Recheneinheiten darstellen.
  • 2 zeigt den zeitlichen Ablauf der Abarbeitung der Prozesse, der Simulationsobjekte SO1 und SO2 auf der Recheneinheit RE1, dargestellt im oberen System, und des Simulationsobjekts SO3 auf der Recheneinheit RE2, dargestellt im unteren System. Bei den Simulationsobjekten SO1, SO2, und SO3 kann es sich beispielsweise um virtuelle Steuergeräte handeln. Die erste Recheneinheit RE1 ist in diesem Beispiel als Simulator ausgestaltet, das heißt auf der Recheneinheit RE1 wird eine Simulator-Applikation SAP ausgeführt. Diese verwaltet die Ereigniswarteschlange (nicht dargestellt) und startet die Ausführung der in der Ereigniswarteschlange als nächstes anstehenden Prozesse durch die Simulationsobjekte SO1 und SO2, in dem sie ein Startsignal S1 übermittelt. Die Recheneinheit RE2 ist eine verteilte Komponente, welche getrennt von der Recheneinheit RE1 und der darauf laufenden Simulator-Applikation ausgeführt wird. Auf Recheneinheit RE2 wird das Simulationsobjekt SO3 ausgeführt.
  • Mit dem Startsignal S2 startet der erste Simulationsschritt Step 1, und die Simulationsobjekte SO1 und SO2 führen jeweils die Prozesse PRZ1 und PRZ2 aus. Sobald sie damit fertig sind, melden sie die Beendung durch ein Abschlusssignal S2 an die Simulator-Applikation SAP zurück. In diesem Beispiel ist zunächst Simulationsobjekt SO1 fertig, dann folgt Simulationsobjekt SO2. Sobald beide mit Prozessen beauftragten Simulationsobjekte fertig sind, endet der Simulationsschritt. Nach Beendung des Simulationsschritts werden die Berechnungsergebnisse der Simulationsobjekte an andere Simulationsobjekte übermittelt, die das Berechnungsergebnis für ihren nächsten ausgeführten Prozess benötigen. Im Beispiel wird das Berechnungsergebnis von Simulationsobjekt SO1 vor dem Beginn von Simulationsschritt Step 2 an das Simulationsobjekt SO2 über ein Bussystem übermittelt. Das Berechnungsergebnis von Simulationsobjekt SO2 wird für den nächsten Simulationsschritt von Simulationsobjekt SO3 benötigt und an dieses übermittelt.
  • Mit dem nächsten Startsignal S1 startet der nächste Simulationsschritt Step 2, und auf Recheneinheit RE1 führt Simulationsobjekt SO1 den Prozess PRZ3 aus, Simulationsobjekt SO2 führt den Prozess PRZ4 unter Verwendung des Berechnungsergebnisses aus Step 1 von Simulationsobjekt SO1 aus, und auf Recheneinheit 2 führt das Simulationsobjekt SO3 den Prozess PRZ5 aus. Sobald die Simulationsobjekte SO1 und SO2 ihre Prozesse - PRZ3 und PRZ4 - fertig berechnet haben, melden sie wieder ein Abschlusssignal S2 an die Simulator-Applikation SAP. Da Simulationsobjekt SO3 in diesem Beispiel nicht zeitlich synchron simuliert wird, sondern lediglich auf die Berechnungsergebnisse von Simulationsobjekt SO2 reagiert, endet der Simulationsschritt bevor die Simulationsobjekt SO3 die Berechnung des Prozesses PRZ5 abschließen kann. Während hier noch weiter berechnet wird, werden in Simulationsobjekten SO1 und SO2 weitere Prozesse simuliert. Im einfachsten Fall handelt es sich um Prozesse CHECK welche lediglich prüfen ob neue Berechnungsergebnisse vorliegen. Falls das nicht der Fall ist, wird der Simulationsschritt wieder beendet indem Abschlusssignal S2 an die Simulator-Applikation SAP gemeldet wird. Diese Abfrage wird so lange wiederholt und damit Simulationsschritte angehäuft, bis ein Simulationsobjekt SO3 ein neues Berechnungsergebnis für SO2 zur Verfügung stellt. Dies ist in diesem Ausführungsbeispiel dann der Fall, wenn das Simulationsobjekt SO3 auf Recheneinheit RE2 mit der Berechnung des Prozesses PRZ5 fertig ist. Simulationsobjekt SO3 sendet nach Beendung der Berechnung sein Berechnungsergebnis an den vorher festgelegten Empfänger - hier ist das das Simulationsobjekt SO2 - welcher das im folgenden Simulationsschritt Step 1000 in einen Buffer schreibt. In diesem Beispiel kann das Berechnungsergebnis von PRZ5 also erst bei Simulationsschritt Step 1000 an Simulationsobjekt SO2 übermittelt werden.
  • Da jeder Simulationsschritt einer Simulationszeit zugeordnet ist, erhält SO2 das Berechnungsergebnis fälschlicherweise zum 1000ten Simulationszeitpunkt, obwohl das Berechnungsergebnis wegen der Nullzeitannahme schon nach dem zweiten Simulationsschritt vorliegen müsste.
  • In der Abbildung der 3 ist eine Skizze des zeitlichen Ablaufs einer ereignisorientierten Simulation nach dem erfindungsgemäßen Verfahren.
  • 3 zeigt den zeitlichen Ablauf der Abarbeitung der Prozesse, der den Simulationsobjekten SO1 und SO2 auf der Recheneinheit RE1, dargestellt im oberen System, und des Simulationsobjekts SO3 auf der Recheneinheit RE2, dargestellt im unteren System. Bei den Simulationsobjekten SO1, SO2, und SO3 kann es sich beispielsweise um virtuelle Steuergeräte handeln. Die erste Recheneinheit RE1 ist in diesem Beispiel als Simulator ausgestaltet, das heißt auf der Recheneinheit RE1 wird eine Simulator-Applikation SAP1 ausgeführt. Diese verwaltet die Ereigniswarteschlange (nicht dargestellt) und startet die Ausführung der in der Ereigniswarteschlange als nächstes anstehenden Prozesse durch die Simulationsobjekte SO1 und SO2, und SO3 in dem sie ein Startsignal S1 übermittelt. Die Recheneinheit RE2 ist eine verteilte Komponente, welche getrennt von der Recheneinheit RE1 und der darauf laufenden Simulator-Applikation SAP1 ausgeführt wird. Auf Recheneinheit RE2 wird eine Simulator-Applikation und das Simulationsobjekt SO3 ausgeführt.
  • Mit dem Startsignal startet der erste Simulationsschritt Step 1, und die Simulationsobjekte SO1 und SO2 führen jeweils die Prozesse PRZ 1 und PRZ 2 aus. Sobald sie damit fertig sind, melden sie die Beendung durch ein Abschlusssignal S2 an die Simulator-Applikation SAP1 zurück. In diesem Beispiel ist zunächst Simulationsobjekt SO1 fertig, dann folgt Simulationsobjekt SO2. Sobald beide mit Prozessen beauftragten Simulationsobjekte fertig sind, endet der Simulationsschritt. Nach Beendung des Simulationsschritts übermitteln die Simulationsobjekte ihre Berechnungsergebnisse an andere Simulationsobjekte, die das Berechnungsergebnis für ihren nächsten ausgeführten Prozess benötigen.
  • Im Beispiel übermittelt Simulationsobjekt SO1 sein Berechnungsergebnis vor dem Beginn von Simulationsschritt Step2 an das Simulationsobjekt SO2 über ein Bussystem. Das Berechnungsergebnis von Simulationsobjekt SO2 wird für den nächsten Simulationsschritt von Simulationsobjekt SO3 benötigt und an dieses übermittelt. Für die Übermittlung des Berechnungsergebnisses kann beispielsweise ein Netzwerktunnel genutzt werden (angedeutet durch den gestrichelten Pfeil), der die Kommunikation zwischen den Simulationsobjekten auf verschiedenen Recheneinheiten ermöglicht.
  • Mit dem nächsten Startsignal S1 startet der nächste Simulationsschritt Step 2, und auf Recheneinheit RE1 führt Simulationsobjekt SO1 den Prozess PRZ3 aus, Simulationsobjekt SO2 führt den Prozess PRZ4 unter Verwendung des Berechnungsergebnisses aus Step 1 von Simulationsobjekt SO1 aus. Der bereits abgeschlossene Prozess PRZ2 hat einen Folgeprozess PRZ5 ausgelöst, der auf Recheneinheit 2 durch das Simulationsobjekt SO3 ausgeführt werden soll. Nach Abschluss von Simulationsschritt Step 1 sendet Simulationsobjekt SO2 sein Berechnungsergebnis an das Simulationsobjekt SO3. Mit dem Startsignal S1 erhält die Recheneinheit RE2 implizit die Information über die Simulationszeit und kann ihre Systemzeit entsprechend inkrementieren. Das Simulationsobjekt SO3 kann dann zum richtigen, in der Ereigniswarteschlange hinterlegten, Simulationszeitpunkt mit der Berechnung des Prozesses PRZ5 beginnen.
  • Sobald die Simulationsobjekte SO1 und SO2 ihre Prozesse - PRZ3 und PRZ4 - fertig berechnet haben, melden sie wieder ein Abschlusssignal S2 an die Simulator-Applikation SAP1. Während die Simulationsobjekte SO1 und SO2 ihre Berechnungen beendet haben, läuft die Berechnung des Prozesses PRZ5 auf der Recheneinheit RE2 weiter. Der Simulationsschritt ist im Unterschied zum Beispiel, welches zu 2 beschrieben wird, dann noch nicht beendet. Das liegt daran, dass die Simulationszeit, die für die Berechnung aller Prozesse zugrunde liegt, beiden Recheneinheiten RE1 und RE2 während aller Simulationsschritte bekannt und identisch ist.
  • Nachdem Beenden der Berechnung des Prozesses PRZ5 auf Recheneinheit RE1 wird das Berechnungsergebnis an Simulationsobjekt SO2 auf Recheneinheit RE1 gesendet.
  • Da die Simulation unter einer Nullzeitannahme durchgeführt wird, vergeht während der Berechnung der Prozesse keine Simulationszeit. Der Simulationsschritt STEP 2 ist daher erst beendet, wenn die Berechnung des Prozesses PRZ5 durch Simulationsobjekt SO3 auf Recheneinheit RE2 abgeschlossen ist. Währenddessen vergeht aus Sicht der Simulation keine Zeit.

Claims (14)

  1. Verfahren zur ereignisbasierten Simulation eines Systems, wobei die Simulation auf einem Rechnersystem umfassend eine erste Recheneinheit (RE1) und wenigstens eine zweite Recheneinheit (RE2) ausgeführt wird, wobei die erste Recheneinheit (RE1) eine Simulationszeit hat, wobei die zweite Recheneinheit (RE2) eine Betriebssystemschicht und eine Applikationsschicht aufweist, wobei die zweite Recheneinheit (RE2) in der Betriebssystemschicht eine Systemzeit aufweist, wobei wenigstens die zweite Recheneinheit (RE2) eine Simulator-Applikation (SAP2) ausführt, wobei auf der Simulator-Applikation (SAP2) wenigstens ein Simulationsobjekt (SO) ausgeführt wird, und wobei die erste Recheneinheit (RE1) eine Ereigniswarteschlange (ERG) verwaltet, wobei in der Ereigniswarteschlange (ERG) wenigstens ein Ereignis pro Simulationsschritt aufgelistet ist, und dem Ereignis ein durch das Simulationsobjekt (SO) auszuführender Prozess (PRZ) und ein zur Ausführung des Prozesses vorgesehener Simulationszeitpunkt zugeordnet sind, wobei die zweite Recheneinheit (RE2) einen virtuellen Taktgeber (VCLK) aufweist, wobei das Verfahren für jeden Simulationsschritt die folgenden Schritte aufweist: Übermitteln, durch die erste Recheneinheit (RE1), eines Startsignals an den virtuellen Taktgeber (VCLK) zum Ausführen eines nächsten Simulationsschritts (Step) in der zweiten Recheneinheit (RE2), und basierend auf einer Zeitdifferenz zwischen einem vergangenen Simulationsschritt und der Simulationszeit, Inkrementieren der Systemzeit der zweiten Recheneinheit (RE1), und Ausführen des anstehenden Prozesses zu dem dem Prozess zugeordneten Simulationszeitpunkt.
  2. Verfahren nach Anspruch 1, wobei die Zeitdifferenz zwischen dem vergangenen Simulationsschritt und der Simulationszeit durch die erste Recheneinheit berechnet wird und mit dem Startsignal an die zweite Recheneinheit übermittelt wird.
  3. Verfahren nach Anspruch 1, wobei die Simulationszeit durch die erste Recheneinheit mit dem Startsignal an die zweite Recheneinheit übermittelt wird und die zweite Recheneinheit die Zeitdifferenz zwischen dem vergangenen Simulationsschritt und der Simulationszeit berechnet.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die erste eine erste Netzwerkschnittstelle und die zweite Recheneinheit eine zweite Netzwerkschnittstelle aufweisen, und die erste und zweite Netzwerkschnittstelle über ein Bussystem miteinander verbunden sind, und das Übermitteln des Startsignals mittels der Netzwerkschnittstellen und des Bussystems erfolgen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Simulationsobjekte auf dem gleichen Betriebssystem ausgeführt werden wie die zugehörige Simulator-Applikation.
  6. Verfahren nach Anspruch 5, wobei die Simulationsobjekte in einer abgeschlossenen Umgebung ausgeführt werden, wobei den Simulationsobjekten in der abgeschlossenen Umgebung Zugriff auf eine erste Menge Hardwareressourcen der Simulator-Applikation zugeordneten Recheneinheit zugestanden wird, wobei die erste Menge Hardwareressourcen durch die Simulator-Applikation definiert wird.
  7. Verfahren nach Anspruch 6, wobei den Simulationsobjekten in der abgeschlossenen Umgebung der Zugriff auf eine zweite Menge Hardware-Ressourcen der Simulator-Applikation zugeordneten Recheneinheit verwehrt wird.
  8. Verfahren nach einem der Ansprüche 5 bis 7, wobei wenigstens zwei der Simulationsobjekte jeweils eine virtuelle Netzwerkschnittstelle aufweisen, wobei mittels der virtuellen Netzwerkschnittstelle Berechnungsergebnisse über ein virtuelles Bussystem empfangbar bzw. versendbar sind.
  9. Verfahren nach einem der Ansprüche 5 bis 8, wobei wenigstens eins der Simulationsobjekte auf der ersten oder zweiten Recheneinheit ein virtuelles Steuergerät ist.
  10. Verfahren nach Anspruch 8, wobei die Berechnungsergebnisse von der virtuellen Netzwerkschnittstelle einer ersten Recheneinheit über einen Netzwerktunnel an ein die virtuelle Netzwerkschnittstelle einer zweiten Recheneinheit versendbar sind.
  11. Verfahren nach einem der Ansprüche 5 oder 6, wobei die Recheneinheiten jeweils als physikalische Rechenknoten ausgestaltet sind.
  12. Verfahren nach Anspruch 7 oder 8, wobei wenigstens eine Recheneinheit als virtueller Rechenknoten ausgestaltet ist, wobei das Betriebssystem der jeweiligen Recheneinheit von einem Hypervisor ausgeführt wird.
  13. Verfahren nach einem der Ansprüche 1 bis 12, wobei der virtuelle Taktgeber in der Applikationsebene implementiert ist.
  14. Verfahren nach einem der Ansprüche 1 bis 12, wobei der virtuelle Taktgeber auf Betriebssystemebene implementiert ist.
DE102018111851.1A 2018-05-17 2018-05-17 Verfahren zur ereignisbasierten Simulation eines Systems Pending DE102018111851A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102018111851.1A DE102018111851A1 (de) 2018-05-17 2018-05-17 Verfahren zur ereignisbasierten Simulation eines Systems
CN201980032587.5A CN112166428A (zh) 2018-05-17 2019-05-16 用于系统的基于事件的模拟的方法
PCT/EP2019/062576 WO2019219796A1 (de) 2018-05-17 2019-05-16 Verfahren zur ereignisbasierten simulation eines systems
US16/950,422 US20210081585A1 (en) 2018-05-17 2020-11-17 Method for event-based simulation of a system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018111851.1A DE102018111851A1 (de) 2018-05-17 2018-05-17 Verfahren zur ereignisbasierten Simulation eines Systems

Publications (1)

Publication Number Publication Date
DE102018111851A1 true DE102018111851A1 (de) 2019-11-21

Family

ID=66625942

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018111851.1A Pending DE102018111851A1 (de) 2018-05-17 2018-05-17 Verfahren zur ereignisbasierten Simulation eines Systems

Country Status (4)

Country Link
US (1) US20210081585A1 (de)
CN (1) CN112166428A (de)
DE (1) DE102018111851A1 (de)
WO (1) WO2019219796A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019120519A1 (de) * 2019-07-30 2021-02-04 Dspace Digital Signal Processing And Control Engineering Gmbh Computer-implementiertes Verfahren und Computerprogrammprodukt zum Test von realen oder virtuellen Steuergeräten
DE102020114742A1 (de) 2020-06-03 2021-12-09 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und Rechnersystem zum Mitlesen von Nachrichtenpaketen
CN113848752A (zh) * 2021-09-24 2021-12-28 北京机电工程研究所 一种分布式实时仿真方法
WO2022046035A1 (en) * 2020-08-25 2022-03-03 Siemens Industry Software Inc. SYSTEM AND METHOD FOR SIMULATION AND TESTING OF MULTIPLE VIRTUAL ECUs

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809790B2 (en) * 2020-09-22 2023-11-07 Beijing Voyager Technology Co., Ltd. Architecture for distributed system simulation timing alignment
US20220374260A1 (en) * 2021-05-21 2022-11-24 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for coordinating computation systems
CN114444304B (zh) * 2022-01-24 2023-04-07 中国科学院空间应用工程与技术中心 一种空间任务仿真方法、系统及仿真系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0415637A2 (de) * 1989-08-30 1991-03-06 Industrial Technology Institute Verfahren und Gerät zur Simulierung eines Fabriksystems
US20030212989A1 (en) * 2002-05-10 2003-11-13 International Business Machines Corporation System and method for time compression during software testing
US20130218549A1 (en) * 2012-02-16 2013-08-22 Tt Government Solutions, Inc. Dynamic time virtualization for scalable and high fidelity hybrid network emulation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901260A (en) * 1987-10-28 1990-02-13 American Telephone And Telegraph Company At&T Bell Laboratories Bounded lag distributed discrete event simulation method and apparatus
WO2003096235A2 (en) * 2002-05-13 2003-11-20 Rensselaer Polytechnic Institute Discrete event simulation system and method
US7991602B2 (en) * 2005-01-27 2011-08-02 Rockwell Automation Technologies, Inc. Agent simulation development environment
JP2011081560A (ja) * 2009-10-06 2011-04-21 Fujitsu Ltd システムレベルシミュレーション方法および装置
US8694295B2 (en) * 2010-07-27 2014-04-08 Aria Solutions, Inc. System and method for time virtualization in computer systems
JP2012093899A (ja) * 2010-10-26 2012-05-17 Hitachi Ltd 計算機システム、シミュレーション方法、及びプログラム
CN102662428B (zh) * 2012-03-01 2015-02-04 中国科学院计算技术研究所 一种离散事件网络模拟环境的时钟同步方法
DE102013209915A1 (de) * 2013-05-28 2014-12-04 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Bereitstellung von Zufallsbitfolgen in einer virtuellen Ausführungsumgebung eines Rechnersystems
EP3001313A1 (de) * 2014-09-23 2016-03-30 dSPACE digital signal processing and control engineering GmbH Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
DE102015103801A1 (de) * 2015-03-16 2016-09-22 Dspace Digital Signal Processing And Control Engineering Gmbh Vorrichtung und Verfahren zum Testen eines Regelungsgerätes
DE102015206021B4 (de) * 2015-04-02 2022-08-04 Continental Automotive Gmbh Rechnersystem für ein Fahrzeug
US10019292B2 (en) * 2015-12-02 2018-07-10 Fts Computertechnik Gmbh Method for executing a comprehensive real-time computer application by exchanging time-triggered messages among real-time software components

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0415637A2 (de) * 1989-08-30 1991-03-06 Industrial Technology Institute Verfahren und Gerät zur Simulierung eines Fabriksystems
US20030212989A1 (en) * 2002-05-10 2003-11-13 International Business Machines Corporation System and method for time compression during software testing
US20130218549A1 (en) * 2012-02-16 2013-08-22 Tt Government Solutions, Inc. Dynamic time virtualization for scalable and high fidelity hybrid network emulation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BARR, Rimon; HAAS, Zygmunt J.; VAN RENESSE, Robbert. Jist: Embedding simulation time into a virtual machine. In: EuroSim congress on modelling and simulation. 2004, S. 1 - 16. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019120519A1 (de) * 2019-07-30 2021-02-04 Dspace Digital Signal Processing And Control Engineering Gmbh Computer-implementiertes Verfahren und Computerprogrammprodukt zum Test von realen oder virtuellen Steuergeräten
DE102020114742A1 (de) 2020-06-03 2021-12-09 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren und Rechnersystem zum Mitlesen von Nachrichtenpaketen
DE102020114742B4 (de) 2020-06-03 2022-06-02 Dspace Gmbh Verfahren und Rechnersystem zum Mitlesen von Nachrichtenpaketen
US11558493B2 (en) 2020-06-03 2023-01-17 Dspace Gmbh Method and computer system for monitoring message packets
WO2022046035A1 (en) * 2020-08-25 2022-03-03 Siemens Industry Software Inc. SYSTEM AND METHOD FOR SIMULATION AND TESTING OF MULTIPLE VIRTUAL ECUs
CN113848752A (zh) * 2021-09-24 2021-12-28 北京机电工程研究所 一种分布式实时仿真方法
CN113848752B (zh) * 2021-09-24 2023-11-07 北京机电工程研究所 一种分布式实时仿真方法

Also Published As

Publication number Publication date
US20210081585A1 (en) 2021-03-18
WO2019219796A1 (de) 2019-11-21
CN112166428A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
DE102018111851A1 (de) Verfahren zur ereignisbasierten Simulation eines Systems
EP3571553B1 (de) Verfahren zum test einer steuergerätefunktion eines steuergeräts eines fahrzeugs
DE102012009482B4 (de) Funktional erweiterbares Fahrzeugsteuergerät und Verfahren zum Ergänzen der Funktionalität eines Fahrzeugsteuergeräts
EP2897011B1 (de) Verfahren und Simulationsanordnung zur Simulation einer automatisierten Industrieanlage
EP3001313A1 (de) Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
DE102014110096A1 (de) Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts
DE102016119320A1 (de) Verfahren zum Konfigurieren eines realen oder virtuellen elektronischen Steuergerätes
DE102017211433B4 (de) Verfahren zum Durchführen eines Funktionstests eines Steuergeräts in einem Hardware-in-the-Loop-Test, HIL-Test, sowie HIL-Prüfstand und Steuergerät
EP3451202B1 (de) Verfahren zum erzeugen eines auf einem testgerät ausführbaren modells eines technischen systems und testgerät
EP3379351B1 (de) Verfahren zum betreiben einer automatisierungseinrichtung sowie automatisierungseinrichtung
DE112010004037T5 (de) Simulationsverfahren, -system und -programm
EP3736688B1 (de) Virtuelles steuergerät
EP2899652B1 (de) Verfahren zur Einsatzoptimierung programmierbarer Logikbausteine in Steuerungsgeräten für Fahrzeuge
EP3832517A1 (de) Computerimplementiertes verfahren zur einbindung mindestens eines signalwerts in einem virtuellen steuergerät
DE102018110018A1 (de) Verfahren zum Bereitstellen eines integrierten Prozesses für die Steuergerätentwicklung und Simulationsvorrichtung für die Steuergerätentwicklung
DE202016008563U1 (de) Konfigurationssystem zum Konfigurieren eines für das Testen eines Steuergeräts eingerichteten Testgeräts
WO2022058140A1 (de) Steuerung eines technischen systems mit einer recheneinheit für künstliche intelligenz
DE102009054137A1 (de) Verfahren zum Testen einer Applikation hinsichtlich ihrer Performanz
DE102017116081A1 (de) Verfahren und Vorrichtung zum Konfigurieren einer Ausführungseinrichtung und zum Erkennen eines Betriebszustands derselben
DE102022205520A1 (de) Verfahren zur Simulation einer ersten Recheneinheit in einer zweiten Recheneinheit
DE102007038542A1 (de) Begleit-Chip für einen Mikrokontroller
DE19710463C2 (de) Verfahren zur automatischen Differentiation auf einem Rechner insbesondere zur Simulation elektronischer Schaltungen
DE102022127638A1 (de) Simulationssystem und -verfahren
DE102017120013A1 (de) Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem
DE102022200255A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Daten

Legal Events

Date Code Title Description
R163 Identified publications notified
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030000000

R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: DSPACE GMBH, DE

Free format text: FORMER OWNER: DSPACE DIGITAL SIGNAL PROCESSING AND CONTROL ENGINEERING GMBH, 33102 PADERBORN, DE