Main Content

Import FMUs

Use the FMU block to import Functional Mockup Units (FMUs) into Simulink®.

The FMU block automatically selects the FMU mode based on the existing FMU you want to import:

  • Co-Simulation — Integrate FMUs that implement an FMI Co-Simulation interface. These FMUs can contain local solvers used for tool coupling.

  • Model Exchange — Integrate FMUs that implement an FMI model exchange interface. These FMUs do not contain local solvers. Instead, these FMUs inherit solvers from Simulink.

This block supports FMI versions 1.0, 2.0 and 3.0. For FMI version 2.0 and 3.0, if your FMU contains both Co-Simulation and Model Exchange elements, the block detects this state and prompts you to select the operation mode for the block.

You can use your FMU block as you do other Simulink blocks. The FMU block supports normal, rapid accelerator, and accelerator modes. Rapid accelerator mode is unsupported for FMU blocks with FMU logging.

This topic assumes that you provide a .fmu file.

FMU XML File Directives

The default parameter values derive from the corresponding parameter start value defined in the FMU ModelDescription.xml file. A block parameter value overwrites the initial value of the corresponding parameter defined in the FMU binary implementation.

Simulink interprets these FMU tags accordingly.

FMU TagSimulink

ScalarVariable has attributes set as follows:

  • causality="none" or causality="internal"

  • variability="parameter"

  • start value is defined

Interprets ScalarVariable element as block parameter

Real

Interprets block parameter as edit field

Integer

Interprets block parameter as edit field

Boolean

Interprets block parameter as check box

Enumeration

Interprets block parameter as drop-down list

String

Interprets as UTF-8 encoded string

The FMU block supports the following encoding formats for the model description XML file:

  • ISO-8859–1

  • UTF-8

  • UTF-16

Additional Support and Limitations

CapabilityFMI Version 3.0 SupportFMI Version 2.0 SupportFMI Version 1.0 Support

Save model operating point to base workspace

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true)

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true)

 

Fast restart

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.)

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.)

 

Simulation Stepper

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.)

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.)

 

Solver Jacobian

(FMU flags that it supports this feature by setting providesDirectionalDerivatives field in its model description XML to true.)

(FMU flags that it supports this feature by setting providesDirectionalDerivatives field in its model description XML to true.)

 

Linearize models

(FMU flags that it supports this feature by setting providesDirectionalDerivatives field in its model description XML to true.)

(FMU flags that it supports this feature by setting providesDirectionalDerivatives field in its model description XML to true.)

 

Declare parameter as tunable and tune it during simulation

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.)

(FMU flags that it supports this feature by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.)

 

For Each subsystem blocks

(Supported only when canBeInstantiatedOnlyOncePerProcess attribute is set to false in modelDescription.xml file)

(Supported only when canBeInstantiatedOnlyOncePerProcess attribute is set to false in modelDescription.xml file)

 

Parameters of type string

(Array of string type parameters are not supported)

Rapid accelerator mode

 

Software-in-the-loop (SIL) and processor-in-the-loop (PIL) modes

   

Code generation

 

Nested FMU export

 

Protected model export

 

Model coverage

   

Simulink Design Verifier™

   

Model reference in accelerator mode

 

Event Mode

  

Scheduled Execution Mode

   

Enumerated data type for inputs, outputs and parameters

 

Simulink supports stepping back and forth, tuning parameters in between, and saving states for the FMU Import block as long as the FMU itself supports these features. FMU flags that it supports these features by setting canGetAndSetFMUstate and canSerializeFMUstate fields in its model description XML to true.

FMU Import Examples

ExampleDescription

Import Co-Simulation FMU into Simulink

This model shows how to use the FMU block to load an FMU file that supports Co-Simulation mode.

Importing a Model Exchange FMU into Simulink

This model shows how to use the FMU block to load an FMU file that supports Model Exchange mode.

Simplify Interface for Structured Data with FMU Import Block

This model shows how to use bus signals and structure parameters in an FMU block that supports Model Exchange mode.

See Also

Related Topics

External Websites