Verbinden von Übergängen, um Pfade und Flussdiagramme zu erstellen
Mit Verbindungen können Sie mehrere Übergänge zu einem einzigen Pfad, einem verzweigten Pfad oder einem Flussdiagramm zusammenfügen.
In Stateflow® handelt es sich bei einem Pfad um einen oder mehrere Übergänge, die eine Quelle mit einem Ziel verbinden. Sie können einen Pfad mit mehreren Übergängen erstellen, indem Sie jeden Übergang mit einer Verbindung verbinden. Verbindungen sind grafische Objekte, die einen Entscheidungspunkt darstellen und in der Diagrammfläche als Kreise angezeigt werden. Im folgenden Diagramm bilden beispielsweise mehrere Übergänge und Verbindungen einen Pfad von einem Zustand zu einem anderen Zustand.

Wenn ein Diagramm einen Pfad evaluiert, wird jeder verbundene Übergang im selben Zeitschritt ausgewertet, in der Reihenfolge von der Quelle zum Ziel, und etwaige Bedingungsaktionen werden ausgeführt. Wenn das Diagramm auf eine nicht erfüllte Bedingung stößt, hält es die Auswertung des Pfads an. Wenn das Diagramm entlang des Pfades auf keine nicht erfüllten Bedingungen stößt, läuft es von der Quelle bis zum Ziel.
Im Diagramm oben verbindet beispielsweise ein Pfad mit mehreren Übergängen einen Quellenzustand mit einem Zielzustand. Wenn alle Bedingungen des Pfads wahr sind, setzt das Diagramm x auf 0, 1 und dann 2. Dann verlässt das Diagramm im selben Schritt den Quellenzustand und tritt in den Zielzustand ein.
Wenn a und c jedoch größer als 0 sind, aber b nicht, setzt das Diagramm stattdessen x auf 0 und hält die Auswertung des Pfads an.
Sie können mehrere Übergänge zu einem Zustand bzw. einer Verbindung oder davon weg erstellen. Wenn ein Zustand oder eine Verbindung mehrere ausgehende Übergänge aufweist, zeigt das Diagramm die Auswertungsreihenfolge an. Wenn das Diagramm einen dieser Pfade entlang läuft, wertet es die verbleibenden Pfade nicht aus. Sie können die Reihenfolge ändern, indem Sie rechts auf den Übergang klicken, auf Execution Order (Ausführungsreihenfolge) klicken und eine neue Reihenfolge auswählen.
Das folgende Diagramm wertet beispielsweise den Pfad von Zustand A zu Zustand B vor dem Pfad von Zustand A zu Zustand C aus.

In Stateflow bezeichnet ein Flussdiagramm ein Diagramm oder einen Zustand, dessen untergeordnete Elemente ausschließlich aus Verbindungen und Übergängen bestehen. Alle Pfade in einem Flussdiagramm müssen bei einer einzigen geteilten Verbindung enden. Sie können ein Flussdiagramm auf jeder Ebene einer Diagramm-Hierarchie erstellen.

In diesem Beispiel fügen Sie ein Flussdiagramm einem Modell eines aufladbaren Batteriesystems hinzu. Das Flussdiagramm passt die Leistung des Batteriesystems an den Bedarf des verbundenen Geräts an, ohne die Grenzwerte der Batterie zu überschreiten.
Modell öffnen
Um das Modell zu erstellen, befolgen Sie die Anweisungen im vorherigen Schritt des Tutorials. Alternativ können Sie die Schaltfläche Open Model oben verwenden und das Modell sfGetStartedFlowchart öffnen.

Doppelklicken Sie auf den „Chart“-Block, um das Diagramm Battery aufzurufen.

Die Zustände Charge und Discharge stellen die Betriebsmodi des Batteriesystems dar. Jeder Zustand umfasst untergeordnete Zustände, die die Lade- und Entladerate darstellen, wenn die Batterie geladen oder entladen wird. Der Eingang isCharging bestimmt den aktiven Zustand. Die Daten sentPower und charge stellen die Wattleistung und den Ladestand der Batterie dar.
Erstellen eines Flussdiagramms
Wird eine Batterie simultan entladen und geladen, gibt sie aktuell stets die gleiche Wattleistung ab. Erstellen Sie im Zustand Powered ein Flussdiagramm, das die Batterieleistung an den Bedarf des verbundenen Geräts angleicht, ohne einen Höchstwert zu überschreiten.
Fügen Sie einen Pfad hinzu, der darstellt, dass das Gerät mehr Strom anfordert, als die Batterie leisten kann.
Entfernen Sie im Zustand
Dischargedie Aktionentry.Entfernen Sie im Zustand
Powereddie Aktionduring.Fügen Sie im Zustand
Powereddie erste Verbindung hinzu. Klicken Sie in der Palette auf das Symbol Junction (Verbindung). Platzieren Sie die Verbindung im ZustandPowered.Fügen Sie rechts neben der ersten Verbindung eine zweite Verbindung hinzu.
Fügen sie unter der zweiten Verbindung eine dritte Verbindung hinzu.
Zeichnen Sie einen Übergang von der ersten zur zweiten Verbindung ein. Fügen Sie die Bedingung
[deviceDemand>maxPower]hinzu.Zeichnen Sie einen Übergang von der zweiten zur dritten Verbindung ein. Fügen Sie die Aktion
{sentPower=maxPower;}hinzu.

