Regolatori PID digitali Automazione Alessandro De Luca Sistema di controllo digitale schema generale MIMO di controllo in feedback schema di controllo digitale - qui, caso scalare (SISO) - con passo di campionamento Tc - con convertitori A/D e D/A - segnali a tempo continuo e discreto - utilizza un microprocessore (con codifica binaria) ⇒ digitale Automazione 2 Campionamento e ricostruzione conversione analogico-digitale (A/D): segnale campionato ogni Tc e quantizzato in livelli (per troncamento o arrotondamento) x k = x(kTc ) [ = x q (kTc )] conversione digitale-analogica (D/A): € segnale ricostruito da un organo di tenuta (qui, di ordine zero = ZOH) ZOH = Zero-Order Hold x r (t) = x(kTc ), t ∈ [kTc ,(k +1)Tc ) 3 Automazione € Campionamento a impulsi • campionamento = segnale a tempo continuo × treno di impulsi di Dirac ∞ δTc (t) = ∑ δ(t − kTc ) x * (t) = x(t)δTc (t) k =0 • dallo spettro X(jω) del segnale x(t) e dallo sviluppo in serie di Fourier del treno di impulsi di Dirac € l’andamento spettrale del segnale campionato x*(t) è € il tempo di campionamento è un fattore di scala! Automazione € 1 X * ( jω) = Tc ∞ ∑ X( jω − jnω ) c n =−∞ ω c = 2π /Tc pulsazione di campionamento € 4 Teorema di Shannon e aliasing spettro di un segnale limitato in banda a ωM spettro del relativo segnale campionato componenti complementari componente primaria campionamento a pulsazione ωc ≥ 2 ωM filtro ricostruttore ideale (non realizzabile) ⎧T ω ≤ ω c /2 GR ( jω) = ⎨ c ⎩0 else fenomeno di aliasing campionamento a pulsazione ωc < 2 ωM anche se usassimo un filtro ricostruttore ideale... € comportamento approssimato dallo ZOH (per Tc piccolo a sufficienza) ricostruzione del segnale (idealmente) perfetta... Teorema di Shannon ...ricostruzione del segnale (sempre) corrotta Teorema di Shannon conclusione: i segnali hanno sempre componenti a frequenza sufficientemente alta (rumore) ⇒ filtraggio anti-aliasing Automazione 5 Ricostruzione: Zero-Order Hold risposta dello ZOH ad un impulso unitario in ingresso (differenza di due gradini unitari, con il secondo ritardato) ⇒ ⇒ h0 (t) = δ −1 (t) − δ −1 (t − Tc ) ⇒ 1 1 − jωTc 1 − e − jωTc H 0 ( jω) = − e = jω jω jω (nel dominio della frequenza) 1 1 − jωTc e jωTc / 2 − e − jωTc / 2 − jωTc / 2 sin(ωTc /2) − jωTc / 2 H 0 ( jω) = − e = e = Tc e €jω jω jω ωTc /2 € ⇒ H 0 ( jω) = Tc sin(ωTc /2) ≈ Tc per ωTc << 1 ωTc /2 • lo ZOH approssima il ricostruttore (recuperando la scala!) per Tc sufficientemente piccolo € • lo ZOH introduce nell’anello di controllo un ritardo pari a € Tc/2, con problemi indotti di instabilità Scelta del passo di campionamento • Tc sufficientemente piccolo ⇒ evita perdita di informazione e instabilità • Tc non troppo piccolo ⇒ cresce il costo computazionale (vincoli real time) αω M ≤ ω c ≤ 10αω M Automazione € π 2π ≤ Tc ≤ 5αω M αω M € α ∈ [5 ÷10] parametro di progetto 6 Specifiche nel progetto di controllo • stabilità asintotica ! • prestazioni statiche (errori a regime permanente) • prestazioni dinamiche (sul transitorio) • spesso sulla risposta a gradino (risposta indiciale), con legami da/per la risposta armonica • specifiche riferimento-uscita • specifiche disturbo-uscita • sforzo di controllo • limiti fisici (attuatori) • realizzazione digitale (passo di campionamento e altro) Automazione 7 Specifiche sulla risposta indiciale • tempo di salita Ts (da 10% al 90% del regime) • tempo di assestamento Ta (errore inferiore al 3-5%) • massima sovraelongazione S y(Tm ) − y ∞ S= y∞ • istante di massima sovraelongazione Tm € Automazione 8 € € Regolatore PID Azione Proporzionale-Integrale-Derivativa (sull’errore) soluzione industriale standard: oltre il 95% dei dispositivi di controllo in uso, per lo più di tipo digitale, hanno una legge di controllo PID molteplici versioni e varietà di prodotti, differenti per feature aggiuntive semplice taratura dei parametri (tuning), ora spesso automatica facile interpretazione dei termini/effetti nella legge di controllo e(t) = y rif (t) − y(t) ⎛ 1 u(t) = K p ⎜e(t) + Ti ⎝ de(t) ⎞ ∫ e(τ )dτ + Td dt ⎟ ⎠ 0 t t de(t) u(t) = K p e(t) + K i ∫ e(τ)dτ + K d dt 0 Automazione due espressioni equivalenti del PID (in forma analogica) 9 Regolatore PID digitale discretizzazione con passo Tc delle azioni del PID sull’errore e(t) = y rif (t) − y(t) K p e(t) ⇒ K p e(kTc ) = K p ek 1 Kp Ti € t ∫ e(τ)dτ 0 ⇒ k Kp Tc ∑ e j Ti j =0 de(t) ek − ek −1 K p Td ⇒ K p Td dt Tc integrazione rettangolare in avanti € (detta anche di Eulero a sinistra) derivazione all’indietro (backward) € € K p Tc uk = K p ek + Ti ui,k = ui,k −1 + K p Tc Ti k K p Td ∑ e j + T (ek − ek −1) c j =0 ek K p Td uk = K p ek + (ek − ek −1 ) + ui,k Tc Automazione forma di posizione del PID digitale implementazione ricorsiva della forma di posizione del PID digitale 10 Regolatore PID digitale k K p Tc uk = K p ek + Ti K p Td ∑ e j + T (ek − ek −1) c j =0 K p Tc uk −1 = K p ek −1 + Ti k −1 K p Td ∑ e j + T (ek −1 − ek −2 ) c j =0 facendo la differenza di due campioni di controllo successivi... Δuk = uk − uk −1 K p Tc K p Td = K p (ek − ek −1 ) + ek + ek − 2ek −1 + ek −2 ) ( Ti Tc uk = uk −1 + Δuk forma di velocità del PID digitale −1 introducendo l’operatore di ritardo z-1=1/z (di un passo Tc) ... y k −1 = z y k (1 − z ) u −1 k = K p (1 − z −1 )e k + K p Tc Ti ek + K p Td Tc (1 − 2z −1 + z −2 ) ek = (1 − z −1 ) € € Automazione ⎡ ⎤ K p Tc Kp −1 uk = ⎢K p + Td (1 − z ) ⎥ ek = PID(z)ek −1 + Ti 1 − z Tc ⎣ ⎦ 2 € 11 Schema PID digitale ui,k ek uk € € ud ,k € € controllore PID digitale Automazione 12 Derivata filtrata in banda... ⎛ 1 u(t) = K p ⎜e(t) + Ti ⎝ de(t) ⎞ ∫ e(τ )dτ + Td dt ⎟⎠ 0 t il termine derivativo puro del PID non è realizzabile ⎛ ⎞ K p ((1/Ti ) + s + Td s2 ) 11 u(s) = K p ⎜1 + + Td s⎟ e(s) = e(s) s ⎝ Ti s ⎠ K p Td s ⇒ K p Td s 1+ (Td /N) s funzione di trasferimento impropria (non causale) aggiunta di un polo in alta frequenza (la derivazione viene filtrata in banda) si considerano N campioni a tempo discreto con 5 ≤ € realizzazione solo con blocchi “causali” Automazione € e € KpN Td ≤ 20 N + 1 € Td 1+ s N − € ud 13 ...e sua realizzazione digitale s ud (s) = K p Td e(s) Td 1+ s N ⎛ Td ⎞ ⎜1+ s⎟ ud (s) = K p Td s e(s) ⎝ N ⎠ derivate realizzate con le differenze all’indietro ⎛ K p Td Td Td −1 ⎞ − z ⎟ ud ,k = 1 − z −1 ) ek ⎜1+ ( Tc ⎝ NTc NTc ⎠ K p Td 1 − z −1 ) ( Tc ud ,k = e Td Td −1 k 1+ − z NTc NTc T u − ud ,k −1 e −e ud ,k + d d ,k = K p Td k k −1 N Tc Tc € € ud ,k € ⎤ K p Td K p Td 1 ⎡ Td = u + ek − ek −1 ⎥ Td ⎢⎣ NTc d ,k −1 Tc Tc € ⎦ 1+ NTc K p Tc ui,k = ui,k −1 + e Ti k uk = K p ek + ui,k + ud ,k € € ⎡ ⎤ ⎢ ⎥ K p Tc K p Td 1 − z −1 * ⎥ uk = ⎢K p € + + e = PID (z)ek k −1 T T T 1 − z T −1 d ⎢ i c 1+ − d z ⎥ ⎢⎣ ⎥⎦ NTc NTc € Automazione 14 Schema PID* digitale ui,k ek uk € € ud ,k € € controllore PID digitale con derivata filtrata in banda = PID* Automazione 15 Schemi realizzativi del PID ➀ schema standard con tutte le azioni P+I+D sull’errore I PD quando e(t)≈0, a causa dei rumori di misura il rapporto S/N peggiora PI ➂ azione P+D calcolata sull’uscita (il solo termine integrale recupererà l’errore): evita saturazioni da salto a gradino del riferimento e(t) PI Lead u(t) ➁ azione derivativa calcolata solo sull’uscita (per riferimento costante a lungo o a tratti): evita “spikes” dovuti a variazioni di r a gradino de(t) dy(t) r = cost ⇒ =− dt dt Automazione ➃ azione derivativa assimilata a quella di una rete anticipatrice opportuna: facilita il tuning del PID con le regole del “loop shaping” in frequenza 16 Schema PID con feedforward schema a due gradi di libertà (α e β) aggiunta di un’azione di feedforward (ffw) (per inseguimento di riferimento variabile e/o compensazione di disturbi) α + βTd s r(t) + €− € − 1 + 1+ + Td s Ti s Kp € schema equivalente u(t) y(t) G(s) da discretizzare come prima per ottenere un PID + ffw digitale € con sole azioni di feedback (fbk) (dall’errore e dall’uscita misurata) α = 0 β = 0 ➀ α = 0 β = 1 ➁ α = 1 β = 1 ➂ 0<α<1 0<β<1 ... r(t) + − 1 (1 − α) + + (1 − β)Td s Ti s + − α + βTd s € € Kp u(t) y(t) G(s) € vedi schemi pagina precedente Automazione € 17 Schema PID* sull’uscita ui,k ek € yk uk € ud ,k € € € ➁ controllore PID digitale con derivata (filtrata in banda) calcolata sull’uscita = PID*y Automazione 18 Saturazione dell’attuatore sotto PID saturazione fisica dell’attuatore ⎧ u , u H ≤ u(t) ⎪ H ua (t) = ⎨ u(t), uL ≤ u(t) ≤ u H ⎪ u , u(t) ≤ uL ⎩ L (di solito simmetrica rispetto allo 0, ma non necessariamente) il comando attuato NON dipende più dall’uscita del PID G(s) € ad esempio, attuatore saturato al suo valore massimo G(s) (ossia dall’azione di controllo in feedback calcolata dall’errore) € come fosse ad anello aperto (o con una riduzione dei guadagni) Automazione la saturazione del comando di controllo è critica se c’è un’azione integrale che “accumula” errore anche quando l’attuatore è in saturazione 19 PID digitale anti-windup una possibile realizzazione anti-windup del regolatore PID digitale yk ek w1,k u1,k wk uk azione separata PD, PD*, o PD*y si conosce una “misura” dell’effettivo segnale attuato (≠ dal controllo calcolato) oppure si usa un modello algebrico dell’attuatore con stessi valori di saturazione nello schema, ci sono due saturazioni: sulla sola azione PD e sul comando finale l’integrazione dell’errore viene bloccata automaticamente quando c’è saturazione non evita saturazioni, ma solo l’inutile “accumulo” dell’azione integrale sull’errore andrebbe poi “scaricata” quando l’errore si è ridotto, prima di poter rientrare nel dominio di linearità dell’attuatore si rallenterebbe quindi il recupero della corretta azione del PID Automazione 20 Analisi del comportamento anti-windup azione separata PD, PD*, o PD*y yk w1,k ek u1,k wk uk • nella regione di linearità K p Tc K p Tc −1 uk = (w k =) u1,k + ek + ( uk −1 − u1.k −1 ) = (1 − z ) u1,k + ek + z −1uk Ti Ti K p Tc ek uk = u1,k + esegue l’azione PD+I standard Ti 1 − z −1 € • entrambi i blocchi in saturazione (da almeno 1 passo di campionamento) uk −1 = u H € u1,k = u1,k −1 = u H uk = u H + € Automazione ad esempio, attuatore saturato al suo valore massimo K p Tc K p Tc ek + ( u H − u H ) = u H + ek Ti Ti NON integra più! 21 Effetto dell’anti-windup nel PID uscita controllata comando di controllo (e versione effettivamente attuata) simulazione di un controllo in retroazione di tipo PID in presenza di saturazione dell’attuatore: realizzazione standard (a-c) e realizzazione anti-windup (b-d) Automazione 22 Tuning del PID - 1 metodo basato su un modello semplice (guadagno, costante di tempo, ritardo finito) e −θs G(s) = K 1+ τs che approssima il processo fisico, ricavato da parametri della risposta ad un gradino Δu esempi di deduzione per via grafica del modello di progetto G(s): processo del primo ordine (a) e processo di ordine superiore (b) Automazione 23 Scelta dei parametri del PID 1° metodo di PID analogico (e sue varianti più semplici) nel caso di PID digitale, si tiene conto del passo di campionamento Tc e si pone T θ → θD =θ + c 2 Automazione θD utilizzando nella tabella τ ⇒ per KK p , Ti /τ , Td /τ 24 Esempio di tuning del PID processo da controllare (asintoticamente stabile) Risposta indiciale del processo P(s) 1 0.9 € 0.8 analisi grafica 0.8 0.7 risposta indiciale 0.6 0.7 0.6 0.5 K =1 θ = 1.46 s τ = 3.34 s 0.4 0.3 può essere rilevata sperimentalmente (anche senza modello) 0.2 0.1 0 2 4 6 8 t (sec) 10 12 14 0.5 0.4 0.3 0.2 0.1 16 0 0 5 10 15 20 25 t (sec) € modello per il progetto del PID (uso delle tabelle) Automazione uscita y uscita y Risposta indiciale dell’approssimante G(s): K = 1, tau = 3.34, theta = 1.46 1 0.9 0 Nota: il modello matematico del processo non è detto che sia noto, anzi... 1 P(s) = (1+ 0.5s)(1+ s) 2 (1+ 2s) e −1.46s G(s) = 1+ 3.34s 25 Esempio di tuning del PID processo da controllare P(s) = vediamo prima cosa succede con delle leggi di controllo progettate per “tentativi”... 1 (1+ 0.5s)(1+ s) 2 (1+ 2s) Risposta indiciale con controllore P generico: Kp = 2 1 Risposta indiciale con PID* generico: Kp = 3, Ti = 5, Td = 0.1 1.6 0.9 1.4 € 0.8 1.2 0.7 1 uscita y uscita y 0.6 0.5 0.8 0.4 0.6 0.3 0.4 0.2 0.2 0.1 0 0 5 10 15 t (sec) 20 25 30 0 0 10 20 30 40 50 60 70 t (sec) con controllore solo proporzionale (qui Kp = 2) con controllore PID* (con derivata in banda) • tempo di salita più rapido (ts ≈ 3 s) • errore a regime permanente (≈ 33%) • sovraelongazione pronununciata (≈ 35%) • aumentando il guadagno, oscillazioni crescenti • dopo molte prove: Kp = 3, Ti = 5, Td = 0.1 • spesso instabile (con guadagni molto simili!) • sovraelongazione eccessiva e molte oscillazioni • tempo di assestamento troppo lungo (40÷50 s) Automazione 26 Esempio di tuning del PID processo da controllare P(s) = 1 (1+ 0.5s)(1+ s) 2 (1+ 2s) ⎛ ⎞ Td s 1 ⎟⎟, PID * (s) = K p ⎜⎜1+ + ⎝ Ti s 1+ (Td /N)s ⎠ controllore PID sintonizzato usando € la tabella con il 1° metodo di Ziegler-Nichols K p = 2.75, Ti = 2.92, Td = 0.73, N = 5 derivata limitata in banda Risposta indiciale con PID* (metodo 1 di Z−N): Kp = 2.7452, Ti = 2.92, Td = 0.73 1.4 1.2 € • tempo di salita rapido (ts ≈ 2,5 s) • errore a regime permanente nullo • poche oscillazioni • tempo di assestamento ≈ 16 s • sforzo di controllo limitato [vedi prossima slide] • sovraelongazione ancora elevata ... 1 uscita y 0.8 0.6 0.4 0.2 0 0 2 Automazione 4 6 8 10 t (sec) 12 14 16 18 20 27 Versione digitale del PID dall’analisi grafica 1 e −1.46s P(s) = G(s) = K (K = 1, θ = 1.46 s, τ = 3.34 s) 2 1+ 3.34s (1+ 0.5s)(1+ s) (1+ 2s) della risposta indiciale processo da controllare regolatore PID digitale con dalla tabella (1° metodo di Ziegler-Nichols) modello per il progetto del PID (uso delle tabelle) Tc = 0.3 s ⇒ θ D = θ + Tc /2 = 1.46 + 0.15 = 1.61 ⇒ € KK p = 2.4894, Ti /τ = 0.9641, Td /τ = 0.241 ⇒ K p = 2.4894, Ti = 3.22, Td = 0.805 θ D /τ = 0.482 € € risposta € indiciale (a tempo continuo) uscita del regolatore PID digitale sforzo di controllo limitato nel transitorio (dopo organo ZOH) Automazione 28 Tuning del PID - 2 2° metodo di Ziegler-Nichols (ad anello chiuso) [posizione di tuning b] 1. si chiude l’anello di controllo con la sola azione proporzionale 2. si aumenta il guadagno K fino al valore critico Kc che porta il sistema in oscillazione 3. si ricava il periodo Pc dell’oscillazione critica [posizione di operazione a] PID (o sue varianti), dopo la scelta dei guadagni come da tabella yd ➚K Pc = 2π/ωc (-1,j0) . ω Automazione interpretazione sul diagramma di Nyquist 29 Esempio di tuning del PID stesso processo da controllare P(s) = 1 (1+ 0.5s)(1+ s) 2 (1+ 2s) ⎛ ⎞ Td s 1 ⎟⎟, PID * (s) = K p ⎜⎜1+ + ⎝ Ti s 1+ (Td /N)s ⎠ K p = 3, Ti = 3.13, Td = 0.78, N = 5 controllore PID sintonizzato usando la tabella con il 2° metodo € di Ziegler-Nichols Risposta indiciale con controllore P critico: Kc = 5 1.6 Risposta indiciale con PID* (metodo 2 di Z−N): Kp = 3, Ti = 3.135, Td = 0.78375 1.4 1.4 1.2 € 1.2 1 1 uscita y uscita y 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 10 20 30 40 50 60 70 80 90 t (sec) • controllore P con guadagno critico Kc = 5 • periodo di oscillazione (tra picchi) Pc = 6.27 s Automazione 0 0 2 4 6 8 10 t (sec) 12 14 16 18 20 • risultato molto simile al caso precedente (anche nella versione digitale) 30 Tuning del PID - 2 2° metodo di Ziegler-Nichols (schema alternativo ad anello chiuso) [posizione di tuning b] 1. si chiude l’anello con una funzione a relè di ampiezza d 2. la retroazione non lineare innesca una oscillazione critica... 3. dalla teoria delle funzioni descrittive: • il segnale di uscita a regime è periodico quasi-sinusoidale di periodo Pc • la prima armonica dell’uscita ha un’ampiezza A = 4d/π 4. si misura il periodo Pc dell’oscillazione critica e dall’ampiezza A dell’uscita si ricava Kc [posizione di operazione a] PID (o sue varianti), dopo la scelta dei guadagni come da tabella yd Automazione Kc = 4d/πA 31