Regolatori PID Flashcards
componenti variabile di controllo
u=uP+uI+uD
La variabile di controllo è la somma di tre componenti:
- Componente proporzionale all’errore: uP(t) = Kpe(t)
- Componente integrale: proporzionale all’integrale dell’errore: uI(t)=KIint(0,t) e(tau)dtau
- Componente derivativa: proporzionale alla derivata dell’errore: uD(t)=Kd*de(t)/dt
Dove:
Kp coefficiente dell’azione proporzionale
Ki coefficiente dell’azione integrale
Kd coefficiente dell’azione derivativa
Controllore PID: FdT ideale
Rpid(s) = Kp+Ki/s+Kds = (Kps+Ki+Kd*s^2)/s
(forma non realizzabile perché ha grado relativo minore di 0)
Forma più utilizzata:
Rpid(s) = Kp(1 + 1/sTi + sTd),
Dove Ti = Kp/Ki è il tempo integrale
Td = Kd/Kp è il tempo derivativo
Controllore PID: FdT realizzabile
Rpid(s) = Kp(1 + 1/sTi + sTd/(1+s*Td/N))
Viene aggiunto un polo per rendere realizzabile il controllore.
Posizione del polo determinata dalla costante N, in modo da essere all’esterno dalla banda di frequenze di interesse.
N compreso tra 5 e 20, tipicamente N=10
Versioni parziali del PID
- Proporzionale: Rp(s)=Kp: agisce solo sul guadagno
- Proporzionale integrale: Rpi(s)=Kp(1+1/sTi)=Kp((1+sTi)/sTi)
Polo nell’origine: prestazioni statiche: azzera errore a regime a fronte di variazioni a scalino di y0 e d; zero permette di cancellare un polo a bassa frequenza aumentando la banda passante - Proporzionale derivativo: Rpd(s)=Kp(1+sTd/(1+sTd/N))
Usato quando non ci sono problemi di prestazioni statiche, rende banda passante più ampia possibile (zero nell’origine)
Problemi realizzativi PID
1) Limitazione dell’azione derivativa
2) Saturazione dell’azione integrale (integral windup)
Problema della limitazione dell’azione derivativa: descrizione
Se u è proporzionale alla derivata dell’errore, a fronte di un errore a scalino (generato ad esempio da una variazione a scalino di y0) si genera una variazione impulsiva di u, in contrasto con il requisito generale di moderazione del controllo
Problema della saturazione dell’azione integrale: descrizione
- Tra regolatore e sistema da controllare è presente un attuatore, che riceve in ingresso u(t) e manda in uscita m(t), che è un sistema fisico reale e in quanto tale può produrre segnali in uscita m limitati.
- Un modello semplice di attuatore è descritto come un vincolo minimo e massimo su m(t):
m(t) = umin se u umax - Se, ad esempio, e(t) > 0 per lungo tempo, u cresce fino a raggiungere umax (saturazione dell’attuatore); se successivamente continua a essere e > 0, m = umax, ma u continua a crescere (fenomeno della carica integrale); per questo motivo, quando diventa e < 0, anche se l’errore è negativo, continua a valere m=umax, perché u era salita molto sopra umax, fino a che, dopo un tempo troppo lungo, si ritorna a u=umax e quindi m=u.
- Sarebbe invece molto più opportuno che la variabile di controllo effettiva m lasciasse il valore di saturazione non appena l’errore cambia segno
Problema della saturazione dell’azione integrale: soluzioni (regolatore PI)
Implementazione anti windup di un regolatore PI:
segnale m in uscita dalla saturazione entra in un ramo di retroazione passa basso (1/(1+sTi) per poi sommarsi con il segnale q in uscita dal proporzionale (disegno)
- In zona lineare: umin < u < umax, m = u
(disegno) - > U(s)/E(s) = Kp1/(1-1/sTi) = Kp(1+sTi)/sTi (corrisponde al caso di base) - In saturazione: e > 0 per lungo tempo, q = Kpe > umax, m = umax
Grazie al passa basso in retroazione, alimentando il filtro con m = umax, dopo un certo tempo Ta=5Ti, avrò in uscita z = m = umax (circa)
Questo segnale z viene sommato a q, così che, quando e(t) < 0 e q = Kpe < 0, istantaneamente u = q + z < umax, e quindi istantaneamente m = u
Problema della limitazione dell’azione derivativa: soluzioni
Soluzioni:
1) Versione pesata di e(t) in ingresso nella parte derivativa:
Ud(s) = Rd(s)( cY0(s) - Y(s) ), c peso reale app [0,1], solitamente piccolo
2) Derivazione dell’uscita (c=0)
Se y0 è a scalino, y è un esponenziale, la cui derivata non genera quindi un impulso ma un segnale limitato