Matematyka i fizyka od podstaw
PLEN

Automatyka › IV. Przestrzeń stanów, estymacja i sterowanie optymalne › 4.1 w planach · PDF do druku

Zanim zaczniesz Matematyka 2.3 Wartości i wektory własneMatematyka 4.5 Układy równań liniowych i przestrzeń stanów3.1 Regulator PID: działanie P, I, D i uchyb ustalony

Nowe pojęcia w tej lekcji (2)

lokowanie biegunówsterowalność

Automatyka 4.1

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\dot{\mathbf x} = A\mathbf x + B\mathbf u. 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=1m = 1 kg, b=0,5b = 0{,}5 N·s/m) ma stan x=[z,v]T\mathbf x = [z, v]^T:

x˙=[010−0,5]x+[01]u.\dot{\mathbf x} = \begin{bmatrix}0 & 1\\ 0 & -0{,}5\end{bmatrix}\mathbf x + \begin{bmatrix}0\\ 1\end{bmatrix}u .

Sprzężenie od stanu to sterowanie liniowo zależne od całego stanu: u=−Kx=−k1z−k2vu = -K\mathbf x = -k_1z - k_2v. To po prostu regulator PD (Kp=k1K_p = k_1, Kd=k2K_d = k_2), 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.\dot{\mathbf x} = (A - BK)\,\mathbf x,\qquad \det(sI - A + BK) = s^2 + (0{,}5 + k_2)s + k_1 .

Bieguny to wartości własne A−BKA - 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\omega_0 = 2, ζ=0,7\zeta = 0{,}7 (s2+2,8s+4s^2 + 2{,}8s + 4) wychodzi k1=4k_1 = 4, k2=2,3k_2 = 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.u = -K\mathbf x\quad\Rightarrow\quad\dot{\mathbf x} = (A - BK)\,\mathbf x,\qquad\text{bieguny} = \text{wartości własne } A - BK .

Dla jednego wejścia KK jest wierszem o nn elementach, a wielomian charakterystyczny ma nn współczynników. Jeśli obiekt jest sterowalny, każdy zestaw nn biegunów (zespolone w parach sprzężonych) da się osiągnąć dokładnie jednym KK.

Zadania · część 1

