Simulink.Variant class
Package:金宝app
Specify conditions that control variant selection
Description
An object of theSimulink.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 totrue
.
A variant control comprises one or more variant control variables, specified using MATLAB®variables orSimulink.Parameter
对象.
You specify variant controls for each variant choice represented in aVariant SubsystemorModel Variantblock. For a givenVariant SubsystemorModel Variantblock, only one variant control can evaluate totrue
at a time. When a variant control evaluates totrue
, Simulink®activates the variant choice that corresponds to that variant control.
Construction
创建一个变量控制。variantControl
= Simulink.Variant(conditionExpression
)
Properties
Examples
Create Variant Controls UsingMATLABVariables
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 UsingSimulink.Parameter
Objects
If you want to generate preprocessor conditionals for code generation, useSimulink.Parameter
对象.
Create variantSimulink.Parameter
对象with scalar literal values.
Fuel = Simulink.Parameter(3); Emission = Simulink.Parameter(1); Ratio = Simulink.Parameter(3);
Specify the custom storage class for these objects asImportedDefine
so that the values are specified by an external header file.
Other valid values for the custom storage class areDefine
andCompilerFlag
Note
If you generate code withstartup
activation time, specify the supported custom storage class for the objects. For more information on built-in and custom storage classes supported withstartup
activation time seeStorage 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');