Lokowanie biegunów daje pełną kontrolę nad biegunami, ale nie mówi, gdzie je postawić. Przy czterech stanach to jeszcze sztuka, przy dwunastu (pełny dron albo samolot) już zgadywanie. Regulator liniowo-kwadratowy (LQR) zadaje inne pytanie: ile kosztuje uchyb, a ile sterowanie? Z odpowiedzi wynika optymalne K i bieguny, a na dodatek gwarantowane zapasy stabilności.
Czas
ok. 2,5 h teorii + ok. 3 h zadań
Zadania
13 zadań w treści + 5 do przemyślenia, z odpowiedziami
Źródła
A. Tewari, Modern Control Design with MATLAB and SIMULINK, rozdz. 6; K. J. Åström, R. M. Murray, Feedback Systems, rozdz. 7.5; A. E. Bryson, Y.-C. Ho, Applied Optimal Control; S. Brunton, Control Bootcamp (LQR)
0 Prolog: ile kosztuje uchyb?
W tym samym 1960 r., w którym Kálmán zdefiniował sterowalność, opublikował też pracę o optymalnym sterowaniu z kryterium kwadratowym. Pomysł był prosty: zamiast mówić regulatorowi, gdzie mają być bieguny, powiedzmy mu, czego chcemy. Mały uchyb, ale bez szarpania silnikami. Każdą z tych chęci zapisujemy jako koszt, a regulator ma zminimalizować ich ważoną sumę.
Okazało się, że dla obiektów liniowych i kosztów kwadratowych optymalne sterowanie jest zawsze liniowym sprzężeniem od stanu u=−Kx, a K wynika z jednego równania macierzowego. LQR stał się podstawowym narzędziem przemysłu lotniczego i kosmicznego, a do dziś jest punktem startowym prawie każdego projektu regulatora wielowymiarowego.
Pytanie na start. W lekcji 4.1 dobraliśmy bieguny drona w płaszczyźnie „na oko”: 1,5 i 6 rad/s. Czy istnieje regulator, który przy tym samym zużyciu sterowania sprowadzi drona do celu z mniejszym łącznym uchybem? Odpowiedź w części 4.
1 Kryterium kwadratowe
Dla obiektu x˙=Ax+Bu szukamy sterowania minimalizującego
J=∫0∞(xTQx+uTRu)dt,
gdzie Q⪰0 (macierz półdodatnio określona) waży uchyby stanu, a R≻0 waży wysiłek sterowania. To funkcjonał, jak w rachunku wariacyjnym (lekcja 6.1 Rachunek wariacyjny): liczba przypisana całej trajektorii. Dla diagonalnych wag J=∫(q1x12+⋯+qnxn2+ru2)dt: duże qi znaczy „bardzo mi zależy, żeby xi było małe”, duże r znaczy „sterowanie jest drogie”.
Dlaczego kwadraty? Trzy powody: karzą duże odchyłki mocniej niż małe (jak energia), dają gładki problem z jednoznacznym minimum i, co najważniejsze, prowadzą do rozwiązania w postaci liniowego sprzężenia od stanu.
Zadania · część 1
2 zadania · ok. 10 min
Napisz Q i R, jeśli chcemy, żeby położenie drona było 25 razy „ważniejsze” od pochylenia, prędkości nas nie obchodzą, a waga momentu wynosi 100.
Odpowiedź
Dla x=[x,x˙,θ,θ˙]: Q=diag(25,0,1,0), R=100. Liczy się tylko stosunek wag: Q i R pomnożone przez tę samą liczbę dają to samo K.
Dlaczego R musi być dodatnio określone, a Q wystarczy półdodatnio?
Odpowiedź
Gdyby sterowanie było „darmowe” w jakimś kierunku (R osobliwe), optimum żądałoby nieskończonego sterowania (natychmiastowego skoku stanu). Stany natomiast mogą być nieważone (np. prędkość), byle pętla była stabilna: wtedy potrzebne jest, żeby nieważone stany „widział” koszt przez dynamikę (formalnie: para (A,Q1/2) wykrywalna).
2 Rozwiązanie: równanie Riccatiego
Regulator LQR
u=−Kx,K=R−1BTP,ATP+PA−PBR−1BTP+Q=0.
Ostatnie równanie to algebraiczne równanie Riccatiego. Szukamy jego rozwiązania symetrycznego, półdodatnio określonego, dającego stabilną pętlę; jest ono jedno, o ile obiekt jest stabilizowalny, a para (A,Q1/2) wykrywalna (zadanie 1.2). Przy obserwowalności P jest dodatnio określone. Minimalny koszt dla stanu początkowego x0 wynosi J∗=x0TPx0.
Zadania · część 2
2 zadania · ok. 20 min
W szkicu: pokaż, że minimum 2xTPBu+uTRu względem u jest w u=−R−1BTPx.
Odpowiedź
Gradient: 2BTPx+2Ru=0 (korzystamy z symetrii P i R). Stąd u=−R−1BTPx. To minimum, bo hesjan 2R jest dodatnio określony.
Dlaczego K nie zależy od stanu początkowego, choć optymalna trajektoria od niego zależy?
Odpowiedź
Problem jest liniowy z kosztem kwadratowym i nieskończonym horyzontem: z każdego stanu „reszta” wygląda tak samo (zasada optymalności Bellmana). Optymalna reguła jest więc funkcją bieżącego stanu, ta sama dla każdego początku.
3 Jeden stan: wszystko widać we wzorze
Dla x˙=ax+bu, J=∫(qx2+ru2)dt równanie Riccatiego jest kwadratowe w P: 2aP−rb2P2+q=0. Dodatni pierwiastek:
sterowanie tanie (q/r→∞): biegun ≈−bq/r, coraz szybciej;
sterowanie drogie (q/r→0): biegun →−∣a∣. Obiekt stabilny zostaje prawie bez zmian, a niestabilny (a>0) zostaje „odbity” na lewo, z minimalnym wysiłkiem.
Prędkość drona (a=−0,5, b=1): przy q=r biegun −1,12 i K=0,62; przy q/r=16 biegun −4,03, K=3,53 (prawie regulator P z lekcji 1.3).
Ten sam obiekt, q=1, r=100. Ile wynosi K? Skomentuj.
Odpowiedź
0,25+0,01=0,51, K=0,0099, biegun −0,51. Sterowanie jest tak drogie, że regulator prawie nic nie robi: obiekt i tak jest stabilny.
Obiekt niestabilny a=+2, b=1, sterowanie bardzo drogie. Gdzie trafi biegun? Ile wynosi K?
Odpowiedź
Biegun →−2 (odbicie lustrzane +2), K→2a/b=4. To najtańszy sposób stabilizacji: każdy regulator musi przesunąć ten biegun na lewo, a LQR robi to najmniejszym kosztem.
4 Dron w płaszczyźnie i reguła Brysona
Jak wybrać Q i R? Praktyczna reguła Brysona: wagi to odwrotności kwadratów dopuszczalnych wartości:Bryson–Ho
Qii=xi,max21,R=umax21.
Dla drona w płaszczyźnie: uchyb położenia do 1 m, pochylenie do 0,2 rad (ok. 11°), moment do 0,1 N·m. Daje to Q=diag(1,0,25,0), R=100 i (python-control)
Obie pary mają ζ=0,71. Nikt tego nie zadał: wynikło z optymalizacji. Przy starcie 1 m od celu moment osiąga dokładnie 0,1 N·m, pochylenie 7°, czas ustalania 4,5 s.
Odpowiedź na pytanie z prologu. Porównajmy dwie miary: łączny uchyb ∫x2dt i łączny wysiłek ∫u2dt. Projekt z lokowania biegunów (1,5 i 6 rad/s) daje 0,938 m²·s przy ∫u2=0,0004. LQR z kosztem tylko na położenie i takim ρ, żeby wysiłek był ten sam, daje 0,833 m²·s, o 11% mniej. Dla tego stanu początkowego żaden regulator (nawet nieliniowy) nie zrobi lepiej: LQR leży na froncie Pareto, a każdy inny projekt nad nim.
Symulacja 1 LQR dla drona w płaszczyźnie z regułą Brysona. Zamiast biegunów ustawiasz dopuszczalne wartości: uchybu, pochylenia i momentu. Zmniejsz dopuszczalne pochylenie do kilku stopni: dron leci łagodniej. Zwiększ dopuszczalny moment: pętla przyspiesza.Symulacja 2 Front Pareto: łączny uchyb położenia kontra łączny wysiłek dla LQR z różnymi wagami ρ (niebieska krzywa). Szare punkty to projekty z lokowania biegunów (opisane jako ω0 par położenie/pochylenie). Wszystkie leżą nad krzywą.
Zadania · część 4
4 zadania · ok. 35 min
Zastosuj regułę Brysona: uchyb położenia do 0,5 m, pochylenie do 10°, moment do 0,05 N·m.
Odpowiedź
10∘=0,175 rad. Q=diag(4,0,32,8,0), R=400.
Z Q=diag(1,0,25,0) pomnóż R przez 10 i przez 0,1. Co się dzieje z szybką i wolną parą biegunów?
Odpowiedź
Wolna para zostaje przy −0,99±0,99j, szybka zmienia się: −2,8±2,8j (droższe sterowanie) i −8,9±8,9j (tańsze). Moment największy: 0,03 i 0,32 N·m. Wolna para zależy głównie od kosztu położenia, a szybka od kompromisu pochylenie–moment.
W symulacji 2 przesuń ρ tak, żeby czerwony punkt był na tej samej wysokości (∫x2) co projekt 1,5/6. Ile wysiłku oszczędza LQR?
Odpowiedź
Przy ∫x2≈0,94 LQR potrzebuje ∫u2≈1,7⋅10−4 (ρ≈770), czyli ok. 2,3 razy mniej niż lokowanie (4⋅10−4).
Bieguny LQR z Q=diag(1,0,0,0) leżą na okręgu w kątach ±22,5∘ i ±67,5∘ od osi rzeczywistej (wzór Butterwortha 4. rzędu). Sprawdź na danych dla ρ=100: −1,2±2,91j i −2,91±1,2j.
Odpowiedź
Moduły: 1,22+2,912=3,15 dla obu par. Kąty od osi rzeczywistej ujemnej: arctan(2,91/1,2)=67,6∘ i arctan(1,2/2,91)=22,4∘ ✓. Dla tego obiektu (cztery całkowania, bez zer) bieguny spełniają s8=−(g/J)2/ρ, więc wzór Butterwortha zachodzi dokładnie przy każdym ρ. Dla innych obiektów to tylko granica taniego sterowania.
5 Gwarantowane zapasy
LQR z pełnym stanem i jednym wejściem ma własność, której nie daje lokowanie biegunów: dla każdych Q i R transmitancja pętli L(s)=K(sI−A)−1B spełnia
∣1+L(jω)∣≥1dla kaz˙dego ω.
Wykres Nyquista nigdy nie wchodzi do koła o promieniu 1 wokół −1, czyli max∣S∣≤1 (lekcja 2.5). Z tego wynikają gwarantowane zapasy: wzmocnienie może wzrosnąć dowolnie albo zmaleć do połowy, a zapas fazy wynosi co najmniej 60∘. Dla drona w płaszczyźnie z wagami Brysona: zapas fazy 63∘, min∣1+L∣=1,000.
Haczyk: gwarancja dotyczy pętli przeciętej na wejściu obiektu i regulatora, który zna cały stan dokładnie. Z obserwatorem albo filtrem Kalmana (LQG) znika. To słynne odkrycie Doyle’a z 1978 r., temat lekcji 5.2 LQG i odporność.
Zadania · część 5
2 zadania · ok. 15 min
Pokaż, że z ∣1+L∣≥1 wynika zapas fazy co najmniej 60∘. Wskazówka: przy ωc jest ∣L∣=1; gdzie przecinają się okręgi ∣L∣=1 i ∣1+L∣=1?
Odpowiedź
Punkty L=ejφ z ∣1+ejφ∣=1: 2+2cosφ=1, cosφ=−1/2, φ=±120∘. Punkt L leżący poza kołem wokół −1 ma fazę między −120∘ a 120∘, czyli co najmniej 60∘ od −180∘.
Dlaczego z ∣1+L∣≥1 wynika, że wzmocnienie może zmaleć do połowy?
Odpowiedź
Przy L(jω) rzeczywistym ujemnym (faza −180∘) mamy ∣1+L∣≥1, więc L≤−2. Żeby trafić w −1, trzeba go przemnożyć przez co najwyżej 1/2. Przemnożenie przez liczbę większą od 1 przesuwa go dalej od −1.
6 Metoda i przykłady rozwiązane
Metoda: projekt LQR
ModelA, B i sprawdzenie stabilizowalności.
Wagi z reguły Brysona; stany nieistotne z wagą 0; ewentualnie stan całki uchybu (lekcja 4.1).
Rozwiązanie:K, P, E = control.lqr(A, B, Q, R).
Sprawdzenie: maksymalne sterowanie i stany w symulacji dla typowych manewrów; poprawka wag (zwykle 2–3 iteracje).
Estymator stanu (lekcje 4.2, 4.4) i sprawdzenie odporności całości.
Przykład 6.1 LQR prędkości drona
v˙=−0,5v+u. Chcemy, żeby uchyb prędkości 0,25 m/s „kosztował” tyle co 1 N ciągu. Wyznacz K.
Bryson: q=1/0,252=16, r=1.
K=−0,5+0,25+16=3,53, biegun −4,03.
Wynik:u=−3,53v: regulator P prędkości z lekcji 1.3 (Kp=3,5) okazuje się prawie optymalny dla takich wag.
Sprawdzenie:control.lqr daje K=3,5311, P=3,5311 ✓ (tu P=K, bo b=r=1).
Przykład 6.2 Dron w płaszczyźnie: Bryson
Q=diag(1,0,25,0), R=100. Policz K, bieguny i odpowiedź z x0=1 m.
K=[0,100;0,121;0,717;0,120].
Bieguny −0,99±0,99j i −5±5j, obie pary z ζ=0,71.
Moment największy 0,100 N·m (dokładnie umax, bo k1x0=0,1), pochylenie 7,0°, czas ustalania 4,5 s.
Wynik: regulator spełnia założone limity „z marszu”, a bieguny wyszły rozsądne bez zgadywania.
Sprawdzenie: residuum równania Riccatiego dla scipy.linalg.solve_continuous_are ok. 3⋅10−13 ✓; zapas fazy 63∘ ✓.
7 Błędne intuicje, których trzeba się oduczyć
„Optymalny znaczy najlepszy.”
Optymalny względem wybranego kryterium. Złe wagi dają optymalnie zły regulator. Wybór Q i R to wciąż decyzja inżyniera, tylko lepiej opisana.
„LQR uwzględnia ograniczenia sterowania.”
Nie: koszt u2 tylko je zniechęca. Twarde ograniczenia trzeba sprawdzić w symulacji albo użyć sterowania predykcyjnego (MPC).
„LQR zawsze ma zapas fazy 60°.”
Tylko przy pełnym, dokładnym stanie i pętli przeciętej na wejściu. Z estymatorem gwarancja znika.
„Wagi trzeba dobierać długo metodą prób i błędów.”
Reguła Brysona daje dobry start w minutę; zwykle wystarczą 2–3 poprawki.
„Równanie Riccatiego trzeba rozwiązywać ręcznie.”
Ręcznie tylko dla jednego stanu, żeby zrozumieć. W praktyce jedna linijka w Pythonie.
8 Zadania do przemyślenia
Te zadania wymagają więcej myślenia niż liczenia.
Zadania do przemyślenia
5 zadań · ok. 1,5 godziny
Podwójny integrator.x¨=u, J=∫(x2+ru2)dt. Rozwiąż równanie Riccatiego ręcznie i pokaż, że bieguny mają ζ=1/2 przy każdym r.
Rozwiązanie
A=[0010], B=[0,1]T. Równania na P=[p1p2p2p3]: 1−p22/r=0, p1−p2p3/r=0, 2p2−p32/r=0. Stąd p2=r, p3=2r3/4.
K=[p2/r,p3/r]=[r−1/2,2r−1/4]. Wielomian s2+2ω0s+ω02 z ω0=r−1/4: ζ=2/2 ✓, niezależnie od r.
Koszt czasu. Czy LQR minimalizuje czas dojścia do celu? Co trzeba by zmienić w kryterium?
Rozwiązanie
Nie: minimalizuje ważoną sumę kwadratów. Czas pojawia się tylko pośrednio.
Waga na prędkość. Dodaj do kryterium drona w płaszczyźnie wagę na prędkość x˙. Jak to zmieni zachowanie? Kiedy jest to potrzebne?
Rozwiązanie
Kara za prędkość daje spokojniejszy przelot, mniejsze przeregulowanie, ale wolniejsze dojście. Działa jak tłumienie.
Potrzebne, gdy ważne są prędkości: pasażerowie, ładunek na lince (lekcja 4.1), ograniczenia przepisów. Reguła Brysona: 1/x˙max2.
Skończony horyzont. Satelita ma zakończyć manewr dokładnie po 100 s. Czym różni się LQR ze skończonym horyzontem od tego z tej lekcji?
Rozwiązanie
Kryterium ∫0T(…)dt+x(T)TSx(T). P(t) spełnia różniczkowe równanie Riccatiego całkowane wstecz od P(T)=S, więc K(t) zmienia się w czasie.
Daleko od końca P(t) jest prawie stałe i równe rozwiązaniu algebraicznemu. Pod koniec K rośnie, żeby „zdążyć”. To most do sterowania optymalnego w lekcji 5.1 i do Tewariego.
Odwrotny problem. Masz regulator z lokowania biegunów. Czy istnieją Q, R, dla których jest on LQR? Co mówi o tym warunek ∣1+L∣≥1?
Rozwiązanie
Nie zawsze. Każdy LQR (jedno wejście, pełny stan) spełnia ∣1+L(jω)∣≥1. Jeśli regulator z lokowania biegunów tego nie spełnia, nie jest optymalny dla żadnych Q, R.
Jeśli spełnia (pętla stabilna, (A,B) sterowalne), da się dobrać odpowiednie Q (wynik Kalmana z 1964 r., tzw. odwrotny problem optymalności). Ciekawostka: projekt 1,5/6 z lekcji 4.1 ma min∣1+L∣=0,9998, minimalnie poniżej 1, więc nie jest LQR dla żadnych wag.
9 Sprawdź się
Odpowiedz w myślach, zanim rozwiniesz odpowiedź.
1 Jakie kryterium minimalizuje LQR?
J=∫(xTQx+uTRu)dt.
2 Jak wyznaczyć K?
K=R−1BTP, P z algebraicznego równania Riccatiego.
3 Co mówi reguła Brysona?
Qii=1/xi,max2, R=1/umax2.
4 Biegun LQR dla jednego stanu?
−a2+b2q/r.
5 Co się dzieje przy bardzo drogim sterowaniu?
Bieguny stabilne zostają, niestabilne odbijają się lustrzanie na lewą stronę.
6 Jakie zapasy gwarantuje LQR?
Zapas fazy ≥ 60°, wzmocnienie od 1/2 do ∞ (pełny stan, jedno wejście).
7 Co to front Pareto?
Zbiór projektów, w których nie da się zmniejszyć uchybu bez zwiększenia wysiłku; LQR leży na nim.
10 Karta wzorów i co dalej
LQR
J=∫(xTQx+uTRu)dt
ATP+PA−PBR−1BTP+Q=0
K=R−1BTP, J∗=x0TPx0
skalar: biegun −a2+b2q/r
Bryson: Qii=1/xi,max2, R=1/umax2
Własności i Python
∣1+L(jω)∣≥1: PM ≥ 60°, GM ∈ [1/2, ∞)
tylko stosunek Q:R ma znaczenie
K, P, E = control.lqr(A, B, Q, R)
scipy.linalg.solve_continuous_are(A, B, Q, R)
Do przeczytania
Obowiązkowo: A. Tewari, Modern Control Design with MATLAB and SIMULINK, rozdz. 6 (LQR z przykładami lotniczymi; kod MATLAB przetłumaczysz według ramki wyżej).
Dla chętnych: A. E. Bryson, Y.-C. Ho, Applied Optimal Control, klasyka; S. Brunton, Control Bootcamp, wykłady o LQR (wideo).
LQR odpowiada na pytanie, jak sterować, gdy znamy stan. Dualne pytanie brzmi: jak optymalnie estymować stan, gdy znamy statystykę szumów pomiaru i zakłóceń? Odpowiedzią jest filtr Kalmana, najważniejszy algorytm estymacji XX wieku i temat następnej lekcji.