Modellieren synchroner Subsysteme mithilfe von paralleler Dekomposition
Sie können gleichzeitig ausgeführte Betriebsmodi mithilfe von parallelen Zuständen in Ihrem Stateflow®-Diagramm implementieren. Als Teil eines komplexen Systementwurfs können Sie beispielsweise parallele Zustände einsetzen, um unabhängige Komponenten oder Subsysteme zu modellieren, die gleichzeitig aktiv sind.
Zustandsdekomposition
Der Dekompositionstyp eines Diagramms oder Zustands gibt an, ob das Diagramm oder der Zustand exklusive Zustände oder parallele Zustände enthält:
Exklusive Zustände stellen Betriebsmodi dar, die sich gegenseitig ausschließen. Zwei exklusive Zustände können niemals gleichzeitig auf derselben hierarchischen Ebene aktiv sein bzw. ausgeführt werden. Stateflow-Diagramme stellen jeden exklusiven Zustand durch ein Rechteck mit durchgezogener Umrisslinie dar.
Parallele Zustände stellen unabhängige Betriebsmodi dar. Es können zwei oder mehr parallele Zustände gleichzeitig aktiv sein, obwohl sie nacheinander ausgeführt werden. Stateflow-Diagramme stellen jeden parallelen Zustand durch ein gestricheltes Rechteck mit einer Nummer dar, die die Ausführungsreihenfolge angibt.
Sie können in Ihrem Stateflow-Diagramm exklusive und parallele Zustände kombinieren, indem Sie die Zustandsdekomposition auf verschiedenen Ebenen Ihrer Zustandshierarchie einstellen. Der Standard-Zustandsdekompositionstyp ist Exclusive (OR)
. Zum Ändern des Dekompositionstyps auf Parallel (AND)
, klicken Sie mit der rechten Maustaste auf den übergeordneten Zustand und wählen Decomposition > Parallel (AND) aus. Zum Zurückstellen des Dekompositionstyps auf Exclusive (OR)
, klicken Sie mit der rechten Maustaste auf den übergeordneten Zustand und wählen Decomposition > Exclusive (OR) aus.
Modellieren eines Lufttemperaturreglers
In diesem Beispiel wird parallele Dekomposition genutzt, um ein Luftregelungssystem zu modellieren, das die Lufttemperatur in einer technischen Anlage auf 120 Grad (Fahrenheit) hält.
Auf der obersten Ebene hat das Lufttemperaturregler-Diagramm zwei exklusive Zustände, PowerOff
und PowerOn
. Das Diagramm verwendet eine exklusive (ODER)-Dekomposition, da ein Regler nicht gleichzeitig ein- und ausgeschaltet sein kann.
Das Regelungssystem betreibt zwei Lüfter. Der erste Lüfter wird eingeschaltet, sobald die Lufttemperatur über 120 Grad ansteigt. Der zweite Lüfter sorgt für zusätzliche Kühlung, wenn die Lufttemperatur über 150 Grad ansteigt. Im Diagramm werden diese Lüfter als parallele Unterzustände (FAN1
und FAN2
) des Zustands der obersten Ebene PowerOn
modelliert. Da die Lüfter als unabhängige Komponenten arbeiten, die sich je nach Kühlungsbedarf ein- oder ausschalten, verwendet PowerOn
eine parallele (UND)-Dekomposition, um sicherzustellen, dass beide Unterzustände aktiv sind, wenn der Regler eingeschaltet wird.
Mit Ausnahme der Betriebsschwellenwerte werden die Lüfter durch Zustände mit einer identischen Konfiguration von Unterzuständen und Übergängen modelliert, was die beiden Modi des Lüfterbetriebs, On
und Off
, widerspiegelt. Da keiner der beiden Lüfter gleichzeitig ein- und ausgeschaltet sein kann, haben FAN1
und FAN2
eine exklusive (ODER)-Dekomposition.
Im Zustand PowerOn
stellt ein dritter paralleler Zustand namens SpeedValue
ein unabhängiges Subsystem dar, das die Anzahl der Lüfter berechnet, die sich in jedem Zeitschritt eingeschaltet haben. Der Boolesche Ausdruck in(FAN1.On)
weist den Wert 1 auf, wenn der Zustand On
von FAN1
aktiv ist. Anderenfalls ist in(FAN1.On)
gleich 0. In ähnlicher Weise stellt der Wert von in(FAN2.On)
dar, ob FAN2
ein- oder ausgeschaltet wurde. Die Summe dieser Ausdrücke gibt die Anzahl der Lüfter an, die während der einzelnen Zeitschritte eingeschaltet sind.
Festlegen der Ausführungsreihenfolge für parallele Zustände
Auch wenn FAN1
, FAN2
und SpeedValue
gleichzeitig aktiv sind, werden diese Zustände während der Simulation nacheinander ausgeführt. Die Zahlen in der oberen rechten Ecke der jeweiligen Zustände geben die Ausführungsreihenfolge an. Das Grundprinzip für diese Ausführungsreihenfolge lautet:
Der Lüfter
FAN1
wird zuerst ausgeführt, weil er bei einer niedrigeren Temperatur eingeschaltet wird alsFAN2
. Der Lüfter kann unabhängig davon eingeschaltet werden, obFAN2
ein- oder ausgeschaltet ist.Der Lüfter
FAN2
wird als zweites ausgeführt, weil er bei einer höheren Temperatur eingeschaltet wird alsFAN1
. Er kann nur eingeschaltet werden, wennFAN1
bereits eingeschaltet ist.SpeedValue
wird zuletzt ausgeführt, sodass dieses Subsystem den aktuellen Status vonFAN1
undFAN2
überwachen kann.
Standardmäßig ordnet Stateflow die Ausführungsreihenfolge paralleler Zustände anhand der Reihenfolge, in der Sie sie dem Diagramm hinzufügen. Zum Ändern der Ausführungsreihenfolge eines parallelen Zustands klicken Sie mit der rechten Maustaste auf den Zustand und wählen aus der Dropdown-Liste Execution Order den gewünschten Wert aus.
Untersuchung des Beispiels
Dieses Beispiel enthält ein Stateflow-Diagramm namens Air Controller
und ein Simulink®-Subsystem namens Physical Plant
.
Basierend auf der Lufttemperatur der technischen Anlage schaltet das Diagramm die Lüfter ein und gibt die Anzahl der laufenden Lüfter, airflow
, an das Subsystem aus. Dieser Wert bestimmt den Kühlungsaktivitätsfaktor, , nach diesen Regeln:
airflow
= 0 — Keiner der Lüfter ist aktiv. Die Lufttemperatur nimmt nicht ab, da .airflow
= 1 — Ein Lüfter ist aktiv. Die Lufttemperatur verringert sich abhängig vom Kühlungsaktivitätsfaktor .airflow
= 2 — Zwei Lüfter sind aktiv. Die Lufttemperatur verringert sich abhängig vom Kühlungsaktivitätsfaktor .
Der Subsystem „Physical Plant“ (Technische Anlage) aktualisiert die Lufttemperatur, , innerhalb der Anlage abhängig von den Gleichungen
wobei gilt:
ist die Anfangstemperatur. Der Standardwert ist 70 Grad (Fahrenheit).
ist die Umgebungstemperatur. Der Standardwert ist 160 Grad (Fahrenheit).
ist der Wärmeübertragungsfaktor für die Anlage. Der Standardwert ist 0.01.
ist der Kühlungsaktivitätsfaktor, der dem Luftstrom (
airflow
) entspricht.
Die neue Temperatur bestimmt das Ausmaß der Kühlung beim nächsten Zeitschritt der Simulation.