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.

Version 2.0 was released on July 25, 2014.

 Complete Package    Specification Only

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).

Version 1.0 was released on Jan. 26, 2010.

 Complete Package    Specification Only

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.

Version 1.0 was released on Oct. 12, 2010.

 Complete Package    Specification Only

Tools and resources officially provided by the FMI project

FMI and FMU Logos

New FMI and FMU logos are now available for download. Note: By downloading the logos you agree to abide by these Terms and Conditions.

FMU Compliance Checker

The FMU Compliance Checker is a free software provided by the Modelica Association, implemented by Modelon AB to check a given FMU's compliance with the FMI standard. The FMU Compliance Checker relies on the FMI Library for loading and interacting with FMUs. A wide and increasing range of problems are checked for and reported to the user. This is an excellent tool for developers creating FMUs or creating FMU export functionality in their tool.

  • Download the FMU Compliance Checker 2.0.1 here: Compliance Checker 2.0.1. Note that this version supports both FMI 1.0 and 2.0 specifications.

Tools and resources provided by 3rd parties

Please note: The FMI project is not responsible for the correct functionality or FMI standard compliancy of the listed 3rd party tools.

Test FMUs

To allow testing of import functionality, a growing number of Test FMUs is provided from different tool vendors that export FMUs from their tools.

FMU Software Development Kit for version 2.0

The FMU SDK is a free software development kit provided by QTronic to demonstrate basic use of Functional Mock-up Units (FMUs) as defined by the FMI Specification version 2.0 (July 25, 2014) and 1.0. The FMU SDK can also serve as starting point for developing applications that export or import FMUs.

The FMU SDK contains the C sources for various discrete and continuous FMU models, a batch file for compiling and zip'ing 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 the FMU SDK 2.0.3 for Windows 32 and 64 bit (provided by QTronic):
  • Download the FMU SDK 2.0.3 for Linux or Mac OS X (adapted by Christopher Brooks): cxbrooks/fmusdk2

FMI Library

FMI Library (FMIL), provided by Modelon, is a software package written in C that enables integration of Functional Mock-up Units (FMUs) import in applications. FMI Library is an independent open-source (BSD) implementation of the FMI open standard. The library provides a comprehensive C API for interacting with all parts of FMUs, including unzipping, loading of shared object files (DLLs) contained in FMUs, as well as parsing of XML model metadata files. FMI Library provides a proven and complete platform for developing FMI enabled applications and gives access to the technology used in several industrial FMI tools including the FMI Compliance Checker.

FMIL support FMI for Model Exchange 1.0, FMI For Co-simulation 1.0 and FMI 2.0.

For more information, visit