Matematyka i fizyka od podstaw
PLEN

Automatyka › III. Regulator PID w praktyce › 3.1 w planach · PDF do druku

Zanim zaczniesz 2.5 Zakłócenia, szum i wrażliwość: S, T i kształtowanie pętli

Nowe pojęcia w tej lekcji (1)

regulator PID

Automatyka 3.1

Regulator PID: działanie P, I, D i uchyb ustalony

Ponad 90% pętli regulacji w przemyśle to regulatory PID, a w każdym dronie hobbystycznym siedzi ich kilkanaście. Ta lekcja składa w całość to, co dotąd widzieliśmy po kawałku: człon P (lekcja 1.1), I (lekcja 1.3) i D (lekcje 2.2 i 2.5). Zaprojektujemy pełny PID wysokości drona, zobaczymy, że te same bieguny mogą dać 1,5% albo 34% przeregulowania, i uporządkujemy, jaki uchyb zostaje dla jakiego wejścia.

Czas
ok. 2,5 h teorii + ok. 3 h zadań
Zadania
16 zadań w treści + 5 do przemyślenia, z odpowiedziami
Źródła
K. J. Åström, T. Hägglund, Advanced PID Control (ISA 2006), rozdz. 3; G. C. Goodwin i in., Control System Design, rozdz. 6.2 i 4.11; J. Kowal, Podstawy automatyki, rozdz. 10; S. A. Frank, Control Theory Tutorial, rozdz. 3.3

0 Prolog: sternik pancernika

Na początku lat 20. XX wieku Nicolas Minorsky, rosyjski inżynier pracujący dla marynarki wojennej USA, obserwował sterników prowadzących okręty. Zauważył, że dobry sternik patrzy na trzy rzeczy naraz: o ile okręt odchylił się od kursu (teraz), czy mimo poprawek wciąż znosi go w jedną stronę, np. przez prąd lub wiatr (dotąd), i jak szybko odchyłka się zmienia (co zaraz będzie). W 1922 r. opisał to matematycznie jako sterowanie proporcjonalne do uchybu, jego całki i pochodnej. Rok później jego automatyczny sternik prowadził pancernik USS New Mexico.

Tak narodził się regulator PID. Sto lat później jest wciąż najczęściej używanym algorytmem sterowania na świecie: w termostatach, napędach, procesach chemicznych i w każdym kontrolerze lotu drona.

Pytanie na start. Dwa regulatory wysokości drona mają identyczne bieguny pętli zamkniętej. Po doczepieniu paczki oba zachowują się tak samo. A po poleceniu „wznieś się o 1 m” jeden przelatuje cel o 34 cm, drugi o 1,5 cm. Jak to możliwe? Odpowiedź w części 3.

1 Trzy człony: teraźniejszość, przeszłość, przyszłość

Regulator PID

u(t)=Kp e(t)+Ki∫0te(τ) dτ+Kd dedt,C(s)=Kp+Kis+Kds.u(t) = K_p\,e(t) + K_i\int_0^t e(\tau)\,\mathrm d\tau + K_d\,\frac{\mathrm de}{\mathrm dt},\qquad C(s) = K_p + \frac{K_i}{s} + K_ds .

Postać standardowa (przemysłowa): C(s)=Kp(1+1Tis+Tds)C(s) = K_p\left(1 + \frac{1}{T_is} + T_ds\right) z czasem zdwojenia Ti=Kp/KiT_i = K_p/K_i i czasem wyprzedzenia Td=Kd/KpT_d = K_d/K_p.

Zadania · część 1

3 zadania · ok. 15 min

  1. PID ma Kp=9,6K_p = 9{,}6, Ki=8K_i = 8, Kd=4,3K_d = 4{,}3. Podaj TiT_i i TdT_d.

    Odpowiedź

    Ti=9,6/8=1,2T_i = 9{,}6/8 = 1{,}2 s, Td=4,3/9,6≈0,45T_d = 4{,}3/9{,}6 \approx 0{,}45 s.

  2. Uchyb skacze z 0 do 1 i zostaje stały. Narysuj w myślach odpowiedź członu P i I. Po jakim czasie człon I da tyle co człon P?

    Odpowiedź

    P: stałe KpK_p. I: rampa KitK_it. Równe w t=Kp/Ki=Tit = K_p/K_i = T_i, stąd nazwa „czas zdwojenia”: po TiT_i suma P + I jest dwa razy większa niż samo P.

  3. Uchyb rośnie liniowo: e(t)=0,2te(t) = 0{,}2t. Ile wynosi wyjście członu PD Kp(e+Tde˙)K_p(e + T_d\dot e) w chwili tt i jaki uchyb „przewiduje”?

    Odpowiedź

    Kp(0,2t+0,2Td)=Kp⋅0,2(t+Td)K_p(0{,}2t + 0{,}2T_d) = K_p\cdot 0{,}2(t + T_d): dokładnie uchyb z chwili t+Tdt + T_d. Dla liniowego uchybu przewidywanie jest dokładne; dla zakrzywionego tylko przybliżone.

2 PID wysokości drona

Wysokość drona (m=1m = 1 kg, b=0,5b = 0{,}5 N·s/m, ciąg zawisu ustawiony w przód) to obiekt G(s)=1s(s+0,5)G(s) = \frac{1}{s(s + 0{,}5)} od korekty ciągu do wysokości. Ma już jedno całkowanie (prędkość → wysokość). Co daje każdy człon:

  • sam P: s2+0,5s+Kps^2 + 0{,}5s + K_p, tłumienie ζ=0,25/Kp\zeta = 0{,}25/\sqrt{K_p}, czyli coraz słabsze, im mocniej (lekcja 2.2 Bieguny i zera pętli zamkniętej, linie pierwiastkowe);
  • PD: dokłada tłumienie, ale stała siła (cięższy dron, wiatr w dół) zostawia uchyb F/KpF/K_p;
  • PID: usuwa ten uchyb. Pętla ma wtedy trzy bieguny.

Mianownik pętli zamkniętej 1+CG=01 + CG = 0:

s3+(0,5+Kd) s2+Kp s+Ki=0.s^3 + (0{,}5 + K_d)\,s^2 + K_p\,s + K_i = 0 .

Trzy nastawy, trzy współczynniki: bieguny można ustawić dowolnie. Wystarczy wybrać pożądany wielomian i porównać współczynniki. Warunek stabilności z kryterium Routha (lekcja 2.2): wszystkie współczynniki dodatnie i (0,5+Kd) Kp>Ki(0{,}5 + K_d)\,K_p > K_i. Za dużo całki przy za małym P i D rozkołysze pętlę.

Symulacja 1 PID wysokości drona: skok wartości zadanej o 1 m w t=1t = 1 s, doczepienie paczki 0,1 kg w t=8t = 8 s. Ciąg ograniczony do ±mg\pm mg wokół zawisu, filtr D z N=8N = 8. Ustawienia startowe to projekt z przykładu 6.1. Wyzeruj KiK_i i zobacz uchyb po paczce. Wyzeruj KdK_d i zobacz kołysanie. Przełączaj PID, PI-D i I-PD: odpowiedź na paczkę się nie zmienia, odpowiedź na skok tak.

Zadania · część 2

4 zadania · ok. 30 min

  1. Wyprowadź mianownik pętli zamkniętej s3+(0,5+Kd)s2+Kps+Kis^3 + (0{,}5 + K_d)s^2 + K_ps + K_i.

    Odpowiedź

    1+Kds2+Kps+Kis⋅1s(s+0,5)=01 + \frac{K_ds^2 + K_ps + K_i}{s}\cdot\frac{1}{s(s + 0{,}5)} = 0; mnożymy przez s2(s+0,5)s^2(s + 0{,}5): s3+0,5s2+Kds2+Kps+Ki=0s^3 + 0{,}5s^2 + K_ds^2 + K_ps + K_i = 0.

  2. PD z Kp=4K_p = 4. Dron okazuje się cięższy o 0,1 kg (zawis ustawiony dla 1 kg). O ile opadnie w stanie ustalonym?

    Odpowiedź

    Brakuje 0,1⋅9,81=0,9810{,}1\cdot 9{,}81 = 0{,}981 N. W stanie ustalonym Kpe=0,981K_pe = 0{,}981, czyli e≈0,245e \approx 0{,}245 m.

  3. Dla Kp=4K_p = 4, Kd=2,3K_d = 2{,}3 jakie największe KiK_i zachowuje stabilność?

    Odpowiedź

    (0,5+2,3)⋅4=11,2>Ki(0{,}5 + 2{,}3)\cdot 4 = 11{,}2 > K_i. Przy Ki=11,2K_i = 11{,}2 para biegunów leży na osi urojonej.

  4. W symulacji 1 ustaw Ki=25K_i = 25 przy domyślnych KpK_p i KdK_d. Pętla jest stabilna (sprawdź warunek), ale co się dzieje z przeregulowaniem i dlaczego?

    Odpowiedź

    (0,5+4,3)⋅9,6=46>25(0{,}5 + 4{,}3)\cdot 9{,}6 = 46 > 25, stabilna. Przeregulowanie rośnie: całka zbiera uchyb w czasie wznoszenia i musi go „oddać” przelotem nad celem. Do tego ciąg wchodzi w nasycenie, a całka dalej rośnie (to windup, lekcja 3.3 Nieliniowa rzeczywistość: nasycenie, windup, feedforward i gain scheduling).

3 Te same bieguny, różne zera: PID, PI-D, I-PD

Regulator nie musi traktować wartości zadanej rr i pomiaru yy tak samo. Ogólnie:

u=Kp(b r−y)+Ki∫(r−y) dt+Kd ddt(c r−y).u = K_p(b\,r - y) + K_i\int(r - y)\,\mathrm dt + K_d\,\frac{\mathrm d}{\mathrm dt}(c\,r - y) .

Całka zawsze działa na prawdziwy uchyb r−yr - y (inaczej zostałby uchyb ustalony). Wagi bb i cc wybieramy:

  • PID (b=c=1b = c = 1): wszystko od uchybu. Skok rr przechodzi przez człon D i daje kopnięcie sterowania (ang. derivative kick).
  • PI-D (b=1b = 1, c=0c = 0): D tylko od pomiaru. Bez kopnięcia; najczęstszy wybór w praktyce.
  • I-PD (b=c=0b = c = 0): wartość zadana działa tylko przez całkę. Najłagodniejsza reakcja na zmianę rr.

Pomiar yy zawsze przechodzi przez pełne Kp+Ki/s+KdsK_p + K_i/s + K_ds, więc mianownik pętli zamkniętej, czyli bieguny, jest ten sam we wszystkich trzech wersjach. Reakcja na zakłócenia (paczka, podmuch) też jest identyczna. Różni się tylko licznik transmitancji od rr do yy, czyli jej zera:

YR=Kds2+Kps+Kimianownik (PID),Kps+Kimianownik (PI-D),Kimianownik (I-PD).\frac{Y}{R} = \frac{K_ds^2 + K_ps + K_i}{\text{mianownik}}\ (\text{PID}),\qquad \frac{K_ps + K_i}{\text{mianownik}}\ (\text{PI-D}),\qquad \frac{K_i}{\text{mianownik}}\ (\text{I-PD}) .

Zera blisko osi urojonej przyspieszają start i dokładają przeregulowania (lekcja 2.2). Odpowiedź na pytanie z prologu: dla projektu z przykładu 6.1 (idealny człon D) PI-D ma jedno wolne zero w −Ki/Kp=−0,83-K_i/K_p = -0{,}83 i daje 34% przeregulowania, I-PD nie ma zer i daje 1,5%. Pełny PID (zera w −1,12±0,78j-1{,}12 \pm 0{,}78j) daje 23%. Z filtrem D (N=8N = 8, jak w symulacji 1) liczby są trochę inne: 29%, 1,5% i 26%, a pełny PID dodatkowo nasyca ciąg kopnięciem (część 3). Bieguny wszystkich trzech: −2-2 i −1,4±1,43j-1{,}4 \pm 1{,}43j. Projektowanie przez dwa niezależne tory (bieguny dla zakłóceń, zera dla wartości zadanej) nazywa się regulacją o dwóch stopniach swobody.

Zadania · część 3

3 zadania · ok. 25 min

  1. Ile wynosi sterowanie tuż po skoku rr o 1 m w wersji PID z filtrem D (N=8N = 8)? Ile w PI-D i I-PD?

    Odpowiedź

    Filtr D Kds1+Tds/N\frac{K_ds}{1 + T_ds/N} przy skoku daje natychmiast KdN/Td=KpNK_dN/T_d = K_pN. Razem z P: Kp(1+N)=9,6⋅9=86K_p(1 + N) = 9{,}6\cdot 9 = 86 N, prawie 9 razy więcej niż zapas ciągu. PI-D: Kp=9,6K_p = 9{,}6 N. I-PD: 0 (całka rośnie od zera), w maksimum ok. 1,2 N.

  2. Pokaż, że transmitancja od siły zakłócającej FF do wysokości jest taka sama dla PID, PI-D i I-PD.

    Odpowiedź

    Dla r=0r = 0 wszystkie trzy dają u=−(Kp+Ki/s+Kds) y=−C yu = -(K_p + K_i/s + K_ds)\,y = -C\,y. Wtedy y=G(u+F)y = G(u + F), czyli YF=G1+CG\frac YF = \frac{G}{1 + CG} niezależnie od bb i cc.

  3. Dlaczego I-PD jest wolniejszy od PI-D, mimo tych samych biegunów?

    Odpowiedź

    W I-PD nic nie „pcha” od razu: sterowanie od rr narasta tylko przez całkę. Brak zer w liczniku oznacza odpowiedź tak wolną, jak pozwalają same bieguny (czas narastania ok. 1,5 s zamiast 0,3–0,5 s). Kompromis: spokój kontra szybkość.

