Überwachen der Diagrammaktivität mithilfe der Daten aktiver Zustände
Wenn Ihr Stateflow®-Diagramm Daten umfasst, die mit der Diagrammhierarchie korrelieren, können Sie Ihren Entwurf mithilfe der Daten aktiver Zustände vereinfachen. Durch Aktivierung der Daten aktiver Zustände haben Sie folgende Möglichkeiten:
Vermeiden manueller Datenaktualisierungen, die die Diagrammaktivität widerspiegeln.
Protokollieren und Überwachen der Diagrammaktivität im Simulation Data Inspector.
Verwenden von Diagrammaktivitätsdaten zur Regelung anderer Subsysteme.
Exportieren von Diagrammaktivitätsdaten in andere Simulink-Blöcke.
Beispielsweise bestimmt in diesem Modell einer Ampelanlage der aktive Zustand den Wert des Ausgangssignals color
. Sie können den Entwurf des Diagramms vereinfachen, indem Sie Daten aktiver Zustände aktivieren. In diesem Fall kann das Stateflow-Diagramm die Farbe des Ampelsignals durch Tracking der Zustandsaktivität bereitstellen, sodass Sie nicht explizit den Wert von color
aktualisieren müssen.
Wählen Sie zum Aktivieren von Daten aktiver Zustände einen zu überwachenden Zustand aus. Gehen Sie anschließend im Property Inspector wie folgt vor:
1. Wählen Sie Create output for monitoring.
2. Wählen Sie einen der folgenden Aktivitätstypen aus:
Self activity
: Boolescher Wert, der angibt, ob der Zustand aktiv istChild activity
: Aufzählungswert, der angibt, welcher untergeordnete Zustand aktiv istLeaf state activity
: Aufzählungswert, der angibt, welcher Blatt-Zustand aktiv ist
3. Geben Sie den Datennamen (Data name) für das Symbol der Daten aktiver Zustände an.
4. Optional können Sie für Child activity
oder Leaf state activity
den Aufzählungsnamen (Enum name) für den Datentyp aktiver Zustände angeben.
Standardmäßig melden Stateflow-Diagramme die Zustandsaktivität als Ausgangsdaten an das Simulink-Modell. Verwenden Sie den Fensterbereich Symbols, um den Geltungsbereich eines Symbols der Daten aktiver Zustände in lokale Daten zu ändern.
Modellieren einer Ampelregelung
Dieses Beispiel verwendet Daten aktiver Zustände, um das Regelungssystem für ein Ampelpaar zu modellieren.
Innerhalb des Diagramms Traffic Controller
verwalten zwei Unterdiagramme die Logik zur Regelung der Ampelanlage. Die Unterdiagramme weisen eine identische Hierarchie auf, die aus drei untergeordneten Zuständen besteht: Red
, Yellow
und Green
. Die Ausgangsdaten Light1
und Light2
entsprechen den aktiven untergeordneten Zuständen in den Unterdiagrammen. Diese Signale:
Bestimmen die Phase der animierten Ampelanlage.
Können die Anzahl der an jeder Ampel wartenden Fahrzeuge beeinflussen.
Steuern ein Subsystem für den Sicherheits-Nachweis, das sicherstellt, dass die beiden Ampeln niemals gleichzeitig Grün zeigen.
Zum Anzeigen der Unterdiagramme innerhalb des Verkehrsregelungsdiagramms klicken Sie auf den Pfeil in der unteren linken Ecke des Diagramms.
Jedes Verkehrsregelungssystem durchläuft seine untergeordneten Zustände: von Red
zu Green
zu Yellow
und wieder zu Red
. Jeder Zustand entspricht einer Phase im Ampelanlagenzyklus. Die Ausgangssignale Light1
und Light2
geben an, welcher Zustand zu einem beliebigen Zeitpunkt aktiv ist.
Rotes Ampelsignal
Der Ampelanlagenzyklus beginnt, wenn der Zustand Red
aktiv wird. Nach einer kurzen Verzögerung prüft das Regelungssystem, ob Fahrzeuge an der Kreuzung warten. Wenn mindestens ein Fahrzeug erkannt wird, oder nach Ablauf einer festgelegten Zeitspanne, fordert das Regelungssystem ein grünes Ampelsignal an, indem es greenLightRequest
auf true
setzt. Nach der Anforderung verbleibt das Regelungssystem für kurze Zeit im Zustand Red
, bis es erkennt, dass die andere Ampel Rot zeigt. Anschließend geht das Regelungssystem in den Zustand Green
über.
Grünes Ampelsignal
Wenn der Zustand Green
aktiv wird, storniert das Regelungssystem die Anforderung nach einem grünen Ampelsignal, indem es greenLightRequest
auf false
setzt. Das Regelungssystem setzt greenLightLocked
auf true
, um zu verhindern, dass die andere Ampel auf Grün schaltet. Nach einer kurzen Verzögerung prüft das Regelungssystem, ob vom anderen Regelungssystem eine Anforderung nach einem grünen Ampelsignal vorliegt. Wenn es eine Anforderung empfängt, oder nach Ablauf einer festgelegten Zeitspanne, geht das Regelungssystem in den Zustand Yellow
über.
Gelbes Ampelsignal
Wenn der Zustand Yellow
inaktiv wird, setzt das Regelungssystem greenLightLocked
auf „false“ und gibt damit an, dass die andere Ampel sicher auf Grün schalten kann. Das Regelungssystem verbleibt für eine festgelegte Zeitspanne im Zustand Yellow
, bevor es in den Zustand Red
übergeht. Anschließend beginnt der Ampelanlagenzyklus von vorn.
Timing der Ampelanlage
Das Timing des Ampelanlagenzyklus wird durch mehrere Parameter definiert. Zum Ändern des Timings der Ampelanlage doppelklicken Sie auf das Diagramm Traffic Controller
und geben Sie im Dialogfenster neue Werte für folgende Parameter ein:
REDDELAY
: Zeitspanne, bevor das Regelungssystem prüft, ob an der Kreuzung Fahrzeuge vorhanden sind. Dieser Wert ist zudem die minimale Zeitspanne, bevor die Ampel auf Grün schaltet, nachdem das Regelungssystem ein grünes Ampelsignal angefordert hat. Der Standardwert ist 6 Sekunden.MAXREDDELAY
: Gibt an, wie lange das Regelungssystem maximal nach Fahrzeugen sucht, bevor ein grünes Ampelsignal angefordert wird. Der Standardwert ist 360 Sekunden.GREENDELAY
: Gibt an, wie lange die Ampel maximal Grün zeigt. Der Standardwert ist 180 Sekunden.MINGREENDELAY
: Gibt an, wie lange die Ampel mindestens Grün zeigt. Der Standardwert ist 120 Sekunden.YELLOWDELAY
: Gibt an, wie lange die Ampel Gelb zeigt. Der Standardwert ist 15 Sekunden.
Untersuchung des Beispiels
Öffnen Sie das Diagramm, indem Sie auf den Pfeil in der unteren linken Ecke klicken.
Wählen Sie im Fensterbereich Symbols die Option
greenLightRequested
aus. Wählen Sie anschließend im Property Inspector unter Logging die Option Log signal data aus.Wiederholen Sie diesen Schritt für
greenLightLocked
,Light1
undLight2
.Klicken Sie auf der Registerkarte Simulation auf Run.
Klicken Sie auf der Registerkarte Simulation unter Review Results auf Data Inspector.
Zeigen Sie im Simulation Data Inspector die protokollierten Signale entlang separater Achsen an. Die Booleschen Signale
greenLightRequested
undgreenLightLocked
werden als numerische Werte angezeigt: null oder eins. Die ZustandsaktivitätssignaleLight1
undLight2
sind Aufzählungsdaten mit den WertenGreen
,Yellow
,Red
undNone
.
Zum Verfolgen der Diagrammaktivität während der Simulation können Sie die Zoom- und Cursor-Schaltflächen im Simulation Data Inspector verwenden. Im Nachfolgenden sind beispielsweise die wichtigsten Momente während der ersten 300 Sekunden der Simulation aufgeführt:
: Zu Beginn der Simulation zeigen beide Ampeln Rot.
Light1
undLight2
sindRed
,greenLightRequested
istfalse
undgreenLightLocked
istfalse
.: Nach 6 Sekunden – dem Standardwert für
REDDELAY
– warten Fahrzeuge in beiden Straßen, sodass beide Ampeln ein grünes Ampelsignal anfordern.Light1
undLight2
sind immer nochRed
,greenLightRequested
isttrue
undgreenLightLocked
istfalse
.: Nach weiteren 6 Sekunden – dem Standardwert für
REDDELAY
– wird Ampel 1 grün, storniert die Anforderung eines grünen Ampelsignals und stelltgreenLightLocked
auftrue
. Anschließend fordert Ampel 2 ein grünes Ampelsignal an.Light1
istGreen
,Light2
istRed
,greenLightRequested
wird erstfalse
und danntrue
, undgreenLightLocked
isttrue
.: Nach 120 Sekunden – dem Standardwert für
MINGREENDELAY
– schaltet Ampel 1 auf Gelb.Light1
istYellow
,Light2
istRed
,greenLightRequested
isttrue
undgreenLightLocked
isttrue
.: Nach 15 Sekunden – dem Standardwert für
YELLOWDELAY
– schaltet Ampel 1 auf Rot und setztgreenLightLocked
auffalse
. Danach schaltet Ampel 2 auf Grün, storniert die Anforderung nach einem grünen Ampelsignal und stelltgreenLightLocked
auftrue
.Light1
istRed
,Light2
istGreen
,greenLightRequested
istfalse
undgreenLightLocked
wird erstfalse
und danntrue
.: Nach 6 Sekunden – dem Standardwert für
REDDELAY
– fordert Ampel 1 ein grünes Ampelsignal an.Light1
istRed
,Light2
istGreen
,greenLightRequested
isttrue
undgreenLightLocked
isttrue
.: Nachdem Ampel 2 für 120 Sekunden lang grün ist – dem Standardwert für
MINGREENDELAY
–, schaltet Ampel 2 auf Gelb.Light1
istRed
,Light2
istYellow
,greenLightRequested
isttrue
undgreenLightLocked
isttrue
.: Nach 15 Sekunden – dem Standardwert für
YELLOWDELAY
– schaltet Ampel 2 auf Rot und setztgreenLightLocked
auffalse
. Danach schaltet Ampel 1 auf Grün, storniert die Anforderung nach einem grünen Ampelsignal und stelltgreenLightLocked
auftrue
.Light1
istGreen
,Light2
istRed
,greenLightRequested
istfalse
undgreenLightLocked
wird erstfalse
und danntrue
.: Nach 6 Sekunden – dem Standardwert für
REDDELAY
– fordert Ampel 2 ein grünes Ampelsignal an.Light1
istGreen
,Light2
istRed
,greenLightRequested
isttrue
undgreenLightLocked
isttrue
.
Der Zyklus wird wiederholt, bis die Simulation bei Sekunden endet.