Sterowanie sprzęgłe w jednym zdaniu
Każdy zamknięty układ sterowania wykonuje tę samą funkcję: mierzy zmienną procesową (PV), porównuje ją z wartością zadania (SP) i przekształca wynikowy błąd e(t) = SP − PV na sygnał sterujący, który napędza aktuator w kierunku zerowego błędu. Termostat ustawiony na 22°C w pomieszczeniu o temperaturze 18°C obserwuje e = +4°C, włącza grzanie i monitoruje zmniejszający się błąd, wyłączając go, gdy zbliża się on do zera. Sterownik PID — Proporcjonalno-Integralno-Pochodowy — to po prostu najbardziej sprawdzona metoda przekształcenia tego błędu na wyjście, szacowana na około 90% zamkniętych obwodów przemysłowych i każdego konsumenckiego drona quadcopter.
Równanie i co każda z wartości koryguje
Wyjście sterownika jest sumą ważoną obecnego błędu, jego skumulowanej historii oraz jego szybkości zmiany:
u(t) = Kp·e(t) + Ki·∫e(τ)dτ + Kd·(de/dt) u(t) = wyjście sterownika Kp = współczynnik proporcjonalny e(t) = zadana wartość – zmierzona wartość Ki = współczynnik całkowy Kd = współczynnik pochodnej Proporcjonalny (P) reaguje na błąd w chwili obecnej – im większy błąd, tym większa korekta. Zbyt mały Kp sprawia, że reakcja jest powolna; zbyt duży powoduje, że pętlina przekracza dopuszczalną wartość i oscyluje. Używany samodzielnie, sterowanie P zawsze pozostawia resztkowy stały odchył: grzałka musi utrzymywać niezerowe wyjście, aby zniwelować ciągłą utratę ciepła, a jedynym sposobem, w jaki prawo czysto proporcjonalne może utrzymać niezerowe wyjście, jest podtrzymanie małego stałego błędu.
Całkowy (I) sumuje błąd w czasie, więc nawet niewielki, trwały odchył powoduje, że korekta rośnie do zera – to eliminuje całkowicie odchył spowodowany jedynie sterowaniem P. Kosztem jest windup: jeśli aktuator osiąga swoje granice (grzałka zamortyzowana na 100%), współczynnik całkowy nadal kumuluje błąd, który urządzenie nie może jeszcze zareagować, a gdy zmienna procesowa w końcu dogoni, nadmiernie zbuforowany współczynnik całkowy powoduje gwałtowne przekroczenie przed jego odwróceniem.
Pochodny (D) analizuje, jak szybko zmienia się błąd i stosuje hamowanie przed dotarciem do zadanej wartości – jeśli błąd szybko maleje, D wyciąga wyjście w tył z wyprzedzeniem, redukując przekroczenia i czas ustalania. Jego słabością jest to, że różniczkowanie wzmacnia szumy: nerwowy czujnik generuje duży natychmiastowy nachylenie, więc D zwykle oblicza się na zmiennej procesowej zamiast błędu (aby uniknąć "uderzenia pochodnego" przy zmianach zadanej wartości) i przefiltruje ją za pomocą filtru dolnoprzepustowego.
u(t) = Kp·e(t) + Ki·∫e(τ)dτ + Kd·(de/dt)
u(t) = controller output Kp = proportional gain
e(t) = setpoint − measured_value Ki = integral gain
Kd = derivative gain
Minimalistowa implementacja cyfrowa
Rozdzielone w stałym kroku czasowym dt, z ograniczaniem anty-windup i wykorzystaniem derivative-on-measurement (DERIVE), PID loop zajmuje zaledwie około dwadzieścia linijek kodu JavaScript:
update(setpoint, measurement) {
const error = setpoint - measurement;
const P = this.kp * error;
this.integral += error * this.dt; // accumulate
const I = this.ki * this.integral;
const D = this.kd * (this.prevError - error) / this.dt;
this.prevError = error;
const raw = P + I + D;
const output = clamp(raw, this.outMin, this.outMax);
if (output !== raw) this.integral -= error * this.dt; // anti-windup
return output;
}
Dostrajanie: Ziegler-Nichols i metoda manualna
Klasyczna empiryczna receptura, opublikowana przez Zieglera i Nicholsa w 1942 roku, zakłada Ki = Kd = 0 i podnosi Kp samodzielnie, aż pętlą utrzymuje się stała oscylacja o amplitudzie — ostateczny wzmocnienie Ku przy ostatecznym okresie Tu. Z tych dwóch liczb:
Kp = 0,6 · Ku Ki = 2 · Kp / Tu Kd = Kp · Tu / 8 Metoda ta bywa agresywna, dlatego większość inżynierów wykorzystuje ją jako punkt wyjścia, a nie ostateczny wynik. Alternatywna metoda manualna jest równie popularna: podnosi się Kp samodzielnie, aż odpowiedź będzie szybka z akceptowalnym przekroczeniem (około 10–20%), stopniowo dodaje się Ki, aby usunąć błąd w stanie ustalonym bez nadmiernych drgań, a następnie dodaje się niewielkie Kd tylko wtedy, gdy przekroczenie nadal wymaga dopracowania. Wiele przemysłowych pętli — pieców, końcówek 3D-drukarek, fermentatorów — działa na zasadzie PI, ponieważ szumy z czujników sprawiają, że termin pochodny stwarza więcej problemów niż rozwiązuje; drony i pętle sterowania CNC działające z częstotliwością 500–2000 Hz z czystymi danymi IMU lub encoderów wykorzystują wszystkie trzy terminy.
Kp = 0.6 · Ku Ki = 2 · Kp / Tu Kd = Kp · Tu / 8
Frequently asked questions
Dlaczego sterowanie proporcjonalne samo w sobie zawsze pozostawia błąd w stanie ustalonym?
Wyjście kontrolera P-only to u = Kp·e, więc gdy błąd osiągnie zero, wyjście również spada do zera – ale wiele procesów (np. grzałka walcząca z utratą ciepła, silnik walczący z tarciem) wymaga stałego, niezerowego wyjścia, aby utrzymać pozycję. Jedynym sposobem, w jaki kontroler P może dostarczyć takie wyjście, jest utrzymywanie niewielkiego, stałego błędu, ponieważ u musi pozostać powyżej zera. Zwiększenie Kp zmniejsza ten przesunięcie, ale nigdy go nie eliminuje i zbliża pętlę do oscylacji.
Co to jest integralne zwijanie i dlaczego jest ono niebezpieczne?
Termin całkowy gromadzi błąd nawet po nasyceniu aktuatora (grzałka już na 100%, silnik na pełnym zakresie), ponieważ fizyczne wyjście nie może się jeszcze zwiększyć, mimo że matematyczny błąd jest nadal sumowany. Gdy proces w końcu dogoni ustawioną wartość, nadmiernie zgromadzony integralny termin ciągle zmusza do generowania dodatkowego wyjścia, powodując duży przekroczenie przed jego odwróceniem. Anty-zwijanie ogranicza termin całkowy (lub go odwzorowuje wstecz) zawsze, gdy aktuator osiąga nasycenie, aby zapobiec dalszemu wzrostowi, kiedy aktuator już nie może działać.
Dlaczego termin pochodnej wzmacnia szumy z czujnika i jak jest on filtrowany w praktyce?
Działanie pochodnej to Kd·(de/dt), a różniczkowanie wzmacnia wysokiej częstotliwości zawartość – drganie czujnika o ułamku stopnia między próbkami generuje ogromny natychmiastowy nachylenie, gdy jest podzielone przez małe dt. W praktyce inżynierowie różniczkują zmienną procesową mierzoną, a nie błąd (usuwając "uderzenie pochodne", które spowodowałoby inne kroki ustawienia punktu) i przepuszczają to przez filtr dolnoprzepustowy lub po prostu ustawiają Kd = 0 na szumiej czujnikach przemysłowych i akceptują nieco wolniejsze osadzenie.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację the simulation