Optimal control: Robust optimal control

Problemstellung

Beim robus­ten opti­mal con­trol soll ein Sys­tem sta­bi­li­siert wer­den, des­sen exak­te dyna­mi­sche Eigen­schaf­ten nicht bekannt sind und nur auf einen bestimm­ten Unsi­cher­heits­be­reich ein­ge­schränkt wer­den kön­nen. Even­tu­ell ist der Zustand des Sys­te­mes aus­ser­dem nur unvoll­stän­dig beobachtbar.

Trotz­dem soll ein zeit­ab­hän­gi­ger Input \(u(t)\) gefun­den wer­den, der den Sys­tem­zu­stand \(x(t)\) sta­bi­li­siert, d.h. \(\lim_{t\rightarrow \infty} x(t)=0\) unab­hän­gig von der eigent­li­chen Dyna­mik. Pro­ble­me die­ser Art tre­ten z.B. bei der Steue­rung von Droh­nen [1], Heli­ko­ptern, Fest­plat­ten­aus­le­se­al­go­rith­men [2] und gene­rell sobald die Steue­rungs­me­cha­nis­men eines Sys­tems Unsi­cher­hei­ten aufweisen.

Optimal control bei unbekannter Dynamik

Die Dyna­mik eines Sys­te­mes mit teil­wei­se unbe­kann­ter Dyna­mik ist gege­ben durch die Gleichung

$$ \dot{x}(t)=Ax(t)+Bu(t) ~~~~~~[A,B] \in Co([A_1,b_1], …, [A_n,B_n]), $$

wel­che Sys­tem­ver­än­de­run­gen \(\dot{x}\) mit den zeit­ab­hän­gi­gen Zustands­grös­sen \(x(t)\) und Steue­rungs­in­puts \(u(t)\) kop­pelt. Die Matri­zen \(A\) und \(B\) sol­len dabei alle mög­li­chen gewich­te­ten Mit­tel \([\sum_{k=1}^n\lambda_k A_k, \sum_{k=1}^n \lambda_k B_k], \sum_{k=1}^n\lambda_k=1, \lambda_k \ge 0\) zwi­schen den Eck­punk­ten \([A_1, B_1], …, [A_n, B_n]\) anneh­men dür­fen; die­se Men­ge wird auch kon­ve­xe Hül­le \(Co\) genannt. Wären \(A\) und \(B\) bekann­te kon­stan­te Matri­zen, so wür­de es sich um ein klas­si­sches Pla­nungs­pro­blem handeln.

Ein Sys­tem \(\dot{x}=Ax\) ist sta­bil, wenn es eine qua­dra­ti­sche Funk­ti­on \(V(x)=x^TPx, P\succeq 0\) gibt, sodass [3, p. 428] gilt

$$\dot{V}(x)=x^T(A^TP+PA)x <0.$$

Die­se soge­nann­te Lyapu­n­ov Funk­ti­on beweist, dass es eine Ener­gie­funk­ti­on gibt, die alle vom Sys­tem gene­rier­ba­ren Tra­jek­to­ri­en erklärt. Eine Feed­back­ma­trix \(K\) mit \(u(t)=Kx(t)\) ist gesucht, wel­che das Sys­tem sta­bi­li­siert. Sie kann abge­lei­tet wer­den zu \(K=YQ\) aus dem Lösun­gen \(Q, Y\) des nach­fol­gen­den semi­de­fi­ni­ten Gle­chungs­sys­te­mes für die Matri­zen \(Q\) und \(Y\) [3, p. 428].

$$ Q=Q^T \succ 0, ~~~~~~~~~ (QA_i^T+A_iQ)+(Y^TB_i^T+B_iY) \prec 0~~~~i=1, …,n$$

Beispiel: Harmonischer Oszillator

Das fol­gen­de Bei­spiel illus­triert Anwen­dung und Vor­ge­hen. Ein schwin­gen­des Sys­tem wird in Mas­sen­pro­duk­ti­on her­ge­stellt und in unter­schied­li­chen Situa­tio­nen ein­ge­setzt. Obwohl sich die Dyna­mik je nach Situa­ti­on unter­schei­det, soll eine ein­zi­ge, uni­ver­sell gül­ti­ge Feed­back­steue­rung zur Schwin­gungs­dämp­fung ver­wen­det werden.

