exportToFMU - Export Simulink model to functional mock-up unit (FMU) - MATLAB (original) (raw)

Export Simulink model to functional mock-up unit (FMU)

Since R2023b

Syntax

Description

exportToFMU([mdl](#mw%5F7fb93e8e-5091-4ddf-bbcb-ee4c7514747c), 'FMIVersion', [FMIVersion](#mw%5F00851564-ea27-489c-9cbf-bbf22c350905), 'FMUType', [FMUType](#mw%5Feadb4e38-0958-4575-9679-97dc152747c4)) exports mdl to mdl.fmu. The model solver type must befixed-step solver for a co-simulation FMU.

exportToFMU([mdl](#mw%5F7fb93e8e-5091-4ddf-bbcb-ee4c7514747c), 'FMIVersion', [FMIVersion](#mw%5F00851564-ea27-489c-9cbf-bbf22c350905), 'FMUType', [FMUType](#mw%5Feadb4e38-0958-4575-9679-97dc152747c4), [Name,Value](#namevaluepairarguments)) exports a model to a Functional Mock-Up Unit (FMU) using one or more Name, Value pair arguments.

Note

This function requires the FMU Builder for Simulink® support package.

example

Examples

collapse all

Export the model vdp to an FMU.

Open the model.

openExample('simulink_general/VanDerPolOscillatorExample') open_system('vdp')

Set the solver type of the model tofixed-step.

set_param('vdp', 'SolverType', 'Fixed-step')

Export the model to vdp.fmu

exportToFMU('vdp','FMIVersion','2.0','FMUType','CS')

Input Arguments

collapse all

Name of the model to be exported to an FMU, specified as a string.

Specify the FMI version of the exported FMU.

Data Types: char | string

Specify the type of the exported FMU. Specify CS for co-simulation FMU and ME for model exchange FMU.

Data Types: char | string

Name-Value Arguments

collapse all

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'CreateModelAfterGeneratingFMU','off'

Option to create model after export, specified as 'on' or'off'. This argument creates a model,mdl_harness.slx, that contains an FMU Co-Simulation block with the original model. Create this model to check the integrity of the exported FMU.

When set to 'off', no model is created.

Block icon or exported FMU image, character vector specified as one of these values:

Option to generate 32-bit DLL, specified as 'on' or'off'. Set the option to 'on' to support exporting Co-simulations of FMUs with 32-bit binaries. Only valid onwin64 platform with MSVC toolchain installed.

Option to export model to FMU with constant periodic clock. This is valid for cosimulation FMUs that have a fixed-step solver and are compatible with FMI 3.0 standards. The FMU will register unique discrete periodic sample rates and offsets specified in the Simulink root inport and outport blocks as constant periodic clocks for the generated FMU. The modelDescription.xml file will contain<Clock> elements within ModelVariables that defines the clock variable for each of the exported clock. These clock variables are registered with the corresponding input and output variables.

Option to export model to FMU with FMUState. This is valid for cosimulation FMUs that have a fixed-step solver and are compatible with FMI 2.0 and 3.0 standards. The canGetAndSetFMUState andcanSerializeFMUState flags inmodelDescription.xml are set to true when FMU state is enabled. This enables enhanced simulation control like fast restart, model operating point, and backward simulation stepping.

Option to generate multi-instantiable FMU compatible with FMI 2.0 and 3.0 standards for a model with fixed-step solver.

The canBeInstantiatedOnlyOncePerProcess flag inmodelDescription.xml is set to false when this argument is specified as on.

Choose if you want to generate Linux binary for the FMU on Windows using WSL 2.

Data Types: char | string

Option to save source code to FMU, specified as 'on' or'off'. Set to 'on' to package the source code in the source directory and documentation file, which recompiles the binary files in the documentation directory in the FMU. This option requires Simulink Coder™.

This option has the following limitations:

Save location for FMU, specified as a string or character vector. By default, the location is the current working folder.

Example: exportToFMU(model, 'FMIVersion','2.0','FMUType','CS', 'SaveDirectory', '/tmp/flightcontrol/')

Option to create to create a wrapper-archived project or harness model with dependencies, specified as 'off' or 'project'. Set to 'project' to enable this option.

Specify the names of parameters to be exported as a cell array of character vectors. Argument entry {} exports all the parameters while{''} exports no parameters. To export all the valid parameters, use the output of Simulink.fmuexport.GetExportableVariableList function.

Example: exportToFMU(model, 'FMIVersion','2.0','FMUType','CS', 'ExportedParameters', {''}) exports no parameters

Specify the exported names of the parameters specified usingExportedParameters as a cell array of character vectors. The length of the character vector should be the same as character vector specified forExportedParameters. If this value is not set, the exported parameters names are the same as the default names specified in the model.

Example: exportToFMU(model, 'FMIVersion','2.0','FMUType','CS', 'ExportedParameters', {'gain1'},'ExportedParameterNames',{'Gain_1'}) exports the parameter gain1 asGain_1

Specify the names of internal variables to be exported as a cell array of character vectors. Argument entry {} exports all the internal variables while {''} exports none. To export all the valid internal variables, use the output of Simulink.fmuexport.GetExportableVariableList function.

Example: exportToFMU(model, 'FMIVersion','2.0','FMUType','CS', 'ExportedInternals', {''}) exports no internal variables

Specify the exported names of the internal variables specified usingExportedInternals as a cell array of character vectors. The length of the character vector should be the same as character vector specified forExportedInternals. If this value is not set, the exported internal variable names are the same as the default names specified in the model.

Example: exportToFMU(model, 'FMIVersion','2.0','FMUType','CS', 'ExportedInternals', {'var1'},'ExportedInternalNames',{'Var_1'}) exports the internal variable var1 asVar_1

Specify the exported names of the root inports specified as a cell array of character vectors. The length of the character vector should be the same as the number of root input ports. If this value is not set, the exported input names are the same as the default names specified in the model.

Specify the exported names of the root outports specified as a cell array of character vectors. The length of the character vector should be the same as the number of root output ports. If this value is not set, the exported output names are the same as the default names specified in the model.

Enable automatic data type conversion of unsupported FMI data types for inputs, outputs, and internal variables.

Note

This is valid only when FMIVersion argument is set to2 or 2.0

Name of the generated FMU file, specified as a string. By default, the name of the FMU file is the same as the model name.

Example: exportToFMU('myModel', 'FMIVersion', '2.0', 'FMUType', 'ME', 'FMUName', 'myFMU_FMI2_ME');

Name of the archived project with harness model, specified as a string. This argument must be specified along with the 'ExportContent' argument. By default, the archived project is named modelName_fmu

Destination folder and files to be packaged, specified as a cell array.

Example: exportToFMU(model, 'Package', {'documentation/', {'/local/bouncingBall/index.html','/local/bouncingBall/siteFiles'},... 'resources',{'local/bouncingBall/resources/input.txt'}})

Version History

Introduced in R2023b

expand all

Export a Simulink model as a model exchange FMU that is compatible with FMI 3.0 standards.

To export your model as a model exchange FMU 3.0, in the exportToFMU function, set the FMUType argument to ME and theFMIVersion to 3.0.

These limitations apply: