Loading AI tools
From Wikipedia, the free encyclopedia
The Functional Mock-up Interface (or FMI) defines a standardized interface to be used in computer simulations to develop complex cyber-physical systems.
Abbreviation | FMI |
---|---|
Status | Published |
Year started | 2010 |
Latest version | 3.0[1] May 11, 2022 |
Organization | Modelica Association Project (MAP) |
Related standards | Co-simulation |
Domain | Computer simulation |
License | CC BY-SA-3.0 |
Website | FMI website |
The vision of FMI is to support this approach: if the real product is to be assembled from a wide range of parts interacting in complex ways, each controlled by a complex set of physical laws, then it should be possible to create a virtual product that can be assembled from a set of models that each represent a combination of parts, each a model of the physical laws as well as a model of the control systems (using electronics, hydraulics, and digital software) assembled digitally. The FMI standard thus provides the means for model based development of systems and is used for example for designing functions that are driven by electronic devices inside vehicles (e.g. ESP controllers, active safety systems, combustion controllers). Activities from systems modelling, simulation, validation and test can be covered with the FMI based approach.
To create the FMI standard, a large number of software companies and research centers have worked in a cooperation project established through a European consortium that has been conducted by Dassault Systèmes under the name of MODELISAR. The MODELISAR project started in 2008 to define the FMI specifications, deliver technology studies, prove the FMI concepts through use cases elaborated by the consortium partners and enable tool vendors to build advanced prototypes or in some cases even products. The development of the FMI specifications was coordinated by Daimler AG. After the end of the MODELISAR project in 2011, FMI is managed and developed as a Modelica Association Project (MAP).
The four required FMI aspects of creating models capable of being assembled have been covered in Modelisar project:
In practice, the FMI implementation by a software modelling tool enables the creation of a simulation model that can be interconnected or the creation of a software library called FMU (Functional Mock-up Unit).[2]
The typical FMI approach is described in the following stages:
The FMI specifications are distributed under open source licenses:
Each FMU (Functional Mock-up Unit) is distributed in a zip file with the extension ".fmu" which contains:[2]
Below is an example of an FMI model description issued from 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>
FMI is often compared to Simulink S-Functions since both technologies can be used to integrate third-party tools together. S-Functions are used to specify a computer language description of a dynamic system. They are compiled as MEX-files that are dynamically linked into MATLAB when needed. S-Functions use a calling syntax that interacts with Simulink’s equation solvers. This interaction is similar to the interaction that takes place between built-in Simulink blocks and the solvers.[3]
FMI proponents explain that FMI models have several advantages over Simulink S-Functions:[4]
There are also several limitations cited when using FMI/FMU:[5]
Abbreviation | SSP |
---|---|
Status | Published |
Latest version | 1.0[6] |
Organization | Modelica Association |
Related standards | Co-simulation |
Domain | Computer simulation |
License | CC BY-SA-3.0 |
Website | SSP website |
System Structure and Parameterization (SSP)[7] is a companion standard to FMI that defines a standardized, open file format to describe complex, hierarchical (technical) systems, that can be simulated. An SSP file contains definitions for system architecture, the interfaces of the system elements, and their connections and parameterization. The aim of SSP is to simplify the exchange and integration of system elements that are used in the distributed development of a system to be simulated using a wide variety of tools. [8]
SSP is being developed as a project of the Modelica Association and is based on the FMI specification. FMI enables the exchange of individual simulation components, while SSP enables the exchange of complete simulation systems, their variants and parameterization. The simulation components of a simulation system described in SSP can also be independent of FMI and map to other implementations.
SSP is extensible to support specific requirements or domain-specific extensions: e.g. OSI, documentation of requirements, traceability or process steps, etc. SSP is open with regard to the component formats. Although it was based on FMI, it can also be used with components specifications of any other format.
In May 2014, the project group Smart Systems Engineering (SmartSE) of the ProSTEP iViP Association published its Recommendation PSI 11 for the cross-company behavior model exchange.[9] FMI thereby is the technological basis. The PSI 11 specifies interaction scenarios, use cases, a reference process and templates, which thereby could ease the industrial application. End of 2016 the group published a movie, which should highlight the industrial benefits.[10]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.