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.