Matematyka i fizyka od podstaw
PLEN

Automatyka › V. Most do Tewariego › 5.1 w planach · PDF do druku

Zanim zaczniesz Matematyka 6.1 Rachunek wariacyjnyMatematyka 6.2 Metody numeryczne: Python i C++4.3 LQR: koszt zamiast biegunów

Nowe pojęcia w tej lekcji (3)

metoda strzałówsterowanie bang-bangzasada maksimum Pontriagina

Automatyka 5.1

Zasada maksimum Pontriagina, sterowanie czasooptymalne i metoda strzałów

LQR dał optymalny regulator dla jednego rodzaju zadania: obiekt liniowy, koszt kwadratowy, sterowanie bez ograniczeń. Rakieta wchodząca na orbitę, samolot wznoszący się najszybciej, jak może, czy dron, który ma dolecieć na miejsce w najkrótszym czasie, nie mieszczą się w tych ramach. Ta lekcja przedstawia ogólne narzędzie, czyli zasadę maksimum (w konwencji Tewariego: minimum) Pontriagina. Pokazuje, że LQR jest jej przypadkiem szczególnym, a sterowanie „gaz do dechy, potem hamulec do dechy” innym. Kończy się tym, jak takie zadania rozwiązuje się numerycznie. To most do rozdziału 2 podręcznika Tewariego.

Czas
ok. 3 h teorii + ok. 3 h zadań
Zadania
13 zadań w treści + 5 do przemyślenia, z odpowiedziami
Źródła
A. Tewari, Advanced Control of Aircraft, Spacecraft and Rockets (Wiley 2011), rozdz. 2.4–2.7; A. E. Bryson, Y.-C. Ho, Applied Optimal Control; D. E. Kirk, Optimal Control Theory: An Introduction

0 Prolog: rakieta, która ma zdążyć

W połowie lat 50. w Moskwie Lew Pontriagin, matematyk, który w wieku 14 lat stracił wzrok, zajął się z kolegami (Bołtianski, Gamkrelidze, Miszczenko) zadaniami, które przynieśli mu inżynierowie lotnictwa: jak sterować, żeby samolot przechwytujący dotarł do celu najszybciej, przy ograniczonym ciągu i wychyleniu sterów? Rachunek wariacyjny z lekcji 6.1 Rachunek wariacyjny zawodził, bo optymalne sterowanie często siedziało na granicy dozwolonego zakresu, a tam warunek „pochodna równa zero” nie obowiązuje.

Wynikiem była zasada maksimum, opublikowana w pełni w 1961 r. w książce „Matematyczna teoria procesów optymalnych” (po angielsku w 1962 r.). W tym samym czasie Richard Bellman w USA rozwijał programowanie dynamiczne. Oba podejścia stały się fundamentem projektowania trajektorii rakiet, samolotów i statków kosmicznych.

Pytanie na start. Dron (bez oporu) może przyspieszać w pionie najwyżej gg w górę i gg w dół. Jak najszybciej wznieść się o 5 m i zatrzymać? Ile to trwa? Odpowiedź w części 4.

1 Ogólne zadanie sterowania optymalnego

Dany jest obiekt (dowolnie nieliniowy) i kryterium:Tewari 2.4

x˙=f(x,u,t),J=φ(x(tf))+∫0tfL(x,u,t) dt,u(t)∈U.\dot{\mathbf x} = f(\mathbf x, \mathbf u, t),\qquad J = \varphi\big(\mathbf x(t_f)\big) + \int_0^{t_f} L(\mathbf x, \mathbf u, t)\,\mathrm dt,\qquad \mathbf u(t) \in \mathcal U .

LL to koszt bieżący (Tewari nazywa go lagranżjanem), φ\varphi to koszt końcowy, U\mathcal U to dopuszczalne sterowania, np. ∣u∣≤U|u| \le U. Do tego warunki brzegowe: znany stan początkowy i (czasem) zadany stan końcowy. Przykłady:

  • LQR: L=12(xTQx+uTRu)L = \frac12(\mathbf x^TQ\mathbf x + \mathbf u^TR\mathbf u), tf=∞t_f = \infty, bez ograniczeń;
  • czas minimalny: L=1L = 1 (koszt to po prostu tft_f), ∣u∣≤U|u| \le U, zadany stan końcowy;
  • minimalne zużycie paliwa: L=∣u∣L = |u| (ciąg rakiety), zadany stan końcowy.

Zadania · część 1

