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 Kp, Ki, Kd? Odpowiedź w części 2.
1 Nasycenie i windup
Każdy element wykonawczy ma granice: umin≤u≤umax. 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
Dron z PID (Kp=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 N)?
Odpowiedź
Skok 1 m: 9,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ę.
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.
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 u a zrealizowanym usat cofa całkę:
dtdI=Kie+Ttusat−u,Tt≈TiTd(dla PI zwykle Tt≈Ti).
Działa też wtedy, gdy nasycenie dzieje się poza regulatorem, byle znać usat (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 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
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)
Dla PID z Ti=1,2 s, Td=0,45 s policz Tt dla sprzężenia zwrotnego całki.
Odpowiedź
Tt=1,2⋅0,45≈0,73 s.
W symulacji 1 zmniejsz zapas ciągu do ±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 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), potrzebna siła wynika z modelu: uff=m^r¨+b^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˙ hamuje także zamierzony ruch i feedforward musi to oddać: dochodzi składnik Kdr˙ (a przy wadze b<1 także Kp(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
Trajektoria r(t)=5(10s3−15s4+6s5), s=t/T, T=3 s. Policz największą prędkość (w s=1/2) i jej siłę oporu.
Odpowiedź
r˙=T5(30s2−60s3+30s4); w s=1/2: 35⋅1,875=3,125 m/s. Opór: 0,5⋅3,125≈1,56 N.
Największe przyspieszenie tej trajektorii to T25⋅5,77. Ile wynosi dla T=3 s i dla T=1,5 s? Kiedy feedforward przekroczy zapas ciągu mg?
Odpowiedź
T=3: 3,2 m/s². T=1,5: 12,8 m/s², czyli siła 12,8 N plus opór: ponad 9,81 N. Granica: 5⋅5,77/T2≈9,81− opór, czyli T≈1,8 s.
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≈2 N (stałe zakłócenie, które usuwa całka), a siła bezwładności m^r¨ jest o 17% za mała. Feedforward daje ponad 80% potrzebnej siły, sprzężenie zwrotne musi dołożyć tylko resztę.
Dlaczego feedforward nie może zdestabilizować pętli, a zbyt duże Kp może?
Odpowiedź
Feedforward to sygnał dodany z zewnątrz, który nie zależy od wyjścia. Nie ma go w mianowniku 1+CG, więc nie zmienia biegunów. Kp 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ą m to ms3+(b+Kd)s2+Kps+Ki. Jeśli przemnożymy nastawy przez masę (Kp′=mKp, Ki′=mKi, Kd′=m(Kd+b)−b), mianownik to m 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
Dron 2 kg, nastawy dla 1 kg (Kp=9,6, Ki=8, Kd=4,3). Napisz mianownik i sprawdź stabilność.
Odpowiedź
2s3+4,8s2+9,6s+8. Routh: 4,8⋅9,6=46>2⋅8=16 ✓, stabilna. Bieguny −0,6±1,73j i −1,19: słabiej tłumione (przeregulowanie 41% zamiast 23%).
Sprawdź, że nastawy skalowane dają m razy stary mianownik.
Z ciągu potrzebnego do zawisu: w ustalonym zawisie T=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ęh: włącz, gdy temperatura spadnie poniżej r−h/2, wyłącz, gdy przekroczy r+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 θ 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=10 °C/kW, τ=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
Przy 21 °C z włączonym grzejnikiem pokój dąży do 5+20=25 °C. Policz tempo grzania i stygnięcia przy 21 °C.
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,13 °C; w dół: 0,27⋅2≈0,53 °C. Zakres ok. 20,47–21,13 °C ✓.
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
Granice: zapisz umin, umax i szybkość zmian elementu wykonawczego; dodaj anti-windup do każdej całki.
Feedforward: wszystko, co wiadomo z góry (ciąg zawisu, trajektoria, mierzalne zakłócenia), daj w przód.
Trajektoria: zamiast skoków wartości zadanej gładkie przejścia, które mieszczą się w granicach.
Punkt pracy: jeśli parametry obiektu zmieniają się więcej niż o ok. 30–50%, użyj gain scheduling.
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 N, skok 5 m. Porównaj brak anti-windup, zatrzymanie całki i sprzężenie zwrotne całki (Tt=0,73 s).
Brak: przeregulowanie 49,5%, całka dochodzi do 28,8 N.
Zatrzymanie całki: 14,0%, całka do 7,9 N.
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,0 kg: bez feedforward 40 cm, z feedforward 0.
1,2 kg: bez feedforward 50 cm, z feedforward 17 cm.
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ą?
Stałe nastawy: 0,5 kg: 11%, 1,7 s; 2 kg: 41%, 5,5 s; 3 kg: 54%, 12 s.
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
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
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.
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.
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
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.
Sprzężenie zwrotne całki z mierzonym położeniem zaworu (usat = położenie) obsługuje oba rodzaje nasycenia naraz. Alternatywa: model ograniczenia szybkości w regulatorze.
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
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.
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.
Harmonogram w samolocie. Moment od steru wysokości jest proporcjonalny do ciśnienia dynamicznego 21ρV2. 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
Najmniejsze: 0,5⋅0,31⋅602≈560 Pa (choć tak wolno wysoko się nie lata); największe: 0,5⋅1,23⋅2502≈38000 Pa. Różnica ok. 70 razy.
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).
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
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.
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.
3 Jakie Tt dla PID?
Ok. TiTd.
4 Czym jest feedforward od wartości zadanej dla drona?
uff=m^r¨+b^r˙ (plus ciąg zawisu m^g).
5 Dlaczego feedforward nie zmienia stabilności?
Bo nie zależy od wyjścia i nie występuje w mianowniku 1+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′=mKp, Ki′=mKi, Kd′=m(Kd+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)
zatrzymanie: nie całkuj, gdy u>umax i e>0 albo u<umin i e<0
sprzężenie: I˙=Kie+Ttusat−u, Tt≈TiTd
dwupołożeniowy: włącz przy r−2h, wyłącz przy r+2h
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 s. 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.