4 Typ pętli i uchyb ustalony

W lekcji 2.1 Schematy blokowe i transmitancja pętli zdefiniowaliśmy typ pętli jako liczbę całkowań w L(s)L(s). Z twierdzenia o wartości końcowej uchyb ustalony dla wejścia r(t)=tk/k!r(t) = t^k/k! (skok, rampa, parabola) zależy tylko od typu i jednej liczby:

typ pętliskokrampa ttparabola t2/2t^2/2
011+K0\frac{1}{1 + K_0}, K0=L(0)K_0 = L(0)∞∞
101Kv\frac{1}{K_v}, Kv=lim⁡s→0sL(s)K_v = \lim_{s\to0} sL(s)∞
2001Ka\frac{1}{K_a}, Ka=lim⁡s→0s2L(s)K_a = \lim_{s\to0} s^2L(s)

Dla drona: pętla prędkości z regulatorem P to typ 0 (K0=Kp/bK_0 = K_p/b), z PI typ 1 (Kv=Ki/bK_v = K_i/b), a pętla wysokości z PID to typ 2 (Ka=Ki/bK_a = K_i/b): śledzi bez uchybu nawet stałą prędkość wznoszenia, a przy stałym przyspieszeniu zostaje mu stały uchyb.

Dla zakłóceń liczy się co innego: liczba całkowań w regulatorze, czyli między uchybem a miejscem wejścia zakłócenia. Całkowanie w obiekcie leży za siłą zakłócającą, więc uchybu od niej nie usuwa (zadanie 4.3).

Symulacja 2 Trzy pętle drona (typ 0, 1, 2) i trzy wejścia (skok, rampa, parabola). Sprawdź całą tabelę: kiedy uchyb dąży do zera, kiedy do stałej, a kiedy rośnie bez końca.

Zadania · część 4

3 zadania · ok. 25 min

  1. Pętla prędkości z regulatorem P, Kp=3,5K_p = 3{,}5. Uchyb ustalony dla skoku 1 m/s?

    Odpowiedź

    K0=3,5/0,5=7K_0 = 3{,}5/0{,}5 = 7, uchyb 1/8=0,1251/8 = 0{,}125 m/s.

  2. PID wysokości (Ki=8K_i = 8). Wartość zadana rośnie z przyspieszeniem 1 m/s² (r=t2/2r = t^2/2). Jaki uchyb się ustali?

    Odpowiedź

    Ka=Ki/b=16K_a = K_i/b = 16, uchyb 1/16≈0,061/16 \approx 0{,}06 m.

  3. PD wysokości to pętla typu 1 (całkowanie w obiekcie). Dlaczego mimo to stała siła zostawia uchyb, a skok wartości zadanej nie?

    Odpowiedź

    Uchyb od rr zależy od typu całej pętli: 11+L→0\frac{1}{1 + L}\to 0 dla skoku. Uchyb od siły: G1+CG→1C(0)=1Kp\frac{G}{1 + CG}\to\frac{1}{C(0)} = \frac{1}{K_p}, bo całkowanie w GG jest za siłą i skraca się w tym ilorazie. Żeby siła nie zostawiała uchybu, całkowanie musi być przed nią, czyli w regulatorze.

5 PID w dziedzinie częstotliwości

Na wykresie Bodego trzy człony to trzy proste: P poziomo (KpK_p, faza 0∘0^\circ), I opada −20 dB/dek. (faza −90∘-90^\circ), D rośnie +20 dB/dek. (faza +90∘+90^\circ). Suma ma kształt litery V z minimum przy ω=Ki/Kd\omega = \sqrt{K_i/K_d}, gdzie składowe I i D się znoszą, ∣C∣=Kp|C| = K_p i faza wynosi zero.

W języku lekcji 2.5: poniżej tej częstotliwości PID działa jak korektor opóźniający (duże wzmocnienie dla dokładności, faza ujemna), powyżej jak korektor wyprzedzający (dodatnia faza w okolicy ωc\omega_c, ale rosnące wzmocnienie szumu). Dobrze nastrojony PID ma minimum V wyraźnie poniżej ωc\omega_c, tak żeby w ωc\omega_c dominował człon D z dodatnią fazą.