2 zadania · ok. 10 min

  1. Zapisz ff, LL, U\mathcal U i warunki brzegowe dla zadania z prologu.

    Odpowiedź

    x=[x,v]\mathbf x = [x, v], f=[v,u]f = [v, u], L=1L = 1, ∣u∣≤g|u| \le g; x(0)=[0,0]\mathbf x(0) = [0, 0], x(tf)=[5,0]\mathbf x(t_f) = [5, 0], tft_f wolne (minimalizowane).

  2. Dlaczego w zadaniu minimalnego zużycia paliwa koszt to ∣u∣|u|, a nie u2u^2?

    Odpowiedź

    Zużycie paliwa rakiety jest proporcjonalne do ciągu (wydatek masowy m˙=T/ve\dot m = T/v_e), a nie do jego kwadratu. Koszt u2u^2 (energia) prowadzi do gładkich sterowań, koszt ∣u∣|u| do sterowań typu „pełny ciąg albo nic”.

2 Hamiltonian i zasada minimum

Jak w rachunku wariacyjnym z więzami, dołączamy równanie ruchu do kryterium mnożnikami Lagrange’a λ(t)\boldsymbol\lambda(t), które tu nazywają się kostanem (ang. co-state). Kluczowy obiekt to hamiltonian:Tewari 2.5

H(x,u,λ,t)=L(x,u,t)+λTf(x,u,t).H(\mathbf x, \mathbf u, \boldsymbol\lambda, t) = L(\mathbf x, \mathbf u, t) + \boldsymbol\lambda^T f(\mathbf x, \mathbf u, t) .

Zasada minimum Pontriagina (warunki konieczne)

Optymalne x∗\mathbf x^*, u∗\mathbf u^* i kostan λ∗\boldsymbol\lambda^* spełniają:

x˙=∂H∂λ=f,λ˙=−∂H∂x,u∗(t)=arg⁡min⁡u∈UH(x∗,u,λ∗,t),\dot{\mathbf x} = \frac{\partial H}{\partial\boldsymbol\lambda} = f,\qquad \dot{\boldsymbol\lambda} = -\frac{\partial H}{\partial\mathbf x},\qquad \mathbf u^*(t) = \arg\min_{\mathbf u \in \mathcal U} H(\mathbf x^*, \mathbf u, \boldsymbol\lambda^*, t),

z warunkami brzegowymi: x(0)\mathbf x(0) dane; dla wolnego stanu końcowego λ(tf)=∂φ/∂x\boldsymbol\lambda(t_f) = \partial\varphi/\partial\mathbf x (warunek transwersalności); dla wolnego tft_f i HH niezależnego od czasu: H≡0H \equiv 0 wzdłuż trajektorii.

Kostan ma interpretację: λi\lambda_i mówi, o ile wzrośnie optymalny koszt, gdy w danej chwili zwiększymy xix_i o jednostkę (wrażliwość kosztu na stan). Gdy U\mathcal U nie ogranicza, minimum HH to ∂H/∂u=0\partial H/\partial\mathbf u = 0 i dostajemy równania Eulera–Lagrange’a z lekcji math 6.1. Gdy ogranicza, minimum może leżeć na brzegu U\mathcal U, i to jest nowość Pontriagina.

Zadania · część 2

3 zadania · ok. 25 min

  1. Napisz HH i równania kostanu dla x˙=v\dot x = v, v˙=u\dot v = u, L=12u2L = \frac12u^2.

    Odpowiedź

    H=12u2+λ1v+λ2uH = \frac12u^2 + \lambda_1v + \lambda_2u. λ˙1=−∂H/∂x=0\dot\lambda_1 = -\partial H/\partial x = 0, λ˙2=−∂H/∂v=−λ1\dot\lambda_2 = -\partial H/\partial v = -\lambda_1. Minimum: u=−λ2u = -\lambda_2.

  2. W zadaniu 2.1 kostan λ1\lambda_1 jest stały, a λ2\lambda_2 liniowy w czasie. Jakiego kształtu jest więc optymalne u(t)u(t) i x(t)x(t)?

    Odpowiedź

    u=−λ2(t)u = -\lambda_2(t) jest liniowe w tt, więc vv jest kwadratowe, a xx sześcienne. Przejście z (0, 0) do (5 m, 0) w 3 s: x=5(3s2−2s3)x = 5(3s^2 - 2s^3), s=t/3s = t/3, u=309(1−2s)u = \frac{30}{9}(1 - 2s): od 3,33 do −3,33 m/s².

  3. Pokaż, że dla HH niezależnego jawnie od czasu HH jest stałe wzdłuż optymalnej trajektorii (bez ograniczeń sterowania).

    Odpowiedź

    H˙=Hxx˙+Hλλ˙+Huu˙=Hxf+fT(−HxT)+0=0\dot H = H_{\mathbf x}\dot{\mathbf x} + H_{\boldsymbol\lambda}\dot{\boldsymbol\lambda} + H_{\mathbf u}\dot{\mathbf u} = H_{\mathbf x}f + f^T(-H_{\mathbf x}^T) + 0 = 0. To odpowiednik zasady zachowania energii w mechanice Hamiltona.

