Physik »inside«

Modelltransformation und automatische Codegenerierung

20. Juni 2022, 6:00 Uhr | Von Christoff Bürger, Dr. Oliver Lenord, Dr. Reinhold Heckmann und Zdeněk Husár

Fortsetzung des Artikels von Teil 1

Der eFMI-Prozessablauf

Mit der eFMI-Technik erhalten Entwickler maximale Flexibilität in der Ausgestaltung des Entwicklungsprozesses und – auf Basis des offenen Standards – eine Wahlfreiheit hinsichtlich der verwendeten Werkzeuge. Durch die reichen Meta-Informationen und in den Containern hinterlegte Checksummen eignet sich eFMI auch als Archivierungsformat und als Mittel, um unterschiedliche Code- und/oder Model-Sharing-Prozesse in Zusammenarbeit von Herstellern (OEM) und Zulieferern zu organisieren. Der eFMI-Standard bietet eine gute Ausgangsbasis für bedeutungserhaltende Transformationen von physikalischen Modellen zu Embedded-Software.

Ausgangspunkt des in Bild 2 dargestellten Prozesses ist die Modellierung eines zu regelnden Systems in einer dedizierten Modellierungsumgebung, die beste Voraussetzung bietet, um auf Basis von komponentenorientierten Modellbibliotheken auch komplexe Systeme mit überschaubarem Aufwand zu modellieren und mit Mitteln der Simulation zu validieren, z. B. Modelica-Werkzeuge wie Dymola von Dassault Systèmes, SimulationX von ESI Group oder Amesim von Siemens.

Reglerstrukturen, vom einfachen PID-Regler bis zum flachheitsbasierten Regler unter Verwendung eines inversen Streckmodells, können direkt in der Simulationsumgebung mittels Model-in-the-Loop-Simulation (MiL) ausgelegt und hinsichtlich Robustheit und Stabilität analysiert werden. Die gefundenen Lösungen können automatisiert in GALEC-Code transformiert und zusammen mit den Referenzlösungen der MiL-Testfälle als Algorithm Code Container bzw. Behavioral Model Container in einer eFMU exportiert werden.

Embedded-Code-generierende Werkzeuge, z. B. TargetLink von dSPACE, SCODE-CONGRA von ETAS oder CATIA ESP von Dassault Systèmes, können diese eFMU einlesen. Anhand konkreter Code-Konfigurationen können Target-spezifische Varianten generiert und als separate Production Code Container zu der eFMU hinzugefügt werden. Passend zu jedem Production Code wird zugehöriger FMI-kompatibler Wrapper-Code generiert, der es erlaubt, die gesamte eFMU als FMU zu kapseln und somit in jeder FMI-unterstützenden Simulationsumgebung einen Software-in-the-Loop-Test (SiL) durchführen zu können, der denselben Code ausführt, der auch auf dem Target ausgeführt werden wird. Optional kann auch der für das Target compilierte Binär-Code in der eFMU als eigener Container abgelegt werden.

Neben Modellierungswerkzeugen und Codegeneratoren wird eFMI auch von Werkzeugen zur statischen Codeanalyse (z. B. Astrée von AbsInt) – beispielsweise für die Analyse von Fehlern bei Feldzugriffen, Überläufen oder Division durch 0 bzw. MISRA-C:2012-Regelverletzungen – und zum Testen (z. B. TPT von PikeTec) unterstützt, sodass umfassende Überprüfungen erfolgen können, um die Qualität des Codes zu garantieren. Dazu können die umfangreichen Meta-Informationen der entsprechenden Container Manifeste genutzt werden, um erforderliche Informationen und Zusammenhänge zwischen den verschiedenen Transformationsstufen vom Modell zum embedded Produktionscode zusammenzubringen; z. B. um existierende Behavioral Model Container automatisch zum HiL-Testen neuer Produktionscodes zu nutzen.

Bild 2 fasst den eFMI-Ablauf zwischen den einzelnen Containern des eFMI-Standards am Beispiel der im EMPHYSIS-Projekt entwickelten Prototypwerkzeuge zusammen.

Anbieter zum Thema

zu Matchmaker+

Anwendungsfall Volvo

