Functional Mock-up Interface
Encyclopedia
The functional mock-up interface (or FMI) defines a standardized interface to be used in computer simulation
Computer simulation
A computer simulation, a computer model, or a computational model is a computer program, or network of computers, that attempts to simulate an abstract model of a particular system...

s to develop complex cyberphysical 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 represents a combination of parts, each a model of the physical laws as well as a model of the control systems (using electronics, hydraulics, 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 is conducted by Dassault Systèmes
Dassault Systemes
Dassault Systèmes S.A. is a leading company specializing in 3D and PLM software.Dassault Systèmes develops and markets PLM application software and services that support industrial processes and provide a 3D vision of the entire lifecycle of products from conception to maintenance to recycling...

 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.

The FMI specifications are distributed under open source licences:
  • the specifications are licensed under CC-BY-SA (Creative Commons Attribution-Sharealike 3.0 Unported) CC BY SA 3.0
    Creative Commons licenses
    Creative Commons licenses are several copyright licenses that allow the distribution of copyrighted works. The licenses differ by several combinations that condition the terms of distribution. They were initially released on December 16, 2002 by Creative Commons, a U.S...

  • the C-header and XML-schema files that accompany this document are available under the 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,
  • FMI for 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).

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.

Architecture

Each FMU (functional mock-up unit) model is distributed in a zip file
ZIP (file format)
Zip is a file format used for data compression and archiving. A zip file contains one or more files that have been compressed, to reduce file size, or stored as is...

 with the extension ".fmu" which contains:
  • 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
    C (programming language)
    C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

     functions);
  • optional other data, such as parameter tables, user interface, documentation which may be needed by the model.

Example

below is an example of an FMI model description issued from Modelica
Modelica
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 languageis...

.


fmiVersion="1.0"
modelName="ModelicaExample"
modelIdentifier="ModelicaExample_Friction"
...











name="inertia1.J"
valueReference="16777217"
description="Moment of inertia"
variability="parameter">


...



Comparison to Simulink

FMI proponents explain that FMI models have several advantages over Simulink
Simulink
Simulink, developed by MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment and...

 S-Functions:
  • S-Functions format is proprietary, whereas the FMI schema is licensed under a BSD license
    BSD licenses
    BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....

    .
  • The building blocks of S-Functions are much more complex than FMI, making it very difficult to integrate in simulators other than Simulink
    Simulink
    Simulink, developed by MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment and...

     itself.
  • Furthermore, the S-Functions format is specific to Simulink.
  • S-Functions are not suited for embedded system
    Embedded system
    An embedded system is a computer system designed for specific control functions within a larger system. often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal...

    s, due to the memory overhead of S-Functions.

Tools support

As of November 2011, FMI is supported on the following simulation frameworks:
See full, up-to-date list and details in FMI web pages.
  • AMESim – Modelica environment from LMS-Imagine
  • ASIM – AUTOSAR Builder from Dassault Systèmes
  • Atego Ace – Co-simulation environment with AUTOSAR and HIL support
  • CATIA V6R2012 – Environment for Product Design and Innovation, including systems engineering tools based on Modelica, by Dassault Systèmes
  • Cybernetica CENIT - Industrial product for nonlinear Model Predictive Control (NMPC) from Cybernetica
  • Cybernetica ModelFit - Software for model verification, state and parameter estimation, using logged process data. By Cybernetica
  • Control Build – Environment for IEC 61131-3 control applications from Dassault Systèmes
  • CosiMate – Co-simulation Environment from ChiasTek
  • DSHplus – Fluid power simulation software from FLUIDON
  • Dymola 7.4 – Modelica environment from Dassault Systèmes
  • FMU Trust Centre - cryptographic protection and signature of models including their safe PLM storage; secure authentication and authorization for protected (co-)simulation
  • FMU SDK – FMU Software Development Kit from QTronic
  • IPG CarMaker – via Modeling and Co-Simulation environment by Modelon
  • JModelica.org – Open source Modelica environment from Modelon
  • MATLAB – via FMI Toolbox from Modelon
  • Modelica Workshop (name change pending) – Modelica environment from Modelon
  • MWorks 2.5 – Modelica environment from Suzhou Tongyuan
  • NI VeriStand – Real-Time Testing and Simulation Software from National Instruments
  • NI LabVIEW – Graphical programming environment for measurement, test, and control systems from National Instruments
  • OpenModelica – Open source Modelica environment from OSMC
  • Python – via JModelica.org from Modelon
  • Silver 2.0 – Virtual integration platform for Software in the Loop from QTronic
  • SIMPACK 9 – High end multi-body simulation software from SIMPACK AG
  • SimulationX 3.4 – Modelica environment from ITI
  • Simulink – via Dymola 7.4 using Real-Time Workshop
  • Simulink – via @Source
  • Simulink – via FMI Toolbox from Modelon
  • TISC – Co-simulation environment from TLK-Thermo
  • 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
  • Vertex – Modelica environment from deltatheta
  • Virtual.Lab Motion - Virtual.Lab Motion is a high end multi body software from LMS International
  • xMod - Heterogeneous model integration environment & virtual instrumentation and experimentation laboratory from IFP

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK