Tecnologie dei Sistemi di Automazione
Regolatori PID industriali: implementazione digitale
Sommario della lezione
- Implementazione discreta di un controllore analogico
- Metodi di discretizzazione
- Realizzazione digitale di un regolatore PID
- Pseudocodice di un regolatore PID
Schema di riferimento
In figura si mostra lo schema di riferimento di un regolatore PID:
- r(t) – riferimento
- e(t) – errore di controllo
- u(t) – variabile di controllo
- y(t) – grandezza da controllare
- d(t) – disturbo additivo sull’uscita
- n(t) – rumore di misura
Implementazione discreta di un controllore
Introduzione
- I regolatori PID sono stati originalmente implementati utilizzando tecnologia analogica di varia natura (meccanica, pneumatica, elettronica, ecc.)
- Al giorno d’oggi la quasi totalità dei regolatori viene implementata su dispositivi di controllo digitali
Controllori tempo discreti
I possibili approcci per la progettazione di controllori tempo discreto sono:
- sintesi diretta nel tempo discreto
- sintesi nel tempo continuo e successiva discretizzazione del controllore
Discretizzazione
Un regolatore tempo continuo è un sistema dinamico LTI e SISO (equazioni (1) e (2)).
- Sia h è il periodo di campionamento del controllore tempo discreto che si vuole realizzare
- Per ottenere un implementazione discreta del regolatore bisogna integrare l’equazione differenziale nell’intervallo [kh,(k+1)h]
Sistema dinamico (equazioni (1) e (2))
Discretizzazione
- Ponendo x(k)=x(kh) e integrando la (1) nell’intervallo [kh,(k+1)h] si ottiene la (3)
- Conoscendo i valori delle grandezze in gioco agli istanti kh e (k+1)h, gli integrali in (3) possono essere approssimati utilizzando la combinazione convessa (4)
Discretizzazione
- Utilizzando la relazione (4) in (3) si ottiene la (5)
- Inoltre andando a valutare la (2) in t=kh si ha le (6)
- Applicando la trasformata Z alla relazione (5) si ottiene la (7)
Discretizzazione
Trasformando anche le (6) e utilizzando la (7) si ottiene la relazione, nel dominio della trasformata Z, tra l’uscita del regolatore e l’errore di controllo.
Discretizzazione
- Ricordando che la f.d.t. di un sistema dinamico è data da R(s), ne segue che la (8) può essere vista come la f.d.t. del regolatore valutata per s=(z-1)/[h(αz+1- α)]
- Quindi, se R(s) è la f.d.t. del regolatore tempo continuo la f.d.t. della realizzazione tempo discreta del regolatore può essere ottenuta valutando la (9)
F.d.t. di un sistema dinamico
Discretizzazione
NOTA: La realizzazione tempo discreta del controllore che si ottiene applicando la (9) è una relazione approssimata, perché ottenuta a partire dalla (4).
Diverse approssimazioni sono possibili in base al valore di 0 ≤ α ≤ 1. Le approssimazioni utilizzate nella pratica sono:
- α = 0 -> s = (z-1)/h, Eulero in avanti
- α = 1 -> s = (z-1)/(zh), Eulero all’indietro
- α=1/2 -> s = 2(z-1)/[h(z+1)], Tustin
Realizzazione digitale di un regolatore PID
Regolatore PID tempo continuo
- F.d.t. di un regolatore PID tempo continuo reale -> R(s) Equazione A
- Azione proporzionale -> P(s) Equazione B
- Azione integrale -> I(s) Equazione C
- Azione derivativa -> D(s) Equazione D
Discretizzazione dell’azione proporzionale
- L’azione proporzionale è puramente algebrica, quindi la sua discretizzazione non comporta nessuna approssimazione
- Se p(k) è il contributo dell’azione proporzionale all’istante t=kh, si ha l’espressione in figura
- Nel caso di regolatore PID ISA si deve tenere conto anche del parametro b e si ottiene pISA(k)
Contributo dell'azione proporzionale
Caso del regolatore PID ISA
Discretizzazione dell’azione integrale
- Tipicamente l’azione integrale viene discretizzata utilizzando il metodo di Eulero all’indietro, con la quale si ottiene i(k) (prima figura)
- Se si utilizzasse Eulero in avanti, l’algoritmo di controllo dovrebbe memorizzare anche il campione dell’errore all’istante t=(k-1)h. Applicando Eulero in avanti, infatti, si ottiene i(k) (seconda figura)
- Una considerazione analoga vale anche se si discretizza utilizzando il metodo di Tustin
Metodo di Eulero all'indietro
Metodo di Eulero in avanti
Discretizzazione dell’azione derivativa
- Anche per l’azione derivativa si preferisce utilizzare il metodo di Eulero all’indietro, con il quale si ottiene d(k) (prima figura)
- Nel caso di regolatore PID ISA, bisogna considerare anche il parametro c, e si ottiene d(k) (seconda figura)
- Tipicamente c≠1 per limitare l’azione derivativa, quindi non c’è la necessità di memorizzare e(k-1) se l’azione integrale viene discretizzata con Eulero all’indietro
Metodo di Eulero all'indietro
Metodo di Eulero in avanti
Discretizzazione dell’azione derivativa
Se, per discretizzare l’azione derivativa, si utilizza:
- il metodo di Eulero in avanti, allora per valori sufficientemente piccoli di TD si avrebbe una legge di controllo instabile
- il metodo di Tustin, allora quando TD = 0 il controllore presenta un polo in -1, associato ad un modo alternante, che è preferibile evitare
Regolatore PID tempo discreto
La legge di controllo complessiva del regolatore PID ISA nel dominio del tempo discreto si ottiene sommando i contributi presentati nelle slide precedenti, quindi:
u(k) = p(k) + i(k) + d(k)
Schema di controllo con regolatore digitale
Pseudocodice di un regolatore PID
Considerazioni preliminari
- Il codice che implementa un regolatore PID dovrà essere eseguito in modalità periodica dal dispositivo di controllo, con periodo pari a h
- Prima di entrare nella modalità di esecuzione periodica è possibile calcolare alcune costanti, con l’obiettivo di ridurre il numero di operazioni da effettuare, per ridurre il ritardo tra l’istante in cui viene campionata l’uscita y(t) e l’istante in cui viene generata l’azione di controllo u(t)
Definizione delle costanti
Si supponga di aver definito le seguenti costanti nella fase di inizializzazione del codice:
- GP = KP*b
- GI = KP*h/TI
- GD1 = TD/(N*h+TD)
- GD2 = KP*N*GD1
- GD3 = c*GD2
E di inizializzare le variabili seguenti:
- d = 0
- i = 0
- r_old = 0
- y_old = 0
Pseudocodice
1) Attesa attivazione (clock interrupt o chiamata dal s.o.)
2) Acquisizione A/D di r e y
3) e = r-y % Calcolo dell’errore
4) p = GP*r-y; % Azione proporzionale
5) d = GD1*d+GD2*(y_old-y)+GD3*(r_old-r) % Azione derivativa
6) if MANUALE then % Modalità manuale
7) u = u+delta_u; % Uscita manuale
8) i = u-d-p % Bumpless
9) else % Modalità automatica
10) i = i+GI*e % Azione integrale
11) u = p+i+d % Uscita complessiva
12) endif
Pseudocodice
13) if u>u_max then % Anti wind-up – Saturazione superiore
14) u = u_max
15) i = u-p-d
16) elseif u
17) u = u_min
18) i = u-p-d
19) endif
20) Emissione di u e conversione D/A
21) r_old = r
22) Y_old = y
Pseudocodice di un regolatore PID
Problemi numerici
Problemi numerici si possono avere a causa:
- della quantizzazione dei parametri e delle variabili di ingresso e uscita
- degli arrotondamenti
- di undeflow e overflow del processore
In particolare:
- a causa della rappresentazione quantizzata e del verificarsi di underflow, l’errore a regime in presenza di riferimento costante è diverso da zero anche in presenza dell’azione integrale
- in presenza dell’azione integrale l’errore a regime sarà tanto più grande quanto più piccolo sarà h (quindi al crescere della frequenza di campionamento)
Scelta della frequenza di campionamento
- La frequenza di campionamento è limitata verso il basso dal teorema di Shannon e dalla banda desiderata a ciclo chiuso. In particolare, se fs=1/h è la frequenza di campionamento e fBW è la banda del sistema controllato, si ha:
- Il limite inferiore dato dal teorema di Shannon e solo teorico. Nella pratica si sceglie:
- Per motivi legati ai filtro anti-aliasing il limite inferiore cresce ancora e tipicamente si ha
- Esiste anche una limitazione verso l’alto per fs, sia per problemi legati ai costi realizzativi, sia per rendere contenuto l’errore a regime dovuto alla realizzazione digitale dell’azione integrale
Esercizi proposti
- Partendo dalla relazione (5) ricavare la relazione (7)
- Applicando i metodi di Eulero all’indietro ed Eulero in avanti si ricavino le espressioni dell’azione integrale nel tempo discreto date in precedenza
- Si discretizzi l’azione integrale utilizzando il metodo di Tustin
- Applicando il metodo di Eulero all’indietro si ricavino le espressioni dell’azione derivativa nel tempo discreto date in precedenza
Prossima lezione
Programmazione dei PLC: lo standard IEC 61131-3
- Lo standard IEC 61131-3
- I linguaggi di programmazione per PLC