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:
| Ü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 |
Charge | Full | 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.
Entfernen Sie aus den Zuständen
ChargeundDischargedie Aktionenduring.Erweiteren Sie die Zustände
ChargeundDischarge, 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.Fügen Sie unter
Chargeeinen untergeordneten Zustand namensFastChargehinzu. 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.Fügen Sie unter
FastChargeeine Aktionduringhinzu, die die Datenchargeum4inkrementiert.

Fügen Sie zwei Zustände hinzu, die ein langsames und pausiertes Laden darstellen.
Fügen Sie einen untergeordneten Zustand namens
SlowChargehinzu. Fügen Sie eineduring-Aktion hinzu, diechargeum1inkrementiert.Fügen Sie einen Übergang von
FastChargezuSlowChargehinzu, der ausgeführt wird, wenncharge80übersteigt.Fügen Sie einen untergeordneten Zustand namens
Fullhinzu.Fügen Sie einen Übergang von
SlowChargezuFullhinzu, der ausgeführt wird, wennchargegleich100ist.

Fügen Sie zwei Zustände hinzu, die ein normales und pausiertes Entladen darstellen.
Fügen Sie unter
Dischargeeinen untergeordneten Zustand namensPoweredhinzu. Fügen Sie eineduring-Aktion hinzu, diechargeum3dekrementiert.Fügen Sie einen weiteren untergeordneten Zustand namens
Emptyhinzu. Fügen Sie eine Aktionentryhinzu, diesentPowerauf0setzt.Fügen Sie einen Übergang zwischen
PoweredundEmptyhinzu, der ausgeführt wird, wennchargekleiner gleich3ist.

Simulieren des Modells
Beobachten Sie, wie das Diagramm zwischen untergeordneten Zuständen wechselt.
Stellen Sie im Simulink Editor sicher, dass der Block „Manual Switch“ auf
1gesetzt ist.Klicken Sie auf der Registerkarte Simulation auf Run, um das Modell zu simulieren. Im ersten Schritt werden sowohl
Chargeals auchFastChargeaktiviert. Wennchargeansteigt, geht das Diagramm in die untergeordneten ZuständeSlowChargeundFullüber. Im Fensterbereich Symbols übersteigtchargeniemals100.Kehren Sie zum höchsten Simulink-Modell zurück. Schalten Sie den Wert des Blocks „Manual Switch“ um, indem Sie auf den Block doppelklicken.
Öffnen Sie das Diagramm. Das Diagramm aktiviert den Zustand
Dischargeund den untergeordneten ZustandPowered. Wennchargeunter3sinkt, wechselt das Diagramm vonPoweredzuEmpty. Im Fensterbereich Symbols sinktchargeniemals unter0.
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.