3 zadania · ok. 20 min

  1. Wyznacz A−BKA - BK dla wysokości drona i sprawdź jej wielomian charakterystyczny.

    Odpowiedź

    A−BK=[01−k1−0,5−k2]A - BK = \begin{bmatrix}0 & 1\\ -k_1 & -0{,}5 - k_2\end{bmatrix}, det⁡(sI−A+BK)=s(s+0,5+k2)+k1\det(sI - A + BK) = s(s + 0{,}5 + k_2) + k_1 ✓.

  2. Dobierz KK dla biegunów −3-3 i −4-4.

    Odpowiedź

    (s+3)(s+4)=s2+7s+12(s + 3)(s + 4) = s^2 + 7s + 12: k1=12k_1 = 12, k2=6,5k_2 = 6{,}5.

  3. Czym sprzężenie od stanu u=−k1z−k2vu = -k_1z - k_2v różni się w praktyce od PD u=−Kpz−Kdz˙u = -K_pz - K_d\dot z liczonego z barometru?

    Odpowiedź

    Matematycznie niczym. W praktyce vv trzeba skądś wziąć: z osobnego czujnika albo z estymatora, a nie z różniczkowania zaszumionego zz (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 θ\theta. Składowa pozioma ciągu mgsin⁡θ≈mg θmg\sin\theta \approx mg\,\theta przyspiesza go w bok. Pochylenie zmienia moment uu od różnicy ciągu silników (moment bezwładności J=0,01J = 0{,}01 kg·m²). Wokół zawisu:

x¨=g θ,θ¨=uJ;x=[xx˙θθ˙],A=[010000g000010000],B=[0001/J].\ddot x = g\,\theta,\qquad \ddot\theta = \frac{u}{J};\qquad \mathbf x = \begin{bmatrix}x\\ \dot x\\ \theta\\ \dot\theta\end{bmatrix},\quad A = \begin{bmatrix}0 & 1 & 0 & 0\\ 0 & 0 & g & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 0 & 0\end{bmatrix},\quad B = \begin{bmatrix}0\\ 0\\ 0\\ 1/J\end{bmatrix} .

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θ˙u = -k_1x - k_2\dot x - k_3\theta - k_4\dot\theta wielomian charakterystyczny wynosi

s4+k4Js3+k3Js2+gk2Js+gk1J.s^4 + \frac{k_4}{J}s^3 + \frac{k_3}{J}s^2 + \frac{gk_2}{J}s + \frac{gk_1}{J} .

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\omega_0 \approx 1{,}5 rad/s) i para szybka „pochylenie” (ω0≈6\omega_0 \approx 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 nn porównywanie współczynników staje się żmudne, ale istnieje wzór zamknięty, wzór Ackermanna: K=[0 ⋯ 0 1] Wc−1 φ(A)K = [0\ \cdots\ 0\ 1]\,W_c^{-1}\,\varphi(A), gdzie φ\varphi to pożądany wielomian charakterystyczny, a WcW_c 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 KK. 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

  1. Wyprowadź wielomian charakterystyczny drona w płaszczyźnie. Wskazówka: z x¨=gθ\ddot x = g\theta i Jθ¨=uJ\ddot\theta = u dostajemy J x(4)=g uJ\,x^{(4)} = g\,u.

    Odpowiedź

    Jx(4)=g u=−g(k1x+k2x˙+k3θ+k4θ˙)Jx^{(4)} = g\,u = -g(k_1x + k_2\dot x + k_3\theta + k_4\dot\theta), a θ=x¨/g\theta = \ddot x/g, θ˙=x.../g\dot\theta = \dddot x/g. Stąd Jx(4)+k4x...+k3x¨+gk2x˙+gk1x=0Jx^{(4)} + k_4\dddot x + k_3\ddot x + gk_2\dot x + gk_1x = 0; dzielimy przez JJ ✓.

  2. Policz KK dla par ω0=1,5\omega_0 = 1{,}5 i 6 rad/s, obie z ζ=0,7\zeta = 0{,}7.

    Odpowiedź

    (s2+2,1s+2,25)(s2+8,4s+36)=s4+10,5s3+55,89s2+94,5s+81(s^2 + 2{,}1s + 2{,}25)(s^2 + 8{,}4s + 36) = s^4 + 10{,}5s^3 + 55{,}89s^2 + 94{,}5s + 81. Stąd k4=10,5J=0,105k_4 = 10{,}5J = 0{,}105, k3=0,559k_3 = 0{,}559, k2=94,5J/g=0,0963k_2 = 94{,}5J/g = 0{,}0963, k1=81J/g=0,0826k_1 = 81J/g = 0{,}0826.

  3. W symulacji 1 porównaj ω0\omega_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 BB, po chwili też ABAB (bo x˙\dot{\mathbf x} zawiera AxA\mathbf x), potem A2BA^2B i tak dalej. Obiekt jest sterowalny, gdy te kierunki rozpinają całą przestrzeń stanu:Åström–Murray 7.1

Wc=[BABA2B⋯An−1B],sterowalny  ⟺  rank⁡Wc=n.W_c = \begin{bmatrix}B & AB & A^2B & \cdots & A^{n-1}B\end{bmatrix},\qquad \text{sterowalny} \iff \operatorname{rank} W_c = n .

Dla drona w płaszczyźnie WcW_c ma niezerowe elementy tylko na antyprzekątnej (100, 100, 981, 981): rząd 4, sterowalny.

Odpowiedź na pytanie z prologu. Dwa ładunki na linkach L1L_1, L2L_2 pod dronem, sterowanie to przyspieszenie poziome drona aa. Wokół pionu każdy ładunek to wahadło popychane przez aa: θ¨i=−gLiθi−aLi\ddot\theta_i = -\frac{g}{L_i}\theta_i - \frac{a}{L_i}. Gdy L1=L2L_1 = L_2, oba równania są identyczne. Różnica θ1−θ2\theta_1 - \theta_2 spełnia wtedy (θ1−θ2)¨=−gL(θ1−θ2)\ddot{(\theta_1 - \theta_2)} = -\frac gL(\theta_1 - \theta_2) niezależnie od aa: żaden ruch drona jej nie zmieni. Rząd WcW_c 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\zeta = 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

  1. Policz WcW_c dla wysokości drona i sprawdź sterowalność.

    Odpowiedź

    B=[0,1]TB = [0, 1]^T, AB=[1,−0,5]TAB = [1, -0{,}5]^T. Wc=[011−0,5]W_c = \begin{bmatrix}0 & 1\\ 1 & -0{,}5\end{bmatrix}, det⁡=−1≠0\det = -1 \ne 0: sterowalny.

  2. W symulacji 2 odczytaj największe przyspieszenie dla L2=2L_2 = 2; 1,5; 1,1; 1,02 m. Co się dzieje, gdy L2→L1L_2 \to L_1?

    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∣1/|L_2 - L_1|: obiekt jest formalnie sterowalny, ale praktycznie nie. Ilościową miarą jest najmniejsza wartość osobliwa WcW_c (względem największej), która dąży do zera.

  3. Obiekt x˙1=−x1+u\dot x_1 = -x_1 + u, x˙2=−2x2\dot x_2 = -2x_2. Czy jest sterowalny? Czy da się go ustabilizować?

    Odpowiedź

    Wc=[1−100]W_c = \begin{bmatrix}1 & -1\\ 0 & 0\end{bmatrix}, rząd 1: niesterowalny. Stan x2x_2 nie zależy od uu, ale sam z siebie gaśnie (−2-2). Taki obiekt nazywa się stabilizowalnym: niesterowalne są tylko mody stabilne. Gdyby było x˙2=+2x2\dot x_2 = +2x_2, żaden regulator by go nie uratował.

4 Wartość zadana i całkowanie

u=−Kxu = -K\mathbf x sprowadza stan do zera. Żeby dron poleciał na wysokość rr, potrzebujemy wartości zadanej. Dwa sposoby:

  • wzmocnienie w przód: u=−Kx+Nru = -K\mathbf x + Nr z NN dobranym tak, żeby w stanie ustalonym z=rz = r. Działa tylko przy dokładnym modelu: stała siła (paczka) zostawi uchyb jak w PD;
  • całkowanie uchybu: dokładamy stan ξ\xi z ξ˙=r−z\dot\xi = r - z i sprzęgamy od rozszerzonego stanu [z,v,ξ][z, v, \xi]: u=−k1z−k2v+kiξu = -k_1z - k_2v + k_i\xi. W stanie ustalonym ξ˙=0\dot\xi = 0, więc z=rz = r przy każdym stałym zakłóceniu.

Dla wysokości drona z biegunami −2-2 i −1,4±1,43j-1{,}4 \pm 1{,}43j (lekcja 3.1) rozszerzony obiekt daje k1=9,6k_1 = 9{,}6, k2=4,3k_2 = 4{,}3, ki=8k_i = 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

  1. Dla wysokości drona z K=[4; 2,3]K = [4;\ 2{,}3] dobierz NN, żeby z→rz \to r.

    Odpowiedź

    W stanie ustalonym v=0v = 0, v˙=0=−0,5⋅0+u\dot v = 0 = -0{,}5\cdot 0 + u, więc u=0=−4z+Nru = 0 = -4z + Nr: N=4N = 4.

  2. Napisz macierze rozszerzonego obiektu [z,v,ξ][z, v, \xi] i jego wielomian charakterystyczny przy u=−k1z−k2v+kiξu = -k_1z - k_2v + k_i\xi.

    Odpowiedź

    z˙=v\dot z = v, v˙=−0,5v+u\dot v = -0{,}5v + u, ξ˙=−z\dot\xi = -z (dla r=0r = 0). Wielomian: s3+(0,5+k2)s2+k1s+kis^3 + (0{,}5 + k_2)s^2 + k_1s + k_i, identyczny jak PID z lekcji 3.1 ✓.

  3. Dlaczego wersja z NN nie usuwa uchybu od paczki, a wersja z ξ\xi tak?

    Odpowiedź

    Przy sile FF: w stanie ustalonym u+F=0u + F = 0, czyli −4z+Nr=−F-4z + Nr = -F, z=r+F/4z = r + F/4: uchyb. Z całką ξ\xi rośnie, dopóki z≠rz \ne r, a stan ustalony istnieje tylko przy z=rz = r (wtedy kiξ=−F+k1rk_i\xi = -F + k_1r).

5 Metoda i przykłady rozwiązane

Metoda: lokowanie biegunów

  1. Model stanowy AA, BB (linearyzacja wokół punktu pracy, lekcja 4.6 Układy nieliniowe, płaszczyzna fazowa i stabilność).
  2. Sterowalność: rank⁡Wc=n\operatorname{rank} W_c = n; sprawdź też, czy nie jest „prawie” niesterowalny.
  3. Bieguny: dominująca para z wymagań (lekcja 2.2), pozostałe 2–5 razy szybsze, ale nie szybsze, niż pozwalają element wykonawczy i szum.
  4. K: porównanie współczynników, wzór Ackermanna albo control.place.
  5. Całka dla zakłóceń stałych; sprawdzenie w symulacji nieliniowej i z ograniczeniami.

Przykład 5.1 Przesunięcie drona o 1 m

Dron w płaszczyźnie (J=0,01J = 0{,}01 kg·m²), bieguny: ω0=1,5\omega_0 = 1{,}5 i 6 rad/s, ζ=0,7\zeta = 0{,}7. Start 1 m od celu, w spoczynku.

  1. K=[0,0826; 0,0963; 0,559; 0,105]K = [0{,}0826;\ 0{,}0963;\ 0{,}559;\ 0{,}105] (zadanie 2.2).
  2. Pierwsza reakcja: u=−0,0826u = -0{,}0826 N·m, dron pochyla się w stronę celu.
  3. Symulacja: największe pochylenie 7,3°, moment 0,083 N·m (różnica ciągu ok. 0,55 N przy ramieniu 0,15 m), czas ustalania 4,2 s, przelot 4,7 cm.

Wynik: jeden wektor czterech liczb robi to, co w kaskadzie robią dwa regulatory.

Sprawdzenie: wartości własne A−BKA - BK policzone numerycznie to zadane bieguny ✓. Pochylenie 7° jest dalekie od granicy modelu liniowego ✓.

Przykład 5.2 Dwa ładunki o podobnych linkach

Linki 1 m i 1,1 m. Regulator ma zostawić częstości wahadeł i dodać tłumienie ζ=0,3\zeta = 0{,}3. Ile wynoszą wzmocnienia i największe przyspieszenie drona?

  1. Częstości wahadeł: 3,13 i 2,99 rad/s, różnią się o 5%.
  2. K≈[−37; −1,9; 37; −2,0]K \approx [-37;\ -1{,}9;\ 37;\ -2{,}0]: wielkie wzmocnienia od kątów o przeciwnych znakach (regulator gra na różnicy wychyleń).
  3. Największe przyspieszenie ok. 18,5 m/s², prawie 2g2g, a ładunki wychylają się do ok. 65°. Dla linek 1 i 2 m wystarcza 2,5 m/s² i wychylenia do 17°.

Wynik: formalnie sterowalny, praktycznie nie.

Sprawdzenie: dla linek 1 i 1,02 m potrzeba już ok. 90 m/s², a dla równych linek rząd WcW_c spada do 2 ✓.

Przykład 5.3 PID jako sprzężenie od stanu

Rozszerzony stan wysokości [z,v,ξ][z, v, \xi], bieguny −2-2 i −1,4±1,43j-1{,}4 \pm 1{,}43j. Wyznacz KK.

  1. Pożądany wielomian (s+2)(s2+2,8s+4)=s3+4,8s2+9,6s+8(s + 2)(s^2 + 2{,}8s + 4) = s^3 + 4{,}8s^2 + 9{,}6s + 8.
  2. Porównanie z s3+(0,5+k2)s2+k1s+kis^3 + (0{,}5 + k_2)s^2 + k_1s + k_i: k2=4,3k_2 = 4{,}3, k1=9,6k_1 = 9{,}6, ki=8k_i = 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][9{,}6;\ 4{,}3;\ -8] (znak minus, bo ξ˙=−z\dot\xi = -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.”
Stan można estymować z mniejszej liczby pomiarów: obserwator w lekcji 4.2 Obserwator stanu i obserwowalność.
„Niesterowalny obiekt jest bezużyteczny.”
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

  1. 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
    1. Różne częstości: obiekt sterowalny, taca może wygasić oba kołysania (jak ładunki na różnych linkach).
    2. Identyczne kieliszki: różnica faz ich kołysań jest niesterowalna. Taca może uspokoić „wspólną część”, a ich wzajemnego przesunięcia już nie.
  2. Dron bez śmigła ogonowego. Czy dron w płaszczyźnie z momentem uu może kontrolować położenie xx, mimo że uu nie działa na xx bezpośrednio? Odpowiedz przez kierunki BB, ABAB, A2BA^2B, A3BA^3B.

    Rozwiązanie
    1. BB działa tylko na θ˙\dot\theta, ABAB na θ\theta, A2BA^2B na x˙\dot x (przez gg), A3BA^3B na xx. Po trzech „krokach” sterowanie dociera do położenia.
    2. Rząd 4: sterowalny. Kolejność kierunków to ten sam łańcuch co w kaskadzie: moment → pochylenie → prędkość → położenie.
  3. Dlaczego nie skasować dynamiki? Kusi, żeby wybrać bieguny tak, by pętla zamknięta była „idealna”: wszystkie w −100-100. Oszacuj k1k_1 dla drona w płaszczyźnie i oceń.

    Rozwiązanie
    1. (s+100)4(s + 100)^4 ma wyraz wolny 10810^8, więc k1=108J/g≈105k_1 = 10^8J/g \approx 10^5 N·m/m. Przesunięcie o 1 cm daje 1000 N·m momentu, przy możliwościach rzędu 0,5 N·m.
    2. W praktyce silniki natychmiast w nasyceniu, a szum czujnika pozycji wzmocniony 10510^5 razy. Szybkość pętli ograniczają element wykonawczy, szum i niemodelowana dynamika, jak w lekcji 2.5.
  4. Sterowalność a transmitancja. Obiekt x˙1=−x1+u\dot x_1 = -x_1 + u, x˙2=x2\dot x_2 = x_2, y=x1y = x_1. Policz transmitancję Y/UY/U. Czy z niej widać, że obiekt jest niestabilny?

    Rozwiązanie
    1. Y/U=1s+1Y/U = \frac{1}{s + 1}: stabilna, nic nie zdradza.
    2. Stan x2=x2(0)etx_2 = x_2(0)e^{t} rośnie niezależnie od uu, 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.
  5. Dwa wejścia. Dron może zmieniać zarówno moment u1u_1, jak i całkowity ciąg u2u_2. Ile wierszy i kolumn ma wtedy KK? Czy wybór KK dla zadanych biegunów jest jednoznaczny?

    Rozwiązanie
    1. Stan np. 6-wymiarowy (x,x˙,z,z˙,θ,θ˙x, \dot x, z, \dot z, \theta, \dot\theta), 2 wejścia: KK ma wymiar 2×62\times 6, czyli 12 liczb na 6 biegunów.
    2. 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=−Kxu = -K\mathbf x; pętla zamknięta x˙=(A−BK)x\dot{\mathbf x} = (A - BK)\mathbf x.

2 Gdzie są bieguny pętli zamkniętej?

W wartościach własnych A−BKA - BK.

3 Jak sprawdzić sterowalność?

rank⁡[B AB ⋯ An−1B]=n\operatorname{rank}[B\ AB\ \cdots\ A^{n-1}B] = 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 ⋯ 0 1] Wc−1φ(A)K = [0\ \cdots\ 0\ 1]\,W_c^{-1}\varphi(A): lokowanie biegunów dla jednego wejścia.

