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 Functional Mock-up Interface (or FMI) defines a standardized interface to be used in computer simulations to develop complex cyber-physical systems.
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"?><fmiModelDescriptionfmiVersion="1.0"modelName="ModelicaExample"modelIdentifier="ModelicaExample_Friction"> ... <UnitDefinitions><BaseUnitunit="rad"><DisplayUnitDefinitiondisplayUnit="deg"gain="23.26"/></BaseUnit></UnitDefinitions><TypeDefinitions><Typename="Modelica.SIunits.AngularVelocity"><RealTypequantity="AngularVelocity"unit="rad/s"/></Type></TypeDefinitions><ModelVariables><ScalarVariablename="inertia1.J"valueReference="16777217"description="Moment of inertia"variability="parameter"><RealdeclaredType="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]
Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-oriented subcomponents. The free Modelica language is developed by the non-profit Modelica Association. The Modelica Association also develops the free Modelica Standard Library that contains about 1400 generic model components and 1200 functions in various domains, as of version 4.0.0.
Hopsan is a free simulation environment for fluid and mechatronic systems, developed at Linköping University. Although originally developed for simulation of fluid power systems, it has also been adopted for other domains such as electric power, flight dynamics, and vehicle dynamics. It uses bi-directional delay lines to connect different components.
OrCAD Systems Corporation was a software company that made OrCAD, a proprietary software tool suite used primarily for electronic design automation (EDA). The software is used mainly by electronic design engineers and electronic technicians to create electronic schematics, and perform mixed-signal simulation and electronic prints for manufacturing printed circuit boards (PCBs). OrCAD was taken over by Cadence Design Systems in 1999 and was integrated with Cadence Allegro in 2005.
In computer science, fault injection is a testing technique for understanding how computing systems behave when stressed in unusual ways. This can be achieved using physical- or software-based means, or using a hybrid approach. Widely studied physical fault injections include the application of high voltages, extreme temperatures and electromagnetic pulses on electronic components, such as computer memory and central processing units. By exposing components to conditions beyond their intended operating limits, computing systems can be coerced into mis-executing instructions and corrupting critical data.
Dymola is a commercial modeling and simulation environment based on the open Modelica modeling language.
MapleSim is a Modelica-based, multi-domain modeling and simulation tool developed by Maplesoft. MapleSim generates model equations, runs simulations, and performs analyses using the symbolic and numeric mathematical engine of Maple. Models are created by dragging-and-dropping components from a library into a central workspace, resulting in a model that represents the physical system in a graphical form. Maplesoft began development of MapleSim partly in response to a request from Toyota to produce physical modeling tools to aid in their new model-based development process.
SimulationX is a CAE software application running on Microsoft Windows for the physical simulation of technical systems. It is developed and sold by ESI Group.
CANape is a software tool from Vector Informatik. This development software, widely used by OEMs and ECU suppliers of automotive industries is used to calibrate algorithms in ECUs at runtime.
The ETAS Group is a German company which designs tools for the development of embedded systems for the automotive industry and other sectors of the embedded industry. ETAS is 100-percent subsidiary of Robert Bosch GmbH.
INCA is a measurement, calibration and diagnostic software published by ETAS. With its large installation base in the auto industry, this development software is deployed during all phases of the development of electronic control units (ECUs) and ECU software programs for measuring, calibration, diagnostics and programming.
20-sim is commercial modeling and simulation program for multi-domain dynamic systems, which is developed by Controllab. With 20-sim, models can be entered as equations, block diagrams, bond graphs and physical components. 20-sim is widely used for modeling complex multi-domain systems and for the development of control systems.
JModelica.org is a commercial software platform based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. The platform is maintained and developed by Modelon AB in collaboration with academic and industrial institutions, notably Lund University and the Lund Center for Control of Complex Systems (LCCC). The platform has been used in industrial projects with applications in robotics, vehicle systems, energy systems, CO2 separation and polyethylene production.
MODELISAR was an ITEA 2 European project aiming to improve the design of systems and of embedded software in vehicles. The MODELISAR goals were to:
Wolfram System Modeler, developed by Wolfram MathCore, is a platform for engineering as well as life-science modeling and simulation based on the Modelica language. It provides an interactive graphical modeling and simulation environment and a customizable set of component libraries.
dSPACE GmbH, located in Paderborn, Germany, is one of the world's leading providers of tools for developing electronic control units.
Simcenter Amesim is a commercial simulation software for the modeling and analysis of multi-domain systems. It is part of systems engineering domain and falls into the mechatronic engineering field.
Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.
Simantics System Dynamics is a ready-to-use system dynamics modelling and simulation software application for understanding different organizations, markets, and other complex systems and their dynamic behavior.
ECU-TEST is a software tool developed by TraceTronic GmbH, based in Dresden, Germany, for test and validation of embedded systems. Since the first release of ECU-TEST in 2003, the software is used as standard tool in the development of automotive ECUs and increasingly in the development of heavy machinery as well as in factory automation. The development of the software started within a research project on systematic testing of control units and laid the foundation for the spin-off of TraceTronic GmbH from TU Dresden. ECU-TEST aims at the specification, implementation, documentation, execution and assessment of test cases. Owing to various test automation methods, the tool ensures an efficient implementation of all necessary activities for the creation, execution and assessment of test cases.
OpenModelica is a free and open source environment based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. This software is actively developed by Open Source Modelica Consortium, a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project of RISE SICS East AB in collaboration with Linköping University.
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.