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.1 was released on July 10, 2017.
Version 1.0 was released on Jan. 26, 2010.

Complete Package 1.0.1 Specification Only 1.0.1 Complete Package 1.0 Specification Only 1.0

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.1 was released on July 10, 2017.
Version 1.0 was released on Oct. 12, 2010.

Complete Package 1.0.1 Specification Only 1.0.1 Complete Package 1.0 Specification Only 1.0

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 compliance of an FMU 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. Sources are now stored on GitHub. Note that this version supports both FMI 1.0 and 2.0 specifications.

CSV Compare

CSV Compare, provided by the Modelica Association, is a C# implementation of CSV file comparator and syntax checker (with limited diagnostics). The sources and pre-compiled binaries are available on GitHub.

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. Download these Test FMUs.

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 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. The FMU SDK 2.0.3 for Windows 32 and 64 bit (provided by QTronic): fmusdk.zip. The FMU SDK 1.0.2 for Linux or Mac OS X (adapted from Linux version by Christopher Brooks): cxbrooks/fmusdk.

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: www.fmi-library.org.