Main Content

合成接口规范

为了简化模型外观,您可以对信号、消息或守恒连接进行组合,以便为模型组件和模块创建合成接口。合成接口可以减少模型组件上的端口数量和模块图中的线条数量。合成接口的元素保留它们各自的身份。

虚拟总线可满足合成接口的大多数建模要求,并可灵活地组合不同类型的元素。虚拟总线可减少模块图中线条的复杂度和杂乱无章,并使进一步更改接口变得更容易。例如,如果您必须在组件接口中添加或删除元素,修改总线可能比添加或删除端口更简单。

创建合成接口(如虚拟总线)时,可以根据信号线的功能对其进行分组。通过将信号、消息或连接组织到逻辑分组中,可以降低将来进行重大重构的可能性。

在组件接口处使用 In Bus ElementOut Bus Element 模块。In Bus Element 模块允许您在使用时按名称提取总线元素。Out Bus Element 模块允许您通过将元素连接到同一输出端口的多个 Out Bus Element 模块来构建输出总线。

要在一个接口上强制合成总线,请使用 Simulink.Bus 对象。

要在生成的代码中将总线定义实现为一个结构体,或在子系统(例如 For Each 子系统)中以迭代方式处理总线,请考虑将虚拟总线改为非虚拟总线

可视化合成接口

假设您有以下相对简单的模型。

Model ex_modeling_simulation_data_inspector.slx

此模型中的每个组件接口都有多个端口,诸多信号线使模型变得杂乱无章。

使用合成接口,您可以通过减少信号线数量来简化模块图。

Model ex_modeling_composite_signals.slx

虚拟总线根据四种不同类型的功能简化模块图中的信号线:传感器数据、系统目标、控制信号和系统扰动。

这些组件在其接口处使用 In Bus ElementOut Bus Element 模块。例如,假设有名为 Controller 的子系统,内容如下。

Contents of the subsystem named Controller

每个 In Bus ElementOut Bus Element 模块都有一个显示对应元素的标签,例如 sensor.x1。在此示例中,sensor 是端口的名称,而 x1 是总线元素的名称。两个 In Bus Element 模块选择此元素以避免分支信号线。

定义合成接口

在创建合成接口之前,请考虑您的高层和低层建模需求。

1. Explore Composite Interfaces

根据您的高级建模需求,决定如何对信号、消息或保存连接进行分组。

2. Compare Capabilities of Composite Interfaces

将虚拟总线、非虚拟总线和总线数组与低层建模需求进行比较。

提示

要确定模型组件的边界、数据作用域和接口属性,请参阅Define Interfaces of Model Components