FMI - Functional Mock-Up Interface

The Functional Mock-up Interface (FMI) is an open standard for the exchange and co-simulation of dynamic models between different software tools. It defines a common interface for models packaged as Functional Mock-up Units (FMUs) - self-contained zip files that include model equations, data, and binaries. FMI enables seamless model sharing, tool interoperability, and consistent simulation workflows across development environments.

🌐  FMI Standard: https://fmi-standard.org/

 

Find some general information about FMI in the below wiki page.

Develop your self-awareness by following 🎓 FMI Tutorials.

Discover the 🐍 FMPy python package to handle FMUs.

 

Applications

FMIs applications are many:

  • Exchange of physical models between engineering teams (can be black box, encrypted)
    • For system integration
    • For control law design
  • Hardware-In-the-Loop (HIL) testing: the FMU can be recompiled on a specific target platform (HIL platform, raspberry pi...)
    • Training simulator
    • Verification & Validation
    • Virtual Commissioning
    • ...
  • Communication bridge between software when doing co-simulation (the FMU can be acting purely as a communication box)
  • ...

 

FMI 3.0

Dymola implements several new features of FMI 3.0, improving the usage fo FMUs, such as:

  • Co-Simulation: introduces early return, event mode, intermediate update and variable step size communication
  • Array variables: better handling of array signals and variable-size parameter arrays
  • Input interpolation: smoothing of inputs (embedded in the FMU) allows the integrator to continue the simulation without any reset
  • Source code FMU import
  • Terminals and Icons: help the user to build consistent systems from FMUs and render the systems more intuitively with better representation of structured terminals (for instance busses and physical connectors) in a special XML file.

 

Model Exchange VS Co-Simulation

Model Exchange

Equations of the model are exchanged without the solver which can be used by other simulation tools.

When to consider Model Exchange?

  • No special solvers required
  • Online/ Offline Simulation
  • Embedded control systems on microprocessors

 

Co-Simulation

Equations of the model are exchanged with the solver. Data is exchanged and controlled by a master algorithm.

When to consider Co-Simulation?

  • Specific authoring tool solvers are required
  • Decoupling of models
  • Use of advanced master algorithms

 

FMI Coverage within Dassault Systemes

SolutionsFMU ExportFMU Import
Co-SimulationModel ExchangeCo-SimulationModel Exchange
Dymola Standard, Dymola Behavior ModelingOK OK OK OK
Systems Simulation Designer  OK OK
CATIA Magic  OK OK
Control BuildOK OK OK OK
StimulusOK  OK OK
Autosar BuilderOK OK   
Process ComposerOK   OK
Results AnalyticsOK OK   
Abaqus, PowerFlow  OK  
SIMPACKOK  OK OK