Functional Mockup Interface (FMI) is a standard for exchanging dynamic models between simulation tools. In this standard, an FMU or Functional Mockup Unit is the unit of exchange, i.e., the model that implements the FMI interface, its binaries or source code and a file that describes the capabilities of the FMI standard as well as information on the model such as the input and output variables. Version 2.0 of the standard defines two ways of exporting models to be used by tools that can understand the FMI interface:
- Model Exchange: equations and events are exported so that a third party can solve them using a global integrator. This part of the standard is not supported by EcosimPro or PROOSIS.
- Co-simulation: The model is exported as a black box that has a series of inputs and outputs and its own integrator able to synch with a master in charge of managing the simulation and exchanging data among the different FMUs. This part of the standard is the one supported by both EcosimPro and PROOSIS.
EcosimPro 5.6 and PROOSIS 3.8 introduced the ability to export models following the “FMI 2.0 for Co-simulation” standard, which lets any use model in EcosimPro and send it for use by third-party tools such as Matlab-Symulink, Dymola, ANSYS, Simulation X, AMESim, etc.
What’s new to EcosimPro 5.10 and PROOSIS 3.10 is the ability to use FMI 2.0 models for co-simulation that are already generated using EcosimPro 5.6 or greater, PROOSIS 3.8 or greater or any other tool able to export models with the FMI 2.0 interface for co-simulation (AMESim, ANSYS, Dymola, Simulation X, etc.). This new feature can be used to complete a co-simulation diagram much like the one below using PROOSIS or EcosimPro as master simulators:
Generating an FMU in EcosimPro or PROOSIS entails creating a model, generating a simple experiment in which to integrate until the next communication interval (CINT), and then generating a deck with the FMI 2.0 co-simulation interface, as shown in the screen shot below:
The deck creation wizard also lets you choose the variables that will be FMU inputs and outputs. Once the wizard is done, it will have created an FMU ready to send to a third party:
To control an FMU from EcosimPro and PROOSIS, they both include the COMM_FMI library to create components that interact with the FMU and to use them subsequently in other, more complex models or create power co-simulation experiments written in EL, such as the following experiment that load four FMUs containing a turbojet model and are simulated in parallel:
For more details on how to generate FMUs or use FMUs with EcosimPro or PROOSIS, we encourage you to read the chapter on FMI in the EcosimPro and PROOSIS manual.