Vai alla Home Page About me Courseware Federica Virtual Campus 3D Gli eBook di Federica
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Alfredo Pironti » 6.Regolatori PID industriali: Implementazione digitale


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
Schema esplicativo

Schema esplicativo


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:

  1. sintesi diretta nel tempo discreto
  2. 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))

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)
Equazione (3)

Equazione (3)

Equazione (4)

Equazione (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)
Equazione (5)
Equazione (6)
Equazione (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.

Equazione (8)

Equazione (8)


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

F.d.t. di un sistema dinamico

Equazione (9)

Equazione (9)


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
Equazioni A B C D

Equazioni A B C 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

Contributo dell'azione proporzionale

Caso del regolatore PID ISA

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 all'indietro

Metodo di Eulero in avanti

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 all'indietro

Metodo di Eulero in avanti

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

Schema esplicativo

Schema esplicativo


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:
    • fs>2fBW
  • Il limite inferiore dato dal teorema di Shannon e solo teorico. Nella pratica si sceglie:
    • fs>10fBW
  • Per motivi legati ai filtro anti-aliasing il limite inferiore cresce ancora e tipicamente si ha
    • fs>200fBW
  • 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

  1. Partendo dalla relazione (5) ricavare la relazione (7)
  2. Applicando i metodi di Eulero all’indietro ed Eulero in avanti si ricavino le espressioni dell’azione integrale nel tempo discreto date in precedenza
  3. Si discretizzi l’azione integrale utilizzando il metodo di Tustin
  4. 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

I materiali di supporto della lezione

G. Magnani, G. Ferretti, P. Rocco, Cap. 7 par.7.6

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93