6 Jak dodać całkowanie do sprzężenia od stanu?

Nowy stan ξ˙=r−y\dot\xi = 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][z, v] obiektu drugiego rzędu.

9 Karta wzorów i co dalej

Sprzężenie od stanu

x˙=Ax+Bu\dot{\mathbf x} = A\mathbf x + B\mathbf u,   u=−Kx+Nr\;u = -K\mathbf x + Nr

bieguny: det⁡(sI−A+BK)=0\det(sI - A + BK) = 0

Ackermann: K=[0 ⋯ 1] Wc−1φ(A)K = [0\ \cdots\ 1]\,W_c^{-1}\varphi(A)

całka: ξ˙=r−y\dot\xi = r - y,   u=−Kx+kiξ\;u = -K\mathbf x + k_i\xi

Sterowalność i dron

Wc=[B AB ⋯ An−1B]W_c = [B\ AB\ \cdots\ A^{n-1}B], sterowalny   ⟺  rank⁡Wc=n\iff \operatorname{rank} W_c = n

dron w płaszczyźnie: x¨=gθ\ddot x = g\theta, θ¨=u/J\ddot\theta = u/J

s4+k4Js3+k3Js2+gk2Js+gk1Js^4 + \frac{k_4}{J}s^3 + \frac{k_3}{J}s^2 + \frac{gk_2}{J}s + \frac{gk_1}{J}

Python: control.ctrb(A, B), control.place(A, B, p)

Do przeczytania

  • 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.

Korzystają z tej lekcji 4.2 Obserwator stanu i obserwowalność4.3 LQR: koszt zamiast biegunów