3 LQR jako przypadek szczególny

Dla f=Ax+Buf = A\mathbf x + B\mathbf u, L=12(xTQx+uTRu)L = \frac12(\mathbf x^TQ\mathbf x + \mathbf u^TR\mathbf u):

H=12xTQx+12uTRu+λT(Ax+Bu),∂H∂u=Ru+BTλ=0 ⇒ u=−R−1BTλ,H = \tfrac12\mathbf x^TQ\mathbf x + \tfrac12\mathbf u^TR\mathbf u + \boldsymbol\lambda^T(A\mathbf x + B\mathbf u),\qquad \frac{\partial H}{\partial\mathbf u} = R\mathbf u + B^T\boldsymbol\lambda = 0\ \Rightarrow\ \mathbf u = -R^{-1}B^T\boldsymbol\lambda, λ˙=−Qx−ATλ.\dot{\boldsymbol\lambda} = -Q\mathbf x - A^T\boldsymbol\lambda .

Zgadujemy, że kostan jest liniowy w stanie: λ=P(t)x\boldsymbol\lambda = P(t)\mathbf x. Podstawiając do obu równań i żądając, żeby wynik zachodził dla każdego x\mathbf x, dostajemy różniczkowe równanie Riccatiego

−P˙=ATP+PA−PBR−1BTP+Q,-\dot P = A^TP + PA - PBR^{-1}B^TP + Q,

a dla tf→∞t_f \to \infty jego stan ustalony, czyli algebraiczne równanie Riccatiego z lekcji 4.3 LQR: koszt zamiast biegunów. Szkic z tamtej lekcji (przez funkcję wartości V=xTPxV = \mathbf x^TP\mathbf x) i ten (przez kostan) dają ten sam wynik: kostan to gradient funkcji wartości, λ=∇V\boldsymbol\lambda = \nabla V (w skali 12\frac12).

Zadania · część 3

2 zadania · ok. 20 min

  1. Wyprowadź różniczkowe równanie Riccatiego z λ=Px\boldsymbol\lambda = P\mathbf x.

    Odpowiedź

    λ˙=P˙x+Px˙=P˙x+P(A−BR−1BTP)x\dot{\boldsymbol\lambda} = \dot P\mathbf x + P\dot{\mathbf x} = \dot P\mathbf x + P(A - BR^{-1}B^TP)\mathbf x. Z drugiej strony λ˙=−Qx−ATPx\dot{\boldsymbol\lambda} = -Q\mathbf x - A^TP\mathbf x. Porównując: P˙+PA−PBR−1BTP+Q+ATP=0\dot P + PA - PBR^{-1}B^TP + Q + A^TP = 0.

  2. Dla skończonego horyzontu bez kosztu końcowego jaki jest warunek końcowy dla PP? Co z tego wynika dla wzmocnienia pod koniec?

    Odpowiedź

    Stan końcowy wolny, φ=0\varphi = 0: λ(tf)=0\boldsymbol\lambda(t_f) = 0, więc P(tf)=0P(t_f) = 0. Wzmocnienie K=R−1BTPK = R^{-1}B^TP spada do zera pod koniec: regulator „odpuszcza”, bo po tft_f nic się nie liczy. Daleko od końca PP jest bliskie rozwiązaniu algebraicznemu.

4 Sterowanie czasooptymalne: bang-bang

Podwójny integrator x˙=v\dot x = v, v˙=u\dot v = u, ∣u∣≤U|u| \le U, koszt L=1L = 1. Hamiltonian:

H=1+λ1v+λ2u,λ˙1=0,λ˙2=−λ1.H = 1 + \lambda_1v + \lambda_2u,\qquad \dot\lambda_1 = 0,\quad \dot\lambda_2 = -\lambda_1 .

HH jest liniowy w uu, więc minimum leży na brzegu: u∗=−Usign⁡λ2u^* = -U\operatorname{sign}\lambda_2. Sterowanie zawsze pełne, tylko kierunek się zmienia: bang-bang. A ponieważ λ2(t)\lambda_2(t) jest liniowe, zmienia znak najwyżej raz: co najwyżej jedno przełączenie. Ostatni odcinek musi trafić w cel pełnym hamowaniem, więc przełączenie następuje na krzywej przełączeń

