BlockWerk 指南

使用子系统

子系统(Subsystems)允许您将一组相关的模块封装成一个具名的独立组件。通过在清晰的对外端口接口后隐藏内部逻辑细节,子系统能让规模庞大且复杂的模型图保持高度的模块化和可维护性。

创建子系统

  1. 选中要封装的一组模块(通过鼠标框选或按住 Ctrl+单击 多选)。
  2. 在选中的模块上右键单击,选择 封装为子系统(Group into Subsystem)。
  3. 选中的所有模块将被移动至新建的子系统内部,而在原父级画布的位置上将出现一个独立的 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:定义子系统的输出端口。

在 BlockWerk 中仿真

浏览器即开即用的交互式仿真环境 — 无需安装,由 WebAssembly 强力驱动。

在 BlockWerk 中仿真 →