FMUs eigenen sich hervorragend, um großangelegte Simulationsstudien auf Rechenclustern durchzuführen. Da Rechencluster typischerweise mit Linux arbeiten, müssen auch die FMUs für Linux kompiliert sein. Wir zeigen, wie man mit Hilfe von Dymola cross-compilierte Linux-FMUs erzeugen kann.
Das Functional Mock-Up Interface (FMI) ist eine standardisierte Schnittstelle, die den Austausch von Modellen zwischen verschiedenen Simulationswerkzeugen ermöglicht. Functional Mock-Up Units (FMUs) sind kompilierte Modelle, die dem FMI-Standard entsprechen. Ein in Dymola erzeugtes Modell kann beispielsweise als FMU exportiert werden und in Simulink zum Test von Reglern genutzt werden.
FMUs liegen typischerweise in Form von kompiliertem („übersetztem“) Code vor¹. FMUs sind damit, ähnlich zu den bekannten Executables (.exe), ausführbare Programme, die an ein bestimmtes Betriebssystem gebunden sind. Eine in Windows kompilierte FMU kann nur in Windows und nicht in Linux ausgeführt werden. Linux würde die Windows-FMU nicht „verstehen“. Um mit Dymola eine Linux-FMU zu erzeugen, musste die FMU bisher in Linux erzeugt werden. Das heißt, dass eine Linux-Distribution und eine Linux-Version von Dymola erforderlich war.
Seit Version 2022 unterstützt Dymola die sogenannte Cross-Compilation. Die Cross-Compilation erlaubt es in Windows FMUs zu kompilieren, die sowohl in Windows als auch in Linux ausgeführt werden können. Das erhöht die Benutzerfreundlichkeit erheblich.
Auch wenn Dymola die Cross-Compilation seit Version 2022 nativ unterstützt, müssen vor der ersten Benutzung zusätzliche Programme installiert werden:
Wenn du anstelle der abgebildeten Nachricht eine Fehlmeldung bekommst, kann es sein, dass WSL keine Schreibrechte hat. Um WSL Schreibrechte zu gewähren, muss die wsl.conf-Datei bearbeitet werden:
Für weitere Informationen sei auf die Bedienungsanleitung von Dymola verwiesen.
Um eine Linux-FMU zu erstellen, muss im Export FMU Fenster (Simulatation\Translate\FMU) die Option Cross compile for Linux ausgewählt werden:
Wenn man die FMU anschließend öffnet (FMUs sind als .zip-Dateien verpackt), sieht man im binaries-Verzeichnis drei Ordner:
Daran erkennt man, dass die FMU für 32-bit und 64-bit-Windows (win32 und win64) sowie 64-bit-Linux (linux64) kompiliert wurde. Die FMU kann damit in Windows sowie in 64-bit-Linux ausgeführt werden.
¹ Ausnahme: Sogenannte Source-Code-FMUs. Source-Code-FMUs werden nicht kompiliert, sondern liegen in Form von C-Code vor. Source-Code-FMUs sind damit nicht an ein Betriebssystem gebunden.