Main Content

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.

Siehe auch

Funktionen

Klassen

Verwandte Themen