随着模型的规模和复杂性的增加,您可以通过将块分组到子系统来简化它。子系统是一组块,您将其分组为单个块子系统块。
使用子系统:
建立一个分层框图,其中子系统块在一个层上,组成子系统的块在另一个层上。
将功能相关的块放在一起。
有助于减少模型窗口中显示的块的数量。
用输入和输出建立一个接口。
当您创建一个子系统的副本时,该副本独立于源子系统。要跨模型或跨模型重用子系统的内容,请考虑引用的子系统、引用的模型,或链接到自定义库中的块的子系统。有关更多信息,请参见在模型组件类型中进行选择.
子系统可以是虚拟的,也可以是非虚拟的。一个虚拟子系统在模型中提供图形层次结构,并且不影响模型的执行。一个nonvirtual子系统作为模型中的单个单元执行。
提示
对于控制器和其他独立组件,通过使用非虚拟子系统或引用模型在相关块周围定义硬边界。当您希望为组件生成代码时,预先定义硬边界可以避免代价高昂的重构。
万博1manbetx®将非虚拟子系统分为以下类型:
类型的子系统 | 描述 |
---|---|
原子子系统 | 作为单个单元执行的子系统。 |
启用子系统 | 由外部输入启用执行的子系统。 |
触发子系统 | 由外部输入触发执行的子系统。 |
函数调用子系统 | 由外部函数调用输入控制其执行的子系统。 |
启用和触发的子系统 | 由外部输入激活和触发执行的子系统。 |
复位子系统 | 用外部触发器重置块状态的子系统。 |
如果行动子系统 | 子系统,它的执行由如果块。 |
开关机箱动作子系统 | 子系统的执行由开关情况块。 |
而迭代器子系统 | 当逻辑条件为真时,在模拟时间步长期间重复执行的子系统。 |
对迭代器子系统 | 在模拟时间步长期间为指定的迭代次数重复执行的子系统。 |
为每个子系统 | 对输入信号的每个元素或子阵列重复执行并连接结果的子系统。 |
要创建一个子系统,你可以:
在Simuli万博1manbetxnk Editor中,双击并开始输入子系统类型,然后从菜单中选择相应的块。
在Simuli万博1manbetxnk Editor中,拖动一个选择框以概述要创建的子系统,然后选择子系统类型。
拖一个子系统阻止从图书馆浏览器。
复制并粘贴子系统从一个模型。
当您从一个选择框创建一个子系统时,选择可以是空的,也可以包含模型的一个区域中的多个块。
从操作栏中,选择您想要创建的子系统类型。
当选择包含与输入和输出端口对应的块时,新子系统将包含这些块的副本。新的子系统不包含与控制端口对应的块的副本。
您可以在创建之后更改子系统的类型。
要使子系统作为一个单元执行,请单击子系统块。在子系统选项卡上,选择是原子子系统.
要使子系统有条件地执行,添加一个与控制端口对应的块。
要使子系统无条件执行,请删除与控制端口对应的块。
a上的端口子系统Block对应子系统内的Block。
例如,这个子系统块有两个输入端口和一个输出端口。
该子系统包含两个轮廓尺寸块(三机一体
和In2
)和一个外港块(着干活
)对应的端口子系统块。
向子系统添加端口。
的边缘子系统阻塞,然后选择要创建的端口类型。
拖动一条线到子系统块。
通过双击子系统块,然后将相应的块添加到子系统。
更改端口的位置子系统控件的任意一侧拖动端口到新位置子系统块。
默认情况下,Simuli万博1manbetxnk在子系统块。要指定Simulink如何标记万博1manbetx一个子系统的端口:
选择子系统块。
在格式选项卡中选择一个标签选万博1manbetx项端口标签菜单。有关更多信息,请参见显示端口标签.
您可以更改名称子系统块和修改块的方式,你做任何其他块。例如,您可以:
的读/写权限参数的子系统Block控制子系统允许的访问级别。
请注意
限制读或写访问并不阻止更改访问限制。要隐藏专有信息,请考虑使用受保护的模型。有关更多信息,请参见探索受保护的模型功能.
当一个子系统存储在自定义库中时,您可以使用读/写权限参数来控制对该块的链接实例的访问。只要库链接保持完整,受限制的访问就可以阻止人们查看或修改子系统的内容,同时仍然允许他们在模型中使用它。有关更多信息,请参见连接块.
万博1manbetxSimulink.BlockDiagram.copyContentsToSubsystem