Optimal control: Stochastisches optimal control
Definition

Ein System enthält in gewissem Rahmen frei zu wählende Steuerungsinputs und soll durch diese stabilisiert werden. Die Dynamik des Systems, d.h. der Einfluss von Steuerungsinput und momentanem Zustand auf den zukünftigen Zustand seien bekannt aber der Systemverlauf sei weiterhin von zufälligen Störgrössen beeinflusst..
Dies ist eine Erweiterung des optimal controls bei bekannter Dynamik und bekanntem Zustand um zufällige Störgrössen. Das linear-quadratische Gaussche Reglerproblem (LQG) ist ein Beispielproblem dieser Problemklasse, bei der die Störgrössen normalverteilt sind.
LQG control
SDP Formulierung
Der optimale Steuerungsinput u_k ergibt sich nach der Gleichung [1] u_k=Z_{xu}^T(Z_{xx})^{-1} x_k wobei Z_{xx} und Z_{xu} die Lösungen für das nachfolgende semidefinite Programm sind [2].
\begin{align} \min_{Z_{xx}, Z_{xu}, Z_{uu}} ~~~&\operatorname{tr} (QZ_{xx}) + \operatorname{tr} (R Z_{uu}) \\ s.t. ~~~& \begin{bmatrix} Z_{xx} & Z_{xu} \\ Z_{xu}^T & Z_{uu} \end{bmatrix} \succeq 0 \\ & Z_{xx}-AZ_{xx}A^T‑AZ_{xu}B^T — BZ_{xu}^TA^T — B Z_{uu}B^T=W\end{align}
Die zu minimierende Funktion \operatorname{tr} (QZ_{xx}) + \operatorname{tr} (R Z_{uu}) quantifiziert erwartete Kosten (Geld, Zeit, Energie, Fehler) über den Zusammenhang E[X^TQx+u^TRu]=\operatorname{tr}(Q E[xx^T])+\operatorname{tr}(RE[uu^T])=\operatorname{tr}(QZ_{xx})+\operatorname{tr}(RZ_{uu}). Z_{xx} und Z_{uu} sind demnach interpretierbar als Kovarianzmatrizen der zufällig verteilten Grössen x und u und die Gleichung u_k=Z_{xu}^T(Z_{xx})^{-1}x_k ist gerade der bedingte Erwartungswert von u_k gegeben x_k und die durch Z_{xxx}, Z_{xu}, Z_{uu} determinierte energieminimierende Wahrscheinlichkeitsverteilung.
Beispiel: Pendelsteuerung
Im folgenden ausführlichen Beispiel wird das Ziel verfolgt, ein von zufälligen Effekten beeinflusstes Pendel zu stabilisieren. Wir gehen davon aus, ein Pendel startet in zufälliger (aber kleiner) Auslenkung \varphi aus der Gleichgewichtslage.
Die Pendelbewegung folgt dann normalen physikalischen Gesetzmässigkeiten mit der Ausnahme, dass zusätzlich noch zufällige und von uns weder vorhersehbare noch kontrollierbare Effekte eine Kraft und somit auch eine Beschleunigung auf das Pendel bewirken.


