Simulink:使用掩码控制变量子系统



我想找到一个使用掩码参数在掩码下切换模型内部的简单过程。

这个问题已经扩展到可以在这里重新实现了

可变子系统是一种很好的方法,可以通过工作空间参数进行控制
然而,我发现掩码参数不与变体子系统选择接口。

这个链接是关于如何使用掩码参数对系统内部的块进行更改的一系列帖子中的第一个;然而,该方法不如使用变体子系统和开关那么直观
这个链接也是2008年的,我相信它可能在某个时候被取代了。

MWE

我制作了一个模型,其中包含一个名为Source的系统
它连接到显示其输出的Display块。

Source是一个变体子系统
它包含3种变体:

  • SourceOne
  • SourceTwo
  • SourceThree

每个变体包含一个Constant
Constant块的值与块标签同名
例如,SourceTwo包含一个值为2的常量块。

CCD_ 11也是一个屏蔽子系统
其掩码包含一个值为variantValueRadio Button参数
variantValue参数的Radio Button选项为:

  • 选项1
  • 选项2
  • 选项3

掩码Initialization代码如下:

switch variantValue
case 'Choice 1'
set_param('Source','OverrideUsingVariant','One')
disp('One')
case 'Choice 2'
set_param('Source','OverrideUsingVariant','Two')
case 'Choice 3'
set_param('Source','OverrideUsingVariant','Three')
end

我已将变体设置为"覆盖"。我无法将掩码设置为允许库块修改内容,因为这是灰色的。

当作为变体子系统的屏蔽子系统工作时,我将把变体子系统从屏蔽子系统更深地放到层次结构中。

要做任何不通过基本工作区的事情,您首先需要设置"覆盖变体条件…",现在您可以选择代码为的活动变体

set_param('untitled/Variant Subsystem','OverrideUsingVariant','Variant1')

剩下的就是创建一个遮罩,只要遮罩中的参数发生变化,该遮罩就会运行上面的行。这可以通过初始化命令来完成。

最新更新