从不同的源块传播不同的条件到子系统块
一个子系统块可以表示一个虚拟子系统或非虚拟子系统。虚拟子系统在模型中提供图形层次结构,并且不影响模型的执行。非虚拟子系统作为模型中的单个单元执行。Simulink以不同的方式向这些子系统传播不同的条件。这个例子展示了变量条件从一个variant Source块到子系统块的传播。
探索模式
打开模型,slexVariantCondPropToSubsystems
.
点击模拟>运行来模拟这个模型,并查看从variant Source块传播到连接到它的块的变量条件。
变量条件注释帮助您可视化传播的条件。若要查看变量条件注释,请单击显示>块>变型条件图例.
该模型包含三个Variant Source块:变体Source1
,变体Source2
,变体Source3
,分别。
变体Source1
包含条件V = 1
而且V = 2
在轮廓尺寸。变异条件V = 1
传播到GainA1
而V = 2
传播到Sine2
.的Sine1
块不会得到任何传播的变量条件,因为它连接到一个块,无论变量条件如何,该块总是被消耗。如果到工作区block1
在模拟模型之前不存在或被注释掉的情况,变异V = 1
传播到Sine1
.
变体Source2
连接到虚拟子系统Subsystem1
而且Subsystem2
内容相同,a正弦波
连接到到工作空间
和一个输出
块。Subsystem1
是分组虚拟子系统(当传播不同的条件时,按分组处理),而Subsystem2 (当传播不同的条件时,按分组处理是一个未分组的虚拟子系统。
控件时,子系统块将成为分组的虚拟子系统当传播不同的条件时,按分组处理块参数对话框中的复选框。当当传播不同的条件时,按分组处理复选框为空,则该子系统为未分组的虚拟子系统。
分组的子系统表示一个方程系统,因此传播的条件也适用于该系统中的块。分组的子系统有一个连续的边界。一个未分组的子系统不代表一个方程系统,其中的块具有未分组的语义。未分组的子系统有虚线边界,条件被传播到子系统中。
变异条件V = 1
传播到Subsystem1
再深入到里面的积木Subsystem1
是一个分组的虚拟子系统(表示一个方程组)。因为Subsystem1是一个系统,所以条件也应用于系统内的块。
Subsystem2
那是一个未分组的虚拟子系统(不表示方程组)也接收V = 1
作为传播条件,和传播的变体条件V = 1
传播到子系统2
就好像子系统被扩展了一样。子系统2图标上的虚线表示在Simulink编译期间它被压平了,因此您可以看到其中那些块的变化情况。
变体Source3
连接到一个非虚拟(原子)子系统V = 1
作为传播变异条件。一个非虚(原子)子系统总是表示一个方程组。一个原子子系统有一个连续的固体边界。变量条件不会在非虚拟子系统内部传播。相反,它停留在边界上。然而,该子系统内的所有块都获得与该子系统相同的变量条件。非虚拟子系统表现为一个实体。
默认情况下,虚拟子系统就像一个分组的块集合,其中子系统中包含的所有块都具有相同的可变条件。这是真的当传播不同的条件时,按分组处理参数选中。虚拟子系统的行为就像一个未分组的块集合当传播不同的条件时,按分组处理参数被清除。在这个例子中,Subsystem2 (Ungrouped)的行为可能不像预期的那样,因为块永远不会变成有条件的。非虚拟子系统总是表现得像一个实体,只有当分配给子系统的条件满足时,内容才会执行。非虚拟子系统、模型块和分组虚拟子系统的行为是相同的。
传播变异条件时分组处理的虚拟子系统
当传播不同的条件时,按分组处理考虑一个使用Variant Source块的例子:变体Source5
还有一个虚拟子系统Subsystem4
.的变体Source5
有问题V = 1
.Subsystem4
有一个正弦波连接到对Workspace1
而且外港
块。
Subsystem4获取条件V = 1
作为V = 1
从变体Source5
.里面的积木Subsystem4
间接继承的条件Subsystem4
.Subsystem4
是有条件的,因为它的输入/输出是有条件的。为了使Subsystem4
作为无条件的,添加一个新的输出端口或清除当传播不同的条件时,按分组处理选择。
当传播不同的条件时,按分组处理考虑一个使用Variant Source块的例子:变体Source4
还有一个虚拟子系统Subsystem3
.的变体Source4
有条件V = 1
.Subsystem3
有一个正弦波连接到到工作空间
而且外港
块。
Subsystem3
获取条件V = 1
作为V = 1
传播的变体Source4
.然而,由于无条件阻塞对Workspace1
,传播停止,条件V = 1
仅设置为着干活
端口。现在,Subsystem3
也是无条件的,因为内部存在无条件块。