Hauptinhalt

Erstellen von übergeordneten und untergeordneten Betriebsmodi

In Stateflow®-Diagrammen können Sie verschachtelte Betriebsmodi erstellen, indem Sie einen Zustand innerhalb der Ränder eines bestehenden Zustands platzieren. Der bestehende Zustand wird als übergeordneter Zustand bezeichnet, und die Zustände, die er enthält, werden als untergeordnete Zustände bezeichnet.

Die Inhalte des übergeordneten Zustands verhalten sich wie ein kleineres Diagramm. Wie ein Diagramm enthält der übergeordnete Zustand einen Standardübergang. Wenn der übergeordnete Zustand aktiv wird, werden die mit dem Standardübergang verbundenen Zustände ebenfalls aktiv. Daraufhin wechselt das Diagramm zwischen den untergeordneten Übergängen. Wird der übergeordnete Zustand deaktiviert, werden die untergeordneten Zustände ebenfalls deaktiviert.

In diesem Modell der Rundumleuchtanlage eines Rettungswagens weist der Zustand On die untergeordneten Zustände Red und White auf. Ist On aktiv, wechselt der Rettungswagen zwischen den farbigen Lichtern, beginnend mit dem Zustand Red. Wird On deaktiviert, werden beide Lichter deaktiviert.

In diesem Beispiel verwenden Sie untergeordnete Zustände, um die variablen Laderaten in einem wiederaufladbaren Batteriesystem zu modellieren.

Modell öffnen

Das sfGetStartedBattery-Modell stellt die Steuerlogik eines wiederaufladbaren Batteriesystems dar. Um das Modell zu erstellen, befolgen Sie die Anweisungen in den vorherigen Schritten des Tutorials.

Doppelklicken Sie auf den Diagramm-Block, um das Batteriediagramm zu öffnen.

Die Zustände Charge und Discharge stellen die Betriebsmodi des Batteriesystems dar. Die Eingabedaten isCharging bestimmen den aktiven Zustand. Die Ausgabedaten sentPower und lokalen Daten charge stellen die Wattleistung und den Ladestand der Batterie dar.

Hinzufügen untergeordneter Zustände zur Modellhierarchie

Aktuell wird ein volles Batteriesystem weiterhin geladen, ein leeres Batteriesystem weiterhin entladen. Um volle, leere, und dazwischenliegende Lademodi darzustellen, benötigt das Batteriesystem zusätzliche Betriebsmodi:

wechseln wechseln wechseln wechseln
Übergeordneter Modus Untergeordneter Modus Aktionen Verlassensbedingung
Charge FastCharge Wenn aktiv, den Ladestand mit einer Rate von 4 % steigern Wenn der Ladestand über 80 % liegt, zu SlowCharge
Charge SlowCharge Wenn aktiv, den Ladestand mit einer Rate von 1 % steigern. Wenn der Ladestand 100 % beträgt, zu Full
ChargeFull Keine Keine
Discharge Powered Wenn aktiv, den Ladestand mit einer Rate von 3 % senken. Wenn der Ladestand kleiner gleich 3 % beträgt, zu Empty
Discharge Empty Beim Eintritt die Wattleistung auf 0 setzen Keine

Fügen Sie einen Zustand hinzu, der einen Schnellladevorgang darstellt.

  1. Entfernen Sie aus den Zuständen Charge und Discharge die Aktionen during.

  2. Erweiteren Sie die Zustände Charge und Discharge, sodass diese bis zu drei untergeordnete Zustände umfassen. Um die Größe eines Zustands zu ändern, klicken und ziehen Sie eine Ecke nach außen.

  3. Fügen Sie unter Charge einen untergeordneten Zustand namens FastCharge hinzu. Untergeordnete Zustände müssen vollständig vom übergeordneten Zustand umschlossen werden. Die Ränder der untergeordneten und übergeordneten Zustände dürfen nicht überlappen.

  4. Fügen Sie unter FastCharge eine Aktion during hinzu, die die Daten charge um 4 inkrementiert.

Fügen Sie zwei Zustände hinzu, die ein langsames und pausiertes Laden darstellen.

  1. Fügen Sie einen untergeordneten Zustand namens SlowCharge hinzu. Fügen Sie eine during-Aktion hinzu, die charge um 1 inkrementiert.

  2. Fügen Sie einen Übergang von FastCharge zu SlowCharge hinzu, der ausgeführt wird, wenn charge 80 übersteigt.

  3. Fügen Sie einen untergeordneten Zustand namens Full hinzu.

  4. Fügen Sie einen Übergang von SlowCharge zu Full hinzu, der ausgeführt wird, wenn charge gleich 100 ist.

Fügen Sie zwei Zustände hinzu, die ein normales und pausiertes Entladen darstellen.

  1. Fügen Sie unter Discharge einen untergeordneten Zustand namens Powered hinzu. Fügen Sie eine during-Aktion hinzu, die charge um 3 dekrementiert.

  2. Fügen Sie einen weiteren untergeordneten Zustand namens Empty hinzu. Fügen Sie eine Aktion entry hinzu, die sentPower auf 0 setzt.

  3. Fügen Sie einen Übergang zwischen Powered und Empty hinzu, der ausgeführt wird, wenn charge kleiner gleich 3 ist.

Simulieren des Modells

Beobachten Sie, wie das Diagramm zwischen untergeordneten Zuständen wechselt.

  1. Stellen Sie im Simulink Editor sicher, dass der Block „Manual Switch“ auf 1 gesetzt ist.

  2. Klicken Sie auf der Registerkarte Simulation auf Run, um das Modell zu simulieren. Im ersten Schritt werden sowohl Charge als auch FastCharge aktiviert. Wenn charge ansteigt, geht das Diagramm in die untergeordneten Zustände SlowCharge und Full über. Im Fensterbereich Symbols übersteigt charge niemals 100.

  3. Kehren Sie zum höchsten Simulink-Modell zurück. Schalten Sie den Wert des Blocks „Manual Switch“ um, indem Sie auf den Block doppelklicken.

  4. Öffnen Sie das Diagramm. Das Diagramm aktiviert den Zustand Discharge und den untergeordneten Zustand Powered. Wenn charge unter 3 sinkt, wechselt das Diagramm von Powered zu Empty. Im Fensterbereich Symbols sinkt charge niemals unter 0.

Das Batteriemodell ist nun realistischer. Das Design hat jedoch noch einige Probleme. Wenn das verbundene Gerät beispielsweise weniger als 3,5 Watt Strom benötigt, ändert sich die Batterieleistung nicht.

Im nächsten Schritt des Tutorials erstellen Sie ein Flussdiagramm, das die Leistung des Batteriesystems je nach Bedarf des verbundenen Geräts ändert.

Siehe auch

Themen