仿真软件。变体Variable class
包:动态仿真模块
描述
的仿真软件。变体Variable
类创建变量形参对象。可变参数对象使您能够在Simulink中改变块参数的值®有条件的模型。
可以为一个可变参数对象指定多个值。您还可以指定维度、数据类型等属性。变量参数对象的每个值都与一个变量条件表达式相关联。对象创建后,可以使用它来设置模型中块参数的值,例如获得a的参数获得块。在模拟过程中,与计算为的变量条件相关联的值真正的
成为该参数的活动值。与计算为的条件相关联的值假
变得不活跃。
在创建一个新的仿真软件。变体Variable
对象,创建一个仿真软件。变体Control
对象中使用的变量控制变量仿真软件。变体Variable
对象。
请注意
只能在基本工作空间或数据字典中创建变量参数对象。
若要编辑变量参数对象,可以从工作区或数据字典中双击该对象以打开仿真软件。变体Variable
对话框。
变量条件图例不显示变量参数的变量条件。使用变异参数在Variant Manager窗口中的选项卡中查看与模型相关的基本工作空间或数据字典中的变量参数,并编辑选择的变量条件和值。
创建
创建一个空的变量参数对象。P
=仿真软件。变体Variable
创建一个可变参数对象并设置属性使用一个或多个P
=仿真软件。变体Variable(名称,值
)名称,值
参数。使用此语法,可以为对象指定多个值,并将每个值与变量条件表达式相关联。还可以指定对象的其他属性,如数据类型、存储类、维度等。
属性
规范
- - - - - -可变参数对象的属性
仿真软件。参数
对象名称
变量参数对象的属性,如数据类型、维度、存储类等,指定为仿真软件。参数
对象。类的默认存储类仿真软件。参数
对象是汽车
.如果将存储类指定为汽车
,对象的值内联到生成代码中的文字值。如果指定对象的存储类不是汽车
,对象在生成的代码中使用符号名称表示为可调参数。有关更多信息,请参见在生成的代码中表示变量参数的选项(嵌入式编码).
请注意
属性指定存储类规范
属性,则不支持仿真软件。变体Variable
对象是变量形参库(仿真软件。变体银行
).
例子:“规范”、“Pspec”
属性:
GetAccess |
公共
|
SetAccess |
公共
|
选择
- - - - - -不同的条件和值
单元阵列
变量条件和值,指定为单元格数组。在模拟过程中,当变量条件计算为时真正的
时,其关联值变为活动。当变量条件计算为时假
时,其关联值变为不活动。相同变量参数的两个值不能与相同的变量条件相关联。
可以将变量条件指定为布尔型MATLAB®包含一个或多个操作数和操作符的表达式。看到变量参数中变量控制变量(操作数)的类型而且变量形参中的操作符类型.
可以指定数值、枚举或仿真软件。参数
类型。看到的,快速成形变参数的数值变控制值,使用枚举类型提高变量参数的代码可读性,使用Simulink重用手写代码中的变量参数值。参数变量.
通过将变量条件设置为,可以将其中一个选择值指定为变量参数的默认值(默认)
.当没有其他变量条件计算为时,Simulink将为variant参数使用默认值真正的
.
例子:'选项',{'V == 1', 4.5, 'V==2', 9.5}
例子:'选项',{'V == 1', 3, '(默认值)',6}
属性:
GetAccess |
私人
|
SetAccess |
私人
|
银行
- - - - - -变量参数库的名称
”(默认)|字符串|特征向量
变量参数库名称(仿真软件。变体银行
)对象,指定为字符串或字符向量。
使用嵌入式编码器®,您可以将生成的代码中的变量参数分组,方法是将它们添加到相同的变量参数库中。变量参数必须为启动
激活时间和必须具有相同的一组变异条件。使用仿真软件。变体银行
类来创建变量参数bank对象并设置银行
属性的Simulink。VariantVariable对象来the name of the variant parameter bank. For more information, see仿真软件。变体银行
.
例子:“银行”、“EngineParams”
属性:
GetAccess |
公共
|
SetAccess |
公共
|
数据类型:字符串
|字符
方法
公共方法
addChoice |
为变量参数对象添加选项 |
getChoice |
返回变量参数对象的选择 |
setChoice |
修改现有变量参数对象的选择 |
removeChoice |
从变量参数对象中移除选项 |
专用操作符和函数
这些方法专门针对该类对象的标准MATLAB运算符和函数。
bitcmp |
对输入执行逐位补码。 |
情商 |
比较输入是否相等。 |
gt |
比较第一个输入是否大于第二个输入。 |
mrdivide |
第一个输入除以第二个输入。 |
或 |
对输入执行逻辑或运算。 |
uminus |
对输入求反。 |
bitor |
对输入执行按位或。 |
通用电气 |
比较第一个输入是否大于或等于第二个输入。 |
勒 |
比较第一个输入是否小于或等于第二个输入。 |
mtimes |
将输入相乘。 |
+ |
添加输入。 |
uplus |
返回输入的值。 |
而且 |
对输入执行逻辑与。 |
bitshift |
按指定的位置移位位。 |
lt |
比较第一个输入是否小于第二个输入。 |
不 |
如果输入不相等则进行比较。 |
bitand |
在输入上按位执行AND。 |
bitxor |
对输入执行逐位异或。 |
- |
用第一个输入减去第二个输入。 |
不 |
返回输入的逻辑NOT。 |
例子
快速成形变参数的数值变控制值
数值值允许您在构建模型时快速生成变量值的原型。数值值帮助您更专注于构建变量值,而不是开发激活这些选择的表达式。
中列出的位置中定义数值控制值变量参数中变量控制变量(操作数)的存储位置.
打开slexVariantParameters
模型。
open_system (“slexVariantParameters”)
在MATLAB编辑器中,以数值的最简单形式指定变量选项仿真软件。变体Variable
对象K1
而且K2
.
K1 = Simulink。变体Variable(“选择”, {“V = = 1”, 3.5,“V = = 2”, 8.5})
K1 = VariantVariable, 2个选项:条件值_________ _____ V == 1 3.5000 V == 2 8.5000规格:“银行:”使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
K2 = Simulink。变体Variable(“选择”, {“V = = 1”, 4.5,“V = = 2”, 9.5})
K2 = VariantVariable, 2个选项:条件值_________ _____ V == 1 4.5000 V == 2 9.5000规格:“银行:”使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
成功创建仿真软件。变体Variable
对象时,可以使用中描述的方法对其进行修改公共方法或者从VariantVariable
对话框。
通过定义一个控制变量来激活其中一个变量值,V
,并将其值设置为1
在一个仿真软件。变体Control
对象。
V = Simulink。变体Control(“价值”, 1“ActivationTime”,“更新图”)
V = VariantControl with properties:值:1 ActivationTime: 'update diagram'
当你模拟模型时,条件V == 1
计算结果为真正的
.K1
赋值为3.5
而且K2
赋值为8.5
.
sim卡(“slexVariantParameters”)
如果你改变V
来2
, Simulink®设置的值K1
而且K2
来4.5
而且9.5
在模拟。你可以改变的值V
使用此命令或from仿真软件。变体Control
对话框。
V.Value = 2;sim卡(“slexVariantParameters”)
仿真软件。参数Type of Variant Control Variables for Code Generation of Variant Parameters
如果您打算为包含可变参数的模型生成代码,请将可变控制变量指定为仿真软件。参数
对象。仿真软件。参数
对象允许您指定其他属性,例如数据类型和存储类,并控制生成代码中变量控制变量的外观和位置。
可以定义类型的变量控制变量
仿真软件。参数
仅在基本工作区或数据字典中。定义仿真软件。参数
不支持掩码或模型工作区中的变体控制变量类型。有关可变控制变量的存储位置的详细信息,请参见变量参数中变量控制变量(操作数)的存储位置.仿真软件。参数
结构中的对象,并且数据类型为仿真软件。公共汽车
不支持对象。
打开slexVariantParameters
模型。
open_system (“slexVariantParameters”)
在MATLAB编辑器中定义一个仿真软件。参数
对象。
VSS_MODE = Simulink.Parameter;VSS_MODE。Value = 1; VSS_MODE.DataType =“int32”;VSS_MODE.CoderInfo。StorageClass =“自定义”;VSS_MODE.CoderInfo。CustomStorageClass =“定义”;VSS_MODE.CoderInfo.CustomAttributes。HeaderFile =“demo_macros.h”;
变量控制定义为仿真软件。参数
对象可以具有中列出的任何存储类不同变体激活时间的存储类(嵌入式编码).
还可以将标量变量控制变量转换为仿真软件。参数
对象。有关更多信息,请参见转换变量控制变量到Simulink。参数对象.
中指定对象为变量控件仿真软件。变体Variable
对象K1
而且K2
.
K1 = Simulink。变体Variable(“选择”, {' v == 1', 3.5,' v == 2', 8.5})
K1 = VariantVariable, 2个选项:条件值_________ _____ V == 1 3.5000 V == 2 8.5000规格:“银行:”使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
K2 = Simulink。变体Variable(“选择”, {' v == 1', 4.5,' v == 2', 9.5})
K2 = VariantVariable, 2个选项:条件值_________ _____ V == 1 4.5000 V == 2 9.5000规格:“银行:”使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
成功创建仿真软件。变体Variable
对象时,可以使用中描述的方法对其进行修改公共方法或者从VariantVariable
对话框。
通过定义一个控制变量来激活一个变量值V
并将其值设置为VSS_MODE
在一个仿真软件。变体Control
对象。
V = Simulink。变体Control(“价值”VSS_MODE,“ActivationTime”,代码编译的)
V =带有属性的VariantControl:值:[1x1 Simulink. txt]参数]ActivationTime: 'code compile'
当你模拟模型时,条件V == 1
计算结果为真正的
.K1
赋值为3.5
,K2
赋值为8.5
.
sim卡(“slexVariantParameters”)
如果你改变VSS_MODE
来2
, Simulink®设置的值K1
而且K2
来4.5
而且9.5
在模拟。你可以改变的值V
使用此命令或from仿真软件。变体Control
对话框。
VSS_MODE。Value = 2; V.Value = VSS_MODE; sim (“slexVariantParameters”)
从模型生成代码。有关如何生成代码的信息,请参见使用嵌入式编码器生成代码(嵌入式编码)
生成的代码包含这两者线性
而且非线性
预处理器条件中的选项#如果
而且# elif
因为代码编译
激活时间。变量控制变量V
是使用宏-#定义
指令-在头文件中demo_macros.h
.您可以控制的外观和位置V
在生成的代码和防止从消除存储优化V
使用存储类属性。有关更多信息,请参见不同变体激活时间的存储类(嵌入式编码).
% demo_macros.h% /*导出数据定义*/%% /*自定义存储类定义:Define */% #定义V 2 /*引用:% * '<根>/增益'% * '<根>/Gain1'% * /% #endif /* RTW_HEADER_demo_macros_h_ */%% / *
仿真软件。变体Objects for Variant Condition Reuse of Variant Parameters
在确定模型所需的变量值之后,您可以构造复杂的变量条件,通过将变量条件定义为来控制变量参数值的激活仿真软件。变体
对象。仿真软件。变体
对象使您能够跨模型重用公共变量条件,并帮助您封装复杂的变量条件表达式。
可以定义类型的变量控制变量
仿真软件。变体
仅在基本工作区或数据字典中。定义仿真软件。变体
不支持掩码或模型工作区中的变体控制变量类型。有关可变控制变量的存储位置的详细信息,请参见变量参数中变量控制变量(操作数)的存储位置.仿真软件。变体
内部结构不受支持。
打开slexVariantParameters
模型。
open_system (“slexVariantParameters”)
在MATLAB®编辑器中,封装变量控制表达式为仿真软件。变体
对象。
LinearController =仿真软件。变体(“V = = 1”);NonLinearController =仿真软件。变体(“V = = 2”);
指定仿真软件。变体
控件中的变量控件仿真软件。变体Variable
对象K1
而且K2
.
K1 = Simulink。变体Variable(“选择”, {“LinearController”, 3.5,“NonLinearController”, 8.5})
K1 = VariantVariable与2个选择:条件值___________________ _____线性控制器3.5000非线性控制器8.5000规格:“银行:”使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选择
K2 = Simulink。变体Variable(“选择”, {“LinearController”, 4.5,“NonLinearController”, 9.5})
K2 = VariantVariable与2个选择:条件值___________________ _____线性控制器4.5000非线性控制器9.5000规格:“银行:”使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选择
成功创建仿真软件。变体Variable
对象时,可以使用中描述的方法对其进行修改公共方法或者从VariantVariable
对话框。
通过定义激活一个变量值仿真软件。变体Control
对象V
并将其值设置为1
.
V = Simulink。变体Control(“价值”, 1“ActivationTime”,“更新图”)
V = VariantControl with properties:值:1 ActivationTime: 'update diagram'
当你模拟模型时,条件V == 1
计算结果为真正的
.K1
赋值为3.5
,K2
赋值为8.5
.
sim卡(“slexVariantParameters”)
如果你改变V
来2
, Simulink®设置的值K1
而且K2
来4.5
而且9.5
在模拟。你可以改变的值V
使用此命令或from仿真软件。变体Control
对话框。
V.Value = 2;sim卡(“slexVariantParameters”)
使用这种方法,您可以开发可重用的复杂变量条件表达式。
限制
作为变量参数库一部分的变量参数不支持AUTOSAR代码生成。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
对象关联的变量参数
启动
激活时,您可以通过安装为活动和非活动选择生成代码仿真软件编码器™或嵌入式编码器。对象关联的变量参数
代码编译
激活时间:您必须安装仿真软件编码器仅为变量参数的活动值生成代码。使用以下方法生成代码仿真软件编码器仅当变量参数的值具有相同的维数时才支持。
必须安装Embedded Coder才能为变量参数的活动值和非活动值生成代码。对于具有相同和不同维度的变量参数值,支持使用嵌入式编码器生成代码。
当您使用Embedded Coder生成代码时,您可以将具有相同可变条件集的可变参数分组并使用
启动
将激活时间转换为生成代码中的结构数组。使用仿真软件。变体银行
类将变量参数分组到变量参数库中,并使用仿真软件。变体银行CoderInfo
类来为变量参数库指定代码生成属性。
有关使用可变参数生成代码的更多信息,请参见在生成的代码中表示变量参数的选项(嵌入式编码).
版本历史
R2021a中引入MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。