Matematyka i fizyka od podstaw
PLEN

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

Zanim zaczniesz 3.2 Strojenie: model z testu, reguły nastaw i regulacja kaskadowa

Nowe pojęcia w tej lekcji (3)

harmonogramowanie wzmocnień (gain scheduling)sterowanie w przód (feedforward)windup (nasycenie całki)

Automatyka 3.3

Nieliniowa rzeczywistość: nasycenie, windup, feedforward i gain scheduling

Cała teoria z części II zakładała liniowość: dwa razy większy uchyb, dwa razy większa reakcja. Prawdziwe silniki mają jednak maksymalny ciąg, zawory otwierają się najwyżej do końca, a dron z paczką waży więcej niż bez niej. Ta lekcja zbiera cztery inżynierskie sposoby radzenia sobie z tą rzeczywistością: anti-windup, sterowanie w przód, nastawy zależne od punktu pracy i najprostszy regulator świata, który w ogóle nie udaje liniowości.

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
G. C. Goodwin i in., Control System Design, rozdz. 10.5–10.7 i 11.2–11.3; K. J. Åström, T. Hägglund, Advanced PID Control, rozdz. 3.5; S. A. Frank, Control Theory Tutorial, rozdz. 10.3; J. Kowal, Podstawy automatyki, rozdz. 6.4

0 Prolog: 2,5 metra za daleko

W lekcji 3.2 dron z regulatorem PID dostał polecenie „wznieś się o 5 m”. Przy skoku o 1 m ten sam regulator przelatywał cel o niecałe 30 cm. Tu przeleciał o 2,5 m, czyli o połowę skoku, i rozpędził się do 7,6 m/s. Model liniowy przewidywałby to samo przeregulowanie procentowo przy każdym skoku. Coś więc w tej pętli nie jest liniowe.

Tym czymś jest nasycenie: silniki mogą dać najwyżej podwójny ciąg zawisu, a regulator „żądał” prawie 50 N korekty. Przez kilka sekund pętla była w praktyce otwarta: regulator wołał „więcej”, silniki dawały ile mogły, a człon całkujący, który nic o tym nie wiedział, sumował uchyb bez końca. Ten efekt nazywa się windup, po polsku czasem „nakręcanie się całki”.

Pytanie na start. Czy da się usunąć ten przelot bez zmiany KpK_p, KiK_i, KdK_d? Odpowiedź w części 2.

1 Nasycenie i windup

Każdy element wykonawczy ma granice: umin≤u≤umaxu_\text{min} \le u \le u_\text{max}. Dopóki regulator ich nie dotyka, wszystko z części II obowiązuje. Kiedy dotyka, pętla jest w praktyce otwarta, bo sterowanie przestaje zależeć od uchybu.

Dla członów P i D to nie problem: przestają „pchać” w chwili, gdy uchyb zmaleje. Człon I ma jednak pamięć. Przez cały czas nasycenia uchyb jest duży, więc całka rośnie (u drona do ok. 29 N, choć do utrzymania wysokości potrzeba zero). Kiedy dron dochodzi do celu, uchyb spada do zera, ale całka nadal każe pchać w górę. Rozładuje się dopiero wtedy, gdy uchyb będzie przez jakiś czas ujemny, czyli gdy dron przeleci cel.

Zadania · część 1

3 zadania · ok. 15 min

  1. Dron z PID (Kp=9,6K_p = 9{,}6) dostaje skok wartości zadanej o 1 m, a potem o 5 m. W którym przypadku człon P od razu nasyca ciąg (±9,81\pm 9{,}81 N)?

    Odpowiedź

    Skok 1 m: 9,69{,}6 N, tuż poniżej granicy. Skok 5 m: 48 N, prawie 5 razy powyżej. Tylko drugi skok nasyca ciąg i tylko on „nakręca” całkę.

  2. Dlaczego windup jest typowy przy dużych zmianach wartości zadanej i przy rozruchu, a rzadki przy zwykłej pracy?

    Odpowiedź

    W zwykłej pracy uchyby są małe, a sterowanie zostaje w granicach liniowych. Duży skok wartości zadanej albo start od zera daje duży, długotrwały uchyb przy sterowaniu na granicy, a to idealne warunki do rośnięcia całki.

  3. Zawór w pętli przepływu jest zablokowany przez 10 minut (awaria). Regulator PI dalej działa. Co się stanie po odblokowaniu zaworu?

    Odpowiedź

    Przez 10 minut całka rosła, więc sterowanie stoi na skrajnym położeniu. Po odblokowaniu zawór otworzy się na maksimum i zostanie tam długo, aż całka się rozładuje: duży przelot przepływu. Bez anti-windup awaria trwająca minuty daje skutki jeszcze długo po jej usunięciu.

2 Anti-windup

Lekarstwo: powiedzieć całce o nasyceniu. Dwie najczęstsze metody:Åström–Hägglund 3.5

  • Zatrzymanie całki (ang. clamping, conditional integration): gdy wyjście jest w nasyceniu i uchyb pcha w tę samą stronę, nie całkuj. Jedna linijka kodu.
  • Sprzężenie zwrotne całki (ang. back-calculation): różnica między sterowaniem obliczonym uu a zrealizowanym usatu_\text{sat} cofa całkę: dIdt=Kie+usat−uTt,Tt≈TiTd (dla PI zwykle Tt≈Ti).\frac{\mathrm dI}{\mathrm dt} = K_ie + \frac{u_\text{sat} - u}{T_t},\qquad T_t \approx \sqrt{T_iT_d}\ \text{(dla PI zwykle } T_t \approx T_i\text{)} . Działa też wtedy, gdy nasycenie dzieje się poza regulatorem, byle znać usatu_\text{sat} (np. z pomiaru położenia zaworu).

Odpowiedź na pytanie z prologu: tak. Nastawy zostają te same, a zmienia się tylko to, co całka robi w czasie nasycenia. Przeregulowanie spada z 49,5% do 14% (zatrzymanie całki) albo 18,6% (sprzężenie zwrotne). Trzecia, często najlepsza metoda to nie dopuszczać do nasycenia: zamiast skoku wartości zadanej podawać łagodną trajektorię (część 3) albo ograniczyć prędkość jej zmian, jak w kaskadzie z lekcji 3.2 Strojenie: model z testu, reguły nastaw i regulacja kaskadowa.

Symulacja 1 PID wysokości drona z lekcji 3.1 (D od pomiaru) i ciąg ograniczony do ±mg\pm mg wokół zawisu. Zielona krzywa to stan członu całkującego. Porównaj trzy warianty przy skoku 5 m, a potem zmniejsz skok do 1 m: anti-windup przestaje cokolwiek zmieniać.

Zadania · część 2

3 zadania · ok. 25 min

  1. Zapisz w pseudokodzie krok regulatora PI z zatrzymaniem całki.

    Odpowiedź
    e = r - y
    u = Kp*e + I
    u_sat = min(max(u, umin), umax)
    if u == u_sat or (u > umax and e < 0) or (u < umin and e > 0):
        I = I + Ki*e*dt   # całkuj, chyba że uchyb pcha dalej w nasycenie
    wyślij(u_sat)
  2. Dla PID z Ti=1,2T_i = 1{,}2 s, Td=0,45T_d = 0{,}45 s policz TtT_t dla sprzężenia zwrotnego całki.

    Odpowiedź

    Tt=1,2⋅0,45≈0,73T_t = \sqrt{1{,}2\cdot 0{,}45} \approx 0{,}73 s.

  3. W symulacji 1 zmniejsz zapas ciągu do ±4\pm 4 N. Jak zmienia się przewaga anti-windup? Dlaczego?

    Odpowiedź

    Bez anti-windup przelot rośnie dramatycznie (nasycenie trwa dłużej, całka rośnie bardziej). Z anti-windup przelot zostaje umiarkowany. Im słabszy element wykonawczy w stosunku do zadania, tym ważniejszy anti-windup.

3 Sterowanie w przód

Sprzężenie zwrotne reaguje na uchyb, który już powstał. Jeśli wiemy z góry, co się stanie, możemy zareagować wcześniej. To sterowanie w przód (ang. feedforward). Robimy to od lekcji 1.1: ciąg zawisu m^g\hat mg to feedforward. Regulator pracuje tylko na różnicy.Goodwin 10.5

Dwa rodzaje:

  • od wartości zadanej: jeśli dron ma lecieć po trajektorii r(t)r(t), potrzebna siła wynika z modelu: uff=m^ r¨+b^ r˙u_\text{ff} = \hat m\,\ddot r + \hat b\,\dot r. Przy idealnym modelu uchyb jest zerowy, a sprzężenie zwrotne nic nie robi;
  • od mierzalnego zakłócenia: jeśli wiemy, że doczepiono paczkę 0,1 kg (albo zmierzyliśmy spadek napięcia baterii), dodajemy brakującą siłę od razu, zanim powstanie uchyb.

Uwaga na strukturę regulatora: w symulacji 2 człon D działa na uchyb. Jeśli regulator ma D od pomiaru (PI-D z lekcji 3.1), człon −Kdz˙-K_d\dot z hamuje także zamierzony ruch i feedforward musi to oddać: dochodzi składnik Kdr˙K_d\dot r (a przy wadze b<1b < 1 także Kp(1−b)rK_p(1 - b)r). Ogólna zasada: feedforward dostarcza wszystko, czego regulator nie dostaje od wartości zadanej.

Feedforward nie zmienia biegunów pętli, więc nie może jej zdestabilizować. Błąd modelu daje tylko gorsze śledzenie, które poprawia sprzężenie zwrotne. Podział ról: feedforward robi większość pracy, sprzężenie zwrotne poprawia błędy. Trajektoria musi być gładka (mieć pochodne): skoku nie da się „wysterować w przód”, bo wymagałby nieskończonej siły. Dlatego kontrolery lotu planują trajektorie, np. wielomianami 5. stopnia o minimalnym szarpnięciu.

Symulacja 2 Wznoszenie o 5 m po gładkiej trajektorii (wielomian 5. stopnia). Model zakłada 1 kg. Włączaj i wyłączaj feedforward. Zmień prawdziwą masę: feedforward z błędnym modelem i tak pomaga. Skróć manewr: rośnie przyspieszenie i w końcu ciąg się nasyca.

Zadania · część 3

4 zadania · ok. 30 min

  1. Trajektoria r(t)=5(10s3−15s4+6s5)r(t) = 5(10s^3 - 15s^4 + 6s^5), s=t/Ts = t/T, T=3T = 3 s. Policz największą prędkość (w s=1/2s = 1/2) i jej siłę oporu.

    Odpowiedź

    r˙=5T(30s2−60s3+30s4)\dot r = \frac{5}{T}(30s^2 - 60s^3 + 30s^4); w s=1/2s = 1/2: 53⋅1,875=3,125\frac53\cdot 1{,}875 = 3{,}125 m/s. Opór: 0,5⋅3,125≈1,560{,}5\cdot 3{,}125 \approx 1{,}56 N.

  2. Największe przyspieszenie tej trajektorii to 5T2⋅5,77\frac{5}{T^2}\cdot 5{,}77. Ile wynosi dla T=3T = 3 s i dla T=1,5T = 1{,}5 s? Kiedy feedforward przekroczy zapas ciągu mgmg?

    Odpowiedź

    T=3T = 3: 3,23{,}2 m/s². T=1,5T = 1{,}5: 12,812{,}8 m/s², czyli siła 12,812{,}8 N plus opór: ponad 9,819{,}81 N. Granica: 5⋅5,77/T2≈9,81−5\cdot 5{,}77/T^2 \approx 9{,}81 - opór, czyli T≈1,8T \approx 1{,}8 s.

  3. Bez feedforward największy uchyb to ok. 40 cm, z idealnym feedforward 0. Prawdziwa masa 1,2 kg, model 1 kg: z feedforward ok. 17 cm, bez ok. 50 cm. Wyjaśnij, skąd te 17 cm.

    Odpowiedź

    Dwa błędy: ciąg zawisu jest za mały o 0,2g≈20{,}2g \approx 2 N (stałe zakłócenie, które usuwa całka), a siła bezwładności m^r¨\hat m\ddot r jest o 17% za mała. Feedforward daje ponad 80% potrzebnej siły, sprzężenie zwrotne musi dołożyć tylko resztę.

  4. Dlaczego feedforward nie może zdestabilizować pętli, a zbyt duże KpK_p może?

    Odpowiedź

    Feedforward to sygnał dodany z zewnątrz, który nie zależy od wyjścia. Nie ma go w mianowniku 1+CG1 + CG, więc nie zmienia biegunów. KpK_p jest w pętli i przesuwa bieguny.

4 Gain scheduling

Wiele obiektów zmienia swoje parametry z punktem pracy. Dron z ładunkiem 2 kg ma dwa razy mniejsze przyspieszenie na niuton. Samolot przy dwukrotnie większej prędkości ma cztery razy większe ciśnienie dynamiczne, więc ster działa cztery razy mocniej. Wymiennik ciepła przy małym przepływie ma dłuższe opóźnienie.

Gain scheduling (dosłownie „harmonogram wzmocnień”) to tablica nastaw dla kilku punktów pracy i interpolacja między nimi według mierzalnej zmiennej harmonogramu (masa, prędkość, ciśnienie dynamiczne, przepływ). Każdy punkt projektuje się metodami liniowymi. Tak sterowane są praktycznie wszystkie samoloty z cyfrowym układem sterowania (lekcja 8 Augmentacja stateczności: tłumik odchylenia i pochylenia).Frank 10.3

Dla drona wystarczy wzór, nie tablica. Mianownik pętli zamkniętej z masą mm to ms3+(b+Kd)s2+Kps+Kims^3 + (b + K_d)s^2 + K_ps + K_i. Jeśli przemnożymy nastawy przez masę (Kp′=mKpK_p' = mK_p, Ki′=mKiK_i' = mK_i, Kd′=m(Kd+b)−bK_d' = m(K_d + b) - b), mianownik to mm razy stary: te same bieguny przy każdej masie.

Symulacja 3 Odpowiedź na skok 1 m (PID od uchybu, bez nasycenia) dla drona o różnej masie. Czerwona: nastawy z lekcji 3.1, dobrane dla 1 kg. Niebieska: nastawy skalowane masą. Przesuń masę do 3 kg.

Zadania · część 4

3 zadania · ok. 20 min

  1. Dron 2 kg, nastawy dla 1 kg (Kp=9,6K_p = 9{,}6, Ki=8K_i = 8, Kd=4,3K_d = 4{,}3). Napisz mianownik i sprawdź stabilność.

    Odpowiedź

    2s3+4,8s2+9,6s+82s^3 + 4{,}8s^2 + 9{,}6s + 8. Routh: 4,8⋅9,6=46>2⋅8=164{,}8\cdot 9{,}6 = 46 > 2\cdot 8 = 16 ✓, stabilna. Bieguny −0,6±1,73j-0{,}6 \pm 1{,}73j i −1,19-1{,}19: słabiej tłumione (przeregulowanie 41% zamiast 23%).

  2. Sprawdź, że nastawy skalowane dają mm razy stary mianownik.

    Odpowiedź

    ms3+(b+m(Kd+b)−b)s2+mKps+mKi=m(s3+(Kd+b)s2+Kps+Ki)ms^3 + (b + m(K_d + b) - b)s^2 + mK_ps + mK_i = m\left(s^3 + (K_d + b)s^2 + K_ps + K_i\right) ✓.

  3. Skąd dron może znać swoją masę w locie?

    Odpowiedź

    Z ciągu potrzebnego do zawisu: w ustalonym zawisie T=mgT = mg, więc wartość całki (plus ciąg nominalny) mówi, ile dron waży. To estymacja parametru, krok w stronę sterowania adaptacyjnego.

5 Regulator dwupołożeniowy

Najprostszy regulator świata: grzejnik włączony albo wyłączony. Termostat w pokoju, lodówka, żelazko, bojler. Nie ma nastaw do strojenia, tylko histerezę hh: włącz, gdy temperatura spadnie poniżej r−h/2r - h/2, wyłącz, gdy przekroczy r+h/2r + h/2.Kowal 6.4

Taki układ nigdy się nie ustala: zawsze oscyluje. Amplitudę wahań wyznaczają histereza i opóźnienie (temperatura rośnie lub spada jeszcze przez czas θ\theta po przełączeniu), a okres zależy od tempa grzania i stygnięcia. Kompromis jest jeden: mniejsza histereza to mniejsze wahania, ale częstsze przełączanie, które zużywa przekaźniki, sprężarki i kotły.

Symulacja 4 Pokój z grzejnikiem 2 kW (K=10K = 10 °C/kW, τ=60\tau = 60 min, na zewnątrz 5 °C), termostat ustawiony na 21 °C. Zmieniaj histerezę i opóźnienie. Zwróć uwagę na niesymetryczne wahania: przy 21 °C pokój stygnie 4 razy szybciej, niż się grzeje.

Zadania · część 5

3 zadania · ok. 20 min

  1. Przy 21 °C z włączonym grzejnikiem pokój dąży do 5+20=255 + 20 = 25 °C. Policz tempo grzania i stygnięcia przy 21 °C.

    Odpowiedź

    Grzanie: (25−21)/60≈0,067(25 - 21)/60 \approx 0{,}067 °C/min. Stygnięcie: (21−5)/60≈0,27(21 - 5)/60 \approx 0{,}27 °C/min.

  2. Opóźnienie 2 min, histereza zero. Oszacuj, o ile temperatura przekroczy 21 °C w górę i w dół. Porównaj z symulacją (20,47–21,13 °C).

    Odpowiedź

    W górę: 0,067⋅2≈0,130{,}067\cdot 2 \approx 0{,}13 °C; w dół: 0,27⋅2≈0,530{,}27\cdot 2 \approx 0{,}53 °C. Zakres ok. 20,47–21,13 °C ✓.

  3. Histereza 1 °C daje wahania 1,6 °C i ok. 2 cykle na godzinę; bez histerezy wahania 0,66 °C i 5 cykli. Kiedy wybrałbyś większą histerezę?

    Odpowiedź

    Gdy przełączanie jest kosztowne: kocioł gazowy (straty przy rozruchu), sprężarka lodówki (zużycie), przekaźnik o ograniczonej liczbie cykli. W pokoju 1,6 °C wahań jest jeszcze niezauważalne dla ludzi.

6 Metoda i przykłady rozwiązane

Metoda: od regulatora z książki do regulatora w urządzeniu

  1. Granice: zapisz uminu_\text{min}, umaxu_\text{max} i szybkość zmian elementu wykonawczego; dodaj anti-windup do każdej całki.
  2. Feedforward: wszystko, co wiadomo z góry (ciąg zawisu, trajektoria, mierzalne zakłócenia), daj w przód.
  3. Trajektoria: zamiast skoków wartości zadanej gładkie przejścia, które mieszczą się w granicach.
  4. Punkt pracy: jeśli parametry obiektu zmieniają się więcej niż o ok. 30–50%, użyj gain scheduling.
  5. Sprawdzenie: symulacja nieliniowa z nasyceniem dla największych manewrów i skrajnych punktów pracy.

Przykład 6.1 Ten sam regulator, trzy wyniki

PID wysokości 9,6 / 8 / 4,3, ciąg ±9,81\pm 9{,}81 N, skok 5 m. Porównaj brak anti-windup, zatrzymanie całki i sprzężenie zwrotne całki (Tt=0,73T_t = 0{,}73 s).

  1. Brak: przeregulowanie 49,5%, całka dochodzi do 28,8 N.
  2. Zatrzymanie całki: 14,0%, całka do 7,9 N.
  3. Sprzężenie zwrotne całki: 18,6%, całka do 10,5 N. Czas ustalania (2%) we wszystkich trzech ok. 3,6–3,9 s.

Wynik: anti-windup zmniejsza przelot 2,7–3,5 razy bez zmiany nastaw.

Sprawdzenie: przy skoku 1 m wszystkie trzy warianty dają identyczne 28,7%, bo nie ma nasycenia ✓.

Przykład 6.2 Feedforward z błędnym modelem

Trajektoria 0 → 5 m w 3 s, PID 9,6 / 8 / 4,3. Model: 1 kg. Porównaj największy uchyb dla prawdziwej masy 1,0 i 1,2 kg, z feedforward i bez.

  1. 1,0 kg: bez feedforward 40 cm, z feedforward 0.
  2. 1,2 kg: bez feedforward 50 cm, z feedforward 17 cm.
  3. Model za ciężki (prawdziwa 1,0, model 1,2): z feedforward 16 cm.

Wynik: nawet z 20% błędem modelu feedforward zmniejsza uchyb około trzykrotnie.

Sprawdzenie: po manewrze uchyb wraca do zera we wszystkich wariantach, bo całka w sprzężeniu zwrotnym usuwa błąd zawisu ✓.

Przykład 6.3 Dron z ładunkiem

Nastawy dobrane dla 1 kg. Jak zmienia się odpowiedź na skok 1 m dla 0,5, 2 i 3 kg? Co daje skalowanie masą?

  1. Stałe nastawy: 0,5 kg: 11%, 1,7 s; 2 kg: 41%, 5,5 s; 3 kg: 54%, 12 s.
  2. Skalowane: 21%, 24%, 25%, czas ustalania ok. 3 s w każdym przypadku. Bieguny są identyczne, różnią się tylko zera.

Wynik: trzykrotna zmiana masy przy stałych nastawach psuje pętlę (przeregulowanie ponad dwa razy większe, ustalanie prawie 4 razy dłuższe); skalowanie przywraca projektowe zachowanie.

Sprawdzenie: dla 1 kg obie wersje dają to samo (23%) ✓.

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

„Przelot przy dużym skoku oznacza złe nastawy.”
Często oznacza brak anti-windup. Przy małych skokach te same nastawy działają dobrze.
„Feedforward to sterowanie w pętli otwartej, więc jest niebezpieczny.”
Feedforward razem ze sprzężeniem zwrotnym to najlepsze z obu: szybkość z modelu, odporność z pętli. Nie zmienia biegunów.
„Skok wartości zadanej to dobry test regulatora.”
Dobry test liniowości. W praktyce wartość zadana jest gładka, bo skok i tak przekracza możliwości elementu wykonawczego.
„Gain scheduling to sterowanie adaptacyjne.”
Nie: nastawy zmieniają się według znanej z góry tablicy i mierzalnej zmiennej. Sterowanie adaptacyjne uczy się parametrów w trakcie pracy.
„Regulator dwupołożeniowy jest prymitywny, więc gorszy.”
Tam, gdzie element wykonawczy i tak jest dwustanowy (przekaźnik, sprężarka), a dokładność rzędu stopnia wystarcza, jest najtańszy i najodporniejszy.

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. PWM jako regulator dwupołożeniowy. Silnik drona dostaje sygnał PWM: napięcie włączone albo wyłączone, przełączane 20 000 razy na sekundę. Dlaczego regulator liniowy i tak działa, skoro element wykonawczy jest dwustanowy?

    Rozwiązanie
    1. Silnik (indukcyjność, bezwładność wirnika) jest filtrem dolnoprzepustowym o paśmie rzędu setek Hz. Przełączanie 20 kHz jest daleko powyżej, więc silnik „widzi” tylko średnie napięcie, proporcjonalne do wypełnienia.
    2. Rozdzielenie pasm, jak w lekcji 2.5: szybka nieliniowość jest wygładzona przez wolny obiekt. Termostat działa odwrotnie: przełącza wolno w porównaniu z obiektem, więc oscylacje są widoczne.
  2. Ograniczenie szybkości zmian. Zawór może się przestawić najwyżej o 10% na sekundę. Regulator PI tego nie wie. Czy to też powoduje windup? Jak się bronić?

    Rozwiązanie
    1. Tak: rzeczywiste położenie zaworu odstaje od obliczonego, uchyb trwa dłużej, całka rośnie ponad potrzebę. To nasycenie szybkości zamiast wartości.
    2. Sprzężenie zwrotne całki z mierzonym położeniem zaworu (usatu_\text{sat} = położenie) obsługuje oba rodzaje nasycenia naraz. Alternatywa: model ograniczenia szybkości w regulatorze.
  3. Feedforward od zakłócenia w kotle. Kocioł grzewczy ma czujnik temperatury na zewnątrz budynku. Jak wykorzystać go w sterowaniu temperaturą wody? Co jeśli model budynku jest bardzo niedokładny?

    Rozwiązanie
    1. Temperatura zewnętrzna to mierzalne zakłócenie. Feedforward: moc kotła (albo temperatura zasilania) zależna od temperatury zewnętrznej według „krzywej grzewczej”. Kocioł reaguje na mróz, zanim wystygną pokoje.
    2. Przy złym modelu krzywa jest źle dobrana, ale sprzężenie zwrotne od temperatury w pokoju poprawia resztę. W praktyce tak działa większość sterowników pogodowych.
  4. Harmonogram w samolocie. Moment od steru wysokości jest proporcjonalny do ciśnienia dynamicznego 12ρV2\frac12\rho V^2. Samolot leci z prędkością od 60 do 250 m/s na wysokościach od 0 do 12 km (gęstość od 1,23 do 0,31 kg/m³). Ile razy zmienia się skuteczność steru? Jaka zmienna harmonogramu jest naturalna?

    Rozwiązanie
    1. Najmniejsze: 0,5⋅0,31⋅602≈5600{,}5\cdot 0{,}31\cdot 60^2 \approx 560 Pa (choć tak wolno wysoko się nie lata); największe: 0,5⋅1,23⋅2502≈38 0000{,}5\cdot 1{,}23\cdot 250^2 \approx 38\,000 Pa. Różnica ok. 70 razy.
    2. Naturalna zmienna: ciśnienie dynamiczne (z rurki Pitota), czasem razem z liczbą Macha. Wzmocnienia dzieli się przez ciśnienie dynamiczne, żeby iloczyn „regulator × obiekt” był stały (lekcja 8 Augmentacja stateczności: tłumik odchylenia i pochylenia).
  5. Kiedy całka szkodzi. Robot ma docisnąć narzędzie do ściany z siłą 20 N. Regulator PI pozycji ustawia cel 1 cm za ścianą. Co się dzieje z całką?

    Rozwiązanie
    1. Pozycja nigdy nie osiągnie celu (ściana), więc uchyb jest stały i całka rośnie bez końca, a siła docisku razem z nią, aż do nasycenia napędu albo uszkodzenia.
    2. Właściwe rozwiązanie to regulacja siły (inna wielkość regulowana) albo regulacja impedancyjna. Ogólnie: całka zakłada, że cel jest osiągalny. Gdy nie jest, całka staje się problemem.

9 Sprawdź się

Odpowiedz w myślach, zanim rozwiniesz odpowiedź.

1 Co to windup?

Narastanie całki w czasie, gdy sterowanie jest w nasyceniu i pętla jest w praktyce otwarta; skutkiem jest duży przelot.

2 Dwie metody anti-windup?

Zatrzymanie całki w nasyceniu oraz sprzężenie zwrotne całki (usat−u)/Tt(u_\text{sat} - u)/T_t.

3 Jakie TtT_t dla PID?

Ok. TiTd\sqrt{T_iT_d}.

4 Czym jest feedforward od wartości zadanej dla drona?

uff=m^r¨+b^r˙u_\text{ff} = \hat m\ddot r + \hat b\dot r (plus ciąg zawisu m^g\hat mg).

5 Dlaczego feedforward nie zmienia stabilności?

Bo nie zależy od wyjścia i nie występuje w mianowniku 1+CG1 + CG.

6 Co to gain scheduling?

Nastawy zmieniane według mierzalnej zmiennej punktu pracy, zaprojektowane liniowo dla kilku punktów.

7 Jak skalować PID drona z masą?

Kp′=mKpK_p' = mK_p, Ki′=mKiK_i' = mK_i, Kd′=m(Kd+b)−bK_d' = m(K_d + b) - b: te same bieguny.

8 Od czego zależą wahania w regulacji dwupołożeniowej?

Od histerezy i od opóźnienia razy tempo grzania lub stygnięcia.

10 Karta wzorów i co dalej

Nasycenie i anti-windup

usat=min⁡(max⁡(u,umin),umax)u_\text{sat} = \min(\max(u, u_\text{min}), u_\text{max})

zatrzymanie: nie całkuj, gdy u>umaxu > u_\text{max} i e>0e > 0 albo u<uminu < u_\text{min} i e<0e < 0

sprzężenie: I˙=Kie+usat−uTt\dot I = K_ie + \frac{u_\text{sat} - u}{T_t}, Tt≈TiTdT_t \approx \sqrt{T_iT_d}

dwupołożeniowy: włącz przy r−h2r - \frac h2, wyłącz przy r+h2r + \frac h2

Feedforward i harmonogram

dron: u=m^g+m^r¨+b^r˙+C(s)eu = \hat mg + \hat m\ddot r + \hat b\dot r + C(s)e

minimalne szarpnięcie: r=h(10s3−15s4+6s5)r = h(10s^3 - 15s^4 + 6s^5), r¨max≈5,77h/T2\ddot r_\text{max} \approx 5{,}77h/T^2

skalowanie: Kp′=mKpK_p' = mK_p, Ki′=mKiK_i' = mK_i, Kd′=m(Kd+b)−bK_d' = m(K_d + b) - b

samolot: wzmocnienia ∝1/(12ρV2)\propto 1/(\tfrac12\rho V^2)

Do przeczytania

  • Obowiązkowo: K. J. Åström, R. M. Murray, Feedback Systems, podrozdziały o windupie i implementacji PID; G. C. Goodwin i in., Control System Design, rozdz. 11.2–11.3 (anti-windup) i 10.5 (feedforward).
  • Dla chętnych: S. A. Frank, Control Theory Tutorial, rozdz. 10.3 (gain scheduling); J. Kowal, Podstawy automatyki, rozdz. 6.4 (regulatory dwupołożeniowe, po polsku).

Wszystkie nasze regulatory były dotąd ciągłe: całki, pochodne, transmitancje w ss. Każdy z nich działa jednak w mikrokontrolerze, który co kilka milisekund czyta czujnik, liczy i wysyła nowe sterowanie. Następna lekcja pokazuje, co próbkowanie zmienia w pętli, jak zamienić PID na kod i do czego służy transformata Z.

Korzystają z tej lekcji 3.4 Sterowanie cyfrowe: próbkowanie, transformata Z i regulator w kodzie4.6 Stabilność Lapunowa i sterowanie nielinioweDynamika lotu 8 Augmentacja stateczności: tłumik odchylenia i pochyleniaDynamika lotu 9 Autopilot: pętle wewnętrzne i zewnętrzneDynamika lotu 11 Rakieta: orientacja i ciąg wektorowanyAstronautyka 13 Sterowanie orientacją: koła reakcyjne, magnetyki i silniczki