Salta al contenuto
Note per Studenti Controllori PID

Controllori PID

In questa pagina 5

I controllori PID (Proporzionale, Integrale, Derivativo) sono i più usati nella pratica industriale: risolvono moltissimi problemi di controllo, si tarano con poche regole e funzionano anche quando del processo si sa poco.

Che cosa fanno

Con e(t)=r(t)−y(t)e(t)=r(t)-y(t) l'errore, il PID genera l'ingresso del processo u(t)=Kp e(t)+Kd e˙(t)+Ki∫0te(τ) dτ.u(t)=K_p\,e(t)+K_d\,\dot e(t)+K_i\int_0^te(\tau)\,d\tau.

  • Proporzionaleazione proporzionale all'errore: più si è lontani dall'obiettivo, più si agisce.
  • Derivativo: guarda la velocità con cui l'errore cambia e "frena in anticipo" per evitare di superare il valore desiderato (agisce come un anticipo di fase).
  • Integrale: accumula l'errore nel tempo e lo corregge: serve a eliminare errori a regime costanti (tipo più alto).

Esempio intuitivo (termostato): proporzionale = soffio più caldo/freddo quanto più si è lontani dai 22 °C; integrale = corregge una temperatura che resta sempre un po' fredda; derivativo = si accorge che la temperatura sale in fretta e riduce prima di superare.

Con la trasformata di Laplace: CPID(s)=Kp+Kds+Kis=Ki+Kps+Kds2s.C_{PID}(s)=K_p+K_ds+\frac{K_i}s=\frac{K_i+K_ps+K_ds^2}s. Casi particolari: PIPI: CPI=Kp+Kis=Ki+KpssC_{PI}=K_p+\frac{K_i}s=\frac{K_i+K_ps}s (propria); PDPD: CPD=Kp+KdsC_{PD}=K_p+K_ds (non propria); PP: C=KpC=K_p. Il PID non è proprio (due zeri, un polo). Nelle realizzazioni il derivativo è filtrato con un polo lontano: CPID,reale(s)=Ki+Kps+Kds2s(1+sN),N≫ intervallo di frequenze di lavoro,C_{PID,reale}(s)=\frac{K_i+K_ps+K_ds^2}{s\big(1+\frac sN\big)},\qquad N\gg\text{ intervallo di frequenze di lavoro}, che è propria. Il corso chiede spesso di progettare un PID "eventualmente non proprio": in tal caso si omette il polo di filtro, a meno che il testo dica "proprio".

Il PID nella sintesi per tentativi