In diesem Anwendungsfall hat Volvo die Verbesserung der Steuerung des Elektromotors eines Elektrofahrzeuges betrachtet. Eine gute Motorsteuerung sollte Ruckler und Vibrationen vermeiden, die nicht nur für die Passagiere unangenehm sind, sondern auch die mechanischen Komponenten des Systems belasten und zu größerem Verschleiß führen. Dafür benötigt die Motorsteuerung möglichst vollständige und zeitnahe Information über den Zustand des gesamten Antriebssystems einschließlich der Antriebswelle und der Räder, insbesondere der Drehmomente und Kräfte, die an den individuellen Komponenten wirken.

Informationen über den Zustand des Antriebssystems können durch Sensoren an den verschiedenen Teilen des Systems geliefert werden. Der Einbau von immer mehr Sensoren scheint zwar auf den ersten Blick die Informationsdichte zu erhöhen, bringt aber Pro- bleme nicht nur durch Mehrkosten und Platzbedarf, sondern auch durch die Gefahr der Überlastung der Kommunikationskanäle, die die gewünschte Verbesserung der Qualität der Infor- mation verhindern oder sogar ins Gegenteil verkehren kann. Des Weiteren impliziert sensorbasiere Kommunikation auch immer eine untere Grenze der maximalen Abtastrate, da die Kommunikationskanäle eine Signallaufzeit (Delay) haben.

Eine mögliche Alternative besteht darin, ein fortgeschrittenes physikalisches Modell des Antriebssystems als virtuellen Sensor zu benutzen, also eine echtzeitfähige Simulation des kompletten Antriebssystems neben der eigentlichen Kontrollsoftware auf dem Steuergerät einzubetten. Die Simulation auf dem Embedded-System kann dann die gewünschten virtuellen Sensordaten, z. B. Drehmomente an Antriebswelle und Rädern, aus ihrem physikalischen Modell extrahieren und direkt an die Steuersoftware liefern. Die eFMI-Technik hilft dabei, existierende Modelle des physikalischen Systems wiederzuverwenden, die bereits verifiziert und durch Messungen validiert sind.

In dem Anwendungsfall wurde die eFMI-Technik erfolgreich genutzt, um Produktionscode aus dem physikalischen Modelica-Modell eines elektrischen Antriebssystems zu gewinnen und durch Vergleich mit einer Simulation des ursprünglichen Modells zu validieren. Die eFMI-Technik beschleunigte dabei den Übergang vom gleichungsbasierten Modell zu algorithmischem Code und half Fehler zu vermeiden, einerseits dadurch, dass nur ein einziges Modell entwickelt und validiert werden musste, und andererseits durch die Möglichkeit, dieses Modell automatisch in GALEC-Code und von da aus in Produktionscode zu transformieren und diesen durch Simulationen und Tests zu validieren. Volvo sieht es dabei als vorteilhaft an, dass der eFMI-Standard es erlaubt, die verschiedenen Transformations- und Validierungsschritte mit verschiedenen Werkzeugen verschiedener Hersteller durchzuführen.

Anwendungsfall Mercedes-Benz

Auch in diesem Anwendungsfall ging es um die Entwicklung eines virtuellen Sensors, allerdings im Zusammenhang mit der Überwachung der dynamischen Eigenschaften eines automatischen Doppelkupplungsgetriebes mit zwei miteinander verbundenen Reibkupplungen. Dabei wurde ein eFMU-Container für ein vereinfachtes Getriebesystemmodell genutzt. Mit dessen Hilfe wird, aus den bisherigen Regelungssignalen und den Signalen echter Sensoren sowie den bisherigen modellierten Zuständen der Kupplungen, der aktuelle Zustand (Geschwindigkeit, Beschleunigung und Drehmoment) gemäß Modell hergeleitet. Der aktuelle Zustand wird dann wiederum verwendet, um neue Regelungssignale zu erzeugen.

Die dazu verwendeten physikalischen Modelica-Modelle sind keine Neuentwicklungen, sondern seit Jahren bei Mercedes-Benz zur Simulation – bisher rein offline – solcher Kupplungsgetriebe im Einsatz. Derartige physikalische Modelle von Kupplungsgetrieben sind in der Automobilindustrie Standard; die Wiederverwendung derselben zur automatisierten Generierung von Regelungssoftware ist ein echter »Game Changer«.

