Das Functional Mock-up Interface (FMI) definiert eine standardisierte Schnittstelle, mit deren Hilfe verschiedene Simulationssoftware gekoppelt werden können.
Beschreibung
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Angaben ohne ausreichenden Beleg könnten demnächst entfernt werden. Bitte hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst.
Die Idee, die hinter FMI steckt, ist folgende: Wenn das reale Produkt aus einer Vielzahl von Komponenten aufgebaut ist, die auf komplexe Weise interagieren und von einer Reihe komplexer physikalischer Gesetze gesteuert werden, dann sollte es auch möglich sein, ein virtuelles Produkt zu erstellen, bestehend aus einer Anzahl von verschiedenen physikalischen (Software-)Modellen.
Ein Beispielmodell anhand eines Fahrzeugs könnte wie folgt aussehen:
Software A liefert den Motor
Software B liefert das Getriebe
Software C liefert die Kontrollelemente
Software D liefert …
Durch FMI lassen sich diese Modelle unterschiedlicher Software einfach koppeln und zu einem Gesamtmodell zusammensetzen.
Zur Erstellung des FMI-Standards hat eine große Anzahl von Software-Unternehmen und Forschungszentren in einem Kooperationsprojekt im Rahmen eines europäischen Konsortiums, das von Dassault Systèmes unter dem Namen MODELISAR durchgeführt wurde, zusammengearbeitet. Das MODELISAR-Projekt begann im Jahr 2008 mit der Definition der FMI-Spezifikationen, lieferte Technologiestudien, bewies das FMI-Konzept durch Use Cases, die von Konsortiumspartnern ausgearbeitet wurden, und ermöglichte Tool-Anbietern die Erstellung fortgeschrittener Prototypen oder in einigen Fällen sogar marktreife Produkte.
Die vier erforderlichen Aspekte zur Erstellung FMI-kompatibler Modelle wurden im Modelisar-Projekt wie folgt definiert:
FMI for model exchange,
FMI for co-simulation,
FMI for applications,
FMI for PLM (Integration von Modellen und den zugehörigen Daten in Produkt-Lebenszyklus-Management).
In der Praxis erlaubt die Implementierung von FMI mithilfe eines Software-Modellierungs-Tools die Erstellung von Simulationsmodellen, die miteinander gekoppelt werden können. Eine weitere Möglichkeit bietet die Erstellung einer Software-Bibliothek namens FMU (Functional Mock-up Unit).
Lizenz
Die FMI-Spezifikationen werden als Open-Source-Lizenzen zur Verfügung gestellt:
Die Spezifikationen sind unter CC-BY-SA (Creative Commons Attribution-Share Alike 4.0 Unported) lizenziert
Die C-Header- und XML-Schema-Dateien sind unter der BSD-Lizenz[2] verfügbar.
Architektur
Jedes FMU-Modell (FMU = functional mock-up unit) wird als .zip-Datei mit der Erweiterung „.fmu“ zur Verfügung gestellt, die Folgendes enthält:[3]
eine XML-Datei, die unter anderem die Definition der Variablen beschreibt, die von der FMU genutzt werden;
alle Formeln, die in einem Modell genutzt werden (definiert als C-Funktionen);
optionale weitere Daten wie Parametertabellen, die Benutzeroberfläche, Dokumentation, die von dem Modell benötigt werden etc.
Beispiel
Hier ein Beispiel einer FMI-Modelbeschreibung in Modelica:
<?xml version="1.0" encoding="UTF8"?><fmiModelDescriptionfmiVersion="1.0"modelName="ModelicaExample"modelIdentifier="ModelicaExample_Friction"...<UnitDefinitions><BaseUnitunit="rad"><DisplayUnitDefinitiondisplayUnit="deg"gain="23.26"/></BaseUnit></UnitDefinitions><TypeDefinitions><Typename="Modelica.SIunits.AngularVelocity"><RealTypequantity="AngularVelocity"unit="rad/s"/></Type></TypeDefinitions><ModelVariables><ScalarVariablename="inertia1.J"valueReference="16777217"description="Moment of inertia"variability="parameter"><RealdeclaredType="Modelica.SIunits.Torque"start="1"/></ScalarVariable>
...
</ModelVariables></fmiModelDescription>
Software
FMI wird von folgender Software unterstützt:
Adams – High end multibody dynamics simulation software from MSC Software
AMESim – Simulation software for the modeling and analysis of multi-domain systems from Siemens
FMI Add-In for Excel – Batch simulation of FMUs in Microsoft Excel
FMI Library – C library for importing FMUs in custom applications
FMI Bench – FMI and SSP-based Integration Platform from PMSF[8]
FMU compliance checker – Software for verifying FMI standard compliance of FMUs
FMU Trust Centre – cryptographic protection and signature of models including their safe PLM storage; secure authentication and authorization for protected (co-)simulation
GT-SUITE – Multi-Physics Simulation Platform for Powertrain and Vehicle Systems
Hopsan – Distributed system simulation tool using the TLM method
ICOS Independent Co-Simulation – independent co-simulation environment from Virtual Vehicle Research Center
JModelica.org – Open source Modelica environment from Modelon
LabVIEW – Graphical programming environment for measurement, test, and control systems from National Instruments
MapleSim – via the MapleSim Connector for FMI from Maplesoft
MasterSim – Open-source reference implementation of an FMI Co-Simulation master supporting version 2.0 rollback functionality (webpage/project page)
Matlab – via FMI Toolbox from Modelon or via the FMU Export from Simulink from Dassault Systèmes or via the (free) Simulink support package in Simulink 18B
Model.CONNECT – neutral model integration and co-simulation platform from AVL List GmbH
MWorks 2.5 – Modelica environment from Suzhou Tongyuan
NI VeriStand – Real-Time Testing and Simulation Software from National Instruments
OpenModelica – Open source Modelica environment from OSMC
OPTIMICA Studio – Modelica environment from Modelon
Simulink – via Dymola 7.4 using Real-Time Workshop
Simulink – via @Source
Simulink – via FMI Toolbox from Modelon
Simulink – als FMU-Target für den Simulink-Codegenerator[11]
TISC – Co-simulation environment from TLK-Thermo
TWT Co-Simulation Framework – Communication layer tool to flexibly plug together models for performing a co-simulation; front-end for set-up, monitoring and post-processing included
TWT Matlab/Simulink FMU Interface – FMI-compatible plug-and-play interface to Matlab/Simulink, available as an integrated block
VECU-BUILDER – Software tool from ETAS for creation and test of virtual ECUs
Vertex – Modelica environment from deltatheta
Virtual.Lab Motion – Virtual.Lab Motion is a high end multi body software from LMS International
xMOD – Heterogeneous model integration environment & virtual instrumentation and experimentation laboratory from IFPEN distributed by D2T.
Begleitende Standards und Empfehlungen
Die Projektgruppe Smart Systems Engineering (SmartSE) des ProSTEP iViP Vereins hat im Mai 2014 die Empfehlung PSI 11 zum unternehmensübergreifenden Austausch von Verhaltensmodellen herausgegeben.[12] FMI stellt dabei die technologische Basis dar. Die PSI 11 spezifiziert dazu Interaktionsszenarien, Anwendungsfälle, einen Referenzprozess sowie Templates, die die praktische Anwendung in der Industrie erleichtern sollen. Ende 2016 hat die Gruppe auch einen Film herausgegeben, der die Vorteile der FMI-Anwendung auf dieser Basis anschaulich erläutern soll.[13]
Die Modelica Association hat neben dem FMI Standard auch den SSP Standard[14] zum Austausch von verschalteten Simulationssystemen und deren Parametrierung veröffentlicht. Dieser baut auf FMI als Standard für atomare Komponenten auf. Ebenso hat die Modelica Association den DCP Standard[15] als standardisiertes Protokoll für verteilte Co-Simulation veröffentlicht, der insbesondere auch die verteilte Simulation von FMUs als eine Option unterstützt.