Clear Filters
Clear Filters

How can I create nested FMUs with tunable parameters in Simulink?

17 views (last 30 days)
I am using MATLAB 2022b and am trying to export a nested FMU in Simulink. I want to create FMUs, import them into my model, then export that model as another FMU. I also want the end user, who might not use or have access to Simulink, to be able to tune parameters for any inner FMUs that I have.
Is there a way to do this workflow?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 16 Mar 2023
To do this workflow, follow these steps:
  1. Create the inner FMUs. To do this, create a Simulink model and determine which parameters you would like to let the user tune. Those parameters need to be defined in the Model Workspace as variables or Simulink Objects. Then, go to the Model Explorer, navigate to the Model Workspace, and set their "Argument" checkbox to true. This will allow it to be exported.
  2. To check that it will be exported, go to Save --> Export as Functional Mockup Unit (FMU). The parameter should appear with its defined name under the "Access the Parameters of the FMU" section. The Export checkbox needs to be set for it to work. You can now export the FMU. A .FMU file should be created in your directory.
  3. To create the top level model, create a new model and use the "FMU Import Block" to import the .FMU file that was just created.
  4. Create the top level and nested parameters. When the .FMU file is imported into the top level model, it will have a parameter in it with the value set to what it was in the original file. However, the top level model cannot directly access this parameter. Instead, go to the Model Explorer and create a new Simulink object or variable in the Model Workspace. Set the "Argument" checkbox to true.
  5. Link the top level and nested parameters. Go to the "FMU Import Block" and adjust the value of the nested parameter to the name of the variable that you just created. Now, the top level parameter is linked to the nested parameter.
  6. Follow the same steps to export the top level model as an FMU.
Attached are basic files to represent what this workflow might look like. "FMU_A" is the nested FMU and "TopLevel" is the top level Simulink model that can be exported.
Portions of this workflow can be done programmatically. Consult the following documentation pages to learn more about exporting FMUs:

More Answers (0)


Find more on Create Standalone FMU in Help Center and File Exchange


No tags entered yet.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!