x=−v∣v∣2U.x = -\frac{v|v|}{2U} .

Powyżej krzywej sterujemy −U-U, poniżej +U+U, a na niej przełączamy. To regulator w postaci sprzężenia od stanu, tyle że nieliniowego: u=−Usign⁡(x+v∣v∣2U)u = -U\operatorname{sign}\left(x + \frac{v|v|}{2U}\right).

Odpowiedź na pytanie z prologu. Start w spoczynku, cel 5 m wyżej, też w spoczynku, U=gU = g. Z symetrii: połowę czasu pełnym ciągiem w górę, połowę w dół. Każda połowa pokonuje 2,5 m: 12gt12=2,5\frac12gt_1^2 = 2{,}5, t1=0,714t_1 = 0{,}714 s. Razem T∗=2h/U=1,43T^* = 2\sqrt{h/U} = 1{,}43 s, prędkość maksymalna 7,0 m/s. Dla porównania gładka trajektoria z lekcji 3.3 trwała 3 s przy przyspieszeniu do 3,2 m/s².

Symulacja 1 Płaszczyzna fazowa podwójnego integratora z krzywą przełączeń (przerywana) i trajektorią czasooptymalną do zera. Zmieniaj stan początkowy i ograniczenie UU. Zwróć uwagę: trajektorie to parabole, a przełączenie zawsze wypada na krzywej.

Zadania · część 4

3 zadania · ok. 25 min

  1. Ile trwa czasooptymalne wzniesienie o 20 m (spoczynek–spoczynek) przy U=gU = g? Jaka prędkość maksymalna?

    Odpowiedź

    T∗=220/9,81=2,86T^* = 2\sqrt{20/9{,}81} = 2{,}86 s; vmax=g⋅1,43=14,0v_\text{max} = g\cdot 1{,}43 = 14{,}0 m/s. Czterokrotna wysokość, dwukrotny czas.

  2. Wyprowadź krzywą przełączeń: z jakich stanów hamowanie pełną siłą ±U\pm U kończy się dokładnie w zerze?

    Odpowiedź

    Ze stałym u=−Usign⁡vu = -U\operatorname{sign}v ruch spełnia v2=2U∣x∣v^2 = 2U|x| i musi zmierzać do zera: dla v>0v > 0 jest x<0x < 0 i x=−v2/(2U)x = -v^2/(2U), dla v<0v < 0 jest x=v2/(2U)x = v^2/(2U). Razem: x=−v∣v∣/(2U)x = -v|v|/(2U).

  3. Dlaczego regulator bang-bang z krzywej przełączeń jest w praktyce zawodny i czym się go zastępuje?

    Odpowiedź

    W idealnym modelu przełącza się raz i trafia. Przy błędach modelu, szumie i próbkowaniu wokół celu przełącza się bardzo często (jak sterowanie ślizgowe z lekcji 4.6), jest wrażliwy na błąd modelu UU i na szum. W praktyce stosuje się go daleko od celu, a w pobliżu przełącza na regulator liniowy (tzw. sterowanie dwufazowe), albo „zaokrągla” krzywą (np. regulator PTOS).

5 Zadanie brzegowe i metoda strzałów

Zasada minimum zamienia zadanie optymalizacji w układ równań różniczkowych na x\mathbf x i λ\boldsymbol\lambda. Haczyk: warunki brzegowe są rozdzielone. x\mathbf x znamy na początku, a dla λ\boldsymbol\lambda (albo części x\mathbf x) warunki są na końcu. To dwupunktowe zadanie brzegowe (ang. two-point boundary value problem), znacznie trudniejsze od zwykłego całkowania.Tewari 2.7

Najprostsza metoda numeryczna to metoda strzałów:

  1. zgadnij brakujące wartości początkowe λ(0)\boldsymbol\lambda(0);
  2. scałkuj równania stanu i kostanu do tft_f (np. RK4, lekcja 6.2 Metody numeryczne: Python i C++);
  3. zmierz chybienie: różnicę między x(tf)\mathbf x(t_f) a celem;
  4. popraw λ(0)\boldsymbol\lambda(0) metodą Newtona (jakobian chybienia względem λ(0)\boldsymbol\lambda(0) z różnic skończonych) i wróć do 2.

