在包含的模型中指定变量条件时变异来源和变体水槽块,仿真软件金宝app®评估在变量块上指定的变量控件,并自动将变量条件传播到连接块,以确定模型的哪些组件在模拟期间是活动的。金宝app然后,Simulink停用与非活动选择相关的模型组件,并可视化活动连接。金宝app仿真软件使用变体激活时间块参数来确定当它选择主动变量选择时的时间框架。有关变异激活时间的更多信息,请参见在仿真和代码生成工作流的不同阶段激活变量。
请注意
在模型组件上显示的变量条件注释帮助您可视化传播的条件。
上的变量条件注释调试选项卡上,选择信息覆盖>变体的传说。
如果变体的传说是不可用的,在调试选项卡上,选择信息覆盖>变异的条件。
在这个模型中变异来源块有两个带有可变条件的输入Var = = 1
和Var = = 2
,分别。的第一个输入变异来源块在连接到块之前分支到它的第二个输入。第二个变量条件的输入Var = = 2
是默认的变体选择。
在仿真过程中,该模型呈现出三种运行模式:
变异条件 | 积极的选择 |
---|---|
Var = = 1 |
第一次输入的 |
Var == 1 || |
第二次输入的变异来源 和第一个输入的分支。 |
Var = = 2 |
第二次输入的变异来源 。 |
在这个模型中,变异来源一个
和变异来源B
是两个变异来源块,每个由两个输入端口馈电,并以级联方式连接。的输入变异来源一个
是活跃的时瓦拉= = 1
或瓦拉= = 2
。的输出变异来源一个
的一个输入分支变体SourceB
。的输入变体SourceB
是活跃的时VarB = = 1
或VarB = = 2
。
在仿真过程中,该模型呈现出8种运行模式:
变异条件 | 积极的选择 |
---|---|
VarA = 1 && VarB = 1 |
第一次输入的 |
VarA == 1 && VarB == 2 |
第一次输入的变异来源一个 第二个输入变异来源B 。 |
VarA == 2 && VarB == 1 |
第二次输入的变异来源一个 第一个输入变异来源B 。 |
VarA == 2 && VarB == 2 |
第二次输入的变异来源一个 和变异来源B 。 |
VarA == 1 && VarB != (1,2) |
第一次输入的变异来源一个 。 |
VarA == 2 && VarB != (1,2) |
第二次输入的变异来源B 。 |
VarA = (1,2) && VarB == 1 |
没有一个 |
VarA = (1,2) && VarB == 2 |
第二次输入的变异来源B 。 |
VarA = (1,2) && VarB = (1,2) |
没有一个 |
在这个模型中,是多重变异来源块用于创建变体选择的层次嵌套,并提供传感器输入的变体。多个传感器选择首先按系列分组:一个系列
,B系列
,C系列
。的变异来源块,设备模型
,从该系列中选择一个传感器。的供应商
然后在所提供的传感器选择中进行选择设备模型
和XSensor
。
金宝appSimulink传播复杂的变量控制条件,以确定在编译期间哪些模型组件是活动的。
有关更多信息,请参见变体源和变体汇的层次嵌套。
净变条件是局部条件和原始条件的总和。
在这个模型中,变异来源
和变体Source1
对于两个单输入/变异来源块与变量条件V = = 1
和W = = 1
,分别。的允许零主动变型控制参数设置为在
对于两个变量块。当选择此选项时,没有活动的变量选择,Simulink将禁用连接到的输入和输出流的所有块金宝app变异来源块。
当你模拟这个模型时变体Source1
块和其他块在子系统块接收一个本地条件W = = 1
传播的变体Source1
块。祖先的条件V = = 1
是从变异来源
块上子系统块。因此,净变条件上变体Source1
块和其他块在子系统块V = = 1 & & W = = 1
。如果允许零主动变型控制参数设置为从
为变异来源块,然后条件上子系统块W = = 1
。
一种不同的条件可以激活或取消子系统块,但变异条件不能传播到子系统。一个子系统块可以从其输出端口传播可变条件,如果该可变条件起源于子系统中的一个端口。
子系统可以是虚拟子系统(分组或未分组),也可以是原子子系统,这取决于它在“块参数”对话框中所做的选择。
分组虚拟:选择在传播可变条件时,按分组处理复选框。一个分组的虚拟子系统有一条连续的线路。
Ungrouped Virtual:清除在传播可变条件时,按分组处理复选框。未分组的虚拟子系统有一条虚线。
原子:选择当作原子单位对待复选框。原子虚拟子系统有一条实线。
金宝appSimulink以不同的方式向这些子系统类型传播不同的条件。
在这个模型中,三种类型的子系统作为块的输入提供变体Source2
。
分组虚拟子系统在V = = 1
。金宝appSimulink将变量激活条件传播到子系统中的所有块。
未分组的虚拟子系统在V = = 2
。金宝app在将子系统标记为虚拟时,Simulink将可变激活条件传播到子系统中可用的块。
原子子系统在V = = 3
。金宝appSimulink不会将不同的激活条件传播到这个子系统。
有关更多信息,请参见将变异条件从变异源块传播到子系统块。
金宝appSimulink在传播变量条件之前编译引用的模型。一种不同的条件可以激活或取消模型块,但是变量条件不能传播到引用的模型中。一个模型块可以从其接口(输入、输出或控制端口)传播可变条件,如果该可变条件起源于模型中的一个端口。
在本例中,变量条件V = = 1
激活模型块iv_20_model_reference_sub
。但是,该条件不会传播到块引用的模型中。模型块iv_20_model_reference_sub2
从其输出端口传播相同的变式条件。
参数尺寸。和参数输出港块与金宝app仿真软件的功能块不能被连接变异来源或变体水槽块。一个变项条件必须控制整个变项条件金宝app仿真软件的功能。
考虑到模型slexVariant金宝appSimulinkFunctionInherit
。
在这个例子中,函数调用端口块在金宝app仿真软件的功能块的使不同条件选项选中。的(继承)
关键字用于指定版本控制参数。因此,金宝app仿真软件的功能块从相应的对象继承变量条件函数调用者块在模型中。的生成预处理条件参数值也被继承。
请注意
使用“配置C步骤函数接口”对话框定制生成的C入口点步骤函数接口。如果输入端口和输出端口共享一个参数名称并具有传播的变量条件,则不支持此级别的接口控制。金宝app
的初始化,重置,终止功能块是预配置的子系统块,在模型初始化、重置和终止事件期间执行。类似于金宝app仿真软件的功能这些块支持变量条件传播。金宝app你可以在里面传播不同的条件模型具有Reset Event端口的块。这将导致连接到Reset Event端口的块的优化存在。具有非活动变量重置事件函数的模型(在引用的模型中)也支持变量条件传播。金宝app
请注意
初始化和终止事件端口始终是无条件的,因为它们控制模型默认值和特定于块的初始化和终止引用模型的事件。如果你定义初始化函数或终止函数块,它对应于显式的初始化或终止事件。
控件上启用变量并定义变量条件初始化函数或终止函数块中的变量的变量条件不会对引用模型中的变量条件起作用模型块实例。
在这个例子中事件监听器
块内初始化
,重置
,术语
块有使不同条件选项选中。的版本控制参数的事件监听器
块指定为V = = 0
。如果你改变V
除了0
,初始化
,重置
,术语
块变得不活跃。
一个变异来源块可以接受虚拟或非虚拟总线输入。当生成带有预处理条件的代码时,所有总线输入的总线类型和层次结构必须相同。
但是,a的所有元素Mux,多路分配器,或者一个向量连接阻塞信号必须具有相同的变异条件。
有关更多信息,请参见带有总线的变条件传播。
一个不同的连接器块将不同的条件传播到物理网络中所有连接的组件。看到的,不同的连接器(Simscape)。
变量条件的传播来自Simulink函数内部金宝appStateflow不支持块。金宝app
变体连接器块不会跨越Simscape™物理网络和连接到它的Simulink块之间的边界传播变体条件。金宝app