Die physikalische Modellierung des Doppelkupplungsgetriebes führte zu einem »steifen« Gleichungssystem, das für eine stabile numerische Lösung spezielle hochkomplexe Lösungsverfahren erforderte. Diese speziellen Lösungsverfahren wurden von dem EMPHYSIS-Partner Dassault Systèmes in Dymola entwickelt und als eFMU mit GALEC-Code exportiert. Ein daraus generierter Produktionscode konnte für Software- und Hardware-in-the-Loop-Simulationen transformiert werden. Der durchgängige eFMI-Prozess verkürzt somit den Weg von einem physikalischen Streckenmodell zum ausführbaren Embedded-Code.

Allerdings zeigen die Simulationen noch teilweise unakzeptables Verhalten und es ist noch weitere Arbeit an den eingebetteten Lösungsverfahren notwendig. Doch die bisherigen Ergebnisse sind sehr vielversprechend. Eine er- folgreiche Lösung solcher numerischer Probleme wird einen viel breiteren Einsatz des eFMI-Standards auch in anderen industriellen Anwendungen mit vergleichbar hoher numerischer Komplexität ermöglichen.

Studie Bosch

Im Rahmen des EMPHYSIS-Projekts hat sich Bosch die Aufgabe gestellt, zu evaluieren, inwieweit die mit der vorgestellten eFMI-Werkzeugkette weitgehend automatisiert generierten Lösungen die hohen Qualitätsanforderungen und Gütekriterien für sicherheitskritische Software von Bosch erfüllen. Des Weiteren galt es zu quantifizieren, ob die zu erwartenden Performanzverluste des generierten Codes gegenüber händischen Implementierungen in engen Grenzen von max. +20 % liegen und durch eine signifikante Einsparung bei den Entwicklungsaufwänden gerechtfertigt werden können.

Dazu hat Bosch aus seiner langjährigen Erfahrung Probleme formuliert, die bekanntermaßen für Code-generierende Werkzeuge herausfordernd sind, um robuste, recheneffiziente und kompakte Implementierungen zu finden. Auf Basis dieser Probleme wurden sechs Testfälle definiert, die von erfahrenen Embedded-Softwareentwicklern händisch implementiert wurden, um als Benchmark für die durch die eFMI-Werkzeugkette generierten Lösungen zu dienen. Umfassende Messungen von Laufzeit und Speicherbedarf auf einem Bosch-MDG1-Steuergerät wurden durchgeführt. Zudem erfolgten die gängigen Code-Quality-Checks. Für die Durchführung des gesamten Prozesses, von der Erstellung des Modells, dessen Validierung, Implementierung und Test auf dem Steuergerät wurden die Arbeitsstunden erfasst.

Das Ergebnis dieser Studie war, dass in allen Fällen die gesetzte Grenze von 20 % Performanzverlust eingehalten wurde. Erstaunlicherweise wurde sogar in vier von sechs Fällen die händische Implementierung übertroffen. Dies war dadurch zu erklären, dass die symbolischen Modelltransformationen durch die Wahl der Zustandsvariablen und durch symbolische Vereinfachung der Gleichungssysteme häufig bessere Lösungen gefunden haben, als es durch die händische Herleitung gelungen ist.

Auch die C-Code-Generatoren hatten teilweise weitere Optimierungen gefunden, die bis dahin unentdeckt geblieben waren. Sicherlich wäre es möglich, all diese Verbesserungen in die händische Implementierung zu übernehmen und dann die generierte Lösung zu übertreffen, dennoch konnte festgestellt werden, dass im Mittel mit eFMI besserer Code mit deutlich geringerem Aufwand und 50–90 % Produktivitätssteigerung erzeugt werden konnte als mit einer händischen Entwicklungsmethodik nach dem Stand der Technik.

Status und Weiterentwicklung des eFMI-Standards

Die eFMI-Spezifikation wurde nach Abschluss des EMPHYSIS-Projekts an die Modelica Association [4] zur Weiterentwicklung und Standardisierung übergeben. Im März 2021 wurde das Modelica Association Project eFMI (MAP eFMI) gegründet, das seitdem an der Weiterentwicklung arbeitet.

Eine ausgereifte Vorabversion (Pre-Release draft) des eFMI-Standards ist verfügbar [3]. Eine gute Übersicht des eFMI-Standards bieten [5] und [6]. Die industriellen Anwendungsfälle des EMPHYSIS-Projekts sowie die BOSCH-Assessment-Studien sind in einem öffentlichen technischen Bericht [7] beschrieben.

Die im Rahmen des EMPHYSIS-Projekts entstandenen 13 Werkzeug-Prototypen wurden anhand der veröffentlichen Modelica-Test-Bibliothek [8] kontinuierlich verbessert. Erste kommerziell verfügbare Produkte werden mit den in 2022 anstehenden Produkt-Releases erwartet.


Literatur

[1] Functional Mock-up Interface. Modelica Association, Website, https://fmi-standard.org.

[2] EMPHYSIS – Embedded systems with physical models in the production code software. ITEA 4 – the Eureka Cluster on software innovation, Website, https://itea4.org/project/emphysis.html.

[3] ITEA Project EMPHYSIS. EMPHYSIS Consortium / MAP eFMI, Website, https://emphysis.github.io.

[4] Modelica Association, Website, https://modelica.org.

[5] Lenord, O; et al.: eFMI: An open standard for physical models in embedded software. 14th Modelica Conference 2021, 20.–24. September 2021, Konferenzband, S. 57–71, https://doi.org/10.3384/ecp2118157.

[6] Bürger, C.: eFMI Status and Outlook. International Modelica Conference 2021, 23. September 2021, Videopräsentation, https://emphysis.github.io/pages/downloads/Modelica-Conference-2021-MAP-eFMI.mp4.

[7] EMPHYSIS – D7.9 eFMI for physics-based ECU controllers. ITEA, öffentlicher Bericht, Version 1, September 2021, https://emphysis.github.io/pages/ downloads/emphysis-public-demonstrator-summary.pdf.

[8] modelica / efmi-testcases. GitHub, Website, https://github.com/modelica/efmi-testcases.

 

Die Autoren

 

Christoff-Bürger von 3ds
Christoff Bürger von Dassault Systèms.
© 3ds

Christoff Bürger

arbeitet seit sechs Jahren bei Dassault Systèms am Compiler-Kern der Dymola-Modelica-Entwicklungs- und Simulationsumgebung. Er ist Hauptentwickler von eFMI-GALEC und Hauptautor der GALEC- und Algorithm-Code-Representation-Kapitel des eFMI-Standards sowie Mitautor der Behavioral-Model-Representation-Spezifikation.

Als Projektleiter von MAP eFMI ist er Steering-Committee-Mitglied der Modelica Association und stellvertretender Library Officer des Modelica.Clocked Pakets der Modelica Standard Bibliothek (MSL).

Christoff.Buerger@3ds.com

 

Dr. Reinhold Heckmann von Absint
Dr. Reinhold Heckmann von AbsInt Angewandte Informatik.
© Absint

Dr. Reinhold Heckmann

arbeitet seit über 20 Jahren bei AbsInt Angewandte Informatik als Senior Researcher im Bereich der statischen Programmanalyse und ist Mitautor zahlreicher wissenschaftlicher Veröffentlichungen zu diesem Thema. Zu seinen Aufgaben zählt die Vertretung von AbsInt bei der Beantragung und Durchführung von Forschungsprojekten wie z.B. EMPHYSIS.

heckmann@absint.com

 

Zdeněk Husár von Mercedes Benz.
Zdeněk Husár von Mercedes Benz.
© Mercedes Benz

Zdeněk Husár, Ph.D.

arbeitet seit 2005 als Berechnungsingenieur in der Powertrain-Entwicklung bei Mercedes-Benz. Seine Erfahrungen aus der Getriebestreckenmodellierung sind in den Anwendungsfall Mercedes-Benz eingeflossen und haben die Teilnahme von Mercedes-Benz in dem EMPHYSIS-Projekt bzw. in MAP eFMI motiviert. Husár repräsentiert Mercedes-Benz als Steering-Committee- Mitglied in MAP eFMI.

zdenek.husar@mercedes-benz.com

 

Dr. Oliver Lenord von Bosch
Dr. Oliver Lenord von Bosch.
© Bosch

Dr. Oliver Lenord

promovierte am Lehrstuhl für Mechatronik der Universität Duisburg-Essen. Seit 2016 arbeitet er als Forschungsingenieur und Leiter öffentlich geförderter Projekte am Robert Bosch Campus in Renningen bei Stuttgart. Derzeit leitet er das von ihm initiierte BMWi-geförderte Projekt PHyMoS und hält den stellv. Vorsitz des Open Source Modelica Consortiums (OSMC).

Oliver.Lenord@de.bosch.com

 


  1. Modelltransformation und automatische Codegenerierung
  2. Der eFMI-Prozessablauf

Verwandte Artikel

AbsInt Angewandte Informatik GmbH, Robert Bosch, Mercedes Benz AG EP/ZEMM