金宝app仿真软件。VariantControl class
包:金宝app
创建一个变量控制变量对象
描述
的金宝app仿真软件。VariantControl
类创建变量控制变量对象,以将变量控制变量的值与变量激活时间相关联。使用金宝app仿真软件。VariantControl
对象来确定仿真过程中变量参数的活跃值。
创建
创建无值和的变量控制变量对象variantControlVariable
=仿金宝app真软件。VariantControl“ActivationTime”
设置为“更新图”
.
创建指定的变量控制变量对象variantControlVariable
=仿金宝app真软件。VariantControl(名称,值
)名称,值
对参数。使用此语法,您可以创建一个对象,并将其值与变量激活时间相关联。
输入参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:“值”,1,“激活时间”,“更新图”
价值
- - - - - -变量控制变量对象的值
标量变量|枚举类型|金宝app仿真软件。参数
变量控制变量对象的值,指定为标量变量、枚举类型或金宝app仿真软件。参数
对象。
例子:“价值”1
ActivationTime
- - - - - -激活值的激活时间
“更新图”
(默认)|“更新图表分析所有选择”
|代码编译的
|“启动”
金宝app®可以在仿真和代码生成工作流的不同阶段设置变量参数的活动值。根据使用此属性指定的阶段,Simulink将确定生成的代码是否必须只包含活动值,还是同时包含变量参数的活金宝app动值和非活动值。属性还决定是否分析信号属性中不兼容的变量参数的所有值。有关变体激活时间的更多信息,请参见在模拟和代码生成工作流的不同阶段激活变量.
当你指定变量激活时间为:
“更新图”
Sim金宝appulink不会分析信号属性中不兼容的变量参数的值。它仅为变量参数的活动值生成代码。“更新图表分析所有选择”
Sim金宝appulink分析信号属性中不兼容的变量参数的激活值和非激活值,但是它只生成变量参数的激活值的代码。代码编译的
Sim金宝appulink分析信号属性中不兼容的变量参数的激活值和非激活值,并为变量参数的激活值和非激活值生成代码。这些值包含在C预处理器条件语句中#如果
而且# endif
在编译生成的代码时有条件地编译。“启动”
Sim金宝appulink分析信号属性中不兼容的变量参数的激活值和非激活值,并为变量参数的激活值和非激活值生成代码。这些值用正则表达式括起来如果
内部情况model_initialize
生成的代码的函数,当您运行由代码构建的可执行文件时,这些代码将有条件地求值。
例子:'ActivationTime', 'code compile'
例子
快速成形变参数的数值变控制值
数值值允许您在构建模型时快速生成变量值的原型。数值值帮助您更专注于构建变量值,而不是开发激活这些选择的表达式。
中列出的位置中定义数值控制值变量块中变量控制变量(操作数)的存储位置.
打开slexVariantParameters
模型。
open_system (“slexVariantParameters”)
在MATLAB编辑器中,以数值的最简单形式指定变量选项金宝app仿真软件。VariantVariable
对象K1
而且K2
.
K1 = 金宝appSimulink。VariantVariable(“选择”,{“V = = 1”, 3.5,“V = = 2”, 8.5})
K1 = VariantVariable, 2个选项:条件值_________ _____ V == 1 3.5000 V == 2 8.5000规格:“使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
K2 = 金宝appSimulink。VariantVariable(“选择”,{“V = = 1”, 4.5,“V = = 2”, 9.5})
K2 = VariantVariable, 2个选项:条件值_________ _____ V == 1 4.5000 V == 2 9.5000规格:“使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
成功创建金宝app仿真软件。VariantVariable
对象时,可以使用中描述的方法对其进行修改公共方法或者从VariantVariable
对话框。
通过定义一个控制变量来激活其中一个变量值,V
,并将其值设置为1
在一个金宝app仿真软件。VariantControl
对象。
V = 金宝appSimulink。VariantControl(“价值”, 1“ActivationTime”,“更新图”)
V = VariantControl with properties:值:1 ActivationTime: 'update diagram'
当你模拟模型时,条件V == 1
计算结果为真正的
.K1
赋值为3.5
而且K2
赋值为8.5
.
sim卡(“slexVariantParameters”)
如果你改变V
来2
, 金宝appSimulink®设置的值K1
而且K2
来4.5
而且9.5
在模拟。你可以改变的值V
使用此命令或from金宝app仿真软件。VariantControl
对话框。
V.Value = 2;sim卡(“slexVariantParameters”)
提高变量控制变量代码可读性的枚举类型
使用枚举类型为用作变量控制值的整数赋予有意义的名称。有关枚举类型数据的详细信息,请参见在Simulink模型中使用枚举数据金宝app.
在MATLAB®Editor中,定义将枚举值映射为有意义名称的类。
打开slexVariantParameters
模型。
open_system (“slexVariantParameters”)
指定变量条件表达式V == EngType。小
而且V == EngType。大
在金宝app仿真软件。VariantVariable
对象K1
而且K2
.
K1 = 金宝appSimulink。VariantVariable(“选择”, {'V == EngType。小的, 3.5,'V == EngType。大的, 8.5})
K1 = VariantVariable 2选择:条件值 __________________ _____ V = = EngType。大8.5000 V == EngType。小3.5000 Specification: '' Use getChoice, setChoice, addChoice, removeChoice to access, modify, add or remove choices
K2 = 金宝appSimulink。VariantVariable(“选择”, {'V == EngType。小的, 4.5,'V == EngType。大的, 9.5})
K2 = VariantVariable 2选择:条件值 __________________ _____ V = = EngType。大9.5000 V == EngType。小4.5000 Specification: '' Use getChoice, setChoice, addChoice, removeChoice to access, modify, add or remove choices
在这里,EngType
是派生自内置数据类型的基于整数的枚举类,int32
.该类有两个枚举值,小
而且大
.这些枚举值具有底层整数值1
而且2.
在本例中,枚举类定义在基本工作空间中。可以选择在中列出的其他存储位置定义类变量块中变量控制变量(操作数)的存储位置.
类型EngType.m
classdef EngType < 金宝appSimulink。IntEnumTypeenumeration Small (1) Big (2) end end
成功创建金宝app仿真软件。VariantVariable
对象时,可以使用中描述的方法对其进行修改公共方法或者从VariantVariable
对话框。
通过定义控制变量激活其中一个变量值V
并将其值设置为EngType。小
在金宝app仿真软件。VariantControl
对象
V
.
V = 金宝appSimulink。VariantControl(“价值”, EngType。小,“ActivationTime”,代码编译的)
V = VariantControl属性:值:Small ActivationTime: 'code compile'
当你模拟模型时,条件V == 1
计算结果为真实的。K1
赋值为3.5,
而且K2
赋值为8.5
.
sim卡(“slexVariantParameters”)
如果你改变V
来2
, 金宝appSimulink®设置的值K1
而且K2
到45
而且9.5
在模拟。你可以改变的值V
使用此命令或from金宝app仿真软件。VariantControl
对话框。
V.Value = 2
V = VariantControl与属性:值:2 ActivationTime: '代码编译'
sim卡(“slexVariantParameters”)
使用枚举类型生成的代码包含值的名称,而不是整数。
% slexVariantParameters_private.h% #if V == EngType_Big || V == EngType_Small% /*变量:K1引用变量:'/Gain' */ 如果V == EngType_Big . % #定义rtCP_Gain_K1 (8.5)% #elif V == EngType_Small定义rtCP_Gain_K1 (3.5)% # endif% # endif%% #if V == EngType_Big || V == EngType_Small% /*变量:K2引用变量:'/Gain1' */ 如果V == EngType_Big . % #定义rtCP_Gain1_K2 (9.5)% #elif V == EngType_Small定义rtCP_Gain1_K2 (4.5)% # endif% # endif% #endif /* RTW_HEADER_slexVariantParameters_private_h_ */
注意,对于变量参数启动激活时间,只支持使用这些技术定义的枚举:金宝app
通过子类化内置整数数据类型
int8,
int16,
int32,
uint8,
或uint16,
或者通过子类化金宝app仿真软件。IntEnumType
当永久存储在Simulink®数据字典中时,也支持这些枚金宝app举。金宝app看到数据字典中的枚举.
金宝app仿真软件。参数Type of Variant Control Variables for Code Generation of Variant Parameters
如果您打算为包含可变参数的模型生成代码,请将可变控制变量指定为金宝app仿真软件。参数
对象。金宝app仿真软件。参数
对象允许您指定其他属性,例如数据类型和存储类,并控制生成代码中变量控制变量的外观和位置。
可以定义类型的变量控制变量
金宝app仿真软件。参数
仅在基本工作区或数据字典中。定义金宝app仿真软件。参数
不支持掩码或模型工作区中的变体控制变量类型。金宝app有关可变控制变量的存储位置的详细信息,请参见变量块中变量控制变量(操作数)的存储位置.金宝app仿真软件。参数
结构中的对象,并且数据类型为金宝app仿真软件。公共汽车
不支持对象。金宝app
打开slexVariantParameters
模型。
open_system (“slexVariantParameters”)
在MATLAB编辑器中定义一个金宝app仿真软件。参数
对象。
VSS_MODE = 金宝appSimulink.Parameter;VSS_MODE。价值= 1; VSS_MODE.DataType =“int32”;VSS_MODE.CoderInfo。StorageClass =“自定义”;VSS_MODE.CoderInfo。CustomStorageClass =“定义”;VSS_MODE.CoderInfo.CustomAttributes。HeaderFile =“demo_macros.h”;
变量控制定义为金宝app仿真软件。参数
对象可以具有中列出的任何存储类不同变体激活时间的存储类(嵌入式编码).
还可以将标量变量控制变量转换为金宝app仿真软件。参数
对象。有关更多信息,请参见转换变量控制变量到Simulink。金宝app参数对象.
中指定对象为变量控件金宝app仿真软件。VariantVariable
对象
K1
而且K2
.
K1 = 金宝appSimulink。VariantVariable(“选择”,{' v == 1', 3.5,' v == 2', 8.5})
K1 = VariantVariable, 2个选项:条件值_________ _____ V == 1 3.5000 V == 2 8.5000规格:“使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
K2 = 金宝appSimulink。VariantVariable(“选择”,{' v == 1', 4.5,' v == 2', 9.5})
K2 = VariantVariable, 2个选项:条件值_________ _____ V == 1 4.5000 V == 2 9.5000规格:“使用getChoice, setChoice, addChoice, removeChoice访问,修改,添加或删除选项
成功创建金宝app仿真软件。VariantVariable
对象时,可以使用中描述的方法对其进行修改公共方法或者从VariantVariable
对话框。
通过定义一个控制变量来激活一个变量值V
并将其值设置为VSS_MODE
在一个金宝app仿真软件。VariantControl
对象。
V = 金宝appSimulink。VariantControl(“价值”VSS_MODE,“ActivationTime”,代码编译的)
V =带有属性的VariantControl:值:[1x1 Simulink. txt]金宝app参数]ActivationTime: 'code compile'
当你模拟模型时,条件V == 1
计算结果为真正的
.K1
赋值为3.5
,K2
赋值为8.5
.
sim卡(“slexVariantParameters”)
如果你改变VSS_MODE
来2
, 金宝appSimulink®设置的值K1
而且K2
来4.5
而且9.5
在模拟。你可以改变的值V
使用此命令或from金宝app仿真软件。VariantControl
对话框。
VSS_MODE。价值= 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_ */%% / *
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
有关使用可变参数生成代码的更多信息,请参见在生成的代码中表示变量参数的选项(嵌入式编码).
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。