Variant Control Mode in Variant Parameters - MATLAB & Simulink (original) (raw)

The components of a Simulink® model that contain variants are activated or deactivated based on the variant choice that you select.

Each variant choice in your model is associated with a variant control. Variant controls determine which variant choice is active. By changing the value of a variant control, you can switch the active variant choice. While each variant choice is associated with a variant control, only one variant control can evaluate totrue. When a variant control evaluates to true, Simulink activates the variant choice that corresponds to that variant control. For a simple example, see Introduction to Variant Controls.

Switch Between Choices Using Condition Expressions in Variant Parameters

In expression mode, Simulink chooses the active variant based on the evaluation of the variant conditions. When a condition expression evaluates to true, the corresponding variant choice becomes active. When a condition expression evaluates to false, the corresponding variant choice becomes inactive.

Note

You can simulate and generate code from the model containing a variant parameter with Variant control mode set toexpression mode. The generated code can contain active and inactive choices that are enclosed in preprocessor conditionals #if and #elif, or regular if conditions.

With expression type of variant control mode:

Use expression Type of Variant Controls in Variant Parameters

To specify the variant condition expressions in variant parameters, use the Simulink.VariantVariable object. Once you successfully create theSimulink.VariantVariable objects, you can modify them by using the methods described in Public Methods or from theVariantVariable dialog box. For more information, see Create a Simple Variant Parameter Model.

K1 = Simulink.VariantVariable('Choices', {'VSS_MODE == 1', 3.5, 'VSS_MODE == 2', 8.5})

Types of Variant Controls in expression Mode

In variant parameters, the expression type of variant controls can be:

Here, A and B are operands called as_variant control variables_. ==,~=, and && are operators in the condition expression. The condition expression can contain one or more such variant control variables and operators. For information on supported types and storage location of variant control variables, see Types of Variant Control Variables (Operands) in Variant Parameters and Storage Locations for Variant Control Variables (Operands) in Variant Parameters. For information on operators, see Types of Operators in Variant Parameters.

Types of Variant Control Variables (Operands) in Variant Parameters

In expression mode, you can specify the variant control variables as any of these types, from options to use while prototyping to options required for generating code from your model.

For list of all examples, see Use Variant Control Variables in Variant Parameters.

Storage Locations for Variant Control Variables (Operands) in Variant Parameters

You can define the variant control variables in different storage locations based on your requirement.

Note

All the variant control variables in a variant parameter must originate from the same storage location.

Storage Location Use for Storage Location Supported Types of Variant Control Variables (See Types of Variant Control Variables (Operands) in Variant Parameters) For More Information
Base workspace Store variables while you experiment with temporary models Simulink.VariantExpression, Simulink.Parameter, enumerated type, and Simulink.VariantControl Temporary Data: Base Workspace
Model workspace Permanently store data that is local to a modelTheSimulink.VariantVariable object and its associated objects such as the Simulink.VariantControl object, theSimulink.Parameter object used to set theSpecification property, and anySimulink.Parameter objects used as values of the variant parameter must be defined in the model workspace along with the parameter. Simulink.VariantExpression,Simulink.Parameter, enumerated type, andSimulink.VariantControl Model Workspaces
Data dictionary Permanently store global data, share data between models, and track changes made to data. Simulink.VariantExpression,Simulink.Parameter, enumerated type, andSimulink.VariantControl What Is a Data Dictionary?

For capabilities and advantages of each storage location, see Determine Where to Store Variables and Objects for Simulink Models.

Types of Operators in Variant Parameters

Variant condition expressions can contain MATLAB® operators, provided the expression evaluates to a boolean value. In variant parameters, the operators that you can use to form a variant condition expression are:

Evaluate Variant Condition Expressions at Different Variant Activation Times

In expression mode, you can specify if Simulink must evaluate condition expressions during model compile, simulation-loop, code compile, or model start up stage of simulation and code generation workflow using variant activation times. For information on stages of simulation and code generation, and supported variant activation times in expression mode, seeActivate Variant During Different Stages of Simulation and Code Generation Workflow.

Variant Activation Times for Different Variant Control Modes in Variant Parameters

This table explains the variant activation time supported for different variant control modes in variant parameters. For information on variant activation times, see Activate Variant During Different Stages of Simulation and Code Generation Workflow.

Variant control mode Variant activation time
update diagram update diagram analyze all choices code compile startup runtime
expression not supported
label not supported not supported
sim codegen switching not supported not supported

See Also

Topics