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.
Examples
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
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
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:
'off'
– No block icon image.'snapshot'
– Use image of model as block icon.'filepath'
– Filepath of the image.
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:
- This feature utilizes
packNGo
function and is subject to its limitations. For a list of its limitations, see packNGo (MATLAB Coder). - This feature is not supported for models that contain an FMU block.
- This feature may pack operating system dependent code.
- This feature only supports C and C++ files. Source code dependencies to other file types are unsupported.
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
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:
- The option to treat each discrete rate as a separate task, enabled using
EnableMultiTasking
model configuration parameter, is not supported. - Models containing noninlined S-functions are not supported.
- Nested FMU generation is not supported.
- Protected models with variable-step solvers are not supported. The models must also have the
EnableFixedStepZeroCrossingDetection
configuration parameter turned on. - FMI clock export is not supported.
- Multi-instance FMUs are not supported.