Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Simulink.Bus.createObject

基于模块或 MATLAB 结构体创建 Simulink.Bus 对象

说明

示例

busInfo = Simulink.Bus.createObject(model,blocks) 为指定的模块创建 Simulink.Bus 对象,并返回有关创建的 Bus 对象的信息。这些 Bus 对象是在基础工作区中创建的,或在模型使用的数据字典(如果可用)中创建的。

busInfo = Simulink.Bus.createObject(struct) 基于数值结构体或其中可包含 MATLAB® timeseries、MATLAB timetablematlab.io.datastore.SimulationDatastore 对象的结构体创建 Bus 对象。这些 Bus 对象是在基础工作区中创建的,或在模型使用的数据字典(如果可用)中创建的。

示例

busInfo = Simulink.Bus.createObject(___,file)Bus 对象保存在函数中,该函数在由元胞数组构成的元胞数组中定义对象属性,然后通过调用 Simulink.Bus.cellToObject 创建 Bus 对象。

示例

busInfo = Simulink.Bus.createObject(___,file,format)Bus 对象保存在具有指定格式的函数中。该函数可以使用元胞数组或数组来定义对象属性。

busInfo = Simulink.Bus.createObject(___,file,format,scope)scope 指定的数据字典中创建 Bus 对象。

示例

全部折叠

打开示例模型。

open_system('BusObjectCreationModel')

创建与 Bus Creator 模块创建的总线对应的 Bus 对象。

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    'BusObjectCreationModel/Bus Creator');

基于两个 Bus Creator 模块创建 Bus 对象,并将 Bus 对象定义保存在一个函数中。

打开示例模型。

open_system('BusObjectCreationModel');

使用 getSimulinkBlockHandle 函数将 Bus Creator 模块的模块句柄赋给一个变量。

bc = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator');

您也可以在模型中选择一个 Bus Creator 模块,然后使用 gcbh 函数获取其模块句柄。

将 Bus Creator1 模块的模块句柄赋给一个变量。

bc1 = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator1');

要创建一个 Bus 对象,请在向量中指定模块句柄变量。要保存 Bus 对象定义,还要指定文件名。

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    [bc bc1], 'BusObjectFunction');

由于这些 Bus Creator 模块会创建一个总线层次结构,因此仅指定 Bus Creator1 模块即可在工作区中和函数中创建两个 Bus 对象。

BusObjectFunction 与此命令创建的函数进行比较。

topBusInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFromHierarchy');

对于采用更易于读取的格式的函数,请将函数格式指定为 object

topBusInfo1 = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFormatted','object');

输入参数

全部折叠

模型名称或句柄,指定为字符向量。

与总线相关联的模块,指定为字符向量、模块路径名称的元胞数组或模块句柄的向量。如果有一个模块,则指定模块的完整路径名称。如果有多个模块,则指定模块路径名称元胞数组或模块句柄向量。

此函数可以基于下列模块创建 Bus 对象:

  • Bus Creator 模块

  • 子系统 Inport 模块

  • 子系统 Outport 模块

如果指定与总线层次结构关联的模块,该函数还会为该层次结构中的所有嵌套总线创建 Bus 对象。

数值结构体或对象结构体,指定为数值结构体或其中可以包含 MATLAB timeseries、MATLAB timetablematlab.io.datastore.SimulationDatastore 对象的结构体。

要生成的函数的名称,指定为字符向量。文件名必须唯一。

要生成的函数的格式,指定为 'cell''object''cell' 格式更紧凑,但 'object' 格式更易于读取。

'cell' 格式将 Bus 对象定义保存在由元胞数组构成的元胞数组中,并通过调用 Simulink.Bus.cellToObject 创建 Bus 对象。每个子元胞数组表示一个 Bus 对象并包含以下属性:

  1. 总线名称

  2. 头文件

  3. 说明

  4. 数据作用域

  5. 对齐

  6. 元素

元素字段是一个元胞数组,该元胞数组包含 Bus 对象引用的每个 Simulink.BusElement 对象的信息:

  1. 元素名称

  2. 维度

  3. 数据类型

  4. 采样时间 - 当采样时间未继承时,元胞数组包含此字段。非继承的采样时间会在模型编译期间导致错误。有关详细信息,请参阅 Simulink.BusElement 对象不再支持 SampleTime 属性

  5. 复/实性

  6. 维度模式

  7. 最小

  8. 最大

  9. 单位

  10. 说明

'object' 格式将 Bus 对象定义保存为数组。该函数使用数组索引来访问数组元素,并使用圆点表示法为属性赋值。有关详细信息,请参阅数组索引

数据字典,指定为 Simulink.data.Dictionary 对象。在使用此参数之前,请使用 Simulink.data.dictionary.createSimulink.data.dictionary.open 等函数通过 Simulink.data.Dictionary 对象来表示字典。

如果 scope 为空,则该函数使用 MATLAB 基础工作区作为 Bus 对象的信源。

输出参数

全部折叠

指定的模块的总线信息,以结构体数组形式返回。结构体数组的每个元素对应于一个模块,并且包含以下字段:

  • block - 模块的句柄

  • busName - 与模块关联的 Bus 对象的名称

提示

如果您指定了模型名称,则在您使用 Simulink.Bus.createObject 命令之前,必须成功编译模型。

兼容性注意事项

全部展开

从 R2020b 起会出现错误

在 R2006a 之前推出