Symulacja 3 Charakterystyka Bodego regulatora PID i jego trzech składowych. Odczyt pokazuje zapas fazy z obiektem drona 1s(s+0,5)\frac{1}{s(s + 0{,}5)}. Wyzeruj KdK_d: zapas fazy znika. Przesuwaj KiK_i i patrz, jak minimum V wędruje.

Zadania · część 5

3 zadania · ok. 20 min

  1. Dla Kp=9,6K_p = 9{,}6, Ki=8K_i = 8, Kd=4,3K_d = 4{,}3: gdzie jest minimum ∣C∣|C| i ile wynosi?

    Odpowiedź

    ω=8/4,3≈1,36\omega = \sqrt{8/4{,}3} \approx 1{,}36 rad/s, ∣C∣=9,6|C| = 9{,}6 (20 dB).

  2. Pętla z tym PID ma ωc≈4,4\omega_c \approx 4{,}4 rad/s. Jaką fazę ma tam regulator? (Oblicz.)

    Odpowiedź

    C(j4,4)=9,6+j(4,3⋅4,4−8/4,4)=9,6+j17,1C(j4{,}4) = 9{,}6 + j(4{,}3\cdot 4{,}4 - 8/4{,}4) = 9{,}6 + j17{,}1, faza arctan⁡(17,1/9,6)≈61∘\arctan(17{,}1/9{,}6) \approx 61^\circ. Obiekt ma tam −90∘−arctan⁡8,8≈−174∘-90^\circ - \arctan 8{,}8 \approx -174^\circ, razem −113∘-113^\circ: zapas ok. 67∘67^\circ.

  3. Dlaczego sam regulator PI nie wystarczy dla wysokości drona? Odpowiedz przez fazę.

    Odpowiedź

    Obiekt 1s(s+0,5)\frac{1}{s(s + 0{,}5)} ma fazę od −90∘-90^\circ w dół do −180∘-180^\circ. PI dokłada fazę ujemną (od −90∘-90^\circ do 0∘0^\circ). Faza pętli to −180∘−arctan⁡(ω/0,5)+arctan⁡(ωTi)-180^\circ - \arctan(\omega/0{,}5) + \arctan(\omega T_i): powyżej −180∘-180^\circ tylko wtedy, gdy zero regulatora jest wolniejsze od bieguna obiektu (Ti>2T_i > 2 s). Routh daje to samo: stabilność tylko przy Ki<0,5KpK_i < 0{,}5K_p. Taka pętla jest stabilna, ale bardzo wolna (np. Ti=20T_i = 20 s daje ωc≈0,16\omega_c \approx 0{,}16 rad/s). Przy nastawach z symulacji 1 (Ki=8>4,8K_i = 8 > 4{,}8) i Kd=0K_d = 0 pętla jest niestabilna. Szybka pętla wysokości potrzebuje D.

6 Metoda i przykłady rozwiązane

Metoda: PID przez lokowanie biegunów (obiekt 2. rzędu)

  1. Model: G=ks2+a1s+a0G = \frac{k}{s^2 + a_1s + a_0} (u nas k=1k = 1, a1=0,5a_1 = 0{,}5, a0=0a_0 = 0).
  2. Cel: para dominująca ω0\omega_0, ζ\zeta z wymagań (lekcja 2.2) i trzeci biegun rzeczywisty −p-p, nie wolniejszy niż ζω0\zeta\omega_0.
  3. Porównanie s3+(a1+kKd)s2+(a0+kKp)s+kKis^3 + (a_1 + kK_d)s^2 + (a_0 + kK_p)s + kK_i z (s+p)(s2+2ζω0s+ω02)(s + p)(s^2 + 2\zeta\omega_0s + \omega_0^2).
  4. Struktura: zera wybierz osobno (PID, PI-D, I-PD) pod wymagania na odpowiedź na rr.
  5. Sprawdzenie: filtr D, nasycenie, symulacja z szumem; zapas fazy.

Przykład 6.1 PID wysokości drona przez lokowanie biegunów

Dron G=1s(s+0,5)G = \frac{1}{s(s + 0{,}5)}. Cel: para ω0=2\omega_0 = 2 rad/s, ζ=0,7\zeta = 0{,}7, trzeci biegun w −2-2.

  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+Kd)s2+Kps+Kis^3 + (0{,}5 + K_d)s^2 + K_ps + K_i: Kd=4,3K_d = 4{,}3, Kp=9,6K_p = 9{,}6, Ki=8K_i = 8.
  3. Routh: 4,8⋅9,6=46>84{,}8\cdot 9{,}6 = 46 > 8 ✓.
  4. Odpowiedzi na skok 1 m (python-control): PID 23% przeregulowania, czas ustalania 3,2 s; PI-D 34%, 3,1 s; I-PD 1,5%, 2,4 s, ale czas narastania 1,5 s zamiast 0,3 s.

