当您指定包含模型变形条件变异来源和变异水槽块,仿真软件万博1manbetx®传播这些条件以确定哪些模型的部件是模拟期间活跃。
当你创建了一个模型,包含变异来源要么变异水槽块,你可以想像激活每个变体的选择条件。万博1manbetxSimulink中与它们对应的变异情况模型诠释这些块。
考虑这个包含多个变体选择的模型变异来源块。一个特定的变体条件激活每个变体选择。
以可视化的变异情况,对调试工具栏选项卡,选择信息覆盖>变异条件。
该变异状况传奇对话框。上的块的变体的条件注释为五:Ç
,在那里v
是所述变体语义指示器和C
表示变量条件索引。对话框还显示与每个条件相关联的表达式。
在里面变异状况传奇对话框,您可以通过超链接变种注解点击以观察每个条件激活该模型的一部分。例如,如果你点击五:3
, 万博1manbetxSimulink会突出显示在条件出现时被激活的模型部分V == 3
计算结果为真正
。
变异条件注释具有以下属性:
有无条件块没有注释。因此,出
块没有注释。
为了减少混乱,传说只显示最后计算的条件。例如,如果你在进入一个变种条件变异来源块,即状态出现在注释只有当你应用更改。
图例中的条件被显示期间进行排序。
在图例中,设置了一个条件假
如果S万博1manbetximulink的评估,与该条件相关联的块是从不活动状态。
例如,In4
块被连接到所述变异源1
块,其条件为V == 1
。变异源1
连接到变异源2
块,其激活变异源1
只有当V == 4
。因此,In4
只能在什么时候激活V = = 1 & & V = = 4
,这始终是一个条件假
。
在传说中,(默认)
关键字被显示为否定条件。
当您编译一个包含变异来源要么变异水槽块,Simuli万博1manbetxnk中确定哪些变种控制的计算结果为真正
。活动变量的确定发生在编译的早期阶段。万博1manbetxSimulink然后使不与变体控件绑定的块失效真正
和可视化的活动连接。
在这个模型中,两个输入供给变异来源块。第一个输入在什么时候是活动的瓦尔== 1
,它分支成所述第二输入连接到所述前变异来源块。第二个输入是默认的变体的选择。
在仿真过程中,该模型表现出三种运行模式:
当瓦尔== 1
中,第一输入是活动的,其分支到第二输入无效。
当Var == 1 || Var == 2
,第二个输入是活动的,而第一个输入的分支是活动的。
当瓦尔== 2
,第二输入是活动的输出是活动的。
在这个模型中,是2变异来源每个块由两个输入端口提供,以级联方式连接。的输入变异来源
是活跃的时Var1 = = 1
要么Var1 = = 2
。输出变异来源
分支成的的输入端之一变异源1
。的输入变异源1
是活跃的时VAR2 == 1
要么VAR2 == 2
。
在模拟过程中,这种模式具有八种工作模式:
当VAR1 == 1 && VAR2 == 1
,第一个输入变异来源
和变异来源
是活跃的。
当VAR1 == 1 && VAR2 == 2
,第一个输入变异来源
第二个输入是变异源1
是活跃的。
当Var1 == 2 && Var2 == 1
,第二个输入变异来源
和的第一输入变异源1
是活跃的。
当Var1 == 2 && Var2 == 2
中,所述第二输入端变异来源
和变异源1
是活跃的。
当VAR1 == 1 && VAR2!=(1,2)
,只有第一输入变异来源
是活跃的。
当Var1 == 2 && Var2 != (1,2)
,只有第二个输入变异来源
是活跃的。
当VAR1!=(1,2)&& VAR2 == 1
,没有一个输入或输出是活动的。
当VAR1!=(1,2)&& VAR2 == 2
,只有第二个输入变异源1
是活跃的。
当Var1 != (1,2) && Var2 != (1,2)
,没有一个输入或输出是活动的。
在这个模型中,多变异来源块用于创建的变种选择层次嵌套。选择首先通过系列分组:一个系列
,B系列
和C系列
。的一个或多个串联的组合被设置为用于设备模型的输入。所得到的器件模型是通过包括或不包括一个传感器选择作为输入提供给供应商。
万博1manbetxSimulink传播复杂的变量控制条件,以确定在编译期间哪些模型组件是活动的。
有关更多信息,请参见变异传感器。
一个子系统可以是一个虚拟的(分组的或未分组的),也可以是一个原子的子系统,这取决于在其中所做的选择块参数对话框。对于,
虚拟分组:选择当作传播变体的条件时分组复选框。一个分组的虚拟子系统有一条连续的线。
未分组虚拟:清除当作传播变体的条件时分组复选框。未分组的虚拟子系统有一条虚线。
原子:选择治疗以原子单位复选框。原子虚拟子系统具有实线。
万博1manbetxSimulink的变体传播条件不同,以这些子系统的类型。
在这个模型中,提供了三种类型的子系统作为块的输入变异源2
。
分组的虚拟子系统被激活时V == 1
。万博1manbetxSimulink中传播所述变体的活化条件在子系统的所有块。
的未分组的虚拟子系统被激活时V 2 ==
。万博1manbetxSimulink中传播所述变体的激活条件到分别在子系统中可用而标记子系统的虚拟块。
原子子系统被激活时V == 3
。万博1manbetxSimulink不会将变量激活条件传播到这个子系统中。
有关更多信息,请参见传播变条件子系统。
万博1manbetxSimulink在传播变量条件之前编译引用的模型。变体条件可以激活或禁用A模型块,但变异的条件不能传播到参考模型。一种模型块可以从其接口(输入、输出或控制端口)传播变量条件,如果该变量条件起源于模型中的一个端口。
在这个例子中,变量条件V == 1
激活模型块iv_20_model_reference_sub
。但是,条件不传播到由块引用的模型。模型块iv_20_model_reference_sub2
传播从它的输出端口相同的变体的条件。
参数运行轨迹和参数输出港块与接口万博1manbetxSimulink的功能无法连接到块变异来源要么变异水槽块。一个变量条件必须控制整个万博1manbetxSimulink的功能。
考虑模型slexVariant万博1manbetxSimulinkFunction。
在本例中,函数调用端口块万博1manbetxSimulink的功能块的使不同条件选项进行选择。该(继承)
关键字用于指定属性的值变异控制参数。因此,万博1manbetxSimulink的功能块继承了相应的变量条件函数调用块模型。该生成预处理条件参数值也被继承。
使用“配置C步骤功能接口”对话框,为模型自定义生成的C入口点步骤功能接口。如果输入和输出端口共享一个参数名并传播了不同的条件,则不支持此级别的接口控制。万博1manbetx
该初始化,重启和终止功能块是预先配置的子系统块,在模型初始化、重置和终止事件期间执行。类似于万博1manbetxSimulink的功能这些块支持不同的条件传播。万博1manbetx你可以传播不同的条件模型具有重置事件端口的块。这将导致连接到重置事件端口的块的优化存在。具有非活动变量重置事件函数的模型(在引用的模型中)也支持变量条件传播。万博1manbetx
初始化和终止因为他们控制模型默认和指定块初始化都和终止参考模型的事件事件端口总是无条件的。如果您在参考模型定义初始化功能块,它对应于一个明确的初始化事件。
在这个例子中,事件监听器
块内初始化
,重启
和术语
块具有使不同条件选项进行选择。该变异控制参数的事件监听器
块被指定为V == 0
。如果更改的值V
任何价值,除了0
中,初始化
,重启
和术语
块变得不活跃。
变体条件可以激活或禁用A子系统块,但是不同的条件不能传播到子系统中。一种子系统块可以从它的输出端口传播的变体的条件,如果在子系统内的端口变体源自条件。
有关更多信息,请参见传播变条件子系统。
一种变异来源块可以接受虚拟或非虚拟总线输入。当生成与预处理条件代码,所有的总线输入的总线类型和等级必须是相同的。
然而,所有的元素复用器,解复用或矢量CONCATENATE块信号必须有相同的变体的条件。
有关更多信息,请参见使用总线传播不同的条件。
从Simulink的功能变体的内部传播条件万博1manbetxStateflow的不支持块。万博1manbetx
当你模拟内嵌变种的Simscape™块模式,块的Simscape成为无条件。
C ++代码生成不支持包含传播的变体车型的条件。万博1manbetx
变体的条件传播不与根总线元件端口所支持。万博1manbetx