Simulink.Variant class
Package: Simulink
Specify conditions that control variant selection
Description
An object of the Simulink.Variant
class represents
a conditional expression called a variant control. The object allows
you to specify a Boolean expression that activates a specific variant
choice when it evaluates to true
.
A variant control comprises one or more variant control variables,
specified using MATLAB® variables or Simulink.Parameter
objects.
You specify variant controls for each variant choice represented
in a Variant Subsystem or Model Variant block.
For a given Variant Subsystem or Model Variant block,
only one variant control can evaluate to true
at
a time. When a variant control evaluates to true
, Simulink® activates
the variant choice that corresponds to that variant control.
Construction
creates
a variant control.variantControl
= Simulink.Variant(conditionExpression
)
Properties
Examples
Create Variant Controls Using MATLAB Variables
Use MATLAB variables when you want to simulate the model but are not considering code generation.
Create MATLAB variables with scalar literal values.
Fuel = 3; Emission = 1; Ratio = 3;
Develop conditional expressions using the variables.
Variant1 = Simulink.Variant('Fuel==1 && Emission==2'); Variant2 = Simulink.Variant('(Fuel==2 || Emission==1) && Ratio==2'); Variant3 = Simulink.Variant('Fuel==3 || Ratio==4');
Create Variant Controls Using Simulink.Parameter
Objects
If you want to generate preprocessor conditionals for code generation, use
Simulink.Parameter
objects.
Create variant Simulink.Parameter
objects
with scalar literal values.
Fuel = Simulink.Parameter(3); Emission = Simulink.Parameter(1); Ratio = Simulink.Parameter(3);
Specify the custom storage class for these objects as ImportedDefine
so
that the values are specified by an external header file.
Other valid values for the custom storage class are Define
and
CompilerFlag
Note
If you generate code with
startup
activation time,
specify the supported custom storage class for the
objects. For more information on built-in and
custom storage classes supported with
startup
activation time see
Storage Classes for Different Variant Activation Times.
.
Fuel.CoderInfo.StorageClass = 'Custom'; Fuel.CoderInfo.CustomStorageClass = 'ImportedDefine'; Emission.CoderInfo.StorageClass = 'Custom'; Emission.CoderInfo.CustomStorageClass = 'ImportedDefine'; Ratio.CoderInfo.StorageClass = 'Custom'; Ratio.CoderInfo.CustomStorageClass = 'ImportedDefine';
Develop conditional expressions using the variables and create variant controls.
Variant1 = Simulink.Variant('Fuel==1 && Emission==2'); Variant2 = Simulink.Variant('(Fuel==2 || Emission==1) && Ratio==2'); Variant3 = Simulink.Variant('Fuel==3 || Ratio==4');