Strona głównaArtykułyInżynieria Sterowania

Sterowanie PID: Wyjaśnienie proporcjonalnego, całkującego i pochodnej

Trzy terminy, trzy błędy skorygowane – jak u = Kp·e + Ki·∫e + Kd·ė utrzymuje dron w poziomie i termostat uczciwy.

mysimulator teamZaktualizowano — czerwiec 2026≈ 9 min czytania▶ Otwórz symulację

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.

demo na żywo · powiązana symulacja● LIVE

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

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)