以编程方式创建 Simulink 总线对象
您可以通过编程方式从数组、模块、元胞数组、结构体或 C 代码创建 Simulink.Bus
对象及其 Simulink.BusElement
对象。
当您以编程方式创建总线对象时,您可以将它们存储在 MATLAB® 工作区或数据字典中,或将其定义保存在函数中。对于基础工作区中的总线对象,您可以使用 Simulink.Bus.save
函数以编程方式将其定义保存在函数中。
要对使用总线对象的模块进行仿真,该总线对象必须位于基础工作区或数据字典中。
基于总线元素对象创建总线对象
使用 Simulink.BusElement
对象的数组创建 Simulink.Bus
对象的层次结构。
在基础工作区中创建一个数组,其中包含两个 BusElement
对象,分别名为 Chirp
和 Sine
。
elems(1) = Simulink.BusElement; elems(1).Name = 'Chirp'; elems(2) = Simulink.BusElement; elems(2).Name = 'Sine';
数组索引允许您创建和访问数组的元素。圆点表示法允许您访问元素的属性值。
创建一个名为 Sinusoidal
的 Bus
对象,该对象包含 elems
数组中定义的元素。
Sinusoidal = Simulink.Bus; Sinusoidal.Elements = elems;
要创建 Bus
对象的层次结构,请创建另一个 Bus
对象来引用名为 Sinusoidal
的 Bus
对象。
创建一个数组,其中包含两个 BusElement
对象,分别命名为 NestedBus
和 Step
。将名为 Sinusoidal
的 Bus
对象指定为 NestedBus
元素的数据类型。
clear elems elems(1) = Simulink.BusElement; elems(1).Name = 'NestedBus'; elems(1).DataType = 'Bus: Sinusoidal'; elems(2) = Simulink.BusElement; elems(2).Name = 'Step';
创建一个名为 TopBus
的 Bus
对象,该对象包含 elems
数组中定义的元素。
TopBus = Simulink.Bus; TopBus.Elements = elems;
您可以在类型编辑器中查看创建的对象的层次结构。
typeeditor
基于模块创建总线对象
要基于模型中的模块以编程方式创建 Simulink.Bus
对象,请使用 Simulink.Bus.createObject
函数。
如果指定位于总线层次结构最高级的 Bus Creator 模块,该函数将为层次结构中的所有总线创建总线对象,包括嵌套总线。
基于 MATLAB 数据创建总线对象
要从元胞数组创建 Simulink.Bus
对象,请使用 Simulink.Bus.cellToObject
函数。每个子元胞数组表示另一个总线对象。
要从 MATLAB 结构体创建总线对象,请使用 Simulink.Bus.createObject
函数。该结构体可以包含 MATLAB timeseries
、MATLAB timetable
和 matlab.io.datastore.SimulationDatastore
对象,也可以是数值结构体。
基于外部 C 代码创建总线对象
您可以创建与现有 C 代码定义的结构体类型 (struct
) 对应的 Simulink.Bus
对象。然后,在准备集成现有算法 C 代码进行仿真(例如,通过使用代码继承工具)时,您可以使用总线对象根据结构体类型来打包信号或参数数据。要创建对象,请使用 Simulink.importExternalCTypes
函数。