Dla problemów liniowych (bez oporu) chybienie jest liniową funkcją λ(0)\boldsymbol\lambda(0) i wystarcza jeden krok Newtona. Z oporem kwadratowym (v˙=u−cv∣v∣\dot v = u - cv|v|) potrzeba kilku kroków. Przy większym oporze (c≳0,3c \gtrsim 0{,}3 1/m w naszym zadaniu) już pierwszy krok Newtona, z zera albo z rozwiązania bez oporu, prowadzi do trajektorii, które eksplodują przed tft_f: równania kostanu są niestabilne w przód. Tewari pisze wprost, że proste strzały mają kłopoty ze zbieżnością. Ratunkiem są kontynuacja (rozwiązuj kolejno dla rosnącego cc), strzały wielokrotne (przedział dzielony na kawałki) i metody kolokacyjne.

Symulacja 2 Zadanie minimalnej energii: z (0, 0) do (5 m, 0) w 3 s, z oporem kwadratowym cc. Zgadnij λ1(0)\lambda_1(0) i λ2(0)\lambda_2(0) suwakami albo naciskaj „Krok Newtona”. Przy c=0c = 0 trafia jeden krok. Przy c=0,1c = 0{,}1 kilka. Ustaw c=0,3c = 0{,}3 i zacznij od zera: już pierwszy krok Newtona daje trajektorię, która eksploduje. Potem rozwiąż dla c=0,2c = 0{,}2, a następnie zwiększ cc do 0,25 i kontynuuj.

Zadania · część 5

3 zadania · ok. 25 min

  1. Dla c=0c = 0 i celu (5 m, 0) w 3 s wyznacz λ1\lambda_1 i λ2(0)\lambda_2(0) z rozwiązania analitycznego zadania 2.2.

    Odpowiedź

    u(t)=−λ2(0)+λ1t=309−6027tu(t) = -\lambda_2(0) + \lambda_1t = \frac{30}{9} - \frac{60}{27}t: λ2(0)=−3,333\lambda_2(0) = -3{,}333, λ1=−2,222\lambda_1 = -2{,}222. Koszt J=6h2/T3=5,56J = 6h^2/T^3 = 5{,}56 (m²/s³).

  2. Wyprowadź równania kostanu dla v˙=u−cv∣v∣\dot v = u - cv|v| i L=12u2L = \frac12u^2.

    Odpowiedź

    H=12u2+λ1v+λ2(u−cv∣v∣)H = \frac12u^2 + \lambda_1v + \lambda_2(u - cv|v|); ∂(v∣v∣)/∂v=2∣v∣\partial(v|v|)/\partial v = 2|v|. λ˙1=0\dot\lambda_1 = 0, λ˙2=−λ1+2c∣v∣λ2\dot\lambda_2 = -\lambda_1 + 2c|v|\lambda_2, u=−λ2u = -\lambda_2.

  3. Dlaczego człon 2c∣v∣λ22c|v|\lambda_2 w równaniu kostanu może prowadzić do eksplozji przy całkowaniu w przód?

    Odpowiedź

    To człon wzrostu wykładniczego z szybkością 2c∣v∣2c|v|. Jeśli zgadnięte λ2\lambda_2 jest za duże co do modułu, sterowanie u=−λ2u = -\lambda_2 rozpędza drona, ∣v∣|v| rośnie, a to przyspiesza wzrost ∣λ2∣|\lambda_2|. Sprzężenie dodatnie kończy się wybuchem w skończonym czasie. Typowe dla kostanów: są „stabilne wstecz”, a niestabilne w przód.

6 Przewodnik po rozdziale 2 Tewariego

Celem części V jest swobodne czytanie podręcznika A. Tewari, Advanced Control of Aircraft, Spacecraft and Rockets. Jego rozdział 2 („Optimal Control Techniques”) streszcza w 70 stronach to, co budowaliśmy przez cały kurs. Mapa:

Tewaritematu nas
2.2–2.3optymalizacja wielu zmiennych, mnożniki Lagrange’a, ograniczenia nierównościowemath 3.1 (ekstrema, mnożniki Lagrange’a), math 6.1 (wariacje)
2.4sterowanie optymalne układu dynamicznego, warunki optymalnościta lekcja, część 1–2
2.5hamiltonian, zasada minimum, równanie HJB, LQ ze zmiennymi w czasieczęści 2–3; lekcja 4.3
2.6więzy na stan końcowy, równania Eulera–Lagrange’aczęści 4–5
2.7numeryka zadań brzegowych: strzały, kolokacjaczęść 5
2.10–2.11procesy stochastyczne, filtr Kalmanalekcje 4.4–4.5
2.12odporne sterowanie LTI: LQG/LTR, H₂/H∞lekcja 5.2 LQG i odporność

