Programmatically Create Simulink Bus Objects
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 Bus Objects from Bus Element Objects
Create a hierarchy of Simulink.Bus
objects using arrays of Simulink.BusElement
objects.
Create an array that contains 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';
Array indexing lets you create and access the elements of the array. Dot notation lets you access property values of the elements.
Create a Bus
object, named Sinusoidal
, that contains the elements defined in the elems
array.
Sinusoidal = Simulink.Bus; Sinusoidal.Elements = elems;
To create a hierarchy of Bus
objects, create another Bus
object to reference the Bus
object named Sinusoidal
.
Create an array that contains two BusElement
objects, named NestedBus
and Step
. Specify the Bus
object named Sinusoidal
as the data type of the NestedBus
element.
clear elems elems(1) = Simulink.BusElement; elems(1).Name = 'NestedBus'; elems(1).DataType = 'Bus: Sinusoidal'; elems(2) = Simulink.BusElement; elems(2).Name = 'Step';
Create a Bus
object, named TopBus
, that contains the elements defined in the elems
array.
TopBus = Simulink.Bus; TopBus.Elements = elems;
You can view the hierarchy of the created objects in the Type Editor.
typeeditor
Create Bus Objects from Blocks
To programmatically create a Simulink.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.
Create Bus Objects from MATLAB Data
To create a Simulink.Bus
object from a cell array, use the Simulink.Bus.cellToObject
function. Each subordinate cell array represents
another 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.
Create Bus Objects from External C Code
You can create a Simulink.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.