-
Die Erfindung betrifft ein Verfahren zum Durchführen von computerunterstützten XiL-Simulationen.
-
Bei den XiL-Simulationen kann es sich um MiL (Model-in-the-Loop), SiL (Software-in-the-Loop), HiL (Hardware-in the-Loop) und/oder DiL (Driver-in-the-Loop) handeln. MiL umfasst dabei den Aufbau von Modellen für eine Regelstrecke und ein ECU (Electronik Controll Unit) zur Verhaltenssimulation, SiL das Erstellen von Modellen in der Zielsprache des ECUs zum automatisierten Testen von Softwareentwicklungen, HiL bezeichnet ein Verfahren, bei dem ein eingebettetes System (z B. reales elektronisches ECU oder reale mechatronische Komponente - Hardware) über seine Ein- und Ausgänge an ein angepasstes Gegenstück angeschlossen wird, und unter DiL wird eine Kombination der HIL-Simulation mit einem anderen Simulator in einer DIL-Simulationsumgebung verstanden.
-
Jede der XiL-Simulationen kann einem Clienten, d.h. je einem Software-Clienten, zugeordnet sein. Allerdings können die einzelnen Clienten unterschiedliche Laufzeiten aufweisen. Daher ist eine Laufzeitanpassung nötig, um einen stabilen Betrieb zu gewährleisten und um aussagekräftige Simulationsergebnisse zu erhalten.
-
Aus der
US 2019 / 0005167 A1 und der
WO 2018 / 054465 A1 sind Verfahren zur Synchronisation von derartigen Simulationen bekannt.
-
Es besteht also Bedarf daran, Wege aufzuzeigen, wie eine derartige Laufzeitanpassung bei verschiedensten computerunterstützten XiL-Simulationen gewährleistet werden kann.
-
Die Aufgabe der Erfindung wird gelöst durch ein Verfahren zum Durchführen von computerunterstützten XiL-Simulationen, mit einer Mehrzahl von Clienten, einem Server mit einem XiL-Cosimulations-Modul, wobei das XiL-Cosimulations-Modul Daten repräsentativ für Laufzeiten der Clienten einliest und auswertet sowie eine Laufzeitanpassung bewirkt um synchronisierte Daten bereitzustellen.
-
Das Cosimulations-Modul tauscht mit den Clienten Daten aus und bestimmt anhand der von den Clienten bereitgestellten Daten die jeweiligen Laufzeiten oder jeder Client übermittelt Daten mit Informationen über Laufzeiten an das Cosimulations-Modul. So können besonders einfach Informationen gewonnen werden, mit denen eine Laufzeitanpassung möglich ist, auch wenn es sich um verschiedenste computerunterstützte XiL-Simulationen handelt.
-
Gemäß einer Ausführungsform werden zur Laufzeitanpassung die Schritte:
- Bestimmen des Clienten mit der kürzesten Laufzeit, und
- Stoppen des bestimmten Clienten ausgeführt.
-
Der bestimmte Client kann gestoppt werden, bis ein weiterer Client oder alle Clienten den gleichen Simulationszeitpunkt erreicht haben. So wird sichergestellt, dass keine von den Clienten bereitgestellten Daten verloren gehen.
-
Gemäß einer weiteren Ausführungsform werden zur Laufzeitanpassung die Schritte:
- Bestimmen des Clienten mit der kürzesten Laufzeit,
- Bestimmen von jeweiligen Laufzeitdifferenzen zwischen dem bestimmten Clienten und den anderen Clienten, und
- Hinzuzufügen und/oder Entfernen von Verzugszeiten zu den bestimmten Clienten und/oder zumindest einem der anderen Clienten ausgeführt.
-
Es werden also fortlaufend Anpassungen vorgenommen und so die Simulationszeitpunkte verändert. Mit anderen Worten, die Clienten konkurrieren um eine minimierte Verzugszeit. So kann eine besonders dynamische Laufzeitanpassung erreicht werden.
-
Gemäß einer weiteren Ausführungsform wird ein Regler verwendet, um die Verzugszeiten zu bestimmen. Dabei ist der Regler derart konfiguriert, dass die Verzugszeiten minimiert werden. Hierzu kann ein PID-Regler, ein Zustands-Regler, wie z.B. ein LQ-Regler, ein adaptiver Regler, ein Fuzzy-Regler oder auch ein künstliches neuronales Netz Verwendung finden. So können die Verzugszeiten besonders effektiv reduziert werden.
-
Gemäß einer weiteren Ausführungsform werden zur Laufzeitanpassung die Schritte:
- Bestimmen des Clienten mit der längsten Laufzeit, und
- Bereitstellen von zwischengespeicherten Daten für den bestimmten Clienten von zumindest einem anderen Clienten ausgeführt.
-
Zur Zwischenspeicherung kann ein Ringspeicher Verwendung finden. Es erfolgt aber keine Beeinflussung der Laufzeiten der Clienten. Auch so kann sichergestellt werden, dass keine von den Clienten bereitgestellten Daten verloren gehen.
-
Gemäß einer weiteren Ausführungsform weist das System ein End-Modul zum Empfang von synchronisierten Daten auf. Das End-Modul kann Teil eines Kraftfahrzeugs-, eines Verkehrs- oder eines Sensorsimulators sein. So können besonders einfach computerunterstützte XiL-Simulationen durchgeführt werden.
-
Ferner gehört zur Erfindung ein Computerprogrammprodukt, ein System und ein XiL-Cosimulations-Modul für ein derartiges System.
-
Es wird nun die Erfindung anhand einer Zeichnung erläutert. Es zeigen:
- 1 in schematischer Darstellung ein System zum Durchführen von computerunterstützten Simulationen.
- 2 in schematischer Darstellung einen Verfahrensablauf gemäß einem ersten Ausführungsbeispiel zum Betrieb des in 1 gezeigten System.
- 3 in schematischer Darstellung einen Verfahrensablauf gemäß einem zweiten Ausführungsbeispiel zum Betrieb des in 1 gezeigten System.
- 4 in schematischer Darstellung einen Verfahrensablauf gemäß einem dritten Ausführungsbeispiel zum Betrieb des in 1 gezeigten System.
-
Es wird zunächst auf 1 Bezug genommen.
-
Das System 2 ist zum Durchführen von computerunterstützten XiL-Simulationen ausgebildet, um Komponenten von Verkehrsmitteln, wie z.B. Kraftfahrzeugen, testen zu können.
-
Bei den XiL-Simulationen kann es sich um MiL (Model-in-the-Loop), SiL (Software-in-the-Loop), HiL (Hardware-in the-Loop) und/oder DiL (Driver-in-the-Loop) handeln.
-
Im vorliegenden Ausführungsbeispiel werden vier XiL-Simulationen durch jeweilige Clienten 4a, 4b, 4c, 4d bereitgestellt, wobei jeder der Clienten 4a, 4b, 4c, 4d als Software-Client ausgebildet ist. Ferner gehören zum System 2 ein XiL-Cosimulations-Modul 8 und ein End-Modul 10.
-
Die Clienten 4a, 4b, 4c, 4d wie auch das XiL-Cosimulations-Modul 8 sowie das End-Modul 10 können für ihre nachfolgend beschriebenen Aufgaben und Funktionen Hard- und/oder Software-Komponenten aufweisen.
-
Die Clienten 4a und 4b sind im vorliegenden Ausführungsbeispiel Echtzeitsimulationen, während der Client 4c eine HiL-Simulation und der Client 4d eine MiL-Simulation, wie z.B. eine Verkehrssimulation, ist. Die Clienten 4a, 4b, 4c, 4d im vorliegenden Ausführungsbeispiele weisen unterschiedliche Laufzeiten auf und stellen daher ihre Daten D zu unterschiedlichen Simulationszeitpunkten bereit.
-
Des Weiteren sind die Clienten 4a, 4b, 4c, 4d unabhängige Simulationen, die sich auf verschiedenen XiL-Hardware-Layern, z.B. dSpace DS1006 Board, befinden. Ferner sind die Clienten 4a, 4b, 4c, 4d unabhängig von dem XiL-Cosimulations-Modul 8 und dem End-Modul 10.
-
Das XiL-Cosimulations-Modul 8 weist Schnittstellen, wie z.B. CAN, LIN und Ethernet, auf, um Daten D von den Clienten 4a, 4b, 4c, 4d einzulesen. Auch kann das XiL-Cosimulations-Modul 8 zur Ethernet-Kommunikation über Sockets ausgebildet sein. Dies kann der schnellste Kommunikationsweg in einem verteilten XiL-System sein.
-
Im Betrieb kommuniziert das XiL-Cosimulations-Modul 8 ständig mit den Clienten 4a, 4b, 4c, 4d um eine Laufzeitanpassung und damit synchronisierte Simulationszeitpunkte zu bewirken, wie dies später noch detailliert erläutert wird.
-
Das End-Modul 10 ist im vorliegenden Ausführungsbeispiel als Voll-Simulator ausgebildet, der von dem XiL-Cosimulations-Modul 8 synchronisierte Daten D' bereitgestellt bekommt. Dem End-Modul 10 kann eine Kraftfahrzeugsimulation, eine Verkehrssimulation oder eine Sensorsimulation zugeordnet sein. Es kann auch eigene implementierte Physik- oder Simulationsalgorithmen aufweisen, die mit Daten D von den Clienten 4a, 4b, 4c, 4d gespeist werden. Wenn das End-Modul 10 über eine ausreichende Rechenleistung verfügt, kann es als Modul einer Endsimulation angesehen werden.
-
Es wird nun zusätzlich auf 2 Bezug genommen, um ein erstes Ausführungsbeispiel zum Betrieb des in 1 gezeigten Systems 2 zu erläutern.
-
Im Betrieb liest in einem ersten Schritt S100 das XiL-Cosimulations-Modul 6 Daten D repräsentativ für Laufzeiten der Clienten 4a, 4b, 4c, 4d ein und wertet diese aus. Z.B. können Laufzeiten der Clienten 4a, 4b, 4c, 4d durch Auswerten der Frequenz bestimmt werden, mit der die jeweiligen Clienten 4a, 4b, 4c, 4d Daten D für das XiL-Cosimulations-Modul 6 bereitstellen.
-
Um eine Laufzeitanpassung zu bewirken bestimmt in einem weiteren Schritt S200 das XiL-Cosimulations-Modul 6 den Clienten 4a, 4b, 4c, 4d mit der kürzesten Laufzeit. Mit anderen Worten, es wird bestimmt, welche Simulation, die dem jeweiligen Clienten 4a, 4b, 4c, 4d zugeordnet ist, am schnellsten ist.
-
In einem weiteren Schritt S300 wird dann derjenige Client 4a, 4b, 4c, 4d mit der kürzesten Laufzeit bzw. schnellsten Simulation gestoppt. Hierzu kann der bestimmte Client 4a, 4b, 4c, 4d mit einem Stoppsignal S gestoppt werden, das vom XiL-Cosimulations-Modul 8 bereitgestellt wird.
-
Der Client 4a, 4b, 4c, 4d mit der kürzesten Laufzeit bzw. schnellsten Simulation kann solange gestoppt werden bis ein Simulationszeitpunkt des Clienten 4a, 4b, 4c, 4d mit der zweit kürzesten Laufzeit bzw. mit der zweit schnellsten Simulation erreicht ist, oder der Client 4a, 4b, 4c, 4d mit der kürzesten Laufzeit bzw. schnellsten Simulation wird solange gestoppt bis ein Simulationszeitpunkt des Clienten 4a, 4b, 4c, 4d mit der längsten Laufzeit bzw. langsamsten Simulation erreicht ist.
-
So wird sichergestellt, dass keine von den Clienten 4a, 4b, 4c, 4d bereitgestellten Daten D verloren gehen. Allerdings gibt somit der langsamste Client 4a, 4b, 4c, 4d der Clienten 4a, 4b, 4c, 4d die Laufzeit bzw. das Verarbeitungstempo vor. Wenn z.B. eine der Simulationen keine Echtzeitsimulation ist werden diese somit von der langsameren Simulation „ausgebremst“:
-
Schließlich stellt in einem weiteren Schritt S400 das XiL-Cosimulations-Modul 6 dem End-Modul 10 auf den Daten D beruhende synchronisierte Daten D' bereit.
-
Es wird nun zusätzlich auf 3 Bezug genommen, um ein zweites Ausführungsbeispiel zum Betrieb des in 1 gezeigten Systems 2 zu erläutern.
-
Auch hier liest in einem ersten Schritt S100' das XiL-Cosimulations-Modul 6 Daten D repräsentativ für Laufzeiten der Clienten 4a, 4b, 4c, 4d ein und wertet diese aus.
-
Alternativ oder zusätzlich ist aber vorgesehen, dass zur Laufzeitanpassung das XiL-Cosimulations-Modul 6 dazu ausgebildet ist, in einem weiteren Schritt S200' den Clienten 4a, 4b, 4c, 4d mit der kürzesten Laufzeit zu bestimmen. Mit anderen Worten, es wir bestimmt, welche Simulation, die dem jeweiligen Clienten 4a, 4b, 4c, 4d zugeordnet ist, am langsamsten ist.
-
In einem weiteren Schritt S300' werden von dem XiL-Cosimulations-Modul 6 Laufzeitdifferenzen Δt1, Δt2, Δt3 zwischen dem bestimmten Clienten 4a, 4b, 4c, 4d, d.h. dem Clienten 4a, 4b, 4c, 4d mit der kürzesten Laufzeit, und den anderen Clienten 4a, 4b, 4c, 4d mit den längeren Laufzeiten bestimmt.
-
In einem weiteren Schritt S400' werden dann von dem XiL-Cosimulations-Modul 6 Verzugszeiten VZ1, VZ2, VZ3, VZ4 zu dem bestimmten Clienten 4a, 4b, 4c, 4d mit der kürzesten Laufzeit und den anderen Clienten 4a, 4b, 4c, 4d mit den längeren Laufzeiten hinzugefügt und/oder entfernt.
-
Es werden also fortlaufend Anpassungen vorgenommen und so die Simulationszeitpunkte durch Hinzufügen und/oder Entfernen von Verzugszeiten verändert. Mit anderen Worten, die Clienten 4a, 4b, 4c, 4d konkurrieren um eine minimierte Verzugszeit. So kann eine besonders dynamische Laufzeitanpassung erreicht werden.
-
Die Laufzeitanpassung kann verbessert werden, wenn ein Regler 12 verwendet wird, um die Verzugszeiten zu bestimmen.
-
Der Regler 12 kann ein konventioneller Regler, wie z.B. ein PID-Regler, auch in digitaler Form mit Abtastung, ein Zustands-Regler, wie z.B. ein LQ-Regler, ein adaptiver Regler, ein Fuzzy-Regler oder auch ein künstliches neuronales Netz sein.
-
Der PID-Regler (proportional-integral-derivative controller) besteht aus den Anteilen eines P-Gliedes, eines I-Gliedes und eines D-Gliedes. Unter einer digitalen Regelung mit Abtastung wird verstanden, dass ein Eingangssignal - hier Verzugszeiten - zu bestimmten diskreten Zeitpunkten abgetastet, zeitsynchron berechnet und als digitales Ausgangssignal ausgegeben werden. Andere Begriffe bezeichnen diesen Vorgang als „zeitdiskrete Regelung“ oder auch als „Abtastregelung“. Beim Zustands-Regler entspricht die mit Faktoren bewertete Rückführung der Zustandsgrößen eines mathematischen Modells der Regelstrecke im Zustandsraum, während unter einem LQ-Regler bzw. linear-quadratischer Regler, auch Riccati-Regler genannt, ein Zustands-Regler für ein lineares dynamisches System verstanden wird, dessen Rückführmatrix über die Minimierung eines quadratischen Kostenfunktionals ermittelt wird. Adaptive Regler sind Regler, die ihre Regel-Parameter automatisch an die Regelstrecke anpassen. Sie sind somit zur Regelung zeitvarianter Vorgänge geeignet. Fuzzy-Regler hingegen arbeiten mit sogenannten „linguistischen Variablen“, welche sich auf „unscharfe Mengenangaben“ beziehen, wie zum Beispiel hoch, mittel und niedrig. Künstliche neuronale Netze können herkömmliche Regler 12 ersetzen oder ihnen Sollwerte vorgeben, die das künstliche neuronale Netz aus einer selbst entwickelten Prognose über einem Verfahrensablauf ermittelt hat. Hierzu durchläuft das künstliche neuronale Netz zuerst eine Trainingsphase, während der Werte für Gewichtsfaktoren optimiert werden, die verschiedene künstliche Neuronen der in Schichten angeordneten künstlichen Neuronen miteinander verbinden. So kann die Laufzeitanpassung besonders dynamisch gestaltet werden.
-
Schließlich stellt wieder in einem weiteren Schritt S500' das XiL-Cosimulations-Modul 6 dem End-Modul 10 auf den Daten D beruhende synchronisierte Daten D' bereit.
-
Es wird nun zusätzlich auf 4 Bezug genommen, um ein drittes Ausführungsbeispiel zum Betrieb des in 1 gezeigten Systems 2 zu erläutern.
-
Auch hier liest in einem ersten Schritt S100" das XiL-Cosimulations-Modul 6 Daten D repräsentativ für Laufzeiten der Clienten 4a, 4b, 4c, 4d ein und wertet diese aus.
-
Alternativ oder zusätzlich bestimmt nun das XiL-Cosimulations-Modul 6 in einem weiteren Schritt S200" den Clienten 4a, 4b, 4c, 4d mit der längsten Laufzeit. D.h., es wird bestimmt, welche Simulation, die dem jeweiligen Clienten 4a, 4b, 4c, 4d zugeordnet ist, am langsamsten ist.
-
In einem weiteren Schritt S300" stellt das XiL-Cosimulations-Modul 6 für den Clienten 4a, 4b, 4c, 4d mit der längsten Laufzeit zwischengespeicherte Daten ZD von zumindest einem anderen Clienten 4a, 4b, 4c, 4d bereit. Zum Zwischenspeichern der Daten ZD greift das XiL-Cosimulations-Modul 6 auf einen Ringspeicher 14 zu. So gehen keine von einem Clienten 4a, 4b, 4c, 4d bereitgestellte Daten D verloren. Es erfolgt aber keine Beeinflussung der Laufzeiten der Clienten 4a, 4b, 4c, 4d. So können besonders bevorzugt offline-Simulationen und Nichtechtzeit-Simulationen behandelt werden.
-
Schließlich stellt wieder in einem weiteren Schritt S500' das XiL-Cosimulations-Modul 6 dem End-Modul 10 auf den Daten D beruhende synchronisierte Daten D' bereit.
-
Abweichend von den vorliegenden Ausführungsbeispielen kann die Reihenfolge der Schritte auch eine andere sein. Ferner können mehrere Schritte zeitgleich bzw. simultan ausgeführt werden. Des Weiteren können auch einzelne Schritte ausgelassen werden.
-
So kann mit dem System 2 mit dem XiL-Cosimulations-Modul 6 und einem oder einer Kombination der Verfahren eine Laufzeitanpassung bei verschiedensten computerunterstützten XiL-Simulationen gewährleistet werden.
-
Bezugszeichenliste
-
- 2
- System
- 4a
- Client
- 4b
- Client
- 4c
- Client
- 4d
- Client
- 6
- Server
- 8
- XiL-Cosimulations-Modul
- 10
- End-Modul
- 12
- Regler
- 14
- Ringspeicher
- D
- Daten
- D'
- synchronisierte Daten
- S
- Stoppsignal
- VZ1
- Verzugszeit
- VZ2
- Verzugszeit
- VZ3
- Verzugszeit
- VZ4
- Verzugszeit
- ZD
- zwischengespeicherte Daten
- Δt1
- Laufzeitdifferenz
- Δt2
- Laufzeitdifferenz
- Δt3
- Laufzeitdifferenz
- S100
- Schritt
- S200
- Schritt
- S300
- Schritt
- S400
- Schritt
- S100'
- Schritt
- S200'
- Schritt
- S300'
- Schritt
- S400'
- Schritt
- S500'
- Schritt
- S100"
- Schritt
- S200"
- Schritt
- S300"
- Schritt
- S400"
- Schritt
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2019/0005167 A1 [0004]
- WO 2018/054465 A1 [0004]