使用不同的选择
模型中的每个变量选择都与一个称为变量控制的条件表达式相关联。指定变量控件的方式决定了活动变量的选择。变型控制方式可在块参数对话框中选择可用的参数表达式
或标签
建模变体块的模式。
的块参数对话框不同的子系统包含四个变量选项的块:
属性将第一个选项注释掉
%
符号前的变体控制。第二种选择是
(默认)
并且当没有变量控制计算为时激活真正的
.第三个选择是当表达式
Mode ==3 && version==2
计算结果为真正的
.第四个选项是当表达式
Mode ==2 && version==1
计算结果为真正的
.
默认变量选择
您最多可以指定一个变量选择作为模型的默认值。如上图所示,线性控制器
子系统被定义为默认的变量选择。在模型编译期间,如果Simulink万博1manbetx®发现没有变量控件计算为真正的
,它使用默认选项。
在对话框中,选择变量选项并更改它版本控制财产(默认)
.
主动变型选择
虽然每个变量选择都与一个变量控制相关联,但只有一个变量控制可以计算到真正的
一次。当变量控件计算为时真正的
, 万博1manbetxSimulink激活对应于该变量控制的变量选择。最多可以有一个变量选择是活动的。一旦模型被编译,活动变量就不能被更改。
在本例中,您可以激活模型
变体选择或非线性控制器
通过指定适当的值来进行变量选择模式
而且版本
.
的价值模式 |
的价值版本 |
主动变体选择 |
---|---|---|
2 |
1 |
非线性控制器 |
3. |
2 |
模型 |
的值模式
而且版本
在MATLAB中®命令窗口。
非活跃变体选择
当一个变量控制激活一个变量选择时,Simulink认为其他变量选择是不活动的。万博1manbetx万博1manbetxSimulink在模拟过程中忽略非活跃的变量选择。然而,Simuli万博1manbetxnk继续在非活动的变量选择中执行块回调。
默认情况下,不活跃选项的颜色会逐渐消失。控件可以选择禁用褪色效果变体衰落选择。的变体衰落选项信息覆盖菜单上的调试选项卡中的Simuli万博1manbetxnk编辑器。你可以使用get_param
而且set_param
命令以编程方式查看或更改非活动选项的淡出状态。例如,
get_param(' broot,'VariantFading') %查看非活动选项的褪色状态
set_param(' broot,'VariantFading','on') %打开未激活选项的淡出效果
空变体选择
当您正在创建变体选择的原型时,您可以创建空子系统控件中没有输入或输出的不同的子系统块。空子系统重新创建了该子系统不活动的情况,而不需要完全建模变体选择。
对于一个空的变量选择,您可以指定一个变量激活条件,或者通过放置%
条件前的符号。
如果在模拟期间该变量选择是活动的,Simulink将忽略空变量选择。万博1manbetx然而,Simuli万博1manbetxnk继续在空变量选项中执行块回调。
变体选择列表
类型中可以获得变量选择的列表不同的子系统使用只读参数阻塞VariantChoices
.
varchoices = get_param(gcb, 'VariantChoices');
在本例中,VariantChoices
参数返回如下:
开放有源变型
当您打开一个模型时,变量块将显示上次保存模型时激活的变量的名称。使用变体菜单打开活动的变体。右键单击块并选择变体>开放.然后选择活动的变体。
使用此命令查找当前活动的选项:
“CompiledActiveChoiceControl”get_param (gcb)
使用此命令查找当前活动选项的路径:
“CompiledActiveChoiceBlock”get_param (gcb)
请注意
的
CompiledActiveChoiceBlock
参数,只支持万博1manbetx不同的子系统块。一旦模型被编译,活动变量就不能被更改。