Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

总线编辑器

创建、修改和管理总线对象

说明

总线编辑器可让您以交互方式创建、修改和管理 Simulink.BusSimulink.ConnectionBus 对象及其中包含的 Simulink.BusElementSimulink.ConnectionElement 对象。

窗格提供可用的源,即 MATLAB® 基础工作区和打开的数据字典。您创建的对象存储在所选源中。在工具条中,您可以创建或打开数据字典。您也可以将由 MAT 文件、函数或脚本定义的对象导入基础工作区中。

交互式表显示有关对象的信息,如层次结构和属性。您可以使用工具条中的列表来选择在表中显示哪些列。使用该表可以:

  • 筛选内容 - 输入通用筛选器或特定于列的筛选器。

  • 更改值 - 双击表中的值并输入新值。在顶层编辑总线对象及其元素的属性,而不是在总线对象指定为数据类型的地方。

  • 对元素重新排序 - 将元素拖到新位置,或使用工具条中的上移下移按钮。

  • 剪切、复制和粘贴元素 - 使用键盘快捷方式或工具条中的对应按钮。

  • 删除元素 - 按 Delete 键或点击工具条中的删除按钮。删除总线对象时,会同时删除它包含的元素对象。更新指定已删除对象的所有模块。要查找总线对象在模型中的使用位置,请参阅查找使用特定变量的模块

在表中,您可以同时编辑同一类型的多个所选对象。

属性检查器窗格允许您一次将焦点放在一个对象上并编辑其属性。当输入不受支持的值时,此窗格中会出现一条诊断消息。

注意

总线编辑器不支持撤消或重做操作。创建、重新排序或删除对象等更改会立即在基础工作区中生效。

总线编辑器可以将对象定义导出为 MAT 文件 (.mat) 或函数 (.m)。它还可以从 Simulink.Bus 对象创建 MATLAB 结构体或 Simulink.Parameter 对象。您可以在工具条的共享部分中找到这些操作。

打开 总线编辑器

  • Simulink® 工具条:在建模选项卡的设计库中,点击总线编辑器

  • MATLAB 命令行窗口:输入 buseditor

  • 模型资源管理器:在总线对象对话框中,点击启动总线编辑器

示例

全部展开

假设您要为具有 Simulink.Bus 对象的模型定义接口。对于此示例,该接口接收名为 sinechirpconstantpulsesaw 的信号。您希望该接口对所有信号进行分组。在该组中,您希望该接口对正弦和非正弦信号进行分组。

您可以在基础工作区或数据字典中创建该对象。在窗格中,选择包含新对象的位置。

  • 要创建数据字典,请在总线编辑器工具条中,点击新建。在对话框中,指定数据字典的名称。然后,点击保存

  • 要打开数据字典,请在总线编辑器工具条中,点击打开。在对话框中,指定要打开的数据字典。然后点击打开

创建三个 Simulink.Bus 对象。

  1. 在工具条的添加库中,点击总线三次以创建三个 Bus 对象。

  2. 将这些对象命名为 interfacesinusoidalnonsinusoidal。在表中双击每个对象名称以输入新名称,或使用属性检查器窗格。

Simulink.BusElement 对象添加到 Bus 对象。

  1. 选择名为 interface 的对象,并向其添加三个 BusElement 对象。在工具条中,点击三次总线元素

  2. 将元素命名为 constantsinusoidal_busnonsinusoidal_bus。在表中双击每个对象名称以输入新名称,或使用属性检查器窗格。

  3. 同样,选择 sinusoidal 总线对象,并向其添加两个元素,分别命名为 sinechirp

  4. 选择 nonsinusoidal 总线对象,并向其添加两个元素,分别命名为 pulsesaw

总线中的任何元素都可以是另一条总线,而这些总线又可以包含下级总线,可以达到任意深度。为了模拟这种总线层次结构,总线元素对象可以指定总线对象数据类型。

将名为 sinusoidalnonsinusoidalBus 对象嵌套在名为 interfaceBus 对象中。

  1. 对于名为 sinusoidal_bus 的对象,将数据类型设置为 Bus: sinusoidal

  2. 对于名为 nonsinusoidal_bus 的对象,将数据类型设置为 Bus: nonsinusoidal

名为 interface 的对象现在与所需的组件接口层次结构匹配。要在组件接口上指定对象,可以将其指定为 In Bus ElementInportOut Bus ElementOutport 模块的数据类型。

当您在基础工作区或数据字典中创建或修改总线对象时,请保存这些对象以供将来使用。如果模块指定了这些对象,则这些对象是仿真所必需的。

总线编辑器可将总线对象保存在 MAT 文件 (.mat)、MATLAB 函数 (.m) 或数据字典 (.sldd) 中。

要保存基础工作区中的对象,请执行以下操作:

  1. 窗格中,选择基础工作区。

  2. 在工具条中,点击导出按钮箭头。然后,选择其中一个选项,以创建 MAT 文件或 MATLAB 函数。

    对于 MATLAB 函数,您可以选择将对象保存为压缩元胞格式或可读性更好的对象格式。

  3. 在“导出”对话框中,指定文件名,然后点击保存

或者,从基础工作区剪切或复制对象。然后,将它们粘贴到数据字典中。

要保存数据字典中的对象,请执行以下操作:

  1. 窗格中,选择修改后的数据字典。

  2. 在工具条中,点击保存。或者,右键点击数据字典并选择保存更改

您可以使用总线编辑器管理来自多个源的总线对象。

您可以从函数、脚本或 MAT 文件导入总线对象。

  1. 在工具条中,点击导入按钮箭头,然后选择其中一个选项。

  2. 在“导入基础工作区中”对话框中,选择定义总线对象的文件,并点击打开

导入将加载文件的完整内容,而不仅仅是总线对象。表按字母顺序显示可用的总线对象。

您还可以打开数据字典来管理其总线对象。

  1. 在工具条中,点击打开

  2. 在“打开”对话框中,选择定义总线对象的数据字典,并点击打开

使用筛选器按名称或属性值快速查找总线元素。筛选器可以是搜索词或正则表达式。有关正则表达式的信息,请参阅正则表达式

要快速查找数据类型为 double 的元素,请在筛选内容框或按数据类型筛选框(当您在数据类型列标题上暂停并点击出现的按钮时会出现该框)中键入 double。键入时,表会动态更新,以仅显示名称或属性值与筛选器匹配的对象及其父对象。比较时不区分大小写。

您可以使用总线编辑器来修改基础工作区和数据字典中的总线对象。

要在总线编辑器中编辑一个或多个相同类型的对象,请执行以下操作:

  1. 选择要更新的对象。

    • 要选择多个不连续的对象,请按住 Ctrl 键并选择每个元素。

    • 要选择多个连续的对象,请按住 Shift 键并选择第一个和最后一个元素。

    • 要选择所有对象,请先选择一个对象。然后,按 Ctrl+A 键。

  2. 双击要为属于同一对象类型的所有所选元素更改的属性值。然后,指定新值。

    当您提交新值时,该更改将应用于同一对象类型的所有所选对象。

您也可以在属性检查器窗格中一次编辑一个对象。

要编辑嵌套总线对象的元素,请右键点击灰显的元素,然后选择转至以转至该元素的可编辑实例。

要对元素重新排序,请选择元素并将其拖到新位置,或使用工具条中的上移下移按钮。

您可以像在未筛选视图中一样编辑筛选视图中的内容。不再匹配筛选器的元素将从表中消失。相反,如果总线编辑器之外的某些活动更改了已筛选的对象,使其通过当前筛选器,则该对象立即变得可见。

操作只影响可用的对象。筛选器隐藏的对象不受操作的影响。要对所有可用对象进行操作,请清除筛选器。

您可以使用总线编辑器来创建 MATLAB 结构体以用于初始化。

假设您有一个名为 MyDataSimulink.Bus 对象,它包含两个元素,名称分别为 temperaturepressure

  • temperature - 数据类型为 int16 的信号

  • pressure - 嵌套的总线数组,数据类型为 Bus: PressureBus,维度指定为 [1 3]

名为 PressureBus 的嵌套 Bus 对象有两个元素,名称分别为 s1s2

MyData bus object in the Bus Editor

选择名为 MyDataBus 对象。然后,在工具条中,点击 MATLAB 结构体

指定新 MATLAB 结构体的名称和位置。

MATLAB 结构体为每个元素指定初始条件 0

MyData_MATLABStruct = struct;
MyData_MATLABStruct.temperature = int16(0);
MyData_MATLABStruct.pressure = struct;
MyData_MATLABStruct.pressure(1).s1 = 0;
MyData_MATLABStruct.pressure(1).s2 = 0;
MyData_MATLABStruct.pressure(2).s1 = 0;
MyData_MATLABStruct.pressure(2).s2 = 0;
MyData_MATLABStruct.pressure(3).s1 = 0;
MyData_MATLABStruct.pressure(3).s2 = 0;

(可选)更改结构体元素的初始条件。

使用 MATLAB 结构体指定模块(如 Unit Delay 模块)的初始条件参数。

要为定义总线数组的顶层 Bus 对象创建 MATLAB 结构体,请使用 Simulink.Bus.createMATLABStruct 函数。

提示

  • 总线对象无法直接或间接引用自身。如果您定义循环结构,总线编辑器会保留已完成循环的元素的原始数据类型。

  • 在总线编辑器中只显示与您相关的列。例如,如果您不使用 Simulink.ConnectionBus 对象,请在总线编辑器工具条中,点击并清除类型

  • 当您有使用 Bus Creator 模块创建总线的模型时,您可以使用 Simulink.Bus.createObject 函数来创建对应的对象,而不是单独创建每个 Simulink.BusSimulink.BusElement 对象。

版本历史记录

在 R2006a 之前推出

全部展开