使用子系统
子系统(Subsystems)允许您将一组相关的模块封装成一个具名的独立组件。通过在清晰的对外端口接口后隐藏内部逻辑细节,子系统能让规模庞大且复杂的模型图保持高度的模块化和可维护性。
创建子系统
- 选中要封装的一组模块(通过鼠标框选或按住
Ctrl+单击多选)。 - 在选中的模块上右键单击,选择 封装为子系统(Group into Subsystem)。
- 选中的所有模块将被移动至新建的子系统内部,而在原父级画布的位置上将出现一个独立的 Subsystem 模块。
定义外部接口
子系统的外部端口由放置在其内部的两个特殊接口模块所定义:
- InPort:每个 InPort 对应父级 Subsystem 模块上的一个输入端口。您在 InPort 模块上设置的信号名称将直接作为外部端口的标签名称。
- OutPort:每个 OutPort 对应一个输出端口。信号从内部子图流出至上层父级画布。
在子系统内部添加更多 InPort 或 OutPort 模块,即可为外部 Subsystem 模块扩展更多的输入输出端口。
进入子系统内部
双击 Subsystem 模块即可打开其内部画布。顶部的面包屑导航栏(Breadcrumb bar)会实时显示您在层级结构中的当前位置:
顶层 > 我的子系统
子系统内部的建模方式与根画布完全一致——自由添加模块、连接信号,甚至继续嵌套下一级子系统。
返回上层
- 按
Backspace键返回上一层级。 - 点击面包屑导航栏中的任意层级节点,可直接跳转至该层级。
嵌套子系统
子系统内部可以嵌套更多子系统。层级深度没有硬性限制。建议在各个层级都使用语义明确的名称,以便于浏览和维护。
规范构建子系统的建议
- 为 InPort 和 OutPort 模块设置具有明确工程含义的信号名称——它们将直观地显示在父级画布的端口标签上。
- 遵循单一职责原则,让每个子系统专注于明确的特定任务(如 Controller 控制器、Plant 被控对象 / 物理系统、Observer 状态观测器 / 滤波模块)。
- 在子系统内部使用 自动布局(Auto-layout),使内部结构图保持规整清晰。
提示: 在 Subsystem 模块手册页面的 Demo 标签页中,提供了关于信号如何在子系统内外交互流动的动态直观演示。
另请参阅
- InPort:定义子系统的输入端口。
- OutPort:定义子系统的输出端口。