主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

Simulink 总线功能

一条总线表示一组元素,类似于捆绑在一起的一束电线。总线减少了模块图中的线路复杂性和混乱性,并使逐步更改组件接口变得更加容易。例如,如果您必须在组件接口中添加或删除元素,修改总线可能比添加或删除端口更简单。

此示例向您介绍了 Simulink® 总线功能,可帮助您:

  • 用总线来组织模块图。

  • 通过总线元素端口简化组件接口。

  • 通过智能编辑简化常见的总线工作流。

打开并编译 BusCapabilities 模型。要编译模型,请在 Simulink 工具条的建模选项卡上点击更新模型

mdl = "BusCapabilities";
open_system(mdl);
set_param(mdl, SimulationCommand="Update");

BusCapabilities model with three areas that each contain one or more Subsystem blocks

编译模型会更新线型。当您打开模型时,总线具有与标量信号相同的线型。模型编译后,每辆总线的线型均为三条平行线。

组织包含总线的模块图

BusRouting 子系统演示了如何:

  • 使用 Bus Creator 模块创建总线。

  • 使用 Bus Assignment 模块替换总线中的元素。

  • 使用 Bus Selector 模块从总线中提取元素。

BusRouting subsystem

每个Bus Creator模块将其输入分组到总线中。

  • BusCreator1 创建一个包含名为 sinechirp 的信号的总线。输出总线名为 sinusoidal

  • BusCreator2 创建一个包含名为 pulsesaw 的信号的总线。输出总线名为 nonsinusoidal

  • BusCreator3 创建一个包含名为 sinusoidalnonsinusoidal 的总线。在新总线的上下文中,这些总线被称为嵌套总线

  • BusCreator4 创建一个包含不同信号的总线,分别名为 pulsesaw

要查看总线的层次结构,点击该总线。然后,在信号选项卡上,选择信号层次结构。例如,检查由 BusCreator3 创建的顶级总线的层次结构。

Bus hierarchy in which the top bus contains a nested bus named sinusoidal, a signal named constant, and a nested bus named nonsinusoidal

Bus Assignment 模块替换连接到其总线输入端口的总线中的一个或多个元素。在此示例中,顶层总线连接到 Bus 输入端口。Bus Assignment 模块用不同的信号替换名为 constant 的信号,用不同的总线替换名为 nonsinusoidal 的总线。

Bus Selector模块从连接到其输入端口的总线中提取一个或多个元素。在此示例中,Bus Selector 模块选择标识为 nonsinusoidal.pulsesinusoidal.sineconstant 的信号。

每个选定的信号连接到一个显示信号值的接收器。仿真开始后,Scope 窗口显示 nonsinusoidal.pulsesinusoidal.sine 的值,Display 模块显示 constant 的值。要查看此行为,仿真模型。

sim(mdl);

A Display block shows the value of constant at the end of the simulation. A Scope block receives simulation data from nonsinusoidal.pulse and sinusoidal.sine.

使用总线元素端口简化组件接口

为了在输出端口创建总线层次结构,BusOutput 子系统使用 Out Bus Element 模块。

Subsystem with five Out Bus Element blocks

Out Bus Element模块的行为类似于连接到 Outport 模块的 Bus Creator 模块。每个 Out Bus Element 模块都有一个标识输出的标签。例如,标签为 Out1.sinusoidal.sine 的 Out Bus Element 模块在名为 Out1 的输出端口上,在名为 sinusoidal 的嵌套总线中创建名为 sine 的元素。

为了从输入端口提取总线元素,BusInput 子系统使用 In Bus Element 模块。

Subsystem with three In Bus Element blocks

In Bus Element 模块类似于连接到 Bus Selector 模块的 Inport 模块。每个 In Bus Element 模块都有一个标识输入的标签。例如,标签为 In1.sinusoidal.sine 的 In Bus Element 模块从名为 In1 的输入端口中选择名为 sinusoidal 的嵌套总线中名为 sine 的元素。

