Hinzufügen von Stateflow-Daten
Wenn Sie Werte speichern möchten, die in einer bestimmten Stufe der Stateflow®-Hierarchie sichtbar sein sollen, fügen Sie Daten zu Ihrem Diagramm hinzu. Bei der Simulation Ihres Modells behalten Diagrammdatenobjekte ihre Werte für die Dauer der Simulation bei.
In einem Stateflow-Diagramm definierte Daten sind sichtbar durch mehrere Stateflow-Objekte in dem Diagramm, dazu gehören Zustände, Übergänge, MATLAB®-Funktionen und Wahrheitstabellen. Um zu bestimmen, welche Daten in einem Zustand oder Übergang verwendet werden, klicken Sie mit der rechten Maustaste auf den Zustand oder Übergang und wählen Sie Explore. Im dadurch aufgeklappten Kontextmenü sind die Namen und Bereiche aller aufgelösten Symbole in dem Zustand oder Übergang aufgeführt. Durch Auswahl eines Symbols aus dem Kontextmenü werden dessen Eigenschaften im Model Explorer angezeigt. Durch Auswahl eines Ausgangsereignisses aus dem Kontextmenü wird das Simulink®-Subsystem oder das zudem Ereignis verbundene Stateflow-Diagramm geöffnet.
Hinweis
Stateflow-Daten stehen nicht für Simulink-Funktionen innerhalb eines Stateflow-Diagramms zur Verfügung.
Sie können Daten zu einem Stateflow-Diagramm über den Fensterbereich Symbols, das Stateflow-Editormenü oder den Model Explorer hinzufügen.
Hinzufügen von Daten über den Fensterbereich „Symbols“
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Symbols Pane aus.
Klicken Sie auf das Symbol Create Data .
Klicken Sie in der Zeile für die neuen Daten unter Type auf das Symbol und wählen Sie Folgendes aus:
Input Data
Local Data
Output Data
Constant
Data Store Memory
Parameter
Temporary
Weitere Informationen zu diesen Optionen finden Sie unter Scope.
Bearbeiten Sie den Name der Daten.
Bei Eingangs- und Ausgangsdaten klicken Sie auf das Feld Port und wählen Sie eine Portnummer.
Zum Festlegen der Eigenschaften für die Daten öffnen Sie den Property Inspector. Klicken Sie im Fensterbereich Symbols mit der rechten Maustaste auf die Zeile für das Symbol und wählen Sie Explore. Weitere Informationen finden Sie unter Set Data Properties.
Hinzufügen von Daten mithilfe des Stateflow-Editormenüs
Wählen Sie in einem Stateflow-Diagramm in einem Simulink-Modell die Menüoption, die dem Bereich der Daten entspricht, die Sie hinzufügen möchten. Weitere Informationen zu diesen Optionen finden Sie unter Scope.
Bereich Menüoption Input
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Data Input aus.
Output
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Data Output aus.
Local
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Local aus.
Constant
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Constant aus.
Parameter
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Parameter aus.
Data Store Memory
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Data Store aus.
Geben Sie im Dialogfenster „Data“ die Eigenschaften der Daten an. Weitere Informationen finden Sie unter Set Data Properties.
Hinzufügen von Daten über den Model Explorer
Mit dem Model Explorer können Sie wie folgt funktions- oder zustandsabhängige Daten zu Stateflow-Diagrammen in Simulink-Modellen hinzufügen:
Wählen Sie auf der Registerkarte Modeling unter Design Data die Option Model Explorer aus.
Wählen Sie im Fensterbereich Model Hierarchy das Objekt in der Stateflow-Hierarchie aus, in dem Sie die neuen Daten sichtbar machen möchten. Das von Ihnen ausgewählte Objekt wird zum übergeordneten Objekt für die neuen Daten.
Wählen Sie auf der Werkzeugleiste des Model Explorers die Schaltfläche „Add Data“ . Alternativ können Sie im Menü des Model Explorers die Option Add > Data auswählen. Die neuen Daten mit einer Standarddefinition erscheinen im Fensterbereich Contents des Model Explorers.
Geben Sie im Fensterbereich Data die Eigenschaften der Daten an. Weitere Informationen finden Sie unter Set Data Properties.
Tipp
Bei diesen Funktionstypen müssen Sie lokale oder temporäre Daten nicht explizit anlegen:
Grafische Funktionen in Diagrammen, die MATLAB als Aktionssprache verwenden
Wahrheitstabellenfunktionen, die MATLAB als Aktionssprache verwenden
MATLAB-Funktionen
Stattdessen können Sie bei diesen Funktionen undefinierte Variablen verwenden, um Werte zu speichern, die nur während des restlichen Funktionsaufrufs verfügbar sind. Zum Speichern von Werten, die über Funktionsaufrufe hinweg bestehen bleiben, verwenden Sie lokale Daten auf der Diagrammebene. Alternativ dazu können Sie in MATLAB-Funktionen das Schlüsselwort persistent
verwenden.
Bewährte Praktiken bei der Nutzung von Daten in Diagrammen
Vermeiden der Übernahme von Ausgangsdateneigenschaften aus Simulink-Blöcken
Stateflow-Ausgangsdaten sollten keine Eigenschaften von Ausgangssignalen übernehmen, da die Werte von Simulink-Blöcken zurück übertragen werden und unvorhersehbar sein können.
Generieren von effizienterem Code mithilfe von In-Place-Daten
Mithilfe von In-Place-Daten können Sie die Leistung verbessern und den Speicherbedarf des generierten Codes für Ihre Stateflow-Diagramme, Wahrheitstabellen und Zustandsübergangstabellen verringern. Sie erstellen In-Place-Daten, wenn Sie denselben Datennahmen für einen Diagrammeingang und einen Diagrammausgang verwenden. Wenn Sie Code aus dem Diagramm generieren, behandelt der generierte Code die Eingangs- und Ausgangsdaten als ein In-Place-Argument, das per Verweis übermittelt wird. Mithilfe von In-Place-Daten wird die Anzahl der Kopiervorgänge von Zwischendaten im generierten Code reduziert, was zu einem effizienteren Code führt.
Wenn Eingangs- und Ausgangsdaten denselben Namen haben, können Sie nur die Eigenschaften der Eingangsdaten bearbeiten. Die Eigenschaften für die Ausgangsdaten sind schreibgeschützt.