Wynik: Kp=9,6K_p = 9{,}6 N/m, Ki=8K_i = 8 N/(m·s), Kd=4,3K_d = 4{,}3 N·s/m. Zapas fazy 67∘67^\circ przy ωc=4,4\omega_c = 4{,}4 rad/s (z filtrem D, N=8N = 8: 56∘56^\circ przy 4,8 rad/s, lekcja 3.4).

Sprawdzenie: sam PD z tymi KpK_p, KdK_d daje 14% przeregulowania; dodanie całki dokłada zero i przeregulowanie rośnie ✓. Same bieguny nie mówią wszystkiego.

Przykład 6.2 Paczka: PD kontra PID

Dron z przykładu 6.1 wisi na zadanej wysokości. Doczepiamy paczkę 0,1 kg (brakuje 0,98 N ciągu). Porównaj PD (Kp=4K_p = 4, Kd=2,3K_d = 2{,}3) i PID z przykładu 6.1.

  1. PD: ustalony spadek 0,981/4≈0,250{,}981/4 \approx 0{,}25 m, na zawsze.
  2. PID: największy spadek ok. 8 cm, po ok. 2,3 s dron jest z powrotem w pasie ±2 cm, uchyb ustalony zero.
  3. Gdzie podziała się brakująca siła? Całka urosła do Ki∫e=0,981K_i\int e = 0{,}981 N: regulator „nauczył się” nowego zawisu.

Wynik: PD: 25 cm uchybu na stałe. PID: 8 cm chwilowo, 0 cm po kilku sekundach.

Sprawdzenie: w symulacji 1 przy t>8t > 8 s uchyb wraca do zera dla każdej struktury ✓. Ta sama reakcja dla PID, PI-D, I-PD, bo bieguny są te same.

Przykład 6.3 Kopnięcie członu D

PID z przykładu 6.1, filtr D N=8N = 8, zmiana wartości zadanej o 1 m. Ile wynosi sterowanie w pierwszej chwili?

  1. Człon D z filtrem: Kds1+(Td/N)s\frac{K_ds}{1 + (T_d/N)s}; odpowiedź na skok w chwili 0+0^+: KdN/Td=KpN=76,8K_dN/T_d = K_pN = 76{,}8 N.
  2. Plus człon P: 9,69{,}6 N, razem 8686 N (symulacja: 86,4 N).
  3. Zapas ciągu drona: ±9,81\pm 9{,}81 N. Silniki dostają skok do maksimum, a regulator „myśli”, że dał 86 N.

Wynik: 86 N, prawie 9 razy więcej niż dostępne. PI-D: 9,6 N, I-PD: 0 N na starcie.

Sprawdzenie: bez filtra kopnięcie byłoby impulsem (nieskończonym) ✓. Dlatego w kontrolerach lotu człon D liczy się od pomiaru, nie od uchybu.

Przykład 6.4 Wznoszenie ze stałą prędkością

Wartość zadana wysokości rośnie liniowo 0,5 m/s. Jaki uchyb ustalony dla PD (Kp=4K_p = 4, Kd=2,3K_d = 2{,}3) i dla PID z przykładu 6.1?

  1. PD: pętla typu 1, Kv=lim⁡sL=Kp/0,5=8K_v = \lim sL = K_p/0{,}5 = 8, uchyb 0,5/8≈0,060{,}5/8 \approx 0{,}06 m.
  2. Fizycznie: ruch 0,5 m/s wymaga dodatkowej siły na opór b⋅0,5=0,25b\cdot 0{,}5 = 0{,}25 N, którą PD daje tylko z uchybu: 0,25/40{,}25/4 ✓.
  3. PID: typ 2, uchyb dla rampy zero.

Wynik: PD ok. 6 cm za wartością zadaną; PID bez uchybu.

Sprawdzenie: symulacja 2 (typ 1 i rampa) pokazuje ten sam mechanizm ✓.

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