Man beachte, dass die Grafik das für ein Pendelschwingen erwartete Verhalten zeigt. Ist die Auslenkung \varphi maximal, dann ist die Geschwindigkeit \dot{\varphi}=0 und die Beschleunigung \ddot{\varphi} minimal. Ist die Auslenkung \varphi=0, so ist die Geschwindigkeit \dot{\varphi} maximal und die Beschleunigung \ddot{\varphi} wechselt von positiv zu negativ bzw. umgekehrt.
Pendelgleichungen
Die von der Gewichtskraft g induzierte Beschleunigung in Schwingrichtung ist -g\sin(\varphi). Weiterhin wirken die zufälligen Effekte w und wir nehmen an, der von uns wählbare Steuerungsinput u beeinflusst direkt die beschleunigung, sodass gilt
\ddot{\varphi}_k = ‑g \sin(\varphi_k) + w_k + u_k ~~~~~~~k=0, …, T .
Die Zustandsgleichung koppelnd verschiedene Grössen über sukzessive Zeitschritte hinweg kann geschrieben werden als
\underbrace{\begin{bmatrix} \varphi_{k+1} \\ \dot{\varphi}_{k+1} \\ \ddot{\varphi}_{k+1} \\ \sin(\varphi_{k+1}) \\ \cos(\varphi_{k+1}) \end{bmatrix}}_{x_{k+1}} = \underbrace{\begin{bmatrix} 1 & \Delta t & 0 & 0& 0 \\ 0 & 1 & \Delta t & 0 & 0 \\ 0& 0& 0& ‑g & 0 \\ 0 & \Delta t & 0 & 1 & 0 \\ 0&0&0&0&0\end{bmatrix}}_{A}\underbrace{\begin{bmatrix} \varphi_{k} \\ \dot{\varphi}_{k} \\ \ddot{\varphi}_{k} \\ \sin(\varphi_{k}) \\ \cos(\varphi_{k}) \end{bmatrix}}_{x_{k}} + \underbrace{\begin{bmatrix} 0 \\ 0\\ 1 \\ 0\\0 \end{bmatrix}}_{B} \underbrace{\begin{bmatrix} u_k\end{bmatrix}}_{u_k} + \underbrace{\begin{bmatrix} 0\\0\\w_k\\0\\0 \end{bmatrix}}_{w_k}.
Dabei werden die für kleine Winkel gültigen Approximationen
\begin{align} \sin (\varphi+\Delta \varphi)&\approx \sin\varphi+\Delta \varphi \cos \varphi\approx \sin \varphi + \Delta t \dot{\varphi} \cos \varphi \approx \sin \varphi + \Delta t \dot{\varphi} \\ \cos(\varphi+\Delta\varphi) &\approx \cos \varphi — \Delta \varphi \sin \varphi \approx \cos \varphi — \Delta t \dot{\varphi} \sin \varphi \approx \cos \varphi \end{align}
benutzt, um die letzten zwei Reihen der Gleichung zu erstellen.
Optimierungslösung
Möchten wir nun eine matrix K finden, sodass der Steuerungsinput u_k=Kx_k das System stabilisiert, so ist das Optimierungsproblem
\begin{align} \min_{Z_{xx}, Z_{xu}, Z_{uu}} ~~~& \sum_{i=1}^3 (Z_{xx})_{ii} +(Z_{uu})_{ii} \\ s.t. ~~~& \begin{bmatrix} Z_{xx} & Z_{xu} \\ Z_{xu}^T & Z_{uu} \end{bmatrix} \succeq 0 \\ & Z_{xx}-AZ_{xx}A^T‑AZ_{xu}B^T — BZ_{xu}^TA^T — B Z_{uu}B^T=W\end{align}
zu lösen. Dabei sind A und B wie im vorigen Abschnitt beschrieben, w ist eine 5 \times 5 Matrix von 0 en mit Ausnahme des Eintrages W_{33}=\sigma_w^2 der Varianz des Zufallseffektes auf die Beschleunigung und das resultierende Steuersignal ist u_k= Kx_k=Z_{xu}^T(Z_{xx})^{-1}x_k.

Praktisches
Soll das obige Lösungsvorgehen auf andere Systeme übertragen werden, sind einige Hinweise zu beachten. Die Systemdynamik muss linear sein und somit formulierbar als x_{k+1}=Ax_k+Bu_k+w_k wobei die w_k unabhängige Zufallsvariablen mit bekannter Kovarianzmatrix sein müssen. Sind die w_k untereinander korrelliert, muss die gesamte Optimierungsgleichung in einen höherdimensionalen Raum eingebettet werden, in den die x_1, …, x_k und w_1, …, w_k gleichzeitig einbezogen werden.
Schon beim Pendelbeispiel war der Zustand x_k 5‑dimensional mit zwei Hilfsdimensionen, die \sin \varphi_k und \cos \varphi_k dokumentiert haben. Die Definition des Zustandsvektors muss vom Anwendenden selber durhgeführt werden und kann durchaus kompliziert werden. Oft sind Tricks und Approximationen nötig, um nichtlineare Gleichungen in eine sinnvoll verwendbare linearisierte Form zu überführen.
Code & Quellen
Beispielcode: OC_stochastic_control_1.py , OC_stochastic_control_2.py in unserem Tutorialfolder.
[1] Balakrishnan, V., & Vandenberghe, L. (2003). Semidefinite programming duality and linear time-invariant systems. IEEE Transactions on Automatic Control, 48,(1), 30–41.
[2] Kamgarpour, M., Summers, T. (2017). On infinite dimensional linear programming approach to stochastic control. 20th IFAC World Congress (IFAC 2017), Toulouse, France, July 9–14. IFAC-PapersOnLine, 50, (1), 6148 — 6153.