Różnice w zapisie: Tewari pisze LL dla kosztu bieżącego i φ\varphi dla końcowego, jak my; używa λ\boldsymbol\lambda dla kostanu; zapisuje kod w MATLAB-ie (odpowiedniki w Pythonie w lekcji 4.3). Rozdział 3 (samolot), 4–5 (rakiety: naprowadzanie i orientacja) i 6–7 (statki kosmiczne) to kontynuacja w kursach dynamiki lotu i astronautyki.

7 Metoda i przykłady rozwiązane

Metoda: zadanie optymalne przez zasadę minimum

  1. Sformułuj ff, LL, φ\varphi, U\mathcal U, warunki brzegowe, czy tft_f jest wolne.
  2. Hamiltonian H=L+λTfH = L + \boldsymbol\lambda^Tf; równania kostanu λ˙=−Hx\dot{\boldsymbol\lambda} = -H_{\mathbf x}.
  3. Minimalizuj HH po u\mathbf u: wnętrze (Hu=0H_{\mathbf u} = 0) albo brzeg U\mathcal U (bang-bang).
  4. Warunki brzegowe dla λ\boldsymbol\lambda (transwersalność, H=0H = 0 przy wolnym tft_f).
  5. Rozwiąż zadanie brzegowe: analitycznie w prostych przypadkach, numerycznie strzałami lub kolokacją; sprawdź, czy wynik jest minimum (porównaj z innymi trajektoriami).

Przykład 7.1 Najszybciej o 5 m w górę

x¨=u\ddot x = u, ∣u∣≤9,81|u| \le 9{,}81 m/s², z (0, 0) do (5, 0). Wyznacz sterowanie i czas.

  1. H=1+λ1v+λ2uH = 1 + \lambda_1v + \lambda_2u, u=−Usign⁡λ2u = -U\operatorname{sign}\lambda_2, λ2\lambda_2 liniowe: jedno przełączenie.
  2. Start poniżej krzywej przełączeń (x−5<0x - 5 < 0 względem celu): najpierw +U+U.
  3. Symetria: przełączenie w t1=h/U=0,714t_1 = \sqrt{h/U} = 0{,}714 s na wysokości 2,5 m przy v=7,0v = 7{,}0 m/s.

Wynik: T∗=1,428T^* = 1{,}428 s; u=+gu = +g do 0,714 s, potem −g-g.

Sprawdzenie: HH ma być równe zero (wolne tft_f): λ1\lambda_1, λ2\lambda_2 dobrane tak, że 1+λ1v+λ2u=01 + \lambda_1v + \lambda_2u = 0 w każdej chwili ✓ (zadanie do przemyślenia 1); symulacja 1 daje ten sam czas ✓.

Przykład 7.2 Strzały z kontynuacją

Minimalna energia ½∫u², 0 → 5 m w 3 s, opór c=0,2c = 0{,}2 1/m. Znajdź λ(0)\boldsymbol\lambda(0).

  1. c=0c = 0: λ(0)=(−2,222; −3,333)\boldsymbol\lambda(0) = (-2{,}222;\ -3{,}333) (analitycznie).
  2. c=0,1c = 0{,}1 startując stąd: 3 kroki Newtona (chybienie 0,94 → 0,013 → 2·10⁻⁶ → 10⁻¹²), λ(0)=(−2,411; −3,404)\boldsymbol\lambda(0) = (-2{,}411;\ -3{,}404).
  3. c=0,2c = 0{,}2 startując z c=0,1c = 0{,}1: 5 kroków, λ(0)=(−2,953; −3,600)\boldsymbol\lambda(0) = (-2{,}953;\ -3{,}600).
  4. c=0,3c = 0{,}3 bezpośrednio: trajektorie eksplodują już przy pierwszym zgadnięciu; potrzebne mniejsze kroki kontynuacji albo strzały wielokrotne.

Wynik: przy oporze sterowanie startuje mocniej (u(0)=3,60u(0) = 3{,}60 zamiast 3,33 m/s²), żeby zrekompensować opór.

Sprawdzenie: zbieżność kwadratowa Newtona (liczba poprawnych cyfr podwaja się w każdym kroku) ✓.

8 Błędne intuicje, których trzeba się oduczyć