„Bieguny wyznaczają odpowiedź skokową.”
Wyznaczają tempo i charakter, ale zera potrafią zmienić przeregulowanie z 1,5% na 34%. Odpowiedź na zakłócenia i na wartość zadaną to dwie różne transmitancje.
„Więcej całki = dokładniej.”
Uchyb ustalony jest zerowy przy każdym Ki>0K_i > 0. Więcej całki to szybsze usuwanie uchybu, ale też mniej fazy, większe przeregulowanie i windup.
„Człon D liczy się od uchybu.”
Tak w podręcznikach, nie w praktyce. Od pomiaru: bez kopnięcia przy zmianie wartości zadanej, ta sama stabilność.
„Każdą pętlę trzeba regulować pełnym PID.”
Większość pętli przemysłowych to PI: D jest kłopotliwy przy szumie i wolnych procesach. Dron potrzebuje D, bo obiekt ma całkowanie i inercję (ciąg → prędkość → wysokość): sam PI stabilizuje go tylko bardzo wolno.
„Typ pętli mówi o uchybie od zakłóceń.”
Tylko o uchybie od wartości zadanej. Dla zakłóceń liczą się całkowania między uchybem a miejscem wejścia zakłócenia.

8 Zadania do przemyślenia

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

Zadania do przemyślenia

5 zadań · ok. 1,5 godziny

  1. Sternik Minorsky’ego. Okręt płynie przy stałym bocznym prądzie. Co w zachowaniu okrętu odpowiada uchybowi ustalonemu, gdy sternik reaguje tylko na bieżącą odchyłkę kursu? Jaki człon ten uchyb usuwa i jak sternik „wykonuje” go w głowie?

    Rozwiązanie
    1. Prąd to stałe zakłócenie. Sternik P musi trzymać ster stale wychylony, a do tego potrzebuje stałej odchyłki kursu: okręt płynie lekko obok zadanego kierunku.
    2. Człon I: sternik zauważa, że „ciągle znosi w lewo”, i przestawia „zero” steru. To jest pamięć uchybu, czyli całka.
  2. Tempomat pod górę. Tempomat z regulatorem PI wjeżdża na wzniesienie o stałym nachyleniu. Czy prędkość wróci do zadanej? A jeśli nachylenie rośnie liniowo z drogą?

    Rozwiązanie
    1. Stałe nachylenie to stała siła: PI ma całkę przed nią, więc uchyb wraca do zera.
    2. Siła rosnąca liniowo w czasie (przy stałej prędkości nachylenie rośnie liniowo z czasem) to „rampa” zakłócenia; jedna całka w regulatorze zostawi stały uchyb, potrzebne byłyby dwie. W praktyce takie drogi nie występują długo, a uchyb jest mały.
  3. Enkoder z kwantyzacją. Pozycję silnika mierzy enkoder o rozdzielczości 0,01 rad, a regulator liczy pochodną co 1 ms. Jakie „skoki” prędkości widzi człon D przy jednym takcie enkodera? Co z tego wynika?

    Rozwiązanie
    1. Jedna zmiana odczytu o 0,01 rad w ciągu 1 ms to 10 rad/s „prędkości”, podczas gdy wolny ruch o 1 rad/s daje zmianę odczytu co 10 ms. Pochodna to seria szpilek 10 rad/s przeplatanych zerami.
    2. Człon D zamienia je na szarpnięcia momentu. Rozwiązania: filtr D, liczenie prędkości z dłuższego okna albo z czasu między taktami enkodera.
  4. Ile członów potrzeba? Obiekt 1s2\frac{1}{s^2} (podwójny integrator, np. dron bez oporu). Który z regulatorów P, PI, PD, PID go stabilizuje? Uzasadnij przez mianownik.

    Rozwiązanie
    1. P: s2+Kps^2 + K_p, bieguny na osi urojonej, nie. PI: s3+Kps+Kis^3 + K_ps + K_i, brak s2s^2, Routh: nie.
    2. PD: s2+Kds+Kps^2 + K_ds + K_p, tak. PID: s3+Kds2+Kps+Kis^3 + K_ds^2 + K_ps + K_i, tak przy KdKp>KiK_dK_p > K_i. D jest konieczny.
  5. Kolejność strojenia. Technik stroi PID „od P”: zwiększa KpK_p, aż pętla zacznie oscylować, potem dokłada D, potem I. Dlaczego w pętli wysokości drona sam P „od razu oscyluje” i ta metoda jest mylna?

    Rozwiązanie
    1. Z samym P mianownik s2+0,5s+Kps^2 + 0{,}5s + K_p ma ζ=0,25/Kp\zeta = 0{,}25/\sqrt{K_p}: już przy Kp=1K_p = 1 to ζ=0,25\zeta = 0{,}25, ok. 44% przeregulowania. Nie ma „dobrego P”, od którego można zacząć.
    2. Dla takich obiektów stroi się najpierw D (tłumienie), potem P, na końcu I, albo od razu z modelu. Systematyczne metody strojenia w lekcji 3.2 Strojenie: model z testu, reguły nastaw i regulacja kaskadowa.

