子系统块可以表示虚拟子系统或非虚拟子系统。虚拟子系统在模型中提供图形层次结构,并且不影响模型的执行。非虚拟子系统作为模型中的单个单元执行。万博1manbetxSimulink以不同的方式向这些子系统传播不同的条件。这个示例展示了变体条件从变体源块到子系统块的传播。
打开模型,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编译期间它是扁平的,因此您可以在其中看到那些块的变体条件。万博1manbetx
变体Source3
用?连接到非虚拟(原子)子系统V = 1
作为传播的变项条件。非虚(原子)子系统总是表示一个方程组。原子子系统有一条连续的实心边界。变量条件不会在非虚拟子系统内部传播。相反,它停留在边界上。但是,该子系统中的所有块都得到与子系统相同的变条件。非虚拟子系统的行为如同一个实体。
默认情况下,虚拟子系统的工作方式类似于一个分组的块集合,其中子系统中包含的所有块都具有相同的变体条件。这是真的在传播可变条件时,按分组处理参数被选中。虚拟子系统的行为类似于未分组的块集合在传播可变条件时,按分组处理参数是清除。在本例中,Subsystem2 (Ungrouped)的行为可能不像预期的那样,因为块永远不会变成有条件的。非虚拟子系统的行为总是像一个实体,并且内容只在满足分配给子系统的条件时执行。非虚拟子系统、模型块和分组虚拟子系统的行为是相同的。
在传播可变条件时,按分组处理选项是On:考虑一个Variant Source块的例子:变体Source5
一个虚拟子系统Subsystem4
.的变体Source5
有一个条件V = 1
.Subsystem4
正弦波是否与a相连对Workspace1
和外港
块。
Subsystem4得到条件V = 1
作为V = 1
从传播变体Source5
.里面的块Subsystem4
间接地从Subsystem4
.Subsystem4
是有条件的,因为它的导入/输出端口是有条件的。为了使Subsystem4
作为无条件的,添加一个新的输出或清除在传播可变条件时,按分组处理选择。
在传播可变条件时,按分组处理选项是Off:考虑一个Variant Source块的例子:变体Source4
一个虚拟子系统Subsystem3
.的变体Source4
有条件V = 1
.Subsystem3
正弦波是否与a相连到工作空间
和外港
块。
Subsystem3
得到了条件V = 1
作为V = 1
传播的变体Source4
.但是由于无条件阻塞对Workspace1
,传播停止和条件V = 1
设置为着干活
端口。现在,Subsystem3
也是无条件的,因为其中存在无条件块。