Functional Mock-up Interface: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
 
(147 intermediate revisions by 87 users not shown)
Line 1:
{{Short description|Computer simulation interface}}
{{Infobox standardref
| title = Functional Mock-up Interface
| status = Published
| year_started = 2010
| version = 13.0.2<ref>{{cite web
| url=https://fmi-standard.org/docs/3.0.2/
| organization = [[MODELISAR]]
| title=FMI Specification 3.0
| base_standards =
| publisher=github.com/modelica
| related_standards =
| date=2024-11-27
| abbreviation = FMI
| accessdate=2024-12-25}}</ref>
| ___domain = [[Computer simulation]]
| version_date = {{Start date and age|2024|11|27}}
| license = [[Creative Commons licenses|CC_BY_SA 3.0]]
| organization = [https://modelica.org/association/ Modelica Association Project (MAP)]
| website = [http://functional-mockup-interface.org/ FMI website]
| base_standards =
| related_standards = [[Co-simulation]]
| abbreviation = FMI
| ___domain = [[Computer simulation]]
| license = [[Creative Commons licenses|CC BY-SA-4.0]]
| website = [https://fmi-standard.org/ FMI website]
}}
 
The '''functionalFunctional mockMock-up interfaceInterface''' (or '''FMI''') defines a standardized [[Interface (computing)|interface]] to be used in [[computer simulation]]s to develop complex cyberphysical[[cyber-physical systemssystem]]s.
 
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 lawslaw]]s, then it should be possible to create a '''virtual product''' that can be assembled from a set of models that each representsrepresent a combination of parts, each a model of the physical laws as well as a model of the [[control systemssystem]]s (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). assembledActivities digitallyfrom systems modelling, simulation, validation and test can be covered with the FMI based approach.
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 ishas 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 [https://modelica.org/association/ Modelica Association Project (MAP)].
The [http://www.itea2.org/public/project_leaflets/MODELISAR_profile_oct-08.pdf '''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 FMI Standard provides three interface types for different aspects of models:
The development of the FMI specifications was coordinated by [[Daimler AG]].
 
The [http://www.modelisar.com/fmi.html '''FMI specifications'''] are distributed under open source licences:
* the specifications are licensed under CC-BY-SA (Creative Commons Attribution-Sharealike 3.0 Unported) [[Creative Commons licenses|CC_BY_SA 3.0]]
* the C-header and XML-schema files that accompany this document are available under the [http://www.opensource.org/licenses/bsd-license.html BSD] license with the extension that modifications must also be provided under the BSD license.
 
The four required FMI aspects of creating models capable of being assembled have been covered in in Modelisar project:
* FMI for model exchange,
* FMI for [[co -simulation]],
* FMI for applications,scheduled execution (since FMI 3.0)
* FMI for [[Product life cycle management (marketing)|PLM]] (integration of models and related data in product life-cycle management).
 
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)'''.
 
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).<ref name="modelica_Jan10">{{cite web| url=https://www.modelica.org/publications/newsletters/2010-1/index_html#item8| title=Functional Mockup Interface (FMI)| publisher=modelica.org| date=January 2010| quote=''On Jan. 26, version 1.0 of the open Functional Mockup Interface was released (FMI for model exchange 1.0). This interface was developed in the ITEA2 MODELISAR project to support the model exchange between modelling and simulation tools. The Modelisar project is coordinated by Dassault Systèmes. The FMI development has been organized by Daimler.''| accessdate=2011-12-22}}</ref>
<ref name="modelica_Jan10">{{cite web
| url=https://www.modelica.org/publications/newsletters/2010-1/index_html#item8
| title=Functional Mockup Interface (FMI)
| publisher=modelica.org
| date=January 2010
| quote=''On Jan. 26, version 1.0 of the open Functional Mockup Interface was released (FMI for model exchange 1.0). This interface was developed in the ITEA2 MODELISAR project to support the model exchange between modelling and simulation tools. The Modelisar project is coordinated by Dassault Systèmes. The FMI development has been organized by Daimler.''
| accessdate=2011-012-22}}</ref>
 
== The FMI approach ==
The typical FMI approach is described in the following stages:
* a modelling environment describes a product sub -system by differential, algebraic and discrete equations with time, state and step-events. These models can be large for usage in off-line or on-line simulation or can be used in embedded control systems;
* as an alternative, an engineering tool defines the controller code for controlling a vehicle system ;
* such tools generate and export the component in an FMU (Functional Mock-up Unit);
* an FMU can then be imported in another environment to be executed;
* several FMUs can – by this way – cooperate at runtime through a co-simulation environment, thanks to the FMI definitions of their interfaces.
 
==License==
The [https://www.fmi-standard.org/downloads FMI specifications] are distributed under open source licenses:
* the specifications are licensed under CC BY-SA (Creative Commons Attribution-Sharealike 4.0) [[Creative Commons licenses|CC BY-SA 4.0]]
* the C-header and XML-schema files that accompany this document are available under the [http://www.opensource.org/licenses/bsd-license.html BSD] license with the extension that modifications must also be provided under the BSD license.
 
==Architecture==
Each FMU (functionalFunctional mockMock-up unitUnit) model is distributed in a [[ZIP (file format)|zip file]] with the extension ".fmu" which contains:<ref name="modelica_Jan10"/>:
* an XML file containing among other things the definition of the variables used by the FMU;
* all the equations used by the model (defined as a set of [[C (programming language)|C]] functions);
Line 59 ⟶ 53:
 
==Example==
belowBelow is an example of an FMI model description issued from [[Modelica]].
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF8"?>
<fmiModelDescription
fmiVersion="1.0"
modelName="ModelicaExample"
modelIdentifier="ModelicaExample_Friction">
...
<UnitDefinitions>
Line 88 ⟶ 82:
</ModelVariables>
</fmiModelDescription>
</syntaxhighlight>
</source>
 
==Comparison to Simulink S-Functions==
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.<ref>{{cite web
FMI proponents explain that FMI models have several advantages over [[Simulink]] S-Functions<ref>{{cite web
| url=http://synchronicswww.inriawseas.frus/libe-library/execonferences/fetch.php2009/modelica-fmi-elmqvistrodos/SYSTEMS/SYSTEMS26.pdf
| title=Using Simulink S-Functions with Finite Difference Method Applied for Heat Exchangers
| title=Functional Mockup Interface – Overview
|author1=Stepan Ozana |author2=Martin Pies | work=Proceedings of the 13th WSEAS International Conference on SYSTEMS)
| author=Martin Otter, Hilding Elmqvist, Torsten Blochwitz, Jakob Mauss, Andreas Junghanns, Hans Olsson
| accessdate=2015-08-05}}</ref>
| publisher=http://synchronics.inria.fr ([[National Institute for Research in Computer Science and Control|INRIA]])
 
| accessdate=2011-01-23}}</ref>:
FMI proponents explain that FMI models have several advantages over Simulink S-Functions:<ref>{{cite web|url=http://synchronics.inria.fr/lib/exe/fetch.php/modelica-fmi-elmqvist.pdf |title=Functional Mockup Interface – Overview |author1=Martin Otter |author2=Hilding Elmqvist |author3=Torsten Blochwitz |author4=Jakob Mauss |author5=Andreas Junghanns |author6=Hans Olsson |work=synchronics.inria.fr |publisher=[[National Institute for Research in Computer Science and Control|INRIA]] |accessdate=2011-01-23 |url-status=dead |archiveurl=https://web.archive.org/web/20110720233637/http://synchronics.inria.fr/lib/exe/fetch.php/modelica-fmi-elmqvist.pdf |archivedate=July 20, 2011 }}</ref>
* S-Functions format is proprietary, whereas the FMI schema is licensed under a [[BSD licenses|BSD license]].
* The building blocks of S-Functions are much more complex than FMI, making it very difficult to integrate in simulators other than [[Simulink]] itself.
* Furthermore, the S-Functions format is specific to Simulink.
* S-Functions are not suited for [[embedded system]]s, due to the memory overhead of S-Functions.
 
{{Infobox standardref
==Tools support==
| title = System Structure and Parameterization
As of November 2011, FMI is supported on the following simulation frameworks<ref name="modelica_Jan10"/>:
| status = Published
See full, up-to-date list and details in [http://www.modelisar.com/tools.html FMI web pages].
| version = 2.0<ref>{{cite web
* AMESim – Modelica environment from LMS-Imagine
| url=https://ssp-standard.org/docs/2.0/
* ASIM – AUTOSAR Builder from Dassault Systèmes
| title=SSP Specification 2.0
* Atego Ace – Co-simulation environment with AUTOSAR and HIL support
| date=2024-12-20}}</ref>
* CATIA V6R2012 – Environment for Product Design and Innovation, including systems engineering tools based on Modelica, by Dassault Systèmes
| organization = [https://modelica.org/association/ Modelica Association Project (MAP)]
* Cybernetica CENIT - Industrial product for nonlinear Model Predictive Control (NMPC) from Cybernetica
| base_standards =
* Cybernetica ModelFit - Software for model verification, state and parameter estimation, using logged process data. By Cybernetica
| related_standards = [[Co-simulation]]
* Control Build – Environment for IEC 61131-3 control applications from Dassault Systèmes
| abbreviation = SSP
* CosiMate – Co-simulation Environment from ChiasTek
*| DSHplus___domain = Fluid power[[Computer simulation software from FLUIDON ]]
| license = [[Creative Commons licenses|CC BY-SA-4.0]]
* Dymola 7.4 – Modelica environment from Dassault Systèmes
| website = [http://ssp-standard.org/ SSP website]
* FMU Trust Centre - cryptographic protection and signature of models including their safe PLM storage; secure authentication and authorization for protected (co-)simulation
}}
* [http://qtronic.de/en/fmusdk.html/ FMU SDK] – FMU Software Development Kit from QTronic
 
* IPG CarMaker – via Modeling and Co-Simulation environment by Modelon
== System Structure and Parameterization (SSP) ==
* JModelica.org – Open source Modelica environment from Modelon
 
* MATLAB – via [http://www.modelon.com/products/fmi-toolbox-for-matlab/ FMI Toolbox] from Modelon
[[System Structure and Parameterization]] ('''SSP''')<ref name="ssp-standard">{{cite web
* Modelica Workshop (name change pending) – Modelica environment from Modelon
| title = SSP Standard Webpage
* MWorks 2.5 – Modelica environment from Suzhou Tongyuan
| publisher = Modelica Association Project SSP
* NI VeriStand – Real-Time Testing and Simulation Software from National Instruments
| date = 2023
* NI LabVIEW – Graphical programming environment for measurement, test, and control systems from National Instruments
| url = https://ssp-standard.org/
* OpenModelica – Open source Modelica environment from OSMC
|access-date=2023-05-11
* Python – via [http://www.jmodelica.org JModelica.org] from Modelon
}}</ref> 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
* [http://qtronic.de/en/silver.html/ Silver 2.0] – Virtual integration platform for Software in the Loop from QTronic
architecture, the interfaces of the system elements, and their connections and parameterization.
* SIMPACK 9 – High end multi-body simulation software from SIMPACK AG
The aim of SSP is to simplify the exchange and integration of system elements that are used in the
* SimulationX 3.4 – Modelica environment from ITI
distributed development of a system to be simulated using a wide variety of tools.
* Simulink – via Dymola 7.4 using Real-Time Workshop
<ref name="Hallqvist2021">{{cite web
* Simulink – via @Source
| title = Engineering Domain Interoperability Using the System Structureand Parameterization (SSP) Standard
* Simulink – via [http://www.modelon.com/products/fmi-toolbox-for-matlab/ FMI Toolbox] from Modelon
| publisher = Proc. 14th Modelica Conference
* TISC – Co-simulation environment from TLK-Thermo
| date = 2021
* TWT Co-Simulation Framework - Communication layer tool to flexibly plug together models for performing a co-simulation; front-end for set-up, monitoring and post-processing included
| url = https://ecp.ep.liu.se/index.php/modelica/article/view/180/140
* Vertex – Modelica environment from deltatheta
| doi = 10.3384/ecp2118137
* Virtual.Lab Motion - Virtual.Lab Motion is a high end multi body software from LMS International
| last1 = Hällqvist
* xMod - Heterogeneous model integration environment & virtual instrumentation and experimentation laboratory from IFP
| first1 = Robert
| last2 = Munjulury
| first2 = Raghu Chaitanya
| last3 = Braun
| first3 = Robert
| last4 = Eek
| first4 = Magnus
| last5 = Krus
| first5 = Petter }}</ref>
 
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.
 
== Accompanying standards and recommendations ==
== Application scenarios ==
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.<ref>[http://www.prostep.org/en/medialibrary/publications/recommendations-standards.html#c1077 ProSTEP iViP Recommendation PSI 11, Smart Systems Engineering, Behavior Model Exchange, V 1.0], May 2014.</ref> 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.<ref>[https://www.youtube.com/watch?v=A-3iIot0fO8&t=52s Benefits of utilizing FMI for realizing cross-company Systems Engineering], Status February 2017</ref>
''To be completed''
 
==See also==
* [[20-sim]]
* [[Modelica]]
* [[Simulink]]
Line 151 ⟶ 163:
==External links==
* [http://functional-mockup-interface.org/ FMI main site]
* [http://ssp-standard.org/ SSP main site]
* [http://synchronics.inria.fr/lib/exe/fetch.php/modelica-fmi-elmqvist.pdf FMI overview]
* [http://www.qtronic.de/en/fmusdk.html A free software development kit for FMU]
 
{{DEFAULTSORT:Functional Mock-Up Interface}}
[[Category:Scientific modeling]]
[[Category:Simulation software| ]]
 
[[Category:Simulation software]]
{{compu-stub}}