You can programmatically create a Simulink.Bus
object and its Simulink.BusElement
objects from arrays, blocks, cell arrays, structures,
or C code.
As you create Bus
objects programmatically, you can store them in the
MATLAB® workspace or a data dictionary or save their definitions in a function.
For Bus
objects in the base workspace, you can programmatically save
their definitions in a function using the Simulink.Bus.save
function.
To simulate a block that uses a Bus
object, that Bus
object must be in the base workspace or in a data dictionary.
Create a hierarchy of Bus
objects using arrays. Array indexing lets you create and access multiple elements in an array. Dot notation lets you access property values.
Create two BusElement
objects, named Chirp
and Sine
, in the base workspace.
elems(1) = Simulink.BusElement; elems(1).Name = 'Chirp'; elems(2) = Simulink.BusElement; elems(2).Name = 'Sine';
Create a Bus
object, named NestedBus
, that uses the elements defined in the elems
array.
NestedBus = Simulink.Bus; NestedBus.Elements = elems;
Create two more BusElement
objects, named NestedBus
and Step
. To have NestedBus
represent a Bus
object, specify a Bus
object data type.
clear elems elems(1) = Simulink.BusElement; elems(1).Name = 'NestedBus'; elems(1).DataType = 'Bus: NestedBus'; elems(2) = Simulink.BusElement; elems(2).Name = 'Step';
Create the bus at the top of the bus hierarchy that uses the elements defined in the elems
array.
TopBus = Simulink.Bus; TopBus.Elements = elems;
You can view the created objects in the Bus Editor.
buseditor
To programmatically create a Bus
object based on a block in a
model, use the Simulink.Bus.createObject
function.
If you specify a Bus Creator block that is at the highest level of
a bus hierarchy, the function creates Bus
objects for all of the
buses in the hierarchy, including nested buses.
To create a Bus
object from a cell array, use the Simulink.Bus.cellToObject
function. Each subordinate cell array represents a Bus
object
To create a Bus
object from a MATLAB structure, use the Simulink.Bus.createObject
function. The structure can contain MATLAB
timeseries
, MATLAB
timetable
, and
matlab.io.datastore.SimulationDatastore
objects or be a
numeric structure.
You can create a Bus
object that corresponds to a structure type
(struct
) that your existing C code defines. Then, in
preparation for integrating existing algorithmic C code for simulation (for example,
by using the Legacy Code Tool), you can use the Bus
object to
package signal or parameter data according to the structure type. To create the
object, use the Simulink.importExternalCTypes
function.