Regulator PID – fundament automatyki przemysłowej
Regulator PID (Proporcjonalno-Całkująco-Różniczkujący) to najbardziej popularny algorytm sterowania w automatyce przemysłowej i budynkowej. Stosowany od lat 40. XX wieku, wciąż stanowi podstawę ponad 95% pętli regulacyjnych na świecie.
Thank you for reading this post, don't forget to subscribe!Czym jest regulator PID?
Regulator PID to algorytm, który ciągle koryguje wartość sterującą na podstawie różnicy między wartością zadaną (setpoint) a wartością rzeczywistą (process value). Składa się z trzech członów:
- P (Proporcjonalny) – reaguje proporcjonalnie do aktualnego błędu
- I (Całkujący) – eliminuje błąd ustalony, uwzględnia historię błędu
- D (Różniczkujący) – przewiduje przyszłe zmiany, reaguje na tempo zmian
Matematyczny opis regulatora PID
Wyjście regulatora PID w postaci ciągłej opisuje wzór:
W praktyce, w sterownikach cyfrowych (PLC) wykorzystuje się postać dyskretną:
Działanie poszczególnych członów
Człon P (Proporcjonalny)
- Wzór: u_P = K_p × e
- Charakterystyka: Szybka reakcja, ale pozostawia błąd ustalony
- Zastosowanie: Podstawa każdego regulatora
- Wady: Nie eliminuje błędu ustalonego całkowicie
Człon I (Całkujący)
- Wzór: u_I = K_i × ∫e dt
- Charakterystyka: Eliminuje błąd ustalony, „pamięta” przeszłość
- Zastosowanie: Niezbędny przy regulacji procesów z dryftem
- Wady: Może powodować przeregulowanie (overshoot), windup
Człon D (Różniczkujący)
- Wzór: u_D = K_d × de/dt
- Charakterystyka: „Przewiduje” zmiany, tłumi oscylacje
- Zastosowanie: Poprawia stabilność, skraca czas regulacji
- Wady: Wrażliwy na szumy pomiarowe
Praktyczne zastosowania PID
1. Regulacja temperatury (HVAC)
Przykład: Regulacja temperatury w pomieszczeniu
Setpoint: 22°C
Czujnik: PT1000 (0.1°C rozdzielczość)
Aktuator: Siłownik zaworu 0-10V
Nastawy PID:
Kp = 5.0
Ti = 180s (czas zdwojenia)
Td = 30s (czas wyprzedzenia)
Wynik:
- Czas regulacji: ~10 minut
- Przeregulowanie: <0.5°C
- Błąd ustalony: 0°C
2. Regulacja ciśnienia w instalacji wody
- Przetwornik ciśnienia 0-10 bar (4-20mA)
- Przemiennik częstotliwości (VFD) sterujący pompą
- Regulator PID utrzymuje stałe ciśnienie niezależnie od poboru
3. Regulacja poziomu w zbiorniku
- Czujnik ultradźwiękowy lub hydrostatyczny
- Zawór regulacyjny lub pompa dozująca
- Utrzymanie zadanego poziomu cieczy
Strojenie regulatora PID
Strojenie (tuning) PID to proces doboru optymalnych wartości K_p, K_i, K_d. Najpopularniejsze metody:
Metoda Zieglera-Nicholsa (oscylacyjna)
- Wyłącz człony I i D (zostaw tylko P)
- Zwiększaj K_p aż układ zacznie oscylować ze stałą amplitudą
- Odczytaj K_kr (wzmocnienie krytyczne) i T_kr (okres oscylacji)
- Oblicz nastawy według tabeli:
| Typ regulatora | K_p | T_i | T_d |
| P | 0.5 × K_kr | - | - |
| PI | 0.45 × K_kr | 0.83 × T_kr | - |
| PID | 0.6 × K_kr | 0.5 × T_kr | 0.125 × T_kr |
Metoda odpowiedzi skokowej
- Przełącz regulator w tryb ręczny
- Wprowadź skok sterowania (np. 50%)
- Zapisz odpowiedź procesu (krzywą reakcji)
- Wyznacz parametry: opóźnienie, stałą czasową, wzmocnienie
- Użyj wzorów Cohen-Coon lub CHR
Problemy i ich rozwiązania
Integrator windup
Problem: Przy długotrwałym błędzie człon całkujący "nabiera" dużej wartości, powodując przeregulowanie.
Rozwiązanie: Anti-windup – ograniczenie całki lub Back-calculation
if (u > u_max) {
integral = integral_previous; // zamrożenie całki
u = u_max;
}
Derivative kick
Problem: Nagła zmiana setpoint powoduje skok członu D.
Rozwiązanie: Różniczkowanie wyjścia zamiast błędu:
// Zamiast: u_D = Kd * d(error)/dt
// Użyj: u_D = -Kd * d(PV)/dt
Implementacja PID w PLC (SCL/Structured Text)
FUNCTION_BLOCK FB_PID
VAR_INPUT
setpoint : REAL;
process_value : REAL;
Kp : REAL := 1.0;
Ti : REAL := 10.0; // czas zdwojenia [s]
Td : REAL := 0.0; // czas wyprzedzenia [s]
Ts : REAL := 0.1; // czas cyklu [s]
END_VAR
VAR
error : REAL;
integral : REAL := 0.0;
derivative : REAL;
error_prev : REAL := 0.0;
END_VAR
VAR_OUTPUT
output : REAL;
END_VAR
// Oblicz błąd
error := setpoint - process_value;
// Człon P
output := Kp * error;
// Człon I (z anti-windup)
IF Ti > 0 THEN
integral := integral + error * Ts;
output := output + (Kp / Ti) * integral;
END_IF;
// Człon D (filtrowany)
IF Td > 0 THEN
derivative := (error - error_prev) / Ts;
output := output + Kp * Td * derivative;
END_IF;
// Ograniczenie wyjścia
IF output > 100.0 THEN output := 100.0; END_IF;
IF output < 0.0 THEN output := 0.0; END_IF;
// Zapisz poprzednią wartość
error_prev := error;
Kiedy NIE używać PID?
PID nie jest lekiem na wszystko. W niektórych przypadkach lepsze są inne algorytmy:
- Procesy nieliniowe → Regulacja adaptacyjna, Gain Scheduling
- Duże opóźnienia → Smith Predictor, MPC (Model Predictive Control)
- Procesy niestacjonarne → Regulacja rozmyta (Fuzzy Logic)
- Układy wielowymiarowe (MIMO) → MPC, LQR
Podsumowanie
Regulator PID to najprostszy i najskuteczniejszy algorytm sterowania dla większości procesów przemysłowych. Kluczem do sukcesu jest:
- Właściwe strojenie nastaw
- Zrozumienie dynamiki procesu
- Implementacja zabezpieczeń (anti-windup, ograniczenia)
- Dobór odpowiedniego czasu próbkowania
Mimo rozwoju zaawansowanych metod sterowania (MPC, AI), PID pozostaje fundamentem automatyki i będzie stosowany jeszcze przez kolejne dekady.