Create a model that contains variant blocks. For example, see Variant Subsystems that contains a Variant Subsystem
block (Controller
).
Define variant control variables that determine the condition under which a variant choice is active.
Right-click the variant block and click Block Parameters. The Block Parameters dialog box for the variant block opens.
To choose the active Variant based on the evaluation of the
Variant conditions, use the
Expression
mode else select
Label
mode. When you select the
Variant control mode as
Label
, the Label mode
active choice option is available. In
Label
mode, Variant control need not be
created in the global workspace. You can select an active
Variant choice from Label mode active
choice options.
Use the options available on the Block Parameter dialog box to add variant controls and its corresponding variant condition.
A sample screenshot for Expression
mode:
A sample screenshot for Label
mode:
Note
The variables used to specify the variant control and variant condition must be defined in the global workspace, model workspace, mask workspace or data dictionary for the model.
Specify a default variant condition to be used when there is no active variant choice. Use the Variant control dropdown menu to specify the default.
To activate a variant choice, type the variant choice in MATLAB® command window. For example, type VSS_MODE =
2
.
To simulate the model, on the toolstrip, click Run. The model simulates for the specified active choice.
Modify the active choice and simulate the model again, if necessary.
Generate code for the variants model with preprocessor conditionals.
Note
You must have an Embedded Coder® license to generate code.
In the Block Parameters dialog box, from the Variant
activation time list, select code
compile
.
Open the Subsystem Block Parameters dialog boxes. Select the Treat as atomic unit parameter.
In the Code Generation section of
Configuration Parameters dialog box, specify the System
target file as ert.tlc
.
In Model Explorer, define the variables used to specify the
variant choice as a MATLAB variable or as a Simulink.Parameter
.
The data type of the Simulink.Parameter
can be of
type Integer
, Boolean
, or
Enumerated
and the storage class can be
either importedDefine(Custom)
,
Define(Custom)
, or
CompilerFlag
.
For the variants that are defined in the global workspace, export the control variables to a MAT-file. For example, type the following in the MATLAB command window:
save <MAT-File Name> <Variable Name>
PostLoadCallback > load <MAT-File Name>
Note
To update or refresh active models that contain Variant Subsystem blocks, on the Modeling tab, click Update Model (Ctrl + D) in Simulink®.