Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Vereinfachen von Stateflow-Diagrammen durch Integration aktiver Zustände

Dieses Beispiel zeigt, wie aktive Zustandsdaten die Gestaltung einiger Stateflow®-Diagramme vereinfachen können, da Sie keine Daten pflegen müssen, die in hohem Maße mit der Diagrammhierarchie korrelieren. Wenn Sie aktive Zustandsdaten aktivieren, meldet Stateflow die Aktivität des Zustands über einen Ausgabeport an Simulink® oder als lokale Daten in Ihrem Diagramm. Dieses Beispiel zeigt, wie das Design eines Stateflow-Diagramms durch das Hinzufügen von aktiven Zustandsausgangsdaten vereinfacht werden kann. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.

Im Legacy-Modell old_sf_car verfolgt das Stateflow-Diagramm shift_logic die Aktivität des untergeordneten Zustands in gear_state, indem es den Wert der Ausgabedaten gear aktualisiert.

Durch die Einbeziehung aktiver Zustandsdaten vermeidet das Modell sf_car manuelle Datenaktualisierungen, die die Diagrammaktivität widerspiegeln. Stattdessen gibt das Diagramm die Aktivität des untergeordneten Zustands automatisch über die aktive Zustandsausgabe aus.

Ändern des Modells

Um das Design des Modells old_sf_car zu vereinfachen, sollten Daten, die in hohem Maße mit der Diagrammhierarchie korrelieren, eliminiert werden und eine automatische Überwachung der Aktivität des untergeordneten Zustands in gear_state ermöglicht werden.

Schritt 1: Eliminieren der manuellen Nachverfolgung von Zustandsaktivitäten

  1. Öffnen Sie im Modell old_sf_car das Diagramm shift_logic.

  2. Um das Fenster Symbols zu öffnen, wählen Sie auf der Registerkarte Modeling die Option Symbols Pane aus.

  3. Löschen Sie in jedem Teilzustand von gear_state die Eingabeaktion, die der Ausgabedatenvariablen gear einen Wert zuweist.

  4. Rechtsklicken Sie im Symbols-Bereich auf die Ausgabevariable gear und wählen Sie Delete aus.

Schritt 2: Aktivieren der aktiven Zustandsausgabe

  1. Öffnen Sie den Property Inspector. Wählen Sie auf der Registerkarte Modeling die Option Property Inspector aus.

  2. Wählen Sie im Stateflow-Editor den Zustand gear_state aus.

  3. Aktivieren Sie im Property Inspector das Kontrollkästchen Create output for monitoring und wählen Sie Child activity.

  4. Geben Sie im Feld Data name den Namen gear der Daten des aktiven Zustands ein.

  5. Geben Sie im Feld Enum name den Namen gearType des Aufzählungsdatentyps für die Daten des aktiven Zustands ein.

Schritt 3: Verbinden des Signals mit Simulink-Blöcken

  1. Fügen Sie im Simulink-Modell einen Cast To Double-Block hinzu. Dieser Block konvertiert die Aufzählungsausgabe aus dem Stateflow-Diagramm in ein Signal vom Typ double. Weitere Informationen finden Sie unter Data Type Conversion (Simulink).

  2. Verbinden Sie das Ausgabesignal gear aus dem Diagramm shift_logic mit dem Cast To Double-Block.

  3. Verbinden Sie das Ausgabesignal vom Cast To Double-Block mit dem Transmission-Subsystem.

  4. Fügen Sie einen Memory (Simulink)-Block hinzu. Dieser Block verhindert eine algebraische Schleife zwischen dem Stateflow-Diagramm und dem Subsystem für die Schwellenwertberechnung.

  5. Stellen Sie eine zweite Verbindung vom Ausgabesignal des Cast To Double-Blocks zum Memory-Block her.

  6. Verbinden Sie die Ausgabe des Memory-Blocks mit dem Subsystem für die Schwellenwertberechnung.

Anzeigen der Simulationsergebnisse

Das Ausgabesignal gear ist ein von Stateflow verwalteter Aufzählungstyp. Sie können das Ausgabesignal des aktiven Zustands während der Simulation anzeigen, indem Sie das Diagramm mit einem Scope-Block verbinden. Die Namen der aufgezählten Werte stimmen mit den Namen der Teilzustände in gear_state überein. Der zusätzliche aufgezählte Wert None gibt die Zeitschritte an, in denen kein untergeordnetes Element aktiv ist.

Siehe auch

(Simulink) | (Simulink)

Themen