Con Ki≠0K_i\ne0 si riscrive CPID(s)=Kis⏟C′(s) [1+KpKis+KdKis2]⏟C′′(s),C_{PID}(s)=\underbrace{\frac{K_i}s}_{C'(s)}\ \underbrace{\Big[1+\frac{K_p}{K_i}s+\frac{K_d}{K_i}s^2\Big]}_{C''(s)}, che è esattamente la struttura della sintesi per tentativi (Problema di regolazione e sintesi per tentativiProblema di regolazione: data $G$ propria, senza poli in $\mathrm{Re}>0$, con $G(0)\ne0$ (cioè $G=\frac{K_B(G)}{s^r}G_1$, $G_1(0)=1$), progettare $C$ propria tale che $W=\frac{CG}{1+CG}$ sia BIBO stabile, di tipo $k$ con $|e_{rp}^{(k+1)}|\le e^$, con $\omega_A\simeq\omega_A^$ e $m_\varphi\ge m_\varphi^$. Sintesi per tentativi: Passo 1 $C'=\frac{K_B(C')}{s^\alpha}$ ($\alpha=\max(k-r,0)$, $|K_B(C')|$ minimo che soddisfa l'errore, segno di $K_B(G)$); Passo 2 $C''$ con $K_B(C'')=1$ che porta $\omega_A$ e $m_\varphi$ ai valori voluti in quattro casi ($\omega_A\gtrless\omega_A^$, $m_\varphi(\omega_A^)\gtrless m_\varphi^$): guadagno, rete anticipatrice, attenuatrice, a sella. Il criterio di Bode garantisce la stabilità.Problema di regolazione e sintesi per tentativi →):

  • C′=KisC'=\frac{K_i}s aumenta di uno il tipo del sistema e fissa l'errore a regime (Passo 1). Dalla formula ∣erp(k+1)∣=1∣KB(G~)∣|e_{rp}^{(k+1)}|=\frac1{|K_B(\tilde G)|} si ricava KiK_i.
  • C′′C'' è un polinomio di secondo grado con C′′(0)=1C''(0)=1 (quindi non cambia l'errore). Con KpKi>0\frac{K_p}{K_i}>0 e KdKi>0\frac{K_d}{K_i}>0 ha due zeri a parte reale negativa: una doppia azione anticipatrice, che alza la fase fino a 180∘180^\circ (Passo 2).

Per un PID con zeri reali z1,z2>0z_1,z_2>0 vale C′′=(1+sz1)(1+sz2)=1+(1z1+1z2)s+s2z1z2C''=\big(1+\frac s{z_1}\big)\big(1+\frac s{z_2}\big)=1+\Big(\frac1{z_1}+\frac1{z_2}\Big)s+\frac{s^2}{z_1z_2}, quindi KpKi=1z1+1z2,KdKi=1z1z2.\frac{K_p}{K_i}=\frac1{z_1}+\frac1{z_2},\qquad\frac{K_d}{K_i}=\frac1{z_1z_2}. Dato C′′C'' si ottengono Kp=Ki(1z1+1z2)K_p=K_i\Big(\frac1{z_1}+\frac1{z_2}\Big) e Kd=Kiz1z2K_d=\frac{K_i}{z_1z_2}. La condizione perché gli zeri siano reali è Kp2≥4KiKdK_p^2\ge4K_iK_d (zeri complessi se non vale).

Il PI è CPI=Kis(1+KpKis)C_{PI}=\frac{K_i}s\big(1+\frac{K_p}{K_i}s\big): un integratore e un solo zero in −KiKp-\frac{K_i}{K_p}: anticipo di fase fino a 90∘90^\circ. Il PD non alza il tipo: Kp(1+KdKps)K_p\big(1+\frac{K_d}{K_p}s\big), un solo zero.

Quale controllore scegliere

Cosa serve Soluzione
Alzare il tipo di 11 e anticipo Φ≤90∘\Phi\le90^\circ PI: Kis(1+sz)\frac{K_i}s(1+\frac sz) con zero M20\frac M{20} decadi prima di ωA∗\omega_A^*
Alzare il tipo di 11 e anticipo 90∘<Φ≤180∘90^\circ<\Phi\le180^\circ PID: Kis(1+sz1)(1+sz2)\frac{K_i}s(1+\frac s{z_1})(1+\frac s{z_2}), zeri a M40\frac M{40} decadi prima di ωA∗\omega_A^*
Nessun cambio di tipo, solo alzare il modulo (Φ≤0\Phi\le0) P (guadagno Kp>1K_p>1)
Nessun cambio di tipo, anticipo Φ≤90∘\Phi\le90^\circ PD o rete anticipatrice (Reti anticipatriciLa rete anticipatrice $C_{ant}(s)=\frac{1+s/z}{1+s/p}=\frac{1+sT}{1+\alpha Ts}$ con $0<z<p$ ($\alpha=\frac zp<1$) ha $K_B=1$, alza il modulo di $20\log\frac pz$ dB tra $z$ e $p$ e aggiunge fase (massimo $\arcsin\frac{1-\alpha}{1+\alpha}$ in $\sqrt{zp}$). Si usa nei casi ②, ④ (parte anticipatrice) della sintesi: con $\Phi\le90^\circ$ si mette uno zero $\frac M{20}$ decadi prima di $\omega_A^$; con $90^\circ<\Phi\le180^\circ$ due zeri a $\frac M{40}$ decadi; il polo (o i poli) almeno una o due decadi dopo $\omega_A^$ per rendere la rete propria.Reti anticipatrici →)

Il PID non è adatto se bisogna abbassare il modulo in ωA∗\omega_A^* (ha solo zeri: alzerebbe il modulo): si usano reti attenuatrici o a sella (Reti attenuatrici e reti a sellaLa rete attenuatrice $C_{att}=\frac{1+s/z}{1+s/p}$ con $0<p<z$ ha $K_B=1$ e abbassa il modulo di $20\log\frac zp$ dB oltre $z$ senza cambiare il guadagno in continua (a costo di un po' di fase persa, circa $\frac z{\omega_A^}$ rad). Caso ③: polo a $\frac M{20}$ decadi prima dello zero, zero $\ge1$ decade prima di $\omega_A^$. La rete a sella $C_{sella}=C_{att}C_{ant}$ ($p_1<z_1\le z_2<p_2$) abbassa il modulo e alza la fase: si progetta prima la parte anticipatrice (fase, con un guadagno extra $\Delta$), poi quella attenuatrice sufficientemente a sinistra per togliere $M+\Delta$ dB senza toccare la fase (caso ④).Reti attenuatrici e reti a sella →).

Esempio con PID: tipo 1 e anticipo >90∘>90^\circ

G(s)=10(1+s)(1+s10)3G(s)=\dfrac{10(1+s)}{(1+\frac s{10})^3}, specifiche: tipo 11 con ∣erp(2)∣≤0,1|e_{rp}^{(2)}|\le0{,}1, ωA∗=100\omega_A^*=100 rad/s, mφ∗≥90∘m_\varphi^*\ge90^\circ (tema d'esame 2019, ripreso anche in altri appelli).

Passo 1. KB(G)=10>0K_B(G)=10>0, r=0r=0, tipo 11: C′=KisC'=\frac{K_i}s con ∣erp(2)∣=1Ki⋅10≤0,1|e_{rp}^{(2)}|=\frac1{K_i\cdot10}\le0{,}1, cioè Ki=1K_i=1: C′G=10(1+s)s(1+s10)3C'G=\dfrac{10(1+s)}{s(1+\frac s{10})^3}.

Passo 2. In ω=100\omega=100: modulo −40,1-40{,}1 dB (quindi M=40,1M=40{,}1 dB da guadagnare, ωA<ωA∗\omega_A<\omega_A^*) e fase −90∘+arctan⁡100−3arctan⁡10=−253,4∘-90^\circ+\arctan100-3\arctan10=-253{,}4^\circ, cioè mφ(ωA∗)=−73,4∘m_\varphi(\omega_A^*)=-73{,}4^\circ: servono Φ=90∘−(−73,4∘)=163,4∘>90∘\Phi=90^\circ-(-73{,}4^\circ)=163{,}4^\circ>90^\circ: due zeri, ciascuno che porta M2=20\frac M2=20 dB, cioè a una decade prima: z1=z2=10z_1=z_2=10 rad/s. Controllore: CPID(s)=1s(1+s10)2=1+0,2s+0,01s2s,Ki=1, Kp=0,2, Kd=0,01.C_{PID}(s)=\frac1s\Big(1+\frac s{10}\Big)^2=\frac{1+0{,}2s+0{,}01s^2}{s},\qquad K_i=1,\ K_p=0{,}2,\ K_d=0{,}01. Verifica. CPIDG=10(1+s)s(1+s10)C_{PID}G=\dfrac{10(1+s)}{s(1+\frac s{10})} (i due zeri compensano due dei tre poli di GG in −10-10, che sono stabili): ωA=99,5\omega_A=99{,}5 rad/s, fase −84,8∘-84{,}8^\circ, mφ=95,2∘≥90∘m_\varphi=95{,}2^\circ\ge90^\circ ✓. Tipo 11 ed errore 110=0,1\frac1{10}=0{,}1 ✓. Il sistema retroazionato è BIBO stabile per il criterio di Bode (KB>0K_B>0, poli stabili, ωA\omega_A unica).

Errori comuni

  • Usare un PID "con segno sbagliato": KiK_i e KpK_p devono avere lo stesso segno di KB(G)K_B(G) per avere KB(G~)>0K_B(\tilde G)>0.
  • Dimenticare che il PID non è proprio: se il testo richiede un controllore proprio si aggiunge un polo lontano (e si verifica che non tolga fase).
  • Credere che il PID sia sempre migliore: non abbassa il modulo e, con zeri complessi o troppo vicini a ωA∗\omega_A^*, alza troppo il modulo.
  • Cancellare con gli zeri del PID poli instabili del processo (proibito): qui si cancellano solo poli stabili.
  • Confondere PI con PD: il PI ha il polo nell'origine (cambia il tipo), il PD no.

Versione ripasso

Esercizi su questo argomento

Teoria collegata