Fügen Sie einen Pfad hinzu, der den Strombedarf innnerhalb der Batteriegrenzwerte darstellt.
Fügen sie unter der ersten Verbindung eine vierte Verbindung hinzu.
Zeichnen Sie einen Übergang von der ersten zur vierten Verbindung ein. Fügen Sie die Aktion
{sentPower=deviceDemand;}hinzu.Zeichnen Sie einen Übergang von der dritten zur vierten Verbindung ein.
Die Zahlen auf der ersten Verbindung stellen die Auswertungsreihenfolge dar. Der mit [deviceDemand>maxPower] bezeichnete Übergang weist die Reihenfolgenkennzeichnung 1 auf und wird somit als erstes ausgewertet. Der mit {sentPower=deviceDemand;} bezeichnete Übergang weist die Reihenfolgenkennzeichnung 2 auf und wird somit als zweites ausgewertet.

Eine terminale Verbindung ist eine Verbindung ohne ausgehende Übergänge. Verbinden Sie beide Pfade mit einer gemeinsamen terminalen Verbindung. Verringern Sie im Übergang zur terminalen Verbindung die Batterieladung proportional zur Wattleistung.
Fügen sie unter der vierten Verbindung eine fünfte Verbindung hinzu.
Erstellen Sie einen Übergang von der vierten zur fünften Verbindung. Fügen Sie die Aktion
{charge=charge-sentPower;}hinzu.

Auswerten während aktiver Schritte mithilfe innerer Übergänge
Innere Übergänge sind das grafische Äquivalent einer during-Aktion. Wenn ein Zustand einen inneren Übergang enthält, wird der innere Übergang bei jedem Schritt ausgewertet, den der Zustand aktiv ist, jedoch nicht bei Schritten, bei denen der Zustand aktiv oder inaktiv wird. Wenn ein Zustand sowohl innere Übergänge umfasst und zwischen untergeordneten Zuständen übergeht, werden die inneren Übergänge zuerst ausgewertet. Um einen inneren Übergang zu erstellen, zeichnen Sie einen Übergang vom Rand eines Zustand zu einem Objekt in diesem Zustand.
Zeichen Sie einen inneren Übergang vom Rand des Zustands Powered zur ersten Verbindung.

Definieren von Diagrammdaten
Definieren Sie die Daten, die Sie im Flussdiagramm erstellt haben.
Klicken Sie im Fensterbereich Symbols in der Zeile
maxPowerunter Type auf das Symbol und wählen SieLocal Dataaus. Setzen Sie den Value (Wert) auf3.5.Klicken Sie in der Zeile
deviceDemandunter Typ auf das Symbol und wählen SieInput Dataaus.Setzen Sie in der Zeile
chargeden Wert auf100.

Fügen Sie einen Block hinzu, der mit dem deviceDemand-Eingangsport verbunden ist.
Öffnen Sie das höchste Modell.
Fügen Sie einen Block „Sine Wave“ hinzu. Verbinden Sie den Ausgangsport mit dem deviceDemand-Port im
Battery-Diagramm.Legen Sie fest, dass die Sinuskurve bei
0beginnt und einen Höchstwert von5erreicht. Doppelklicken Sie auf den Block, um das Block-Dialogfeld zu öffnen und setzen Sie daraufhin die Parameter Amplitude und Bias auf2.5. Setzen Sie den Parameter Phase auf-pi/4.Rechtsklicken Sie auf die Signallinie, die vom Block „Sine Wave“ zum
Battery-Diagramm führt und klicken Sie auf Log selected signals. Wiederholen Sie diesen Schritt mit der Signallinie vomBattery-Diagramm zum „Scope“-Block.

Simulieren des Modells
Simulieren Sie das Modell und beobachten Sie die Ergebnisse.
Klicken Sie auf der Registerkarte Simulation auf Run, um das Modell zu simulieren.
Um den Simulation Data Inspector zu öffnen, klicken Sie auf der Registerkarte Simulation auf Data Inspector.
Wählen Sie auf der Registerkarte Inspect
Battery:1undSine Wave:1aus.

Die Wattleistung der Batterie entspricht dem ansteigenden und fallenden Leistungsbedarf, bis zu einem Höchstwert von 3.5. Nahe dem Ende der Simulation entleert sich die Batterie und die Wattleistung fällt auf 0.
Das Batteriesystem gibt Strom wie erwartet ab. Wenn die Batterie sich jedoch entleert, kann das System nicht mehr funktionieren.
Im nächsten Schritt des Tutorials fügen Sie eine nicht wiederaufladbare Reservebatterie hinzu, die wesentliche Funktionen aufrechterhält, wenn sich die Hauptbatterie entleert. Um den simultanen Betrieb der Batterien zu modellieren, verwenden Sie parallele Zustände und Ereignisse.