FMI Version 2.0

FMI for Model Exchange and Co-Simulation

This is the second version of the Functional Mockup Interface standard (FMI). It is a major enhancement compared to FMI 1.0, where the FMI 1.0 Model Exchange and Co-Simulation standards have been merged, and many improvements have been incorporated, often due to practical experience when using the FMI 1.0 standards. New features include: Parameters can be changed during simulation, the complete FMU state can be saved, restored and serialized, directional derivatives with respect to states and inputs can be computed, the structure of the partial derivatives with respect to states and inputs can be given (to support large systems), algebraic loops over FMUs are now supported in all modes (initialization, event, continuous-time) for Model Exchange, allowing for example improved initialization.

Complete Package
Specification Only

Version 2.0 (2014-07-25)

FMI Specification FMI Standard on GitHub

Version 2.0.1 (unreleased)

FMI Version 1.0

FMI for Model Exchange

The intention is that a modelling environment can generate C-Code of a dynamic system model that can be utilized by other modelling and simulation environments. Models are described by differential, algebraic and discrete equations with time-, state- and step-events. The models to be treated by this interface can be large for usage in offline or online simulation or can be used in embedded control systems on micro-processors. It is possible to utilize several instances of a model and to connect models hierarchically together. A model is independent of the target simulator because it does not use a simulator specific header file as in other approaches. A model is distributed in one zip-file called FMU (Functional Mock-up Unit).

Complete Package 1.0.1
Specification Only 1.0.1

Version 1.0.1 (2017-07-10)


Complete Package 1.0
Specification Only 1.0

Version 1.0 (2010-01-26)

FMI for Co-Simulation

The intention is to provide an interface standard for coupling two or more simulation tools in a co-simulation environment. The data exchange between subsystems is restricted to discrete communication points. In the time between two communication points, the subsystems are solved independently from each other by their individual solver. Master algorithms control the data exchange between subsystems and the synchronization of all slave simulation solvers (slaves). All information about the slaves, which is relevant for the communication in the co-simulation environment is provided in a slave specific XML-file. In particular, this includes a set of capability flags to characterize the ability of the slave to support advanced master algorithms, e.g. the usage of variable communication step sizes, higher order signal extrapolation, or others.

Complete Package 1.0.1
Specification Only 1.0.1

Version 1.0.1 (2017-07-10)


Complete Package 1.0
Specification Only 1.0

Version 1.0 (2010-10-12)

Official FMI and FMU logos

The FMI and FMU logos and banner as a ZIP archive.

Terms and Conditions Download

Test FMUs

The FMI Cross-Check repository contains a large number of test FMUs provided by different vendors to test and improve the interoperability of FMU importing and exporting tools.

GitHub project

Example test cases for multiple connected FMI 2.0 Model Exchange FMUs are available on the Modelica SVN.

Free tools for checking FMUs

CSV Compare

A command line tool by the Modelica Association to compare time series from CSV files using an adjustable tolerance and generate HTML reports.

Download GitHub project

FMPy

A Python library by Dassault Systèmes to validate and simulate FMUs that has a graphical user interface, compiles C code FMUs and generates CMake projects for debugging.

Installation GitHub project

FMU Compliance Checker

A command line tool based on the FMI Library developed by Modelon AB to validate and execute FMUs.

Download GitHub project

Free libraries for FMU import and export

FMU SDK

A C library by QTronic to demonstrate basic import and export of FMUs. It contains various discrete and continuous models, a CMake configuration for compiling and zipping these models, an XML parser for parsing the model description of an FMU and a simple simulation program that runs a given FMU and outputs the result as CSV file.

Download GitHub project

FMI Library

A C library by Modelon to import FMUs into applications. It provides a C API to unzip FMUs, load the shared libraries (DLLs) contained in FMUs and parse the model description XML files.

Download