9 Sprawdź się

Odpowiedz w myślach, zanim rozwiniesz odpowiedź.

1 Co robi każdy z członów P, I, D?

P reaguje na uchyb teraz, I usuwa uchyb ustalony (pamięć), D przewiduje uchyb za TdT_d i daje tłumienie.

2 Co to TiT_i i TdT_d?

Ti=Kp/KiT_i = K_p/K_i (czas zdwojenia), Td=Kd/KpT_d = K_d/K_p (czas wyprzedzenia).

3 Dlaczego PID wysokości drona ma trzy bieguny i ile nastaw je ustawia?

Obiekt ma 2 bieguny, całka dokłada trzeci. Trzy nastawy KpK_p, KiK_i, KdK_d ustawiają trzy współczynniki mianownika.

4 Czym różnią się PID, PI-D i I-PD?

Tym, jak wartość zadana wchodzi do członów P i D. Bieguny i reakcja na zakłócenia są te same, zera w torze r→yr \to y różne.

5 Co to kopnięcie członu D?

Skok sterowania przy skokowej zmianie wartości zadanej, gdy D działa na uchyb: Kp(1+N)K_p(1 + N) z filtrem.

6 Jaki uchyb ma pętla typu 1 dla rampy?

1/Kv1/K_v, Kv=lim⁡s→0sL(s)K_v = \lim_{s\to0} sL(s).

7 Gdzie musi być całkowanie, żeby stała siła nie zostawiała uchybu?

Między uchybem a miejscem wejścia siły, czyli w regulatorze.

8 Jak wygląda PID na wykresie Bodego?

Litera V z minimum KpK_p przy Ki/Kd\sqrt{K_i/K_d}; faza od −90∘-90^\circ do +90∘+90^\circ.

10 Karta wzorów i co dalej

PID

C=Kp+Kis+Kds=Kp(1+1Tis+Tds)C = K_p + \frac{K_i}{s} + K_ds = K_p\left(1 + \frac{1}{T_is} + T_ds\right)

filtr D: Kds1+Tds/N\frac{K_ds}{1 + T_ds/N}, N=5N = 5–20

u=Kp(br−y)+Ki ⁣∫(r−y)+Kdddt(cr−y)u = K_p(br - y) + K_i\!\int(r - y) + K_d\frac{\mathrm d}{\mathrm dt}(cr - y)

PID: b=c=1b = c = 1; PI-D: c=0c = 0; I-PD: b=c=0b = c = 0

kopnięcie: Kp(1+N) ΔrK_p(1 + N)\,\Delta r

Dron i uchyby

G=1s(s+0,5)G = \frac{1}{s(s + 0{,}5)}: s3+(0,5+Kd)s2+Kps+Kis^3 + (0{,}5 + K_d)s^2 + K_ps + K_i

Routh: (0,5+Kd)Kp>Ki(0{,}5 + K_d)K_p > K_i

typ 0: skok 11+K0\frac{1}{1 + K_0}; typ 1: rampa 1Kv\frac{1}{K_v}; typ 2: parabola 1Ka\frac{1}{K_a}

K0=L(0)K_0 = L(0), Kv=lim⁡sLK_v = \lim sL, Ka=lim⁡s2LK_a = \lim s^2L

minimum ∣C∣=Kp|C| = K_p przy ω=Ki/Kd\omega = \sqrt{K_i/K_d}

Do przeczytania

  • Obowiązkowo: K. J. Åström, R. M. Murray, Feedback Systems, rozdz. o regulatorach PID (wolny dostęp online); J. Kowal, Podstawy automatyki, rozdz. 10 (algorytmy P, I, PI, PD, PID), po polsku.
  • Dla chętnych: K. J. Åström, T. Hägglund, Advanced PID Control, rozdz. 3 (warianty PID, wagi wartości zadanej, filtr D); S. Bennett, „Nicholas Minorsky and the automatic steering of ships”, IEEE Control Systems Magazine (1984), dla historii.

Umiemy zaprojektować PID, gdy znamy model. Zwykle go nie znamy, a w każdym razie nie dokładnie. Następna lekcja pokazuje, jak zdobyć model z prostego testu, jak dobrać nastawy regułami, które działają od 80 lat, i jak ułożyć pętle w kaskadę: wewnętrzną szybką (prędkość) i zewnętrzną wolną (wysokość), dokładnie tak jak w kontrolerach lotu.

Korzystają z tej lekcji 3.2 Strojenie: model z testu, reguły nastaw i regulacja kaskadowa4.1 Sprzężenie od stanu, lokowanie biegunów i sterowalność