Programmatisches Erstellen von Simulink Bus-Objekten
Sie können programmatisch ein Simulink.Bus
-Objekt und dessen Simulink.BusElement
-Objekte aus Arrays, Blöcken, Zellen-Arrays, Strukturen oder C Code erstellen.
Wenn Sie programmatisch Bus-Objekte erstellen, können Sie diese im MATLAB®-Workspace oder einem Data Dictionary speichern oder ihre Definitionen in einer Funktion speichern. Bei Bus-Objekten im Basis-Workspace können Sie die Definitionen programmatisch mithilfe der Funktion Simulink.Bus.save
in einer Funktion speichern.
Um einen Block zu simulieren, der ein Bus-Objekt verwendet, muss sich dieses Bus-Objekt im Basis-Workspace oder einem Data Dictionary befinden.
Erstellen von Bus-Objekten aus Bus-Element-Objekten
Erstellen Sie eine Hierarchie an Simulink.Bus
-Objekten mithilfe von Arrays an Simulink.BusElement
-Objekten.
Erstellen Sie im Basis-Workspace ein Array, das zwei BusElement
-Objekte namens Chirp
und Sine
enthält.
elems(1) = Simulink.BusElement; elems(1).Name = 'Chirp'; elems(2) = Simulink.BusElement; elems(2).Name = 'Sine';
Array-Indizierung erlaubt es Ihnen, Array-Elemente zu erstellen und auf diese zuzugreifen. Mithilfe von Punktnotation können Sie auf Eigenschaftswerte der Elemente zugreifen.
Erstellen Sie ein Bus
-Objekt namens Sinusoidal
, das die im elems
-Array definierten Elemente enthält.
Sinusoidal = Simulink.Bus; Sinusoidal.Elements = elems;
Um eine Hierarchie an Bus
-Objekten zu erstellen, erstellen Sie ein weiteres Bus
-Objekt, das das Bus
-Objekt namens Sinusoidal
referenziert.
Erstellen Sie ein Array, das zwei BusElement
-Objekte namens NestedBus
und Step
enthält. Legen Sie das Bus
-Objekt namens Sinusoidal
als Datentyp des NestedBus
-Elements fest.
clear elems elems(1) = Simulink.BusElement; elems(1).Name = 'NestedBus'; elems(1).DataType = 'Bus: Sinusoidal'; elems(2) = Simulink.BusElement; elems(2).Name = 'Step';
Erstellen Sie ein Bus
-Objekt namens TopBus
, das die im elems
-Array definierten Elemente enthält.
TopBus = Simulink.Bus; TopBus.Elements = elems;
Im Type Editor können Sie die Hierarchie der erstellten Objekte betrachten.
typeeditor
Erstellen von Bus-Objekten aus Blöcken
Um ein Simulink.Bus
-Objekt auf Basis eines Blocks in einem Modell programmatisch zu erstellen, verwenden Sie die Funktion Simulink.Bus.createObject
.
Wenn Sie einen Bus Creator-Block auf höchster Ebene einer Bus-Hierarchie erstellen, erstellt die Funktion Bus-Objekte für jeden Bus der Hierarchie, darunter verschachtelte Buses.
Erstellen von Bus-Objekten aus MATLAB-Daten
Um ein Simulink.Bus
-Objekt aus einem Zellen-Array zu erstellen, verwenden Sie die Funktion Simulink.Bus.cellToObject
. Jedes untergeordnete Zellen-Array stellt ein weiteres Bus-Objekt dar.
Um ein Bus-Objekt aus einer MATLAB-Struktur zu erstellen, verwenden Sie die Funktion Simulink.Bus.createObject
. Die Struktur kann MATLAB-, timeseries
-, MATLAB timetable
und matlab.io.datastore.SimulationDatastore
-Objekte enthalten; ebenfalls kann es sich um eine numerische Struktur handeln.
Erstellen von Bus-Objekten aus externem C Code
Sie können ein Simulink.Bus
-Objekt erstellen, das einem von bestehendem C Code definierten Strukturtyp (struct
) entspricht. Daraufhin können Sie als Vorbereitung auf die Integration von bestehendem algorithmischem C Code für die Simulation (beispielsweise mithilfe des Legacy Code Tool) das Bus-Objekt verwenden, um Signal- oder Parameterdaten gemäß dem Strukturtyp zu verpacken. Verwenden Sie die Simulink.importExternalCTypes
-Funktion, um das Objekt zu erstellen.