Main Content

Create a Simple Variant Model

1. Open this model that contains variant blocks. For example, see Implement Variations in Separate Hierarchy Using Variant Subsystems that contains a Variant Subsystem block (Controller).


2. Define variant control variables that determine the condition under which a variant choice is active.

a. Right-click the variant block and click Block Parameters. The Block Parameters dialog box for the variant block opens.

b. 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.

c. 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:

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.

3. Specify a default variant condition to be used when there is no active variant choice. Use the Variant control list to specify the default.

4. To activate a variant choice, type the variant choice in MATLAB® command window. For example, type VSS_MODE = 2.

5. To simulate the model, on the toolstrip, click Run. The model simulates for the specified active choice.


6. Modify the active choice and simulate the model again, if necessary.

7. Generate code for the variants model with preprocessor conditionals.

Note: You must have an Embedded Coder® license to generate code.

a. In the Block Parameters dialog box, from the Variant activation time list, select code compile.

b. Open the Subsystem Block Parameters dialog boxes. Select the Treat as atomic unit parameter.

c. In the Code Generation section of Configuration Parameters dialog box, specify the System target file as ert.tlc.

d. 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.

8. 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:

a. save <MAT-File Name> <Variable Name>

b. 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.