Sprzężenie od stanu, lokowanie biegunów i sterowalność
Dron, który ma polecieć 1 m w bok, musi najpierw się pochylić, a potem wyprostować. To dwie wielkości (położenie i pochylenie) i jedno sterowanie (różnica ciągu silników). Transmitancje z części II opisują jedno wejście i jedno wyjście. Tu przechodzimy do opisu w przestrzeni stanów, w którym regulator widzi cały stan obiektu naraz. Okaże się, że jednym wektorem wzmocnień można ustawić wszystkie bieguny dowolnie, o ile obiekt jest sterowalny. Zobaczymy też, kiedy nie jest.
Czas
ok. 2,5 h teorii + ok. 3 h zadań
Zadania
12 zadań w treści + 5 do przemyślenia, z odpowiedziami
Źródła
K. J. Åström, R. M. Murray, Feedback Systems, rozdz. 7; A. Tewari, Modern Control Design with MATLAB and SIMULINK, rozdz. 5; S. Brunton, wykłady Control Bootcamp (sterowalność, lokowanie biegunów)
0 Prolog: stan zamiast wyjścia
W 1960 r. na pierwszym kongresie IFAC w Moskwie Rudolf Kálmán przedstawił pracę „On the general theory of control systems”. Zamiast transmitancji, czyli relacji wejście–wyjście, opisał obiekt stanem: zestawem liczb, który razem z przyszłymi wejściami wyznacza całą przyszłość. Zadał też pytanie, którego teoria klasyczna nie stawiała: czy wejście w ogóle jest w stanie dosięgnąć każdej części obiektu? Nazwał tę własność sterowalnością.
Moment był nieprzypadkowy: trwał wyścig kosmiczny, a rakiety i statki kosmiczne mają wiele wejść, wiele wyjść i dynamikę, której nie da się wygodnie opisać jedną transmitancją. Opis stanowy szybko trafił do programu Apollo (nawigacja z filtrem Kalmana, lekcja 4.4), a potem stał się językiem całej nowoczesnej automatyki. W lekcji 4.5 Układy równań liniowych i przestrzeń stanów poznaliśmy równanie stanu x˙=Ax+Bu. Teraz zamykamy przez nie pętlę.
Pytanie na start. Pod dronem wiszą na linkach dwa ładunki. Dron może się poruszać w bok, żeby wygasić ich wahania. Czy zawsze mu się to uda? Odpowiedź w części 3.
1 Od PD do sprzężenia od stanu
Wysokość drona (m=1 kg, b=0,5 N·s/m) ma stan x=[z,v]T:
x˙=[001−0,5]x+[01]u.
Sprzężenie od stanu to sterowanie liniowo zależne od całego stanu: u=−Kx=−k1z−k2v. To po prostu regulator PD (Kp=k1, Kd=k2), tyle że pochodną wysokości bierzemy z pomiaru prędkości, a nie z różniczkowania. Pętla zamknięta:
x˙=(A−BK)x,det(sI−A+BK)=s2+(0,5+k2)s+k1.
Bieguny to wartości własne A−BK (lekcja 2.3 Wartości i wektory własne). Mamy dwa wzmocnienia i dwa współczynniki wielomianu, więc bieguny ustawiamy dowolnie: dla ω0=2, ζ=0,7 (s2+2,8s+4) wychodzi k1=4, k2=2,3, dokładnie PD z lekcji 2.2.
Sprzężenie od stanu
u=−Kx⇒x˙=(A−BK)x,bieguny=wartosˊci własne A−BK.
Dla jednego wejścia K jest wierszem o n elementach, a wielomian charakterystyczny ma n współczynników. Jeśli obiekt jest sterowalny, każdy zestaw n biegunów (zespolone w parach sprzężonych) da się osiągnąć dokładnie jednym K.
Zadania · część 1
3 zadania · ok. 20 min
Wyznacz A−BK dla wysokości drona i sprawdź jej wielomian charakterystyczny.
Czym sprzężenie od stanu u=−k1z−k2v różni się w praktyce od PD u=−Kpz−Kdz˙ liczonego z barometru?
Odpowiedź
Matematycznie niczym. W praktyce v trzeba skądś wziąć: z osobnego czujnika albo z estymatora, a nie z różniczkowania zaszumionego z (lekcja 2.5). Sprzężenie od stanu przenosi problem pomiaru pochodnych na estymację stanu: to temat lekcji 4.2 Obserwator stanu i obserwowalność.
2 Lokowanie biegunów: dron w płaszczyźnie
Dron, który ma się przesunąć w bok, pochyla się o kąt θ. Składowa pozioma ciągu mgsinθ≈mgθ przyspiesza go w bok. Pochylenie zmienia moment u od różnicy ciągu silników (moment bezwładności J=0,01 kg·m²). Wokół zawisu:
To cztery całkowania w szeregu: moment → prędkość kątowa → kąt → przyspieszenie → prędkość → położenie. Z u=−k1x−k2x˙−k3θ−k4θ˙ wielomian charakterystyczny wynosi
s4+Jk4s3+Jk3s2+Jgk2s+Jgk1.
Cztery wzmocnienia i cztery współczynniki: wybieramy bieguny, mnożymy czynniki i porównujemy. Rozsądny wybór to para wolna „położenie” (ω0≈1,5 rad/s) i para szybka „pochylenie” (ω0≈6 rad/s). To ta sama myśl co w kaskadzie z lekcji 3.2 Strojenie: model z testu, reguły nastaw i regulacja kaskadowa, tyle że w jednym regulatorze.
Dla większych n porównywanie współczynników staje się żmudne, ale istnieje wzór zamknięty, wzór Ackermanna: K=[0⋯01]Wc−1φ(A), gdzie φ to pożądany wielomian charakterystyczny, a Wc macierz sterowalności z części 3. W Pythonie: control.place(A, B, bieguny).
Symulacja 1 Dron w płaszczyźnie startuje 1 m od celu. Wybierasz dwie pary biegunów, a wzór Ackermanna liczy K. Przyspiesz parę „położenie”: rośnie pochylenie i moment. Zbliż parę „pochylenie” do pary „położenie”: odpowiedź się pogarsza.
Zadania · część 2
3 zadania · ok. 30 min
Wyprowadź wielomian charakterystyczny drona w płaszczyźnie. Wskazówka: z x¨=gθ i Jθ¨=u dostajemy Jx(4)=gu.
Odpowiedź
Jx(4)=gu=−g(k1x+k2x˙+k3θ+k4θ˙), a θ=x¨/g, θ˙=x.../g. Stąd Jx(4)+k4x...+k3x¨+gk2x˙+gk1x=0; dzielimy przez J ✓.
Policz K dla par ω0=1,5 i 6 rad/s, obie z ζ=0,7.
Odpowiedź
(s2+2,1s+2,25)(s2+8,4s+36)=s4+10,5s3+55,89s2+94,5s+81. Stąd k4=10,5J=0,105, k3=0,559, k2=94,5J/g=0,0963, k1=81J/g=0,0826.
W symulacji 1 porównaj ω0 „położenia” 1, 1,5 i 2 rad/s (para „pochylenie” 6, 6, 8 rad/s). Jak zmieniają się czas ustalania i największe pochylenie?
Odpowiedź
Czas ustalania (2 cm): ok. 6,2; 4,2; 3,2 s. Pochylenie: ok. 3,8°; 7,3°; 12,9°. Szybciej znaczy mocniej się pochylić, a więc odejść dalej od zawisu i od założeń modelu liniowego.
3 Sterowalność
Kiedy lokowanie biegunów zawodzi? Wtedy, gdy jakaś część stanu jest „poza zasięgiem” wejścia. Kálmán podał prosty test. Wejście działa bezpośrednio w kierunku B, po chwili też AB (bo x˙ zawiera Ax), potem A2B i tak dalej. Obiekt jest sterowalny, gdy te kierunki rozpinają całą przestrzeń stanu:Åström–Murray 7.1
Wc=[BABA2B⋯An−1B],sterowalny⟺rankWc=n.
Dla drona w płaszczyźnie Wc ma niezerowe elementy tylko na antyprzekątnej (100, 100, 981, 981): rząd 4, sterowalny.
Odpowiedź na pytanie z prologu. Dwa ładunki na linkach L1, L2 pod dronem, sterowanie to przyspieszenie poziome drona a. Wokół pionu każdy ładunek to wahadło popychane przez a: θ¨i=−Ligθi−Lia. Gdy L1=L2, oba równania są identyczne. Różnica θ1−θ2 spełnia wtedy (θ1−θ2)¨=−Lg(θ1−θ2) niezależnie od a: żaden ruch drona jej nie zmieni. Rząd Wc wynosi 2, nie 4. Gdy długości są różne, wahadła mają różne częstości i jednym sterowaniem można wygasić oba wahania. Im bliższe długości, tym większego przyspieszenia to wymaga.
Symulacja 2 Dwa ładunki pod dronem, wychylone o 0,3 i −0,2 rad. Regulator zostawia częstości własne wahadeł i dokłada tłumienie ζ=0,3. Zbliżaj długość drugiej linki do 1 m i patrz na przyspieszenie drona i wychylenia ładunków.
Zadania · część 3
3 zadania · ok. 25 min
Policz Wc dla wysokości drona i sprawdź sterowalność.
W symulacji 2 odczytaj największe przyspieszenie dla L2=2; 1,5; 1,1; 1,02 m. Co się dzieje, gdy L2→L1?
Odpowiedź
Ok. 2,5; 4,3; 18,5; 89 m/s², a największe wychylenie rośnie od 17° do ponad 300° (model liniowy dawno przestał obowiązywać). Wzmocnienia od kątów rosną jak 1/∣L2−L1∣: obiekt jest formalnie sterowalny, ale praktycznie nie. Ilościową miarą jest najmniejsza wartość osobliwa Wc (względem największej), która dąży do zera.
Obiekt x˙1=−x1+u, x˙2=−2x2. Czy jest sterowalny? Czy da się go ustabilizować?
Odpowiedź
Wc=[10−10], rząd 1: niesterowalny. Stan x2 nie zależy od u, ale sam z siebie gaśnie (−2). Taki obiekt nazywa się stabilizowalnym: niesterowalne są tylko mody stabilne. Gdyby było x˙2=+2x2, żaden regulator by go nie uratował.
4 Wartość zadana i całkowanie
u=−Kx sprowadza stan do zera. Żeby dron poleciał na wysokość r, potrzebujemy wartości zadanej. Dwa sposoby:
wzmocnienie w przód: u=−Kx+Nr z N dobranym tak, żeby w stanie ustalonym z=r. Działa tylko przy dokładnym modelu: stała siła (paczka) zostawi uchyb jak w PD;
całkowanie uchybu: dokładamy stan ξ z ξ˙=r−z i sprzęgamy od rozszerzonego stanu [z,v,ξ]: u=−k1z−k2v+kiξ. W stanie ustalonym ξ˙=0, więc z=r przy każdym stałym zakłóceniu.
Dla wysokości drona z biegunami −2 i −1,4±1,43j (lekcja 3.1) rozszerzony obiekt daje k1=9,6, k2=4,3, ki=8: dokładnie PID z przykładu 6.1 w lekcji 3.1, w wersji I-PD (wartość zadana działa tylko przez całkę). Sprzężenie od stanu z całkowaniem to uogólnienie PID na dowolną liczbę stanów.
Zadania · część 4
3 zadania · ok. 25 min
Dla wysokości drona z K=[4;2,3] dobierz N, żeby z→r.
Odpowiedź
W stanie ustalonym v=0, v˙=0=−0,5⋅0+u, więc u=0=−4z+Nr: N=4.
Napisz macierze rozszerzonego obiektu [z,v,ξ] i jego wielomian charakterystyczny przy u=−k1z−k2v+kiξ.
Odpowiedź
z˙=v, v˙=−0,5v+u, ξ˙=−z (dla r=0). Wielomian: s3+(0,5+k2)s2+k1s+ki, identyczny jak PID z lekcji 3.1 ✓.
Dlaczego wersja z N nie usuwa uchybu od paczki, a wersja z ξ tak?
Odpowiedź
Przy sile F: w stanie ustalonym u+F=0, czyli −4z+Nr=−F, z=r+F/4: uchyb. Z całką ξ rośnie, dopóki z=r, a stan ustalony istnieje tylko przy z=r (wtedy kiξ=−F+k1r).
Porównanie z s3+(0,5+k2)s2+k1s+ki: k2=4,3, k1=9,6, ki=8.
Wynik: te same liczby co PID z lekcji 3.1; struktura I-PD (wartość zadana tylko przez całkę).
Sprawdzenie:control.place dla rozszerzonego obiektu daje [9,6;4,3;−8] (znak minus, bo ξ˙=−z) ✓.
6 Błędne intuicje, których trzeba się oduczyć
„Skoro bieguny da się ustawić dowolnie, to wybierzmy bardzo szybkie.”
Szybkie bieguny to ogromne wzmocnienia: nasycenie, szum, wyjście poza zakres modelu liniowego. Bieguny wybiera się z wymagań, nie „im szybciej, tym lepiej”.
„Sterowalny znaczy łatwy do sterowania.”
Rząd macierzy to odpowiedź tak/nie. Obiekt prawie niesterowalny wymaga absurdalnych sterowań.
„Sprzężenie od stanu to coś zupełnie innego niż PID.”
Dla obiektu drugiego rzędu to PD, a z całkowaniem uchybu PID. Nowość to możliwość objęcia wielu stanów naraz.
„Żeby sprzęgać od stanu, trzeba mierzyć cały stan.”
Jeśli niesterowalne części same gasną (obiekt stabilizowalny), regulator zrobi swoje z resztą.
7 Zadania do przemyślenia
Te zadania wymagają więcej myślenia niż liczenia.
Zadania do przemyślenia
5 zadań · ok. 1,5 godziny
Kelner z tacą. Kelner niesie na tacy dwa kieliszki: jeden pełny, jeden w połowie. Ciecz w każdym kołysze się z inną częstością. Czy ruchami tacy da się uspokoić oba naraz? A gdyby kieliszki były identyczne?
Rozwiązanie
Różne częstości: obiekt sterowalny, taca może wygasić oba kołysania (jak ładunki na różnych linkach).
Identyczne kieliszki: różnica faz ich kołysań jest niesterowalna. Taca może uspokoić „wspólną część”, a ich wzajemnego przesunięcia już nie.
Dron bez śmigła ogonowego. Czy dron w płaszczyźnie z momentem u może kontrolować położenie x, mimo że u nie działa na x bezpośrednio? Odpowiedz przez kierunki B, AB, A2B, A3B.
Rozwiązanie
B działa tylko na θ˙, AB na θ, A2B na x˙ (przez g), A3B na x. Po trzech „krokach” sterowanie dociera do położenia.
Rząd 4: sterowalny. Kolejność kierunków to ten sam łańcuch co w kaskadzie: moment → pochylenie → prędkość → położenie.
Dlaczego nie skasować dynamiki? Kusi, żeby wybrać bieguny tak, by pętla zamknięta była „idealna”: wszystkie w −100. Oszacuj k1 dla drona w płaszczyźnie i oceń.
Rozwiązanie
(s+100)4 ma wyraz wolny 108, więc k1=108J/g≈105 N·m/m. Przesunięcie o 1 cm daje 1000 N·m momentu, przy możliwościach rzędu 0,5 N·m.
W praktyce silniki natychmiast w nasyceniu, a szum czujnika pozycji wzmocniony 105 razy. Szybkość pętli ograniczają element wykonawczy, szum i niemodelowana dynamika, jak w lekcji 2.5.
Sterowalność a transmitancja. Obiekt x˙1=−x1+u, x˙2=x2, y=x1. Policz transmitancję Y/U. Czy z niej widać, że obiekt jest niestabilny?
Rozwiązanie
Y/U=s+11: stabilna, nic nie zdradza.
Stan x2=x2(0)et rośnie niezależnie od u, a wyjście go nie widzi. Transmitancja pokazuje tylko część sterowalną i obserwowalną. To jeden z powodów, dla których Kálmán wprowadził opis stanowy.
Dwa wejścia. Dron może zmieniać zarówno moment u1, jak i całkowity ciąg u2. Ile wierszy i kolumn ma wtedy K? Czy wybór K dla zadanych biegunów jest jednoznaczny?
Rozwiązanie
Stan np. 6-wymiarowy (x,x˙,z,z˙,θ,θ˙), 2 wejścia: K ma wymiar 2×6, czyli 12 liczb na 6 biegunów.
Niejednoznaczny: zostaje 6 „wolnych” stopni swobody (można np. kształtować wektory własne). Potrzebne jest dodatkowe kryterium. Najpopularniejsze to koszt kwadratowy: LQR w lekcji 4.3 LQR: koszt zamiast biegunów.
8 Sprawdź się
Odpowiedz w myślach, zanim rozwiniesz odpowiedź.
1 Czym jest sprzężenie od stanu?
u=−Kx; pętla zamknięta x˙=(A−BK)x.
2 Gdzie są bieguny pętli zamkniętej?
W wartościach własnych A−BK.
3 Jak sprawdzić sterowalność?
rank[BAB⋯An−1B]=n.
4 Dlaczego dwa ładunki na równych linkach są niesterowalne?
Różnica ich wychyleń spełnia równanie niezależne od sterowania.
5 Co to wzór Ackermanna?
K=[0⋯01]Wc−1φ(A): lokowanie biegunów dla jednego wejścia.
6 Jak dodać całkowanie do sprzężenia od stanu?
Nowy stan ξ˙=r−y i sprzężenie od rozszerzonego stanu.
7 Co to obiekt stabilizowalny?
Taki, którego niesterowalne mody są stabilne.
8 Czym jest PD w języku stanu?
Sprzężeniem od stanu [z,v] obiektu drugiego rzędu.
Obowiązkowo: K. J. Åström, R. M. Murray, Feedback Systems, rozdz. 7 (sprzężenie od stanu, wolny dostęp online).
Dla chętnych: A. Tewari, Modern Control Design with MATLAB and SIMULINK, rozdz. 5 (lokowanie biegunów, przykłady lotnicze); S. Brunton, Control Bootcamp (wykłady wideo o sterowalności i lokowaniu biegunów).
Sprzężenie od stanu potrzebuje całego stanu, a czujniki mierzą zwykle tylko jego część: barometr daje wysokość, ale nie prędkość, a żyroskop prędkość kątową, ale nie kąt. Następna lekcja pokazuje, jak odtworzyć brakujące stany z tych, które mierzymy, i kiedy jest to w ogóle możliwe.