„Optymalne sterowanie jest gładkie.”
Przy kosztach liniowych w uu (czas, paliwo) optimum leży na granicach: bang-bang.
„Zasada minimum daje rozwiązanie.”
Daje warunki konieczne i zadanie brzegowe. Rozwiązać je trzeba osobno, często numerycznie, i nie zawsze się udaje.
„Kostan to sztuczka matematyczna bez znaczenia.”
Kostan to wrażliwość optymalnego kosztu na stan: cena cienia. W LQR λ=Px\boldsymbol\lambda = P\mathbf x.
„Metoda strzałów zawsze zbiega, jeśli zadanie ma rozwiązanie.”
Nie: kostan bywa niestabilny w przód, a zgadnięcie musi być bliskie. Kontynuacja i strzały wielokrotne to standard.
„Sterowanie optymalne zastępuje sprzężenie zwrotne.”
Trajektorię optymalną liczy się zwykle z góry (w pętli otwartej), a regulator ze sprzężeniem prowadzi obiekt wzdłuż niej (Tewari 2.9).

9 Zadania do przemyślenia

Te zadania wymagają więcej myślenia niż liczenia.

Zadania do przemyślenia

5 zadań · ok. 1,5 godziny

  1. Kostan w zadaniu czasooptymalnym. Dla przykładu 7.1 wyznacz λ1\lambda_1 i λ2(t)\lambda_2(t) z warunków H=0H = 0 i przełączenia w t1=0,714t_1 = 0{,}714 s.

    Rozwiązanie
    1. λ2=λ2(0)−λ1t\lambda_2 = \lambda_2(0) - \lambda_1t ma zero w t1t_1: λ2(0)=λ1t1\lambda_2(0) = \lambda_1t_1. W t=0t = 0: v=0v = 0, u=Uu = U, H=1+λ2(0)U=0H = 1 + \lambda_2(0)U = 0, więc λ2(0)=−1/U=−0,102\lambda_2(0) = -1/U = -0{,}102.
    2. λ1=λ2(0)/t1=−0,143\lambda_1 = \lambda_2(0)/t_1 = -0{,}143. Sprawdzenie w t1t_1: H=1+λ1vmax+0=1−0,143⋅7,0=0H = 1 + \lambda_1v_\text{max} + 0 = 1 - 0{,}143\cdot 7{,}0 = 0 ✓.
  2. Minimalne paliwo. x¨=u\ddot x = u, ∣u∣≤U|u| \le U, L=∣u∣L = |u|, zadany czas TT dłuższy od minimalnego. Jak wygląda sterowanie?

    Rozwiązanie
    1. H=∣u∣+λ1v+λ2uH = |u| + \lambda_1v + \lambda_2u. Minimum: u=−Usign⁡λ2u = -U\operatorname{sign}\lambda_2, gdy ∣λ2∣>1|\lambda_2| > 1; u=0u = 0, gdy ∣λ2∣<1|\lambda_2| < 1.
    2. Wynik: pełny ciąg, swobodny lot (bez ciągu), pełne hamowanie (ang. bang-off-bang). Tak wyglądają manewry orbitalne: krótkie impulsy i długie fazy lotu bez napędu (Hohmann w kursie astronautyki).
  3. Goddard. Rakieta pionowa w atmosferze: jak rozłożyć paliwo, żeby osiągnąć maksymalną wysokość? Dlaczego intuicja „pełny ciąg od startu” może być zła?

    Rozwiązanie
    1. Pełny ciąg przy gęstym powietrzu daje dużą prędkość i ogromny opór (rosnący z v2v^2), czyli straty energii. Opłaca się czasem lecieć wolniej w gęstej atmosferze.
    2. Rozwiązanie optymalne zawiera łuk osobliwy (ang. singular arc): pośredni ciąg utrzymujący „optymalną” prędkość, gdy HH nie zależy od uu (Tewari 2.8.1). To klasyczny problem Goddarda z 1919 r.
  4. Bellman kontra Pontriagin. Programowanie dynamiczne daje funkcję wartości V(x,t)V(\mathbf x, t) dla każdego stanu, zasada minimum tylko jedną trajektorię. Co jest praktyczniejsze dla drona o 12 stanach?

    Rozwiązanie
    1. Programowanie dynamiczne daje gotowe sprzężenie zwrotne u(x)u(\mathbf x), ale wymaga funkcji na przestrzeni 12-wymiarowej: siatka 10 punktów na wymiar to 101210^{12} węzłów (przekleństwo wymiarowości).
    2. Zasada minimum i metody bezpośrednie liczą jedną trajektorię, tanio, a sprzężenie zwrotne wokół niej daje LQR (linearyzacja wzdłuż trajektorii). Tak robi się to w praktyce, także w MPC (sterowaniu predykcyjnym).
  5. Czas wolny i warunek H = 0. Dlaczego przy wolnym czasie końcowym (i HH niezależnym od czasu) HH musi być zerem, a nie dowolną stałą?

    Rozwiązanie
    1. Wydłużenie czasu o δtf\delta t_f zmienia koszt o H(tf) δtfH(t_f)\,\delta t_f (o tyle, ile kosztuje bieżąca chwila plus efekt przesunięcia końca). W optimum ta zmiana musi być zerowa dla dowolnego δtf\delta t_f.
    2. Stąd H(tf)=0H(t_f) = 0, a ponieważ HH jest stałe wzdłuż trajektorii (zadanie 2.3), H≡0H \equiv 0.

