Main Content

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

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 als FAN2. Der Lüfter kann unabhängig davon eingeschaltet werden, ob FAN2 ein- oder ausgeschaltet ist.

  • Der Lüfter FAN2 wird als zweites ausgeführt, weil er bei einer höheren Temperatur eingeschaltet wird als FAN1. Er kann nur eingeschaltet werden, wenn FAN1 bereits eingeschaltet ist.

  • SpeedValue wird zuletzt ausgeführt, sodass dieses Subsystem den aktuellen Status von FAN1 und FAN2 ü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, $k_{\mathrm Cool}$, nach diesen Regeln:

  • airflow = 0 — Keiner der Lüfter ist aktiv. Die Lufttemperatur nimmt nicht ab, da $k_{\mathrm{Cool}} = 0$.

  • airflow = 1 — Ein Lüfter ist aktiv. Die Lufttemperatur verringert sich abhängig vom Kühlungsaktivitätsfaktor $k_{\mathrm{Cool}} = 0.05$.

  • airflow = 2 — Zwei Lüfter sind aktiv. Die Lufttemperatur verringert sich abhängig vom Kühlungsaktivitätsfaktor $k_{\mathrm{Cool}} = 0.1$.

Der Subsystem „Physical Plant“ (Technische Anlage) aktualisiert die Lufttemperatur, $temp$, innerhalb der Anlage abhängig von den Gleichungen

$$temp(0) = T_{\mathrm{Initial}}$$

$$temp'(t) = (T_{\mathrm{Ambient}}-temp(t)) \cdot (k_{\mathrm{Heat}}-k_{\mathrm{Cool}}),$$

wobei gilt:

  • $T_{\mathrm{Initial}}$ ist die Anfangstemperatur. Der Standardwert ist 70 Grad (Fahrenheit).

  • $T_{\mathrm{Ambient}}$ ist die Umgebungstemperatur. Der Standardwert ist 160 Grad (Fahrenheit).

  • $k_{\mathrm{Heat}}$ ist der Wärmeübertragungsfaktor für die Anlage. Der Standardwert ist 0.01.

  • $k_{\mathrm{Cool}}$ 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.

Verwandte Themen