Functional Mock-up Interface

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Functional Mock-up Interface
Entwickler Modelica Association
Erscheinungsjahr 2010
Aktuelle Version 2.0
(Juli 2014)
Aktuelle Vorabversion -
(-)
Programmier­sprache C
Kategorie Bibliothek
Lizenz CC-BY-SA (XML-Dateien),BSD (C-Header)
http://functional-mockup-interface.org/ FMI website

Das Functional Mock-up Interface (oder FMI) definiert eine standardisierte Schnittstelle, mit deren Hilfe verschiedene Simulationssoftware gekoppelt werden können.

Beschreibung[Bearbeiten]

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 Beispielmodel 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[Bearbeiten]

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 verfügbar.

Architektur[Bearbeiten]

Jedes FMU-Modell (FMU = functional mock-up unit) wird als .zip-Datei mit der Erweiterung „.fmu“ zur Verfügung gestellt, die Folgendes enthält:[1]

  • 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[Bearbeiten]

Hier ein Beispiel einer FMI-Modelbeschreibung in Modelica:

<?xml version="1.0" encoding="UTF8"?>
<fmiModelDescription
  fmiVersion="1.0"
  modelName="ModelicaExample"
  modelIdentifier="ModelicaExample_Friction"
...
  <UnitDefinitions>
     <BaseUnit unit="rad">
        <DisplayUnitDefinition displayUnit="deg" gain="23.26"/>
     </BaseUnit>
  </UnitDefinitions>
  <TypeDefinitions>
     <Type name="Modelica.SIunits.AngularVelocity">
        <RealType quantity="AngularVelocity" unit="rad/s"/>
     </Type>
  </TypeDefinitions>
  <ModelVariables>
     <ScalarVariable
        name="inertia1.J"
        valueReference="16777217"
        description="Moment of inertia"
        variability="parameter">
        <Real declaredType="Modelica.SIunits.Torque" start="1"/>
     </ScalarVariable>
...
  </ModelVariables>
</fmiModelDescription>

Software[Bearbeiten]

FMI wird von folgender Software unterstützt:

  • AMESim – Simulation software for the modeling and analysis of multi-domain systems from LMS International
  • ASIM – AUTOSAR Builder from Dassault Systèmes
  • Adams – High end multibody dynamics simulation software from MSC Software
  • Atego Ace – Co-simulation environment with AUTOSAR and HIL support
  • CATIA V6R2012 – Environment for Product Design and Innovation, including systems engineering tools based on Modelica, by Dassault Systèmes
  • Cybernetica CENIT – Industrial product for nonlinear Model Predictive Control (NMPC) from Cybernetica
  • Cybernetica ModelFit – Software for model verification, state and parameter estimation, using logged process data. By Cybernetica
  • Control Build – Environment for IEC 61131-3 control applications from Dassault Systèmes
  • CosiMate – Co-simulation Environment from ChiasTek
  • DSHplus – Fluid power simulation software from FLUIDON
  • dSPACE VEOS® (Offline-Simulationsplattform von dSPACE)
  • Dymola 7.4 – Modelica environment from Dassault Systèmes
  • FMI Add-In for Excel – Batch simulation of FMUs in Microsoft Excel
  • FMU compliance checker – Software for verifying FMI standard compliance of FMUs
  • FMI Library – C library for importing FMUs in custom applications
  • FMU Trust Centre – cryptographic protection and signature of models including their safe PLM storage; secure authentication and authorization for protected (co-)simulation
  • FMU SDK – FMU Software Development Kit from QTronic
  • 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
  • CarMaker – Simulation software for virtual test driving from IPG Automotive
  • JModelica.org – Open source Modelica environment from Modelon
  • MapleSim – via the MapleSim Connector for FMI from Maplesoft
  • MATLAB – via FMI Toolbox from Modelon
  • OPTIMICA Studio – Modelica environment from Modelon
  • MWorks 2.5 – Modelica environment from Suzhou Tongyuan
  • NI VeriStand – Real-Time Testing and Simulation Software from National Instruments
  • LabVIEW – Graphical programming environment for measurement, test, and control systems from National Instruments
  • OpenModelica – Open source Modelica environment from OSMC
  • Python – via PyFMI from Modelon, also available as part of JModelica.org
  • Silver 2.0 – Virtual integration platform for Software in the Loop from QTronic
  • SIMPACK 9 – High end multi-body simulation software from SIMPACK AG
  • SimulationX 3.4 – Modelica environment from ITI
  • 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 [1]
  • 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
  • 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.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Martin Otter: Functional Mockup Interface (FMI). https://www.modelica.org.+Abgerufen am 3. März 2014.