总线元素端口支持部分选择。子系统的输入端口接收包含五个元素的总线,但子系统仅使用三个元素。这种灵活性使您可以创建使用同一输入端口的不同元素的变体。

要更改与 In Bus Element 或 Out Bus Element 模块对应的输入或输出,请编辑模块标签。标签的第一部分是端口名称。标签的第二部分是元素路径,其中每个点表示另一个层次结构。

GIF that demonstrates label editing

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

GIF that demonstrates selecting a different element from a subsystem input port

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

GIF that shows the menu that opens when you right-click and drag an Out Bus Element block

要创建端口,您还可以复制并粘贴 In Bus Element 或 Out Bus Element 模块。

要显示一组 In Bus Element 模块访问的总线或一组 Out Bus Element 模块创建的总线,请打开属性检查器。然后,选择其中一个模块。或者,双击其中一个模块。

从属性检查器或对话框中,您可以执行多个操作。例如,您可以:

  • 重命名端口和元素。

  • 添加元素,无论是否添加模块。

  • 指定总线及其元素的属性。

  • 按总线或选择单独更改模块颜色。

  • 重新排序输出端口的元素。

GIF that demonstrates Property Inspector actions for an output bus element port

要更改当前模块图显示 In Bus Element 和 Out Bus Element 模块标签的方式,点击 In Bus Element 或 Out Bus Element 模块,在省略号上暂停,然后选择以下选项之一:

  • 扩展符号 - 标签显示端口名称和元素路径,例如 Out1.sinusoidal.sine

  • 紧凑符号 - 标签仅显示叶元素名称。例如,Out1.sinusoidal.sine 变为 sine。点击标签时,标签的两个部分都会出现以供编辑。

GIF that toggles between expanded and compact notation

虽然此示例演示了子系统接口处的 In Bus Element 和 Out Bus Element 模块,但这些模块在模型接口处的行为类似。

通过智能编辑简化常见总线工作流

智能编辑可让您快速:

  • 将输入和输出端口转换为总线元素端口。

  • 在输入和输出接口处创建总线。

  • 从模块输出创建总线。

  • 将端口添加到总线模块。

  • 将总线元素端口添加到子系统和参考模型。

快速转换端口

PortConversion 子系统包含两个通过总线连接的子系统。第一个子系统包含总线创建器和 Outport 模块,以转换为 Out Bus Element 模块。第二个子系统包含 Inport 和 Bus Selector 模块,用于转换为 In Bus Element 模块。

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

GIF that demonstrates Bus Ports action for Bus Creator and Outport blocks

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

GIF that demonstrates Bus Ports action for Bus Selector and Inport blocks

快速创建总线

BusCreation 子系统设置为在子系统接口和模块输出处创建总线。

要在子系统接口处创建总线,请拖动选择框围绕相应的线路。将鼠标暂停在出现的省略号上。然后,从操作栏中选择创建总线

GIF that demonstrates Create Bus action for subsystem inputs and outputs

此操作将选定的元素捆绑在总线中,用子系统中的 In Bus Element 和 Out Bus Element 模块替换 Inport 和 Outport 模块,并添加 Bus Creator 和 Bus Selector 模块以维持子系统外部的连接。

要在模块输出处创建总线,请拖动选择框到相应的模块周围。将鼠标暂停在出现的省略号上。然后,从操作栏中选择创建总线

GIF that demonstrates Create Bus action for three source blocks

此操作插入一个 Bus Creator 模块,该块接收来自选定模块的输入。

快速创建端口

PortCreation 子系统设置为在 Bus Creator 模块上创建输入端口、在 Bus Selector 模块上创建输出端口并在 Subsystem 模块上创建总线元素端口。

要向总线添加元素,请将一条信号线拖到 Bus Creator 模块。要从总线中选择元素,请将一条信号线拖到 Bus Selector 模块,然后从可用元素列表中选择所需的元素。

GIF that demonstrates port sprouting for Bus Creator and Bus Selector blocks

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

GIF that demonstrates bus element port sprouting for a Subsystem block

另请参阅

| | | |

主题