10 Sprawdź się

Odpowiedz w myślach, zanim rozwiniesz odpowiedź.

1 Jak wygląda hamiltonian?

H=L+λTfH = L + \boldsymbol\lambda^Tf.

2 Jakie równanie spełnia kostan?

λ˙=−∂H/∂x\dot{\boldsymbol\lambda} = -\partial H/\partial\mathbf x.

3 Co mówi zasada minimum o sterowaniu?

W każdej chwili u∗\mathbf u^* minimalizuje HH po dopuszczalnych sterowaniach.

4 Skąd LQR w tym języku?

Hu=0H_{\mathbf u} = 0 daje u=−R−1BTλ\mathbf u = -R^{-1}B^T\boldsymbol\lambda, a λ=Px\boldsymbol\lambda = P\mathbf x daje równanie Riccatiego.

5 Dlaczego sterowanie czasooptymalne jest bang-bang?

HH jest liniowy w uu, więc minimum leży na brzegu ∣u∣=U|u| = U.

6 Ile przełączeń ma czasooptymalny podwójny integrator?

Najwyżej jedno, bo λ2(t)\lambda_2(t) jest liniowe.

7 Na czym polega metoda strzałów?

Zgadnij λ(0)\boldsymbol\lambda(0), scałkuj, zmierz chybienie celu, popraw Newtonem.

11 Karta wzorów i co dalej

Zasada minimum

J=φ(x(tf))+∫0tfL dtJ = \varphi(\mathbf x(t_f)) + \int_0^{t_f}L\,\mathrm dt,   H=L+λTf\;H = L + \boldsymbol\lambda^Tf

x˙=Hλ\dot{\mathbf x} = H_{\boldsymbol\lambda},   λ˙=−Hx\;\dot{\boldsymbol\lambda} = -H_{\mathbf x},   u∗=arg⁡min⁡UH\;\mathbf u^* = \arg\min_{\mathcal U}H

λ(tf)=φx\boldsymbol\lambda(t_f) = \varphi_{\mathbf x} (stan końcowy wolny); H≡0H \equiv 0 (tft_f wolne)

LQR: λ=Px\boldsymbol\lambda = P\mathbf x, −P˙=ATP+PA−PBR−1BTP+Q-\dot P = A^TP + PA - PBR^{-1}B^TP + Q

Bang-bang i strzały

x¨=u\ddot x = u, ∣u∣≤U|u| \le U: u=−Usign⁡ ⁣(x+v∣v∣2U)u = -U\operatorname{sign}\!\left(x + \frac{v|v|}{2U}\right)

spoczynek–spoczynek: T∗=2h/UT^* = 2\sqrt{h/U}

min. energia: x=h(3s2−2s3)x = h(3s^2 - 2s^3), J=6h2/T3J = 6h^2/T^3

strzały: λ0←λ0−JF−1F(λ0)\boldsymbol\lambda_0 \leftarrow \boldsymbol\lambda_0 - J_F^{-1}F(\boldsymbol\lambda_0)

Do przeczytania

  • Obowiązkowo: A. Tewari, Advanced Control of Aircraft, Spacecraft and Rockets, rozdz. 2.4–2.7 (teraz da się je czytać bez zatrzymywania).
  • Dla chętnych: D. E. Kirk, Optimal Control Theory: An Introduction (Dover), bardzo przystępny; A. E. Bryson, Y.-C. Ho, Applied Optimal Control, klasyka z przykładami lotniczymi.

Zostało jedno pytanie, które wisi nad całą częścią IV: LQR ma gwarantowany zapas fazy 60°, filtr Kalmana jest optymalny. Czy ich połączenie, regulator LQG, jest odporny na błędy modelu? Odpowiedź z 1978 r. zaskoczyła wszystkich i zmieniła kierunek rozwoju automatyki. To temat ostatniej lekcji.

Korzystają z tej lekcji Dynamika lotu 12 Naprowadzanie: trajektoria nominalna i śledzenie odchyłek