文档

使用总线编辑器创建总线对象

要交互式地创建总线对象及其元素,请使用Simulink万博1manbetx®公共汽车编辑器。使用总线编辑器创建的总线对象存储在MATLAB中®基本工作空间。要模拟使用总线对象的块,总线对象必须位于基本工作区或数据字典中。要保存总线对象定义以与模型关联,请将总线对象从基本工作空间导出到MATLAB代码文件或mat文件(请参阅保存和导入总线对象).

可以在定义总线对象之前或之后将总线对象指定为块的数据类型。但是,在模拟模型之前,总线对象和相应的总线信号必须具有相同数量的总线元素,且顺序相同。此外,总线对象中的每个总线元素和模型中相应信号中的每个总线元素必须具有相同的属性。

在模型开发过程中,您可以修改总线信号以匹配总线对象,或者修改总线对象以匹配总线。

提示

这个例子是一个简单的模型,介绍了总线对象定义和使用的基础知识。有关显示需要总线对象的模型的总线对象定义的示例,请参见使用MATLAB函数块的非虚拟总线sldemo_mdlref_bus

打开总线编辑器

根据您的建模任务,使用其中一种方法打开总线编辑器。

建模的任务 方法

创建模型

在Simuli万博1manbetxnk编辑器中,选择编辑>公共汽车编辑器

在模型上下文之外创建总线对象

在MATLAB命令行中,输入buseditor

探索和更新模型

在“模型资源管理器”中的总线对象对话框中,单击启动巴士编辑按钮。

创建总线对象

假设您的模型有两个总线,其中一个总线嵌套在另一个总线中。

属性对应的总线对象控制主要总线信号。要完成总线对象的定义并使用这些对象,还需要执行以下示例中的步骤:

  1. 打开ex_bus_object_tutorial.slx模型。

  2. 在Simuli万博1manbetxnk编辑器中,选择编辑>公共汽车编辑器

  3. 在总线编辑器中,选择文件>增加公共汽车

    此操作创建一个具有默认名称和属性的总线对象。对象出现在层次结构窗格及其属性显示在对话框窗格。

  4. 属性指定总线对象的名称名字财产。为了便于查看在模型中如何使用总线对象,请使用反映与总线对象关联的总线信号的名称。组合阀门输入的总线信号被命名控制因此,命名总线对象控制

  5. 方法提供有关总线对象的文档描述财产。输入结合两个阀门信号

  6. 点击应用

  7. 创建第二个总线对象。在层次结构窗格中,选择控制总线对象,并在工具栏中选择增加公共汽车按钮().

  8. 对话框窗格中,设置名字主要描述为包含三个信号(包括控制总线信号)的总线定义总线对象

  9. 点击应用

    层次结构窗格按字母顺序显示总线对象。

如果没有将总线对象导出到MATLAB代码文件或mat文件,请不要关闭MATLAB。否则,您将丢失总线对象定义。

要为总线对象定义总线元素对象,请执行中的步骤为总线对象创建总线元素

为总线对象创建总线元素

此示例构建在中创建的总线对象之上创建总线对象。类的总线元素对象的定义控制主要总线对象的ex_bus_object_tutorial.slx模型。

请注意

在本例中,总线元素的名称和相应的信号是不同的,以便突出显示它们是不同的实体。的默认值元素名称不匹配诊断为错误,则信号名称和相应的总线元素名称必须完全匹配才能在所有平台上运行。

的总线创建器块使用默认设置从输入覆盖总线信号名称块参数。的默认设置传播模型中信号的信号名称,而不是总线对象中总线元素的名称。

要完成总线对象的定义并使用这些对象,还需要执行以下示例中的步骤:

  1. 在总线编辑器中层次结构窗格中,选择控制总线对象。

  2. 选择文件>添加/插入BusElement

    属性中创建了一个具有默认名称和属性的新总线元素控制总线对象。总线元素出现在层次结构下面的窗格控制总线对象。

  3. 对话框窗格中,设置名字VALVE1,以反映总线中顶部信号的名称。

  4. 常数块,打开块参数对话框,并选择信号的属性选项卡。

  5. 在总线编辑器中对话框窗格中,设置数据类型财产,以配合输出数据类型块参数的设置常数块。对其他总线元素对象属性使用默认设置。

  6. 点击应用

  7. 对象对应的第二个总线元素对象valve2总线元件信号。在层次结构窗格中,选择VALVE1元素对象,并单击添加/插入总线元素按钮().

    将总线对象名称设置为VALVE2

  8. Constant1块,打开块参数对话框,选择信号的属性选项卡。

    输出数据类型int8

  9. 在总线编辑器中对话框窗格,用于VALVE2总线元素对象,set数据类型财产int8。对其他总线元素对象属性使用默认设置。

  10. 点击应用

  11. 对象的总线元素对象二次总线元件的信号主要公共汽车。在层次结构窗格中,选择主要总线对象,并单击添加/插入总线元素按钮。

  12. 设置名字财产二次数据类型财产int32,匹配三机一体块输出信号数据类型。点击应用

  13. 对象的总线元素对象主要的总线元件的信号主要公共汽车。在层次结构窗格中,选择二次元素对象,并单击添加/插入总线元素按钮。

  14. 设置名字财产主要的数据类型财产布尔,匹配In2块输出信号数据类型。点击应用

要为控制总线(主总线的第三个总线元素)定义总线元素对象,请执行中的步骤嵌套总线对象定义

嵌套总线对象定义

总线中的任何信号都可以是另一个总线,而另一个总线又可以包含任意深度的从属总线。用总线对象描述嵌套总线需要嵌套对象提供的总线对象定义。

每个总线对象定义一个数据类型,其属性由该对象指定。若要将一个总线对象定义嵌套在另一个总线对象中,请为一个总线对象的总线元素分配由另一个总线对象定义的数据类型。总线元素对象表示嵌套的总线。指定总线元素对象的数据类型的总线对象定义嵌套的总线元素。

总线对象定义的数据类型称为总线类型。通过将总线类型分配给元素来嵌套总线,可以在多个上下文中方便地使用相同的总线定义,而不会产生不必要的交互。

类创建的总线对象和总线元素为基础构建此示例ex_bus_object_tutorial.slx模型创建总线对象为总线对象创建总线元素

  1. 在总线编辑器中层次结构窗格中,选择主要的元素对象,并单击添加/插入总线元素按钮。

  2. 对话框窗格中,设置名字财产VALVES_BUS

  3. 数据类型属性,使用总线:<对象名称>模板,取代<对象名称>控制对象的总线对象的名称控制公共汽车。

  4. 点击应用

    如果你展开VALVES_BUS的两个总线元素对象控制总线对象,VALVE1VALVE2

  5. 您已经完成了本例的总线对象定义。考虑将总线对象导出到MATLAB代码文件。在总线编辑器中,选择文件>导出到文件。在Export对话框中,为总线对象MAT-file指定文件名。

要使用总线对象创建非虚拟总线,请执行中的步骤使用总线对象创建非虚拟总线

避免循环嵌套总线对象定义

您可以根据需要在任意多个不同的总线对象中嵌套一个总线对象,也可以根据需要在同一个总线对象中嵌套多次。可以将总线对象嵌套到任何深度,但不能通过直接或间接地在总线对象内部嵌套来定义循环结构。

如果定义循环结构,总线编辑器将发出警告,并将完成循环的元素的数据类型设置为。点击好吧关闭警告并继续使用编辑器。

使用总线对象创建非虚拟总线

的公共汽车ex_bus_object_tutorial中定义的创建总线对象Example及其相关示例是虚拟总线。使用这些例子中定义的总线对象将虚拟总线更改为非虚拟总线:

  1. 打开“总线创建器”块参数对话框。集输出数据类型总线:控制并选择输出为非虚拟总线

    请注意

    可以使用总线对象指定块的数据类型,而无需指定该总线是非虚拟总线。必须为非虚拟总线指定总线对象,但对于虚拟总线是可选的。

  2. 打开总线Creator1块参数对话框。集输出数据类型总线:主要并选择输出为非虚拟总线

  3. 添加另一个外港块后的总线Creator1块并将其连接到主要信号。

  4. 打开Out3块参数对话框。在信号的属性选项卡,设置数据类型总线:主要并选择在父模型中输出为非虚拟总线

ex_bus_object_tutorial_using_objects.slx模型使用您定义的总线对象。当您模拟模型时,您会看到总线现在是非虚拟的。

有关在模型中定义总线对象和使用非虚拟总线的另一个示例,请参见使用MATLAB函数块的非虚拟总线

使用MATLAB函数块的非虚拟总线

如果一个MATLAB函数块输出一个结构,然后需要使用总线对象定义总线输出。在ex_bus_object_matlab_func模型中,MATLAB函数块包含创建结构的MATLAB代码。这是仿真后的模型。

要查看结构定义,双击MATLAB函数块。

打开总线编辑器并展开表示该结构的总线对象定义。

类的总线输出如何使用总线对象MATLAB函数,在MATLAB编辑器中,单击编辑数据然后点击y。输出类型定义为function_bus对象。

另请参阅

相关的话题

这个话题有用吗?