Es sei \(s\) die Raum­va­ria­ble und wie üblich deno­tie­ren Punkt und Dop­pel­punkt die ers­te bzw. zwei­te Zeit­ab­lei­tung. Eine har­mo­ni­sche Schwin­gung ist cha­rak­te­ri­siert durch die Differentialgleichung

$$ \begin{align}\dot{s} & = — \omega s \\ x&=\begin{bmatrix} s \\ \dot{s} \end{bmatrix} \\ & \Rightarrow \dot{x}=\begin{bmatrix} \dot{s} \\ \ddot{s} \end{bmatrix} =\begin{bmatrix} \dot{s} \\ — \omega s \end{bmatrix}  = \begin{bmatrix} 0 & 1 \\ -\omega & 0 \end{bmatrix} \begin{bmatrix} s\\ \dot{s} \end{bmatrix}= Ax. \end{align}$$

Dabei ist \(\omega >0 \) und die Reso­nanz­fre­quenz \(\sqrt{\omega}\)  kann je nach Situa­ti­on ande­re Wer­te anneh­men. Es lie­ge \(\omega\) zwi­schen \(1/2\) und \(3/2\) und der Steue­rungs­in­put sei eine Beschleu­ni­gung; \(Bu=[0,0,u[^T\) mit \(B=[0,0,1]^T\). Es ist dann das fol­gen­de SDP zu lösen.

$$ \begin{align} \min_{Q,Y} ~~~& \operatorname{tr} (Q) \\ \text{s.t.} ~~~&Q \succ 0 ~~~~ \operatorname{tr} Q \ge 1 \\ &(Q A_1^T +A_1Q)+(Y^TB^T + BY) \prec 0 \\ &(Q A_2^T +A_2Q)+(Y^TB^T + BY) \prec 0 \\ & A_1 =\begin{bmatrix} 0 & 1 \\ ‑1/2 & 0 \end{bmatrix} ~~~~~~~A_2=\begin{bmatrix} 0 & 1 \\ ‑3/2 & 0\end{bmatrix} \end{align}$$

Die­ses semi­de­fi­ni­te Pro­gramm kann z.B. mit CVXPY [4] gelöst wer­den zu \(K\approx [-60,-9]^T\). Die Aus­wir­kung die­ser Feed­back­ma­trix ist in der unten­ste­hen­den Abbil­dung zu sehen.

Abbil­dung 1 : Dyna­mik des har­mo­ni­schen Oszil­la­tors im unbe­ein­fluss­ten Zustand (a) und mit durch die Feed­back­ma­trix \(K\) sta­bi­li­sier­ter Ent­wick­lung (b).

Es ist ersicht­lich, dass die obi­ge Steue­rung die Sys­te­me sta­bi­li­siert unab­hän­gig von den genau­en Eigen­fre­quen­zen. Die tri­via­le Steue­rung \(u=-s\) z.B. tut dies nicht.

Unbekannter Zustand und zeitveränderliche Dynamik

Ist bei einem zu steu­ern­den Sys­tem der zeit­ab­hän­gi­ge Zustand \(x(t)\) nur durch ein Out­put­si­gnal \(y(t)=C_yx(t)\) erfass­bar und die Dynamik

$$ \dot{x}=A(t)x(t)+Bu(t) ~~~~~~~A(t) \in Co([A_1, …, A_n]) $$

zeit­ver­än­der­lich, so ist das Sys­tem nur unter gewis­sen Umstän­den sta­bi­li­sier­bar. Die matrix \(A(t)\) ist eine zeit­ver­än­der­li­che linea­re Kom­bi­na­ti­on $$A(t)=\sum_{k=1}^n\theta_k(t)A_k ~~~~\sum_{k=1}^n \theta_k(t)=1, \theta_k(t)\ge 0.$$ Es ist ein Ele­ment der kon­ve­xen Hül­le \(Co([A_1, …, A_n])\), das den Zusam­men­hang zwi­schen Sys­tem­ver­än­de­run­gen \(\dot{x}\) und Sys­tem­zu­stand \(x\) beschreibt. Der nur indi­rekt beob­ach­te­te Zustand \(x\) soll sta­bi­li­siert werden.

Sol­ceh Pro­ble­me tre­ten auf bei Sys­te­men, die über eine gros­se Band­brei­te von Situa­tio­nen hin­weg sta­bil zu hal­ten sind und deren Beschrei­bung nicht­li­nea­re Ter­me und unbe­ob­ach­te­te Kon­di­tio­nen ent­hält [5]. Die­se Pro­blem­klas­se beinhal­tet die Ent­wick­lung von Auto­pi­lo­ten für Luft- und Raum­fahrt­sys­te­me sowie die opti­ma­le Steue­rung von che­mi­schen Reak­tio­nen in der Ver­fah­rens­tech­nik [6].

SDP Formulierungen

Unter der Annah­me, dass die Mischungs­ko­ef­fi­zi­en­te \(\theta_k(t)\) zu jeder Zeit bekannt sei­en, kann gezeigt wer­den, dass eine sta­bi­li­sier­ba­re höher­di­men­sio­na­le Ein­bet­tung von \(x\) exis­tiert, wenn das semi­de­fi­ni­te Gleichungssystem

$$\begin{align} &\begin{bmatrix} S & I \\ I & R \end{bmatrix} \succeq 0 \\ &N_R^T(A_kR + R A_k^T)N_R \prec 0 ~~~~ k=1, …, n \\ &N_S^T(A_kS + S A_k^T)N_S \prec 0 ~~~~ k=1, …, n \end{align}$$

eine Lösung \(S, R\) hat [3, pp. 428–431]. Hier­bei sind \(N_R^T\) und \(N_S^T\) Matri­zen, des­sen Spal­ten die Basis der Null­räu­me von \(B^T\) respec­ti­ve \(C_y\) bil­den. Mehr Details sind in [7, pp. 22–23] zu fin­den. Ist das Glei­chungs­sys­tem lös­bar, so kann das System

$$\begin{bmatrix} x \\ x_c \end{bmatrix} =\left( \underbrace{\begin{bmatrix} A(t) & 0 \\ I & 0\end{bmatrix}}_{\mathcal{G}} + \underbrace{\begin{bmatrix} 0 & B \\ I & 0 \end{bmatrix}}_{\mathcal{B}} \underbrace{\begin{bmatrix} A_c(t) & B_c(t) \\ C_c(t) & D_c(t) \end{bmatrix}}_{\Omega(t)} \underbrace{\begin{bmatrix} 0 & I \\C_y & 0 \end{bmatrix}}_{\mathcal{C}}\right) \begin{bmatrix}x \\ x_c \end{bmatrix}$$

nach der unbe­kann­ten clo­sed loop sta­te tran­si­ti­on Matrix \(A_{cl}(t)=\mathcal{G}+\mathcal{B}\Omega(t) \mathcal{C}\) auf­ge­löst wer­den. Zudem kann die Bedin­gung $A_{cl}^T(t)P+PA_{cl}(t) \prec 0 ~~~~~ P \succ 0 $

erfüllt wer­den, sodass das Sys­tem sta­bil ist, da es ent­lang aller mög­li­chen Tra­jek­to­ri­en Ener­gie ver­liert. Wird für jedes \(k=1, …, n\) das Gleichungssystem

$$\begin{align}  &(\mathcal{G}_k+\mathcal{B}\Omega_k\mathcal{C})^TP + P(\mathcal{G}_K + \mathcal{B}\Omega_k \mathcal{C}) \prec 0 \\ &P=\begin{bmatrix} S & (S‑R^{-1})^{1/2} \\ (S_R^{-1})^{1/2 T} & I \end{bmatrix} ~~~~~~\mathcal{G}_K=\begin{bmatrix} A_k & 0 \\ 0 & 0 \end{bmatrix}\end{align}$$

nach \(\Omega_k\) gelöst, so ergibt sich durch gewich­te­te Line­ar­kom­bi­na­ti­on der ein­zel­nen Lösun­gen für \(\Omega_k\) eine zeit­ab­hän­gi­ge Gesamt­lö­sung. Das System

$$ \begin{bmatrix} \dot{X} \\ \dot{X}_c \end{bmatrix} = \left( \begin{bmatrix} \sum_{k=1}^n \theta_k(t) A_k & 0 \\ 0 & 0 \end{bmatrix} + \begin{bmatrix} 0 & B \\ I & 0 \end{bmatrix} \left(\sum_{k=1}^n \theta_k(t) \Omega_k \right) \begin{bmatrix} 0 & I \\ C_y & 0 \end{bmatrix}\right) \begin{bmatrix}x \\ x_c \end{bmatrix}$$

ist sta­bil. Der vom Out­put \(y\) abge­lei­te­te Steue­rungs­in­put \(u\) ist dem­nach gege­ben durch \(u(t)\) mit

$$\begin{align} u(t) &= \sum_{k=1}^n \theta_k(t) C_c^kx_c + \sum_{k=1}^n \theta_k(t) D_c^ky \\ \Omega_k&=\begin{bmatrix} A_c^k & B_c^k \\ C_c^k & D_c^k\end{bmatrix} \end{align}$$

wobei \(x_c\) sich ent­wi­ckelt gemäss \(\dot{x}_c = \sum_{k=1}^n A_c^kx_c+\sum_{k=1}^n\theta_k(t) B_c^kC_yx\).

Beispiel: Schaltkreis

Ein Bei­spiel ver­deut­licht das Vor­ge­hen. Es sei ein Schalt­kreis mit einem Wider­stand, einer Spu­le, und einem Kon­den­sa­tor gege­ben. Gemäss z.B. [8, pp. 10–11] ist der Zusam­men­hang zwi­schen Span­nung \(V\) , Strom­stär­ke \(I\), und Zeit \(t\) gege­ben durch die vek­tor­wer­ti­ge Differentialgleichung

$$ \begin{bmatrix} \dot{V} \\ \dot{I}\end{bmatrix}  = \begin{bmatrix}0 & — 1/C \\ 1/L & ‑R/L\end{bmatrix} \begin{bmatrix} V\\ I \end{bmatrix} + \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} $$

wobei \(R\) der Wider­stand, \(L\) die Induk­ti­vi­tät der Spu­le, und \(C\) die Kapa­zi­tät des Kon­den­sa­tors ist. Wir gehen davon aus, dass

  1. die Ände­rung von Span­nung und Strom­stär­ke über den Rege­lungs­in­put \([u_1,u_2]^T\) gesteu­ert wer­den kann
  2. \(C\) und \(L\) zwi­schen 1 und 10 variieren
  3. nur die Strom­stär­ke beob­acht­bar ist und die Span­nung nicht gemes­sen wird.

Trotz der pro­ble­ma­ti­schen Kon­di­tio­nen 2. (ver­än­der­li­che Schalt­kreis­pa­ra­me­ter) und 3. (Span­nung nicht beob­acht­bar) soll das Sys­tem sta­bi­li­siert wer­den. Wir wen­den die obig prä­sen­tier­ten Glei­chun­gen an udn erhal­ten die fol­gen­de Ket­te von semi­de­fi­ni­ten Glei­chungs­sys­te­men, die wir z.B. mit CVXPY lösen können.

$$\begin{align}1.~~~~ \text{find} & ~~~R, S \\ s.t. &~~~ \begin{bmatrix} R & I \\ I &S \end{bmatrix} \succeq 0 \\ &~~~ \begin{bmatrix} 1 & 0\end{bmatrix} (S A_k + A_k^TS) \begin{bmatrix} 1 \\ 0 \end{bmatrix} <0 ~~~~~~k=1, …, 4 \\ &~~~ A_1=\begin{bmatrix} 0 & ‑1 \\ 1 & ‑R\end{bmatrix} ~~~~~A_2=\begin{bmatrix} 0 & ‑0.1 \\ 1 & ‑R\end{bmatrix} \\ & ~~~A_3=\begin{bmatrix} 0 & ‑1 \\ 0.1 & ‑0.1R\end{bmatrix}~~~~~A_4=\begin{bmatrix} 0 & ‑0.1 \\ 0.1 & ‑0.1R\end{bmatrix}\\2.~~~~ \text{find} & ~~~\Omega_k \\ s.t. &~~~(\mathcal{G}_k + \mathcal{B}\Omega_k \mathcal{C})^TP+P(\mathcal{G}_k+\mathcal{B}\Omega_k\mathcal{C}) \prec0 \\ & ~~~\mathcal{G}_k= \begin{bmatrix} A_k & 0 \\ 0 & 0\end{bmatrix} ~~~~~\mathcal{B}=\begin{bmatrix} 0& 0& 1&0\\0&0&0&1\\1&0&0&0\\0&1&0&0\end{bmatrix} ~~~~~\mathcal{C}=\begin{bmatrix} 0&0&1&0\\ 0&0&0&1\\ 0&1&0&0\end{bmatrix} \end{align}$$

Das Resul­tat ist in der unten­ste­hen­den Abbil­dung sichtbar.

Abbil­dung 2 : Sys­te­me­vo­lu­ti­on für zufäl­li­ges \(\theta\) (a), wenn der Kon­trol­lin­put zu \(u=0\) gesetzt wird (b), invers pro­por­tio­nal yur Strom­stär­ke gewählt wird © oder via SDP Glei­chungs­sys­tem bestimmt wur­de (d).

In der Tat ist das Sys­tem sta­bil. Dies ist nicht der Fall, wird der Kon­trol­lin­put nach intui­ti­ven, manu­ell erdach­ten Regeln gewählt oder sich selbst über­las­sen. Der Ansatz für das opti­mal con­trol von nur par­ti­ell beob­ach­te­ten Sys­te­men mit teil­wei­se unbe­kann­ter Dyna­mik lie­fert also einen ech­ten Mehrwert.

Code & Quellen

Bei­spiel­code: OC_harmonic_oscillator_3.py , OC_harmonic_oscillator_4.py  in unse­rem Tuto­ri­al­fol­der.

[1] AlS­wai­lem, S.I. (2004). Appli­ca­ti­on of Robust Con­trol in Unman­ned Vehic­le Flight Con­trol Sys­tem Design. Dis­ser­ta­ti­on Cran­field Uni­ver­si­ty, Cranfield.

[2] Post­le­thwai­te, I., Tur­ner, M. C., Gui­do, H. (2007). Robust Con­trol Appli­ca­ti­ons. Annu­al Reviews in Con­trol, 31, (1), 27–39

[3] Wol­ko­wicz, H., Sai­gal, R., & Van­den­berg­he, L. (2012). Hand­book of Semi­de­fi­ni­te Pro­gramming: Theo­ry, Algo­rith­ms, and Appli­ca­ti­ons. Ber­lin Hei­del­berg: Sprin­ger Sci­ence & Busi­ness Media.

[4] Dia­mond S., & Boyd S., (2016). CVXPY: A Python-embedded mode­ling lan­guage for con­vex optimi­zation. Jour­nal of Machi­ne Lear­ning Rese­arch, 17(83), 1–5.

[5] Leith, D. J., & Lei­t­head, W. E. (1998). Appro­pria­te rea­li­sa­ti­on of MIMO gain-sche­du­led con­trol­lers. Inter­na­tio­nal Jour­nal of Con­trol, 70, (1), 13–50.

[6] Klatt, K. U., & Engel S. (1998). Gain-sche­du­ling tra­jec­to­ry con­trol of a con­ti­nuous stir­red tank reac­tor. Com­pu­ters & Che­mi­cal Engi­nee­ring, 22, 491–502.

[7]  Boyd, S., El Ghaoui, L., Feron, E., & Bal­a­krish­n­an, V. (1994). Line­ar Matrix Ine­qua­li­ties in Sys­tems and Con­trol Theo­ry. Phil­adel­phia: SIAM Stu­dies in Appli­ed and Nume­ri­cal Mathematics.

[8] Schein­erman, E. R. (2013). Invi­ta­ti­on to Dyna­mi­cal Sys­tems. New York: Cou­rier Corporation.