Die DSHplus Functional Mock-up Schnittstellen
Design, Entwicklung und Analyse komplexer CyberPhysischer Systeme (CPS) unter Verwendung von Simulationsmodellen erfordert die Zusammenarbeit von Fachwissen aus verschiedenen technischen Bereichen. Aber wie können alle beteiligten domänenspezifischen Modelle in ein zusammengesetztes Gesamtsimulationsmodell integriert werden?
Die Antwort auf diese Herausforderung ist das Functional Mock-up Interface (FMI).
Functional Mock-up Interface
Das FMI definiert einen Container und eine Schnittstelle zum Austausch dynamischer Modelle unter Verwendung einer Kombination von XML-Dateien, Binärdateien und C-Code, die in eine einzige Datei gezippt sind. FMI wird von mehr als 100 Tools unterstützt und als Modelica-Assoziationsprojekt auf GitHub gepflegt.
Ein Modell, das nach dem FMI-Standard exportiert wird, heißt Functional Mock-up Unit (FMU). Es gibt drei verschiedene Arten von FMUs:
- FMI co-simulation stand alone.
- FMI co-simulation tool.
- FMI for Model Exchange.
DSHplus generiert Co-Simulations-FMUs für Windows, Linux und MacOS, die der Revision 2.0 des FMI-Standards entsprechen und kostenlos verteilt werden können.
DSHplus Co-Simulations-FMUs für Windows-basierte Anwendungen werden gebrauchsfertig kompiliert.
FMU Export
DSHplus erzeugt Co-Simulation Stand-alone und Co-Simulation Tool FMUs für Windows, Linux und MacOS. Die FMUs entsprechen der Revision 2.0 des FMI-Standards und können kostenlos verteilt werden.
DSHplus Co-Simulation Stand-alone FMUs sind verfügbar für:
- Windows 32 bit
- Windows 64 bit
- Linux 64 bit
- macOS 64 bit
DSHplus co-simulation tool FMUs sind verfügbar für:
- Windows 32 bit
- Windows 64 bit
Zusätzliche Informationen
DSHplus schließt Modell-, Parameter- und Kennfelddateien sowie zielspezifisch vorkompilierte Binärdateien (Solver, Parameterbehandlung usw.) in das Zip-Archiv der FMUs ein. Optional kann auch das DSHplus-Modell, aus dem die FMU generiert wird, der FMU hinzugefügt werden. Für Windows-basierte Systeme werden die FMUs gebrauchsfertig kompiliert. Die Nutzung der FMU erfordert keine Laufzeitlizenz.
Für Linux- und MacOS-Ziele muss die FMU auf dem Zielsystem kompiliert werden. Der DSHplus-FMU-Export erzeugt alle notwendigen Build-Skripte.
Abhängig vom gewählten Co-Simulationsszenario und der Fähigkeit des importierenden FMI-Masters bieten DSHplus-FMUs zusätzliche Funktionalität:
- Modellparameter einer DSHplus-FMU können vor dem Simulationslauf geändert werden.
- Eine DSHplus-FMU kann entweder durch einen Solver mit fester Schrittweite oder durch einen Solver mit variabler Schrittweite gelöst werden. Der Wrapper einer DSHplus-FMU kümmert sich um die Zeitsynchronisation der Slave-FMU mit dem nächsten Makro-Zeitschritt des Masters.
- In einem sogenannten Gauß-Seidel-Co-Simulationsschema fungiert das Programm mit der größeren Zeitschrittweite als Master. Die Modelle laufen in einer sequentiellen Reihenfolge ab, wobei die Eingabewerte des Masters interpoliert werden, um für die Eingaben des Slaves verwendet zu werden. Der Wrapper einer DSHplus-FMU kümmert sich automatisch um die erforderliche Dateninterpolation.
FMU Import
Die Fähigkeit, FMUs zu importieren, macht DSHplus zu einem vollständigen Co-Simulations-Master. Derzeit unterstützt DSHplus den Import von Co-Simulations-FMUs gemäß Standard 2.0.
Als Co-Simulations-Master ermöglicht es DSHplus dem Benutzer, komplexe zusammengesetzte Modelle zu entwerfen, die aus einer Mischung aus mehreren FMUs und DSHplus-Komponentenmodellen bestehen. DSHplus orchestriert die FMUs des Verbundmodells entweder in einer sequentiellen (Gauß-Seidel-Schema) oder in einer parallelen (Jacobi-Schema) Co-Simulations-Konfiguration. Dazu verwendet der Wrapper des DSHplus-FMU-Masters die neu entwickelte DSHplus-Threadpool-Funktionalität, die die Parallelisierung der Berechnung direkt auf der Ebene des Simulationsmodells ermöglicht.
Ein DSHplus-Verbundmodell kann als DSHplus-Calc-Modell für die Einzelberechnung auf einer lokalen Workstation oder für die Verwendung auf einem Multi-Core-Server (HPC-Anwendung) exportiert werden, unabhängig davon, ob die sequentielle oder die parallele Co-Simulations-Konfiguration gewählt wurde. Darüber hinaus ist es auch möglich ein DSHplus-Verbundmodell als Co-Simulations-FMU zu exportieren, so dass der Benutzer eine sogenannte Matryoshka-FMU erstellen kann.
Zusätzliche Informationen:
- Der Benutzer hat die Wahl, die FMU relativ zum Ort des DSHplus-FMU-Simulationsmodells zu platzieren oder einen absoluten Pfad zuzuweisen.
- In einigen Anwendungsszenarien kann es möglich sein, dass eine Slave-FMU mit einer größeren Zeitschrittweite laufen kann als der Co-Simulationsmaster. Typische Beispiele sind einfache mechanische FMUs oder FMUs, die digitale Regleralgorithmen enthalten. Der DSHplus-FMU-Wrapper kann solche FMUs mit einer benutzerdefinierten Aktualisierungsrate aufrufen. Zwischen den Aktualisierungszeitpunkten können die Ausgangswerte der FMUs konstant gehalten oder extrapoliert werden.
- Die Namen der Ein- und Ausgänge der FMU werden im DSHplus Meldungsfenster aufgelistet.
- Die Möglichkeit, die Parameter der FMU zu bearbeiten, ist noch nicht verfügbar, wird aber bald folgen.