我想找到一个简单的过程,使用掩码参数在掩码下切换模型内部。
此问题已经扩展到足以重新实现here。
变体子系统是一种很好的方法,可以通过工作空间参数进行控制;
但是,我发现掩码参数不与变量子系统选择接口。
This link是关于如何使用掩码参数来更改系统内部块的一系列帖子中的第一篇; 但是,该方法不像使用变体子系统和开关那样直观 这个链接也是从2008年开始的,我相信它可能在某个时候被取代了。
我制作了一个包含标有Source
的系统的模型
它连接到显示其输出的Display
块。
Source
是一个变体子系统
它包含3个变体:
Source\One
Source\Two
Source\Three
。每个变体包含一个Constant
块
Constant
块的值与块标签同名
例如, Source\Two
包含一个值为2
的常量块。
Source
也是一个蒙面子系统
其掩码包含Radio Button
参数,其值为variantValue
Radio Button
参数的variantValue
选项为:
掩码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
我已将变体设置为覆盖。 我无法设置掩码以允许库块修改内容,因为它是灰色的。
当作为变体子系统的屏蔽子系统工作时,我会将变体子系统从被屏蔽的子系统中更深入地放入层次结构中。
答案 0 :(得分:5)
要执行任何不通过基本工作空间的操作,首先需要设置"覆盖变体条件...",现在您可以选择带有代码的活动变体:
...
(u'session', u'docInfo', u'field', 0, '#text') = Jake Roberts
(u'session', u'docInfo', u'field', 1, u'@name') = Section
(u'session', u'docInfo', u'field', 1, u'@isOpen') = True
(u'session', u'docInfo', u'field', 1, u'@isMandotory') = False
(u'session', u'docInfo', u'field', 1, '#text') = 5
...
剩下的就是创建一个掩码,只要掩码中的参数发生变化,就会运行上面的行。这可以通过初始化命令来完成。