Main Content

以编程方式创建 Simulink 总线对象

您可以通过编程方式从数组、模块、元胞数组、结构体或 C 代码创建 Simulink.Bus 对象及其 Simulink.BusElement 对象。

当您以编程方式创建总线对象时,您可以将它们存储在 MATLAB® 工作区或数据字典中,或将其定义保存在函数中。对于基础工作区中的总线对象,您可以使用 Simulink.Bus.save 函数以编程方式将其定义保存在函数中。

要对使用总线对象的模块进行仿真,该总线对象必须位于基础工作区或数据字典中。

基于总线元素对象创建总线对象

使用 Simulink.BusElement 对象的数组创建 Simulink.Bus 对象的层次结构。

在基础工作区中创建一个数组,其中包含两个 BusElement 对象,分别名为 ChirpSine

elems(1) = Simulink.BusElement;
elems(1).Name = 'Chirp';

elems(2) = Simulink.BusElement;
elems(2).Name = 'Sine';

数组索引允许您创建和访问数组的元素。圆点表示法允许您访问元素的属性值。

创建一个名为 SinusoidalBus 对象,该对象包含 elems 数组中定义的元素。

Sinusoidal = Simulink.Bus;
Sinusoidal.Elements = elems;

要创建 Bus 对象的层次结构,请创建另一个 Bus 对象来引用名为 SinusoidalBus 对象。

创建一个数组,其中包含两个 BusElement 对象,分别命名为 NestedBusStep。将名为 SinusoidalBus 对象指定为 NestedBus 元素的数据类型。

clear elems

elems(1) = Simulink.BusElement;
elems(1).Name = 'NestedBus';
elems(1).DataType = 'Bus: Sinusoidal';

elems(2) = Simulink.BusElement;
elems(2).Name = 'Step';

创建一个名为 TopBusBus 对象,该对象包含 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 timetablematlab.io.datastore.SimulationDatastore 对象,也可以是数值结构体。

基于外部 C 代码创建总线对象

您可以创建与现有 C 代码定义的结构体类型 (struct) 对应的 Simulink.Bus 对象。然后,在准备集成现有算法 C 代码进行仿真(例如,通过使用代码继承工具)时,您可以使用总线对象根据结构体类型来打包信号或参数数据。要创建对象,请使用 Simulink.importExternalCTypes 函数。

另请参阅

函数

相关主题