Simulink 总线功能
总线表示一组元素,类似于捆绑在一起的一束电线。总线可减少模块图中线条的复杂度和杂乱无章,并使进一步更改组件接口变得更容易。例如,如果您必须在组件接口中添加或删除元素,修改总线可能比添加或删除端口更简单。
此示例向您介绍 Simulink® 总线功能,这些功能可帮助您:
使用总线组织模块图。
使用总线元素端口简化组件接口。
通过智能编辑简化常见总线工作流。
打开并编译 BusCapabilities 模型。要编译模型,请在 Simulink 工具条的建模选项卡上,点击更新模型。
mdl = "BusCapabilities"; open_system(mdl); set_param(mdl, SimulationCommand="Update");

编译模型会更新线型。打开模型时,总线与标量信号具有相同的线型。在模型编译后,每条总线都有一个包含三条平行线的线型。
使用总线组织模块图
BusRouting 子系统说明如何:
使用 Bus Creator 模块创建总线。
使用 Bus Assignment 模块替换总线中的元素。
使用 Bus Selector 模块从总线中提取元素。

每个 Bus Creator 模块将其输入组合到一条总线中。
BusCreator1创建一条包含名为sine和chirp的信号的总线。输出总线命名为sinusoidal。BusCreator2创建一条包含名为pulse和saw的信号的总线。输出总线命名为nonsinusoidal。BusCreator3创建一条总线,其中包含名为sinusoidal和nonsinusoidal的总线。在新总线的上下文中,这些总线称为嵌套总线。BusCreator4创建一条包含名为pulse和saw的不同信号的总线。
要查看总线的层次结构,请点击该总线。然后,在信号选项卡上,选择信号层次结构。例如,检查由 BusCreator3 创建的顶层总线的层次结构。

Bus Assignment 模块替换连接到其总线输入端口的总线中的一个或多个元素。在此示例中,顶层总线连接到总线输入端口。Bus Assignment 模块将名为 constant 的信号替换为不同信号,并将名为 nonsinusoidal 的总线替换为不同总线。
Bus Selector 模块从连接到其输入端口的总线中提取一个或多个元素。在此示例中,Bus Selector 模块选择标识为 nonsinusoidal.pulse、sinusoidal.sine 和 constant 的信号。
每个选定信号连接到一个显示信号值的信宿。仿真开始后,示波器窗口显示 nonsinusoidal.pulse 和 sinusoidal.sine 的值,Display 模块显示 constant 的值。要查看此行为,请对模型进行仿真。
sim(mdl);


使用总线元素端口简化组件接口
为了在输出端口上创建总线层次结构,BusOutput 子系统使用 Out Bus Element 模块。

Out Bus Element 模块的行为类似于连接到 Outport 模块的 Bus Creator 模块。每个 Out Bus Element 模块都有一个标识输出的标签。例如,标签为 Out1.sinusoidal.sine 的 Out Bus Element 模块在名为 Out1 的输出端口上名为 sine 的嵌套总线中创建一个名为 sinusoidal 的元素信号。
为了从输入端口提取总线元素,BusInput 子系统使用 In Bus Element 模块。

In Bus Element 模块类似于连接到 Bus Selector 模块的 Inport 模块。每个 In Bus Element 模块都有一个标识输入的标签。例如,标签为 In1.sinusoidal.sine 的 In Bus Element 模块从名为 In1 的输入端口中选择位于名为 sinusoidal 的嵌套总线中的名为 sine 的元素。
总线元素端口支持部分选择。子系统的输入端口接收一条包含五个元素的总线,但子系统仅使用三个元素。这种灵活性允许您创建使用同一输入端口的不同元素的变体。
要更改与 In Bus Element 或 Out Bus Element 模块对应的输入或输出,请编辑模块标签。标签的第一部分是端口名称。标签的第二部分是元素路径,其中每个点表示层次结构的另一个级别。

对于接收总线的子系统输入端口,请从可用元素列表中进行选择。

要创建一个端口或为现有端口添加一个模块,请右键点击并拖动 In Bus Element 或 Out Bus Element 模块。然后,选择新建端口、新建元素或复制。为防止对输出元素的重叠写入,复制功能对 Out Bus Element 模块禁用。

要创建一个端口,您也可以复制并粘贴 In Bus Element 或 Out Bus Element 模块。
要显示由一组 In Bus Element 模块访问的总线或由一组 Out Bus Element 模块创建的总线,请打开属性检查器。然后选择其中一个模块。或者双击其中一个模块。
从属性检查器或对话框中,您可以执行多种操作。例如,您可以:
重命名端口和元素。
在添加或不添加模块的情况下添加元素。
指定总线及其元素的属性。
单独、按总线或按所选内容更改模块颜色。
对输出端口的元素重新排序。

要更改当前模块图显示 In Bus Element 和 Out Bus Element 模块标签的方式,请点击 In Bus Element 或 Out Bus Element 模块,将鼠标悬停在省略号上,然后选择以下选项之一:
扩展表示法 - 标签显示端口名称和元素路径,例如,
Out1.sinusoidal.sine。紧凑表示法 - 标签仅显示叶元素名称。例如,
Out1.sinusoidal.sine变为sine。当您点击标签时,标签的两个部分都会显示以供编辑。

虽然此示例在子系统接口处演示 In Bus Element 和 Out Bus Element 模块,但这些模块在模型接口处的行为类似。
通过智能编辑简化常见总线工作流
智能编辑使您能够快速:
将输入端口和输出端口转换为总线元素端口。
在输入和输出接口处创建总线。
从模块输出创建总线。
向总线模块添加端口。
向子系统和引用模型添加总线元素端口。
快速转换端口
PortConversion 子系统包含两个通过总线连接的子系统。第一个子系统包含要转换为 Out Bus Element 模块的 Bus Creator 和 Outport 模块。第二个子系统包含要转换为 In Bus Element 模块的 Inport 和 Bus Selector 模块。
在第一个子系统中,点击连接到 Outport 模块的 Bus Creator 模块。将鼠标暂停在出现的省略号上。然后,从操作栏中选择总线端口。

在第二个子系统中,点击连接到 Inport 模块的 Bus Selector 模块。将鼠标暂停在出现的省略号上。然后,从操作栏中选择总线端口。

快速创建总线
BusCreation 子系统已设置好,可以在子系统接口和模块输出处创建总线。
要在子系统接口处创建一条总线,请在对应的信号线周围拖动以绘制一个选择框。将鼠标暂停在出现的省略号上。然后,从操作栏中选择创建总线。

此操作将选定元素捆绑到一条总线中,将 Inport 和 Outport 模块替换为子系统中的 In Bus Element 和 Out Bus Element 模块,并添加 Bus Creator 和 Bus Selector 模块以保持子系统外部的连接性。
要在模块输出处创建一条总线,请在对应的模块周围拖动以绘制一个选择框。将鼠标暂停在出现的省略号上。然后,从操作栏中选择创建总线。

此操作会插入一个 Bus Creator 模块,该模块接收来自选定模块的输入。
快速创建端口
PortCreation 子系统已设置好,可以在 Bus Creator 模块上创建输入端口,在 Bus Selector 模块上创建输出端口,以及在 Subsystem 模块上创建总线元素端口。
要向总线添加元素,请将一条信号线拖到 Bus Creator 模块。要从总线中选择元素,请将一条信号线拖到 Bus Selector 模块,然后从可用元素列表中选择所需的元素。

要向一个子系统或模型添加总线元素端口,请点击 Subsystem 模块或 Model 模块的边缘。然后,选择创建输入总线端口或创建输出总线端口。

另请参阅
Bus Assignment | Bus Creator | Bus Selector | In Bus Element | Out Bus Element