Sei sulla pagina 1di 50

INTRODUZIONE AL PID INDUSTRIALE

ALBERTO LEVA, APRILE 2000

Introduzione al PID industriale

Alberto Leva, marzo 2000

INTRODUZIONE AL PID INDUSTRIALE


Sommario
v

Simbologia e glossario

Antiwindup

La legge di controllo PID

Secondo intermezzo: un cenno al PID


reale a tempo discreto e alla sua forma
incrementale

Il ruolo dellazione proporzionale


Il ruolo dellazione integrale

Tracking o inseguimento

Il ruolo dellazione derivativa

Logiche di blocco

Osservazioni conclusive sulle tre azioni


v

Commutazione automatico/manuale

Accorgimenti implementativi comuni

Azione diretta e inversa

Peso sul set point nellazione


proporzionale

Gl'ingressi, le uscite ed i parametri del


PID industriale

Peso sul set point nellazione derivativa

Derivatore reale

Conclusioni

Primo intermezzo: il PID reale nel


dominio della frequenza

Introduzione al PID industriale

Alberto Leva, marzo 2000

SIMBOLOGIA E GLOSSARIO
In questa introduzione al PID industriale si far essenzialmente riferimento, salvo diverso avviso, allo schema a blocchi
seguente, che rappresenta in modo molto semplificato un singolo loop di controllo:

PID

u+
+

P(s)

w +

y
+

Si adotter inoltre, sempre salvo diverso avviso, la simbologia seguente:


Simbolo Significato

Sinonimi

y(t)
w(t)
y(t)
e(t)
u(t)
d(t)
n(t)
PID
P(s)
v(s)
v*(z)

SP

Segnale di riferimento o set point


Variabile controllata o di processo
Misura della variabile controllata o di processo
Errore, definito come e(t)=y(t)-y(t)
Variabile di controllo
Disturbo di carico
Rumore di misura
Regolatore PID
Funzione di trasferimento descrivente il processo sotto controllo
Trasformata di Laplace del generico segnale a tempo continuo v(t)
Trasformata Zeta del generico segnale a tempo discreto v*(k)

Introduzione al PID industriale

PV
CS

Alberto Leva, marzo 2000

LA LEGGE DI CONTROLLO PID


Il regolatore PID nella sua forma pi semplice caratterizzato dalla legge di controllo

u (t ) = K p e(t ) + K i e(t )dt + K d

de(t )
dt

oppure

de(t )
1

u (t ) = K e(t ) + e(t )dt + Td


dt
Ti

Questo significa che il controllo calcolato come somma di tre contributi, detti
1. P

o azione proporzionale

2. I

o azione integrale

3. D

o azione derivativa,

proporzionali rispettivamente allerrore, al suo integrale e alla sua derivata, ossia aventi le espressioni

P(t ) = K p e(t )

oppure

I (t ) = K i e(t )dt

oppure

de(t )
dt

oppure

D (t ) = K d

Introduzione al PID industriale

P(t ) = Ke(t )
K
I (t ) = e(t )dt
Ti
de(t )
D (t ) = KTd
dt

Alberto Leva, marzo 2000

Il ruolo dellazione proporzionale

P(t ) = K p e(t )

oppure

P(t ) = Ke(t )

Serve a garantire unazione di controllo proporzionale al valore istantaneo dellerrore


Lazione proporzionale dipende dal solo valore attuale, istantaneo dellerrore.
In parole povere
Lazione proporzionale obbedisce alla logica del tutto intuitiva che pi grande lerrore, istante per istante,
pi intensa devessere lazione sul processo per portare la variabile controllata al valore desiderato.
E importante osservare che essa (a meno del caso in cui vi si usi il cosiddetto peso sul set point, cosa che si
vedr nel seguito) diversa da zero se e solo se lo lerrore: pertanto, idealmente, a regime nulla. In realt,
per, in una condizione di regime (a set point fermo) essa seguir le fluttuazioni della variabile controllata
dovute per esempio ai rumori di misura. Questo suggerisce che bene non esagerare con lazione
proporzionale, anzi usarla con pi parsimonia che si pu.
Per converso, tale azione assolutamente pronta a reagire non appena si manifesta un errore, e questa sua
caratteristica va sfruttata a dovere. Come lazione derivativa, d il suo contributo nelle fasi iniziali dei
transitori; poi, quando lerrore diviene piccolo, finisce per non contare pi nulla.

Introduzione al PID industriale

Alberto Leva, marzo 2000

Il ruolo dellazione integrale

I (t ) = K i e(t )dt

oppure

I (t ) =

K
e(t )dt
Ti

Serve a garantire che a regime lerrore sia nullo


Infatti se cos non fosse lintegratore presente nel regolatore cambierebbe il suo stato, contro lipotesi che si
sia a regime.
In parole povere
Lazione integrale non va a zero se non c errore, a differenza delle altre due. Anzi, se ad esempio lerrore
rimane fisso essa continua ad aumentare linearmente, obbedendo ad un principio del tipo finch la variabile
controllata non si decide a muoversi nella direzione che desidero, io applico al processo unazione di
controllo sempre pi intensa. Quindi lazione integrale non tiene conto del solo valore attuale, istantaneo
dellerrore, bens anche del suo passato.
Tra parentesi, tutto ci vuol dire anche che se si riesce ad andare a regime, cio ad annullare lerrore, il
controllo alla fine sar fatto soltanto di azione integrale. Come si vedr meglio poi, quasi sempre lazione
integrale che governa in maniera predominante il modo in cui il sistema va a regime.
Lazione integrale per definizione non fa salti e pertanto la meno pronta a reagire. In una parola, non
aiuta quasi per nulla nelle fasi iniziali dei transitori: quelle sono dominate dalle altre due azioni.

Introduzione al PID industriale

Alberto Leva, marzo 2000

Il ruolo dellazione derivativa

D (t ) = K d

de(t )
dt

D (t ) = KTd

oppure

de(t )
dt

Serve a far dipendere il controllo dal futuro dellerrore, cio dalla direzione in cui esso si muove e
dalla velocit con cui varia
Infatti (con riferimento alla seconda delle due espressioni di D(t) ed alla figura seguente) essa fa dipendere il
controllo da una sorta di predizione dellerrore Td istanti di tempo in avanti.

e(t)

Td

Td
evero = e(t+Td)-e(t)

Introduzione al PID industriale

estimato = Td de(t)
dt

Alberto Leva, marzo 2000

e(t)

estimato = Td de(t)
dt

Td

Td
evero = e(t+Td)-e(t)

In parole povere
Lazione derivativa cerca di capire da che parte e con che velocit va lerrore e di reagire di conseguenza,
il parametro Td d la misura di quanto lontano nel futuro si spinge la predizione e K assume qui il ruolo di
fattore di proporzionalit tra la variazione dellerrore prevista e la reazione del controllo (nellaltra
formulazione di D(t) il parametro Kd riunisce le due cose).
Lazione derivativa la pi pronta a reagire (anche ai rumori di misura, purtroppo) e aiuta solo se la
predizione buona, ossia se Td non troppo grande rispetto alle dinamiche temporali dellerrore: la
differenza si nota osservando i casi A e B in figura.
Lazione derivativa idealmente nulla a regime, ove in realt per segue e tende ad amplificare il rumore di
misura; aiuta pertanto solo nelle fasi iniziali dei transitori. Pu essere di grande aiuto ma anche pericolosa,
soprattutto se la misura della variabile controllata rumorosa. Pertanto va usata con cautela e cognizione di
causa, e molti sistemi industriali ne limitano a priori lintensit.

Introduzione al PID industriale

Alberto Leva, marzo 2000

Osservazioni conclusive sulle tre azioni


La figura seguente riporta i due transitori pi tipici per valutare le prestazioni di un sistema di controllo: quello
conseguente ad una variazione a scalino del set point e quello conseguente ad un disturbo di carico a scalino.

Alla luce di quanto si detto sul ruolo e sulle caratteristiche delle tre azioni di controllo P, I e D, ora utile fare alcune
considerazioni.

Introduzione al PID industriale

Alberto Leva, marzo 2000

Risposta al set point


d

PID

u+
+

P(s)

+
+

La variabile di controllo risente subito


della variazione del set point, a meno
della sola dinamica del PID.

Pertanto
A meno che la risposta del processo non sia praticamente
istantanea, lazione proporzionale subisce una decisa variazione a
scalino e questa si riflette sulla variabile di controllo. Se ne trae
che, desiderando che il controllo abbia una risposta pronta, questo
si ottiene impiegando in misura sufficiente lazione proporzionale.
Bisogna per stare attenti che lattuatore sia in grado di
sopportare variazioni potenzialmente brusche
della sua variabile di comando.
Si pu anche notare che, in questo transitorio, lazione derivativa
opera in modo da abbattere il contributo di quella proporzionale
pi in fretta, poich se lerrore positivo ma decresce lazione
derivativa negativa. Quindi, in termini intuitivi, lazione
derivativa pu servire a togliere pi in fretta leffetto di quella
proporzionale dopo che essa ha dato il suo contributo rendendo
pronta nei primi istanti lazione di controllo. Usata cos, pertanto,
essa utile per evitare o ridurre le sovraelongazioni della
variabile controllata.

Introduzione al PID industriale

10

Alberto Leva, marzo 2000

Risposta al disturbo di carico


d

PID

u+
+

P(s)

+
+

La variabile di controllo risente del


disturbo di carico tramite la dinamica
del processo e del PID.

Pertanto
A meno che la risposta del processo non sia praticamente
istantanea, un disturbo di carico a scalino non provoca uno
scalino dellerrore. Quindi nessuna delle tre azioni di controllo
subisce variazioni brusche.
Il problema principale che fino a quando luscita del processo
non si mossa il regolatore non pu accorgersi del disturbo, e
pertanto la sua reazione pu giungere solo dopo che il processo ne
ha subito gli effetti (in senso dinamico, cio come influenza si suoi
stati) abbastanza perch essi siano rilevabili dalluscita. Per
questo linseguimento del set point e la reiezione dei disturbi di
carico sono due problemi di controllo alquanto diversi.
Le considerazioni sul ruolo delle tre azioni sono qui pi complesse,
salvo notare il ruolo sempre dominante a regime dellazione
integrale, e premature: si torner a parlare di disturbi di carico al
momento di affrontare i metodi di taratura.

Introduzione al PID industriale

11

Alberto Leva, marzo 2000

ACCORGIMENTI IMPLEMENTATIVI COMUNI

Nessun regolatore industriale implementa la legge di controllo PID nella sua forma primitiva, anche se
sarebbe un grosso errore ritenere tale espressione del tutto inutile a descrivere le leggi di controllo reali.

Alcuni degli accorgimenti introdotti per passare dalla legge ideale a quelle reali sono dovuti a questioni di realizzabilit o
convenienza algoritmica (derivatore reale, antiwindup); altri servono a conferire maggiore flessibilit al regolatore (peso
sul set point nelle azioni proporzionale e derivativa); altri sono infine legati al fatto che il regolatore dovr funzionare
entro un sistema di controllo complesso e coordinare il suo comportamento a quello delle altre parti di questo sistema
(logiche di blocco, tracking, commutazione automatico/manuale).
Per poter proseguire nella direzione delle tecniche di taratura (che dovranno usare una qualche espressione della legge di
controllo, preferendone ovviamente una che tenga conto il pi possibile della struttura effettiva del PID) si esamineranno
ora questi accorgimenti implementativi.
Alcuni di essi verranno inglobati nellespressione della legge di controllo, che pertanto si complicher un po e
risulter avere dei parametri addizionali rispetto alla legge ideale, come peraltro li hanno i dispositivi industriali; altri
(non essendo descrivibili in modo lineare) verranno solo illustrati a parole o al pi come soluzione algoritmica, e quando
si parler dei metodi di taratura si vedr se e come necessario tenerne conto.

Introduzione al PID industriale

12

Alberto Leva, marzo 2000

Peso sul set point nellazione proporzionale

P(t ) = K p (by(t ) y (t ) )

P(t ) = K (by(t ) y (t ) )

oppure

Serve ad evitare sbalzi troppo bruschi della variabile di controllo a fronte di brusche variazioni dellerrore
(cio essenzialmente del set point, perch la variabile controllata si muove con la dinamica del processo).

Senza peso sul


set point (b=1)

NOTE:

P(t)

y(t)

y(t)

e(t)

Con peso sul


set point

Kb

P(t)

Normalmente il peso b compreso tra 0 e 1, ma vi sono


tecniche di taratura avanzate che prevedono anche valori
maggiori di 1.

Introduzione al PID industriale

13

1. Il peso b non ha praticamente influenza sul comportamento


del sistema nelle fasi avanzate di un transitorio, perch
comunque l prevale lazione integrale.
2. Se b diverso da 1 a regime lazione proporzionale non
nulla, bens vale K(b-1)y; per capirlo basta ricordare che a
regime y=y.
3. Potendo limitare gli sbalzi del controllo, luso oculato di b
particolarmente utile negli anelli interni dei controlli in
cascata, dove y non sotto il controllo diretto delloperatore
ma viene da un altro regolatore.
4. Il peso b usato di rado; al pi alcuni sistemi permettono la
scelta tra 0 e 1.

Alberto Leva, marzo 2000

Peso sul set point nellazione derivativa

D (t ) = K d

d
(cy(t ) y (t ) )
dt

D (t ) = KTd

oppure

d
(cy(t ) y (t ) )
dt

Anchesso serve ad evitare sbalzi troppo bruschi della variabile di controllo a fronte di brusche variazioni
dellerrore (cio essenzialmente del set point). Di solito simpiega un peso c pari a 0, ottenendo il cosiddetto
PID a derivazione duscita.

c=1

Picco idealmente
infinito, possibile
saturazione
D(t)

y(t)

y(t)

e(t)
D(t)

c=0

Nel seguito si user c=0, cio

Introduzione al PID industriale

D (t ) = K d

d
y (t )
dt

NOTE:
1. Siccome y varia in generale di rado, specie in applicazioni di
processo, porre c=0 non fa cambiare di molto la dinamica del
sistema di controllo: di fatto c ha influenza solo nei (pochi) istanti
dove y varia, perch quando essa costante la sua derivata
nulla e calcolare lazione derivativa facendo la derivata di e o di
y lo stesso.
2. Ovviamente questo non vero ad esempio negli anelli interni dei
controlli in cascata, il cui set point pu variare di continuo.
3. Vi sono tecniche di taratura avanzate (non trattate qui) che fanno
uso esplicito del parametro c; in generale lo si mette a 0 oppure a
1, riservando questultima scelta al caso in cui si sia certi che y
non possa mai variare a scalino.

oppure

14

D (t ) = KTd

d
y (t )
dt
Alberto Leva, marzo 2000

Derivatore reale
Com noto, un derivatore ideale un oggetto fisicamente inesistente: lo si pu solo approssimare. Nei PID industriali, di
fatto, invece di

D (t ) = K d

d
y (t )
dt

oppure

D (t ) = KTd

d
y (t )
dt

come introdotto in precedenza, si realizza

D (t ) +

K d dD (t )
dy (t )
= Kd
N dt
dt

oppure

D (t ) +

Td dD (t )
dy (t )
= KTd
N dt
dt

Il significato di queste espressioni quello di impiegare dei cosiddetti derivatori reali, detti anche talvolta derivatori
filtrati. Il derivatore reale stato introdotto come sopra perch scriverne la relazione ingresso/uscita nel dominio del
tempo il modo di descriverlo pi vicino a come poi simplementa nel codice la relativa parte della legge di controllo,
tuttavia il significato delle espressioni riportate sopra poco intuitivo da comprendere vedendole in questa forma;
pertanto vi si torner e lo si vedr meglio quando (tra poco) sintrodurr la descrizione del PID nel dominio della
frequenza.

Introduzione al PID industriale

15

Alberto Leva, marzo 2000

Primo intermezzo: il PID reale nel dominio della frequenza


Trasformando secondo Laplace le espressioni introdotte per le azioni P, I e D possibile descrivere il PID con la
seguente espressione nel dominio della frequenza:
u(s) = Gp(s)(by(s)-y(s))+Gi(s)( y(s)-y(s))+Gd(s)(-y(s))
dove le tre funzioni di trasferimento Gp(s), Gi(s) e Gd(s) hanno lespressione riportata nel seguito insieme al relativo
diagramma di Bode del modulo (per semplicit si riporta solo la versione con i parametri K, Ti, Td, N):
dB

NOTA IMPORTANTE:

Le tre funzioni di trasferimento Gp(s), Gi(s) e


Gd(s) non ricevono lo stesso ingresso. Pertanto
il PID reale a derivazione duscita descritto
(al livello cui siamo giunti) non da una singola
funzione di trasferimento, bens dallo schema a
blocchi seguente:

G p (s) = K

dB

Gi ( s ) =

K
sTi

K
sTi

K/Ti

Derivatore
ideale

dB

Gd ( s ) =

sKTd
1 + sTd / N

sKTd

KN
sKTd
1+sTd/N

Derivatore
reale

N/Td

Introduzione al PID industriale

16

-1

+
-

Gp(s)

+
-

Gi(s)

+ + u
+

Gd(s)
Alberto Leva, marzo 2000

+
-

Gp(s)

+
-

Gi(s)

+ + u
+

Gd(s)

-1

Definizione importante
Una struttura di regolatore cos fatta si dice a due gradi di libert, intendendo con questo che i cammini di
segnale da y a u e da y a u sono diversi, e pertanto possibile assegnare le caratteristiche della risposta del
regolatore a y e a y in modo indipendente (naturalmente entro certi limiti perch vi sono parti, cio
parametri, comuni ad ambedue i cammini).
Perch importante?
Perch poter assegnare indipendentemente la risposta della variabile di controllo al set point ed alla variabile
misurata permette in buona misura di separare i problemi relativi al grado di stabilit e alla reiezione dei
disturbi (che dipendono soltanto da come il regolatore risponde alla variabile misurata) da quelli relativi
allinseguimento del set point (che dipendono anche da come il regolatore risponde a questultimo). Su questi
importanti concetti si ritorner nel seguito ma bene notarli e impadronirsene fin da subito, ricordando per
comprenderli meglio anche gli schemi a blocchi delle pagine 10 e 11 .

Introduzione al PID industriale

17

Alberto Leva, marzo 2000

Antiwindup

E un accorgimento che serve ad evitare il blocco prolungato delluscita del regolatore a fronte di saturazioni
dellattuatore
Set point

Variabile controllata

t
Errore
t
Controllo
calcolato
Controllo
effettivo
L'operatore
modifica il
set point

Il controllo satura, la var.


controllata anche, l'errore
si ferma ad un valore non
nullo e il controllo calcolato
continua a crescere (quello
effettivo ovviamente no)
L'operatore si accorge
del problema e modifica
di nuovo il set point

Introduzione al PID industriale

Ci che succede mostrato a fianco,


pensando per semplicit che il controllo
sia fatto solo dallazione integrale (che
comunque la sola a soffrire di questo
problema).
Dallesempio si pu anche intuire la
cura, cio il principio alla base di
ogni dispositivo antiwindup:

Risultato: un evidente blocco


dell'azione di controllo e un
pessimo transitorio della
variabile controllata

Pero' il controllo calcolato


non scende finch l'errore
non ha cambiato segno, e
comunque il controllo effettivo
non si muove finch quello
calcolato non esce dalla
saturazione

18

Non si deve permettere


allazione integrale di
superare i valori di
saturazione del controllo.

Alberto Leva, marzo 2000

Per capire come simplementa lantiwindup e quali sono i parametri che esso eventualmente introduce, serve per una
(non piccolissima) premessa:
Fino a questo punto il PID stato descritto come uno schema a blocchi contenente funzioni di trasferimento a tempo
continuo. In altre parole, si finora omesso di parlare di come esso viene effettivamente realizzato.
Ora questo nascondimento non pi possibile, nel senso che per spiegare i concetti che seguono (quelli relativi al
windup ma non solo) non si pu fare a meno delle nozioni di

Regolatore digitale
Discretizzazione
Espressione della legge di controllo a tempo discreto
Regolatore posizionale e incrementale

ovvero di sapere quanto basta su come un regolatore descritto (e sintetizzato) come funzione di trasferimento a tempo
continuo si realizza in un sistema digitale (non che sia obbligatorio: si pu realizzare un regolatore in modo analogico e a
volte lo si fa, ma si tratta di situazioni molto particolari e di fatto la realizzazione digitale copre praticamente la totalit
dei casi)
Quindi, nel seguito si far un intermezzo mirato a richiamare sinteticamente, per quanto in modo completo almeno ai
fini di questa presentazione, i concetti elencati sopra
chi non ne ha bisogno, prosegua pure a pagina 34.

Introduzione al PID industriale

19

Alberto Leva, marzo 2000

Secondo intermezzo: un cenno al PID reale a tempo discreto e alla sua forma incrementale
Senza voler entrare a fondo nel merito della discretizzazione di un regolatore a tempo continuo e della scrittura della
relativa legge di controllo nel dominio del tempo (il che richiederebbe diverse ore), necessario per il prosieguo della
presentazione introdurre alcuni concetti fondamentali:
1. Ai fini di questa presentazione si pensa che il regolatore PID debba essere fisicamente realizzato come un
programma, o meglio come una funzione (nel senso che al termine si d nel contesto della programmazione dei
calcolatori) la quale riceve i valori del set point e della variabile controllata e produce il valore della variabile di
controllo. In tutti i casi pratici dinteresse, il tempo che intercorre tra unesecuzione di questa funzione e la
successiva (ossia la cadenza temporale con cui il regolatore fa variare il controllo) costante e si sceglie in sede di
sintesi del regolatore stesso. Esso dunque un ulteriore suo parametro, che si chiama tempo di campionamento o
tempo di ciclo e che qui sindicher col simbolo Ts .
2. Occorre dunque saper passare dalla descrizione del regolatore in termini di schema a blocchi con funzioni di
trasferimento a tempo continuo (come lo si visto cio a pag. 16) alla scrittura della suddetta funzione, la quale
giusto per averne unidea e includendo i soli parametri introdotti fino ad ora potrebbe avere una sintassi del tipo
varControllo = PID(setPoint,varControllata,K,Ti,Td,N,b,Ts)
3. Questo passaggio si fa in due fasi:
a)

Si discretizzano tutte le funzioni di trasferimento contenute nello schema a blocchi,


cio si ottiene per ognuna di esse la funzione di trasferimento di un sistema dinamico
a tempo discreto che approssima il comportamento di quello a tempo continuo descritto
dalla funzione di trasferimento di partenza.

b)

Si scrive per ognuna di esse lespressione della variabile duscita in funzione dei valori
(presenti e passati, perch si tratta di sistemi dinamici) della stessa e della variabile
dingresso.

Introduzione al PID industriale

20

Alberto Leva, marzo 2000

Cosa significa discretizzare una funzione di trasferimento?


Significa approssimare il comportamento di una

Esempio

Funzione di trasferimento a tempo continuo

G(s) =

(rapporto tra la trasformata di Laplace delluscita forzata da


un ingresso e quella di questo ingresso)

1 + sT

Andamento della risposta allo


scalino corrispondente
con una

Esempio

Funzione di trasferimento a tempo discreto

G * ( z) =

(rapporto tra la trasformata Zeta delluscita forzata da un


ingresso e quella di questo ingresso)

zTs
z (Ts + T ) T

Andamento della risposta allo


scalino corrispondente

0
0

T s 2Ts 3T s
1 2 3

...

NOTA:
Nel caso a tempo discreto sono state riportate due curve: una (i punti rossi) fa riferimento ai valori calcolati passo per passo e corrisponde
appunto alla graduazione dellasse dei tempi in passi (k=0,1,2); laltra (la linea azzurra a gradini) rappresenta il segnale che sarebbe
effettivamente prodotto da un dispositivo digitale preposto a simulare il sistema a tempo continuo di partenza. Infatti, ritornando a pensare
che il suddetto sistema sia un regolatore, la logica del tutto intuitiva usata in tutti i casi dinteresse (cio non lunica possibile, ma la sola che
utile citare qui) che ad ogni passo di campionamento si calcola la variabile di controllo e poi la si tiene costante fino al prossimo passo.
Questo procedimento spesso indicato come uso di un mantenitore di ordine zero, perch operare cos come interporre tra il calcolo - a
tempo discreto - e lattuazione - a tempo continuo - un dispositivo che mantiene (da cui il nome) il valore della sua uscita (continua) fino a
che riceve il successivo valore dellingresso (discreto), e che per mantenere luscita usa solo lultimo valore dellingresso, ossia ne fa
appunto uninterpolazione polinomiale di ordine zero.

Introduzione al PID industriale

21

Alberto Leva, marzo 2000

Come si fa a discretizzare una funzione di trasferimento?


Qui non si entra nel merito del problema, che assai complesso. Per si pu enunciare - spiegandone almeno luso
pratico - uno dei metodi pi usati nei regolatori industriali, ovvero quello detto di Eulero implicito o allindietro.
Operativamente, questo metodo per ricavare G*(z) consiste nel prendere G(s), cancellarvi s sostituendola con
lespressione (z-1)/zTs e poi semplificare convenientemente la funzione di trasferimento in z cos ottenuta. Nellesempio,
quindi, si ha

1 + sT

z 1
zTs

G* ( z ) =

zTs
zTs
=
=

zTs + zT T
z (Ts + T ) T
1 + z 1T
zTs

NOTA:
Pur non avendo spazio per fare nemmeno un minimo di teoria sullargomento, vale per la pena di giustificare in parole
povere il metodo per quanto si pu, il che costringer per a fare un intermezzo nellintermezzo.

Introduzione al PID industriale

22

Alberto Leva, marzo 2000

Metodi approssimati per la discretizzazione


Il problema della discretizzazione consiste, data una funzione di trasferimento a tempo continuo (per noi quella del
regolatore) e dato un tempo di campionamento (per noi quello con cui sar eseguito il loop di controllo), nel determinare
i parametri di una funzione di trasferimento a tempo discreto che ne approssimi abbastanza bene il comportamento, cio
in estrema sintesi tale che la sua risposta e quella delloriginale a tempo continuo stiano in una relazione come
quella mostrata nella figura in basso della tabella a pagina 21. Il problema assai complesso e non si pensa qui di
affrontarlo, per per esso vi sono delle soluzioni approssimate abbastanza semplici per essere comprese anche al livello
di questa presentazione. Quindi si mostrer una di queste, procedendo per punti.
Punto 1. Mentre in un sistema (e dunque in uno schema a blocchi) a tempo continuo ha senso parlare di derivata
temporale, in uno a tempo discreto evidentemente no. Il meglio che si pu fare approssimare la derivata temporale di
un segnale come
valore del segnale ad un certo passo valore del segnale al passo precedente
d
( segnale) =
tempo trascorso tra i due passi
dt

Punto 2. Quindi, ricordando che nel dominio del tempo continuo la funzione di trasferimento del derivatore s mentre a
tempo discreto quella del ritardo di un passo z-1, si pu fare ad esempio (chiamando v(t) il segnale in questione, v(t) la
sua derivata a tempo continuo, v*(k) il segnale corrispondente a tempo discreto ossia il campionamento di v(t) con
passo Ts e v*(k) il desiderato campionamento della derivata) lapprossimazione seguente:
Dal dominio del tempo continuo

dv(t )
v' (t ) =
dt

v' ( s ) = sv ( s )

a quello del tempo discreto

v * (k ) v * (k 1)
v'*(k )
Ts

v ( z ) z 1v ( z ) z 1
v'*( z ) =
=
v( z)
Ts
zTs

dove si ricorda il carattere grassetto indica la trasformata (di Laplace o Zeta).

Introduzione al PID industriale

23

Alberto Leva, marzo 2000

Punto 3. Procedendo, se usiamo questapprossimazione possiamo trasformare uno schema a blocchi a tempo continuo in
uno a tempo discreto equivalente
a. elaborando lo schema in modo da evidenziare tutti i derivatori, ovvero da farvi comparire soltanto blocchi la cui
funzione di trasferimento (a tempo continuo) s,
b. sostituendo tutti i segnali a tempo continuo con i loro campionamenti a passo Ts, e infine
c. rimpiazzando tutti i blocchi derivatori con blocchi la cui funzione di trasferimento (stavolta ovviamente a tempo
discreto) (z-1)zTs.
Punto 4. Consideriamo ora una generica funzione di trasferimento a tempo continuo, nella forma

0 + 1s + 2 s 2 + L + m s m
G(s) =
1 + 1s + 2 s 2 + L + n s n
con n m. Detto u(t) lingresso del sistema rappresentato da G(s) e y(t) la sua uscita, possiamo allora scrivere che

y ( s) 0 + 1s + 2 s 2 + K + m s m
=
u( s )
1 + 1s + 2 s 2 + L + n s n
cio che

y ( s) 1 + 1s + 2 s 2 + L + n s n = u( s) 0 + 1s + 2 s 2 + L + m s m

cio ancora, indicando con lapice (i) la i-esima derivata temporale e ricordando che sv(s) la trasformata di v(t), che

y (t ) = 1 y ' (t ) 2 y ' ' (t ) L n y ( n ) (t ) + 0u (t ) + 1u ' (t ) + 2u ' ' (t ) + L + mu ( m ) (t )

Introduzione al PID industriale

24

Alberto Leva, marzo 2000

Punto 5. Scriviamo ora lo schema a blocchi a tempo continuo che corrisponde a G(s) ed evidenzia tutti e soli i blocchi
derivatori: in base allespressione trovata comprendiamo subito chesso

s
1

s
2

m
y

Punto 6. Ora sostituiamovi tutti i segnali coi loro campionamenti a passo Ts, e poniamo i blocchi con funzione di
trasferimento discreta (z-1)/zTs al posto dei derivatori (continui). Otteniamo cos

u*

z 1
zT s

z 1
zT s

z 1
zT s

m
y*

2
z 1
zT s

Introduzione al PID industriale

25

1
z 1
zT s

z 1
zT s

Alberto Leva, marzo 2000

Punto 7. Interpretiamo ci che abbiamo ottenuto e facciamo alcune osservazioni.


a. Abbiamo scritto uno schema a blocchi a tempo discreto equivalente a quello di partenza a tempo continuo,
nel senso che scende da questo e dal modo con cui abbiamo usato il rapporto incrementale per approssimare
la derivata. Calcolando la funzione di trasferimento dello schema a blocchi discreto, quindi, otterremo
lapprossimante a tempo discreto di G(s) desiderata.
b. Lapprossimazione della derivata col rapporto incrementale certamente porta ad un sistema a tempo discreto
che non si comporta esattamente come quello di partenza a tempo continuo, per si tratta di
unapprossimazione estremamente ragionevole e comunque inevitabile. Anche se spesso nei testi si parla di
discretizzazione esatta, infatti, va tenuto presente che mentre un sistema a tempo continuo vede ogni
valore istantaneo dei segnali in gioco, uno a tempo discreto vede solo quelli negli istanti di
campionamento; quindi, dato che Ts pu essere piccolo ma mai infinitesimo, nel passare dal tempo continuo
al tempo discreto si perder sempre informazione a meno di fare delle ipotesi a priori su come ogni segnale
si comporta tra un istante di campionamento e il successivo. Senza simili ipotesi il termine stesso
discretizzazione esatta privo di senso, e poich nella realt ingegneristica esse non sono possibili (visto
che tra i segnali in gioco vi sono le misure dal campo, delle quali nessuno pu indovinare esattamente cosa
fanno al di fuori degli istanti di campionamento) ne risulta che i metodi di discretizzazione approssimata
sono di fatto gli unici utilizzabili.
c. Lapprossimazione fatta non lunica possibile: ad esempio, invece di calcolare la derivata al passo di
campionamento k-esimo come

dv(t )
dt

t = kTs

v * (k ) v * (k 1)
Ts

avremmo potuto calcolarla come

dv(t )
v * (k + 1) v * (k )

dt t =kTs
Ts

Introduzione al PID industriale

26

Alberto Leva, marzo 2000

col che avremmo sostituito i derivatori con blocchi di funzione di trasferimento (z-1)/Ts. Osserviamo ora
queste due espressioni, e noteremo che la differenza consiste nel fatto che nel primo caso la derivata
calcolata come (campione presente meno campione passato) diviso passo di campionamento, mentre nel
secondo calcolata come (prossimo campione meno campione presente) diviso passo di campionamento.
Quindi in ambedue i casi si usa il rapporto incrementale, e la differenza sta soltanto in qual listante
temporale al quale il valore di derivata calcolato viene attribuito: in altre parole, si calcola sempre

v * (k ) v * (k 1)
Ts
ma nel primo caso si dice che questo il valore della derivata al passo k, mentre nel secondo si dice che il
suo valore al passo k-1. Fare luna assunzione o laltra porta ad avere delle funzioni di trasferimento a tempo
discreto diverse ma ambedue approssimanti di quella a tempo continuo di partenza (coerentemente col fatto
che nessuna approssimazione unica) e che tendono a divenire sempre pi simili com intuitivo - al
decrescere di Ts. Nel seguito useremo la prima approssimazione (quella impiegata negli schemi a blocchi
riportati) perch risulta preferibile, per delle ragioni che per davvero trascendono questa presentazione.
d. Con riferimento ai due schemi a blocchi precedenti, possiamo fare un altro commento. In quello a tempo
continuo si vedeva coerentemente col significato di funzione di trasferimento a tempo continuo - come
luscita dipende dai valori istantanei delle sue derivate, tanti quanto lordine del sistema, dellingresso e
delle derivate dellingresso. In quello a tempo discreto, viceversa, luscita venuta a dipendere dai suoi
valori passati, tanti quanto lordine del sistema a tempo continuo di partenza, e dai valori presente e
passati dellingresso, il che coerente col significato di funzione di trasferimento a tempo discreto.
Punto 8. Lapprossimazione impiegata (detta metodo di Eulero implicito o allindietro) stata quindi perlomeno
giustificata in modo intuitivo. Oltre a ci essa veramente facile da usare in pratica, bastando eseguire i calcoli mostrati
a pagina 22, e dunque ai nostri fini la si adotter come metodo standard per la discretizzazione.
e questo conclude lintermezzo nell'intermezzo sulla discretizzazione.

Introduzione al PID industriale

27

Alberto Leva, marzo 2000

Come passa da una funzione di trasferimento a tempo discreto alla corrispondente relazione ingresso-uscita nel
dominio del tempo?
Si ricorda ancora che la variabile complessa z ha, nel dominio della trasformata Zeta, il significato di operatore di
anticipo unitario, nel senso che se un segnale a tempo discreto si ottiene da un secondo anticipandolo di un passo, allora
la trasformata Zeta del primo uguale a quella del secondo moltiplicata per z. Pertanto, se un sistema a tempo discreto
con ingresso u*(k) e uscita y*(k) descritto dalla funzione di trasferimento G*(z), la corrispondente relazione ingressouscita nel dominio del tempo (cio la formula per calcolare di volta in volta il nuovo valore delluscita noti quelli passati
della stessa e dellingresso) si ottiene nel modo seguente:
Si parte da G*(z), che per
definizione il rapporto tra la
trasformata Zeta di y*(k) e quella
di u*(k)

b0 + b1 z... + bm z m
G( z) =
a0 + a1 z... + an z n

La si scrive come

(a

Nota: alcuni dei coefficienti ai e bj possono


essere nulli ma certamente non lo sono an e bm,
giacch altrimenti non si sarebbero nemmeno
scritti i relativi termini dei due polinomi

+ a1 z... + an z n ) y * ( z ) = (b0 + b1 z... + bm z m )u* ( z )

Si antitrasforma, ricordando che


se lantitrasformata Zeta di v*(z)
v*(k) quella di zhv*(z) v*(k+h)

a0 y* (k ) + a1 y* (k + 1)... + an y* (k + n) = b0u * (k ) + b1u * (k + 1)... + bmu * (k + m)

Si risolve rispetto alluscita pi


recente, cio y*(k+n); si ricordi
che certamente an non nullo
Si riscrive per comodit la stessa
espressione scalando i tempi di
n passi, cos da avere la relazione
ingresso-uscita desiderata nella
forma y*(k)=

y * (k + n) =

Introduzione al PID industriale

an 1 *
a
b
b
y (k + n 1)... 0 y * (k ) + m u * (k + m)... + 0 u * (k )
an
an
an
an
a
a
b
b
y * (k ) = n 1 y (k 1)... 0 y * (k n) + m u * (k + m n)... + 0 u * (k n)
an
an
an
an

28

Alberto Leva, marzo 2000

Nellesempio, quindi, si ha

G* ( z ) =

zTs
z (Ts + T ) T

( z (Ts + T ) T ) y* ( z ) = zTs u* ( z )
(Ts + T ) y* (k + 1) Ty* (k ) = Tsu* (k + 1)
e pertanto la relazione ingresso-uscita nel dominio del tempo discreto che approssima, col passo di campionamento Ts, il
comportamento del sistema descritto a tempo continuo da G(s) risulta essere

y * (k ) =

Introduzione al PID industriale

T
Ts *
y * (k 1) +
u (k )
Ts + T
Ts + T

29

Alberto Leva, marzo 2000

Discretizzazione del PID


Se si opera come appena descritto sulle tre funzioni di trasferimento Gp(s), Gi(s) e Gd(s) descriventi il PID reale,
ricordando anche quali sono i segnali dingresso di ognuna, si ottiene (nel caso a derivazione duscita)
Funzione di trasferimento
a tempo continuo

Funzione di trasferimento discretizzata con il


tempo di campionamento Ts

Relazione a tempo discreto tra lingresso e luscita


della funzione di trasferimento in questione

G p (s) = K

G*p ( z ) = K

P* ( k ) = K (by o* (k ) y* (k ) )

Gi ( s ) =

Gd ( s ) =

K
sTi

sKTd
1 + sTd / N

Gi* ( z ) =

Gd* ( z ) =

KTs z
Ti z 1

I * (k ) = I * (k 1) +

KTd ( z 1)
z (Td / N + Ts ) Td / N

D* ( k ) =

KTs o*
(
y (k ) y* (k ) )
Ti

Td
KNTd
D* (k 1)
( y(k ) y(k 1) )
Td + NTs
Td + NTs

OSSERVAZIONI (che si potevano fare anche prima, ma adesso si vedono meglio):


1. La parte P non ha stato, cio P*(k) non dipende dai suoi valori passati.
2. La parte D ce lha, ma soltanto perch si dovuto approssimare il derivatore ideale con quello reale.
3. La parte I, e in questo lunica, ce lha nativamente. Non solo, ma (com ovvio, trattandosi di un integratore)
essa non asintoticamente stabile. Si osservi che la parte D invece lo , perch se Td, Ts e N sono tutti positivi
allora la quantit |Td/(Td+NTs)| (cio il modulo del suo polo a tempo discreto) certamente minore di 1.

Introduzione al PID industriale

30

Alberto Leva, marzo 2000

Che relazione c tra tutto ci e il problema del windup?


C il fatto che le tre azioni ne risentono in modo assai diverso. Infatti, ricordando lesempio fatto a pagina 18, se la
variabile controllata satura senza riuscire a raggiungere il set point e lerrore si ferma ad un valore costante,

I * (k ) = I * (k 1) +

KTs o*
(
y (k ) y* (k ) )
Ti

continua a crescere indefinitamente (se non si


prendono provvedimenti) e genera windup

mentre, se lasciamo da parte per semplicit gli effetti del rumore di misura,

P* ( k ) = K (by o* (k ) y* (k ) )
D* ( k ) =

Td
KNTd
D* (k 1)
( y(k ) y(k 1) )
Td + NTs
Td + NTs

si arresta ad un valore costante, e


va addirittura (esponenzialmente) a zero.

Morale:
Anche se spesso nella documentazione dei prodotti industriali si parla di stato del PID, un regolatore PID reale ha due
stati, ossia I*(k-1) e D*(k-1); per il secondo lo stato di un sistema asintoticamente stabile, mentre il primo no. Per
converso, la parte D ha come ingresso (nel caso a derivazione duscita, ma a set point fermo la cosa irrilevante) la sola
variazione della variabile controllata, e pertanto lazione di controllo che produce per sua natura di tipo transitorio. In
conclusione, il PID pu essere visto come il parallelo di due sistemi a due ingressi e unuscita (uno per la parte PI e uno
per la parte D) ambedue del primordine, dei quali per il secondo asintoticamente stabile e ha guadagno statico nullo,
mentre il primo non asintoticamente stabile e anzi contiene unazione di tipo integrale. Questo vuol dire che solo lo
stato della parte I importante ai fini dellantiwindup, e dunque che impedire il superamento delle soglie di saturazione
alla sola azione integrale oppure a tutta lazione di controllo , ai fini pratici, (circa) la stessa cosa.

Introduzione al PID industriale

31

Alberto Leva, marzo 2000

PID posizionale e PID incrementale


Da tutto quanto si detto in questo intermezzo risulta chiaro che si pu scrivere la legge di controllo PID in due modi,
che si chiamano comunemente posizionale e incrementale. Nel primo si calcola ad ogni passo direttamente il nuovo
valore del controllo, nel secondo si calcola ad ogni passo la variazione da dare al controllo e poi la si somma al valore
precedente di esso per avere il valore nuovo. La forma incrementale da preferirsi nella pratica per diverse motivazioni,
che bene comprendere perch la loro conoscenza pu essere utile non solo a chi fa i regolatori ma anche a chi li usa.
Per maggiore chiarezza vedremo cosa significa porre il PID in forma incrementale considerando le tre azioni una alla
volta (tanto per avere il controllo completo basta sommarle, e ovviamente per avere la variazione del controllo
completo baster sommare le loro variazioni). Per compattezza nella notazione indicheremo con v*(k) la variazione
del generico segnale a tempo discreto v*(k), col che sar per definizione

v* ( k ) = v* (k ) v* (k 1)

e quindi

v* ( z ) = v* ( z ) z 1v* ( z ) =

z 1 *
v ( z)
z

Azioni P e I
Queste si scrivono in forma incrementale in modo del tutto naturale, e risulta

P* ( k ) = K (by o* (k ) y* (k ) )

KT
I (k ) = I (k 1) + s ( y o* (k ) y * (k ) )
Ti
*

P * (k ) = K (by o* ( k ) y * (k ) )
I * ( k ) =

KTs o*
(
y (k ) y * (k ))
Ti

Si osservi che P*(k) e I*(k) non dipendono dai loro valori passati, ossia che ponendo la parte PI del regolatore in forma
incrementale il calcolo della variazione del controllo corrisponde ad un sistema che non ha stato.

Introduzione al PID industriale

32

Alberto Leva, marzo 2000

Azione D
Questa si pu ovviamente scrivere in forma incrementale, ma nel farlo non si ottiene un sistema privo di stato. Infatti
risulta

D * (k ) =

Td
KNTd
D * (k 1)
(
y * (k ) y * (k 1) )
Td + NTs
Td + NTs

D * (k ) =

Td
KNTd
(
D * (k 1)
y * (k ) y * (k 1) )
Td + NTs
Td + NTs

e si vede subito che D*(k) dipende dal suo passato.


Ora, per delle ragioni che si diranno poi parlando del tracking, il fatto che nello scrivere un regolatore in forma
incrementale la parte di esso che calcola la variazione del controllo non risulti essere priva di stato costituisce una
potenziale difficolt. Questo il motivo per cui molti sistemi industriali (soprattutto i CAD di tipo pi tradizionale)
implementano la parte D del regolatore PID in forma posizionale o addirittura non ve la implementano affatto, nel senso
che forniscono il regolatore PI e il derivatore reale come blocchi separati, e il PID bisogna costruirselo. E chiaro infatti
che nel caso di un regolatore PI il problema non si pone, nel senso che la parte del regolatore che calcola la variazione
del controllo effettivamente priva di stato.

Introduzione al PID industriale

33

Alberto Leva, marzo 2000

Implementazione dellantiwindup
Per maggior praticit si parler qui di un PID digitale, ossia implementato su di un calcolatore e che aggiorna la variabile
di controllo non di continuo ma bens in istanti discreti, con un periodo temporale fisso (in ogni applicazione dinteresse)
detto tempo di campionamento o tempo di ciclo e indicato con il simbolo Ts: pertanto sar lecito dire che tutti i
segnali sono funzioni non del tempo (continuo) t ma del passo (discreto) k, potendosi altres parlare di valore corrente,
valore precedente e cos via. Per maggior chiarezza, quando si operer a tempo discreto tutte le quantit in gioco
(segnali e funzioni di trasferimento) saranno distinti con un asterisco in apice (*).
Inoltre distingueremo tra i due modi tipici che si usano per realizzare un PID digitale, detti posizionale e
incrementale: nel primo si calcola ad ogni passo direttamente il nuovo valore del controllo, nel secondo si calcola ad
ogni passo la variazione da dare al controllo e poi la si somma al valore precedente di esso per avere il valore nuovo. In
estrema sintesi, si potranno dunque schematizzare i due possibili assetti del PID digitale con i due schemi seguenti:

Forma posizionale

SP
PV

Calcolo
di u*

SP
PV

Calcolo
di u*

Forma incrementale
dove appunto si indica con

u*(k) = u*(k) - u*(k-1)


lincremento (o variazione) del
controllo

Introduzione al PID industriale

CS

u*(k)

CS
u*(k)

-1

u*(k-1)

u(k+1)
u*(k+1)=u*(k)+

34

Alberto Leva, marzo 2000

Antiwindup in un PID posizionale

La fonte del windup sostanzialmente la saturazione degli attuatori. Questa si evidenzia tramite il cosiddetto
errore di attuazione
indicato qui con e*a (k) e definito come la differenza tra il controllo u*(k) calcolato dal regolatore e quello,
detto controllo attuato e indicato con u*a (k), che lattuatore applica effettivamente al processo. Lerrore di
attuazione pertanto dato da

e*a (k) = u*(k)- u*a (k)

NOTA:
Nel seguito diremo che lerrore di attuazione diverso da zero solo in caso di saturazione dellattuatore. E tuttavia bene
ricordare che esso pu non essere nullo anche per colpa di cattive tarature dellattuatore stesso, tali da causare ad
esempio offset, errori di fondo scala e cos via. Inoltre, vi pu essere transitoriamente errore di attuazione anche per
colpa della dinamica dellattuatore, che a rigore - non risponde mai al comando del regolatore in modo istantaneo.
Tuttavia questi fenomeni non sono rilevanti adesso: nel parlare del windup supporremo che lattuatore sia ben tarato e
che la sua dinamica sia molto veloce, come del resto di solito si tende a far s che avvenga, col che sar lecito dire che
lunica sorgente di errore di attuazione la saturazione.

Introduzione al PID industriale

35

Alberto Leva, marzo 2000

Per implementare lantiwindup in un PID posizionale, occorre procurarsi una misura dellerrore di
attuazione.

Come si fa nel caso in cui lattuatore sia in grado di


restituire il valore del controllo attuato

Come si fa nel caso in cui lattuatore non sia in grado


di restituire il valore del controllo attuato e di
questultimo si conoscano soltanto i valori estremi
(cio i valori di saturazione)

e*
a

e*
a
u*
a

u*

u*

umax

u*a

umin

In questo caso non si vedono gli errori dovuti alla cattiva


In questo caso gli errori di attuazione si vedono tutti, a
meno ovviamente della precisione e della dinamica del
taratura dellattuatore oppure alla sua dinamica (a meno che
misuratore inserito nellattuatore per restituire il controllo al posto della semplice caratteristica di saturazione non si
effettivamente attuato.
metta se disponibile un modello dellattuatore
sufficientemente raffinato, magari dinamico)

Introduzione al PID industriale

36

Alberto Leva, marzo 2000

Una volta ottenuto lerrore di attuazione, in un PID posizionale lantiwindup simplementa di solito come
nello schema seguente:

SP

Esempio di utilizzo (con regolatore PI e b=1):

b
Calcolo
di P

PV
e

-1

Calcolo
di I

CS

Calcolo
di D

1
Tt

ea

NOTA:
Come si vede, il parametro Tt ha una notevole influenza sul modo in cui il regolatore entra ed esce dalla saturazione e di conseguenza - sulla forma dei transitori ottenuti: permette dunque di governare l'antiwindup con finezza, ma non
semplice da tarare se non facendo delle prove "sul campo". Dove Tt disponibile e vi sono problemi di saturazione del
controllo, conveniente pensare di usarlo. Peraltro, essendo un parametro la cui comprensione non semplice, molti
regolatori non lo prevedono.

Introduzione al PID industriale

37

Alberto Leva, marzo 2000

Antiwindup in un PID incrementale

u*(k)

umax

CS

umin

u*(k)

z -1

u*(k-1)

Con riferimento alla figura di pag. 34, in un PID in forma incrementale


l'antiwindup pu implementarsi come indicato a fianco.
Si tratta di un'implementazione che mantiene entro i limiti di saturazione
non solo l'azione integrale ma tutta l'azione di controllo, il che - come si
discusso - ai fini pratici quasi la stessa cosa.
A differenza del caso posizionale qui non vi sono parametri da tarare,
pertanto non si pu governare il modo in cui si entra e si esce dalla
saturazione. Si tratta per di un modo molto semplice di realizzare
l'antiwindup, e per conseguenza - nei regolatori digitali - del modo di
gran lunga pi usato.

Per comprendere il funzionamento di quest'implementazione dell'antiwindup, si pu osservare com'essa potrebbe tradursi


nel relativo codice di controllo:
/* In precedenza si calcolata la variazione del
controllo (indicata con DeltaCS, mentre CSold
il valore precedente del controllo stesso
e CSmax, CSmin i suoi limiti di saturazione)
*/

Come si vede, il codice semplice e il


funzionamento immediato.
Si noti (sar utile poi) che cos facendo il
segnale di controllo risulta essere lo stato
di un integratore discreto con saturazione.

CSnew = CSold + DeltaCS;


if (CSnew >= CSmax) CSnew = CSmax;
if (CSnew <= CSmin) CSnew = CSmin;
CSold = CSnew;
/* Segue l'attuazione del nuovo controllo CSnew */

Introduzione al PID industriale

38

Alberto Leva, marzo 2000

Tracking o Inseguimento
A volte necessario imporre ad un regolatore che la sua uscita segua istante per istante un segnale prodotto altrove, e
questa funzionalit va comunemente sotto il nome di tracking o "inseguimento". Un caso per esempio quello del
controllo manuale (che verr trattato a parte perch ha delle particolarit sue), ma la cosa pi generale: tanto generale
che, prima di descrivere le soluzioni tecniche che limplementazione del tracking richiede, bene rendersi conto di dove
sta e come pu presentarsi il problema tramite un esempio.
Selezione del tipo
di controllo
Set
point

Supponiamo che per un certo loop si possa scegliere tra 4 regolatori


diversi, e che adesso quello attivo sia R4. Che dovranno fare gli
altri?

R1

Se sono accesi chiss cosa calcolano come loro uscita, visto che
il processo non sta reagendo al loro controllo ma ad altro.

R2
R3
Processo

Se sono spenti non aggiornano nemmeno i loro stati, e quindi


nel momento in cui diventassero attivi calcolerebbero la loro
prima uscita avendo uno stato incoerente con la condizione
attuale del processo.

R4

In ogni caso, quindi, allatto della commutazione del selettore il


segnale di controllo inviato al processo quasi sicuramente avr un
salto, oltretutto di ampiezza difficile da prevedere.

Soluzione
I regolatori che non sono attivi devono essere obbligati a tracciare (o "inseguire", donde il nome) quello
attivo, ossia la loro uscita deve seguire istante per istante quella di questultimo.

Introduzione al PID industriale

39

Alberto Leva, marzo 2000

TS(k)
TR(k)
yo*(k)

Regolatore
posto in forma
incrementale

y*(k)

u*(k)

Calcolo
di u*(k)

Limplementazione pi tipica del tracking illustrata a


fianco. Il regolatore posto in forma incrementale e vi
un selettore, comandato da un segnale logico di solito
detto TS (Track Switch), che pu inviare alluscita del
regolatore - e anche al blocco 1/z (che, si ricordi, la
funzione di trasferimento del ritardo di un passo a tempo
discreto) il quale ne mantiene memorizzato il valore
precedente o la somma del valore precedente suddetto
con la variazione calcolata oppure il segnale da
inseguire, comunemente detto TR (Track Reference).

u*(k)

u*(k-1)

+ +

1/z

Funzionamento normale

Funzionamento in tracking
TS(k)
TR(k)

TS(k)
TR(k)
yo*(k)

yo*(k)
y*(k)
Calcolo
di u*(k)

y*(k)

u*(k)
u*(k)

+ +

u*(k-1)

Calcolo
di u*(k)

1/z

u*(k)

+ +

u*(k-1)

1/z

Sia luscita del regolatore che lo stato u*(k-1) seguono il segnale


di tracking TS. Quindi, allatto di divenire attivo sul processo, il
regolatore calcoler la prima variazione del controllo avendo il
proprio blocco deputato a calcolare u*(k), che non ha stato,
certamente coerente con la condizione del processo, e applicher
questa variazione ad un valore precedente del controllo che
quello veramente applicato al processo, poich fino alla
commutazione u*(k-1) seguiva luscita del controllore attivo in
precedenza.

Il regolatore in forma incrementale funziona come di consueto e,


poich il blocco che calcola u*(k) non ha stato, il solo stato
quello dell'integratore discreto posto sull'uscita, ossia il valore
precedente u*(k-1) del controllo.

Introduzione al PID industriale

u*(k)

40

Alberto Leva, marzo 2000

Logiche di blocco
Per introdurre la questione, si consideri il sistema di controllo schematizzato nella figura seguente:
Portata in ingresso (variabile di disturbo)

Set point di livello

SP
PV

Regolatore
di livello

Sensore di livello

CS
SP
PV

Regolatore
di portata

Sensore di portata

CS

Valvola

Qui vi sono due anelli annidati: quello esterno controlla il livello, e l'uscita del relativo regolatore il set point di portata;
quello interno riceve appunto tale set point e agisce sulla valvola per ottenerlo. Si tratta di una struttura detta "controllo
in cascata", molto usata perch offre il vantaggio di gestire la dinamica e le eventuali non linearit dell'attuatore con
l'anello interno: se questo ben sintonizzato e veloce rispetto all'anello esterno, il regolatore di livello si pu mettere a
punto - facendo riferimento all'esempio - come se si potesse effettivamente imporre al processo la portata, dimenticando
(appunto grazie all'anello interno) che in realt al processo s'impone l'apertura della valvola e la relazione tra questa e la
portata non lineare e comprende di minimo la dinamica del posizionatore. Come osservazione "a latere", si pu quindi
dire che conviene pensare ad un controllo in cascata quando la relazione tra la variabile di comando disponibile (qui il
comando al posizionatore che determina l'apertura della valvola) e la variabile che si vuole regolare (qui il livello)
presenta delle dinamiche e/o delle non linearit abbastanza fastidiose da rendere complessa e/o critica la sintonizzazione
di un sistema con un solo anello (ossia, in questo caso, di un sistema in cui il blocco regolatore indicato come "regolatore
di livello" fosse il solo presente e agisse direttamente sul posizionatore della valvola).
Introduzione al PID industriale

41

Alberto Leva, marzo 2000

Supponiamo ora che si voglia far diminuire il livello, e che - ad esempio per colpa di una portata d'ingresso troppo
elevata - la valvola, per quanto si apra tutta, non sia in grado di far raggiungere al livello il valore voluto. Quello che
allora succede illustrato nella figura seguente:
Set point di livello
Livello
t
Set point di portata
t

Apertura della valvola

L'operatore
abbassa il
set point
di livello: quello
di portata sale
e la valvola
apre

L'operatore si accorge
del problema e modifica
di nuovo il set point
di livello: la richiesta
di portata scende...

...ma finch non tale da far


uscire di saturazione (correttamente,
grazie al suo antiwindup) l'anello di
portata, la valvola resta tutta aperta
e il livello non risponde.

L'uscita del regolatore di livello non ancora satura ma sufficiente


a mandare in saturazione l'anello di portata (valvola tutta aperta):
l'antiwindup del regolatore di portata agisce correttamente, ma il regolatore di
livello non ne sa nulla e continua a far salire la richiesta di portata.

Introduzione al PID industriale

42

Si noti che l'antiwindup del regolatore di


portata non pu far nulla: tutto ci che fa
non introdurre altro ritardo nel chiudere
la valvola dacch la richiesta di portata
tale da farlo uscire di saturazione, e che
nemmeno l'antiwindup del regolatore di
livello - se intervenisse - sarebbe d'aiuto.
Qui il problema un altro, ed esprimerlo
conduce gi alla sua soluzione:

Quando la valvola tutta


aperta non si deve permettere
al set point di portata di
crescere ulteriormente, e per
ovvia simmetria non gli si deve
permettere di decrescere
ulteriormente se essa tutta
chiusa.

Alberto Leva, marzo 2000

In generale
Quando il regolatore dell'anello interno in saturazione,
non si deve permettere a quello dell'anello esterno di spingervelo ulteriormente
ovvero
Quando il regolatore dell'anello interno in saturazione, si deve permettere a quello dell'anello esterno
di modificare la sua uscita soltanto nella direzione che fa uscire l'altro dalla saturazione.
/* Fplus e Fminus sono i due ingressi
di blocco, HIsat e LOsat i segnali
di saturazione; i valori booleani
TRUE e FALSE sono rappresentati
con 1 e 0 rispettivamente*/

Implementazione
I regolatori industriali, almeno quelli di fascia medio-alta,
hanno due uscite booleane (di solito dette HIsat e
LOsat) preposte a segnalare con un livello logico alto le
saturazioni superiore e inferiore.
Inoltre, hanno due ingressi booleani (di solito detti F+ e
F-) che, se posti a livello alto, impediscono all'uscita del
regolatore rispettivamente di crescere o decrescere.
L'implementazione particolarmente semplice in un
regolatore incrementale, e questo un altro punto a
favore di tale struttura, bastando "arricchire" il codice di
pagina 38 come mostrato a fianco.

Introduzione al PID industriale

if ((DeltaCS > 0 && Fplus == 1)


|| (DeltaCS < 0 && Fminus == 1))
DeltaCS = 0;
CSnew = CSold + DeltaCS;
if (HIsat = (CSnew >= CSmax))
CSnew = CSmax;
if (LOsat = (CSnew <= CSmin))
CSnew = CSmin;
CSold = CSnew;

43

Alberto Leva, marzo 2000

Nell'esempio, allora, si avrebbe quanto segue:


Schema di controllo completo

Risultati ottenuti

Portata in ingresso (variabile di disturbo)

Set point di livello

Set point di livello

Livello

F+
SP
PV

Regolatore
di livello
F-

HIsat
CS
SP
PV

Regolatore
di portata

CS

Set point di portata

LOsat

t
Sensore di livello

Sensore di portata

Valvola

Apertura della valvola

...e di conseguenza dopo la modifica del set point


di livello la valvola chiude subito, col che la risposta
del livello pronta.

Questa volta la saturazione dell'anello interno impedisce al set point di


portata di crescere ulteriormente...

NOTE:
Gl'ingressi F+ e F- del regolatore di portata non
sono usati.
Negli schemi di controllo consuetudine
distinguere i segnali logici da quelli modulanti
disegnando i collegamenti relativi ai primi con
linea tratteggiata.

Introduzione al PID industriale

ATTENZIONE
A costo di essere ripetitivi, si badi a non confondere questo
problema con quello del windup: il valore a cui si ferma (salendo)
il set point di portata in quest'esempio non la sua saturazione
superiore, bens il valore che fa saturare l'anello interno.

44

Alberto Leva, marzo 2000

Commutazione automatico/manuale
Contrariamente a quanto si potrebbe pensare, non si tratta affatto di una questione banale. Esprimendo il problema in
linguaggio corrente, si potrebbe dire che
Ogni regolatore deve permettere all'operatore di passare in qualsiasi momento
dalla situazione in cui il regolatore a calcolare la variabile di controllo (automatico o AUTO)
a quella dove il valore di quest'ultima direttamente governato dall'operatore stesso (manuale o MAN).
Scendiamo per un poco pi a fondo, e subito ne vengono alcune osservazioni interessanti:
v

Anzitutto bisogna notare che nella condizione manuale l'anello aperto e, se l'operatore a governare la variabile di
controllo, quasi certamente questo fa s che la variabile controllata non vada al valore di set point.

Poi, bisogna specificare cosa s'intende dicendo che "l'operatore governa direttamente la variabile di controllo".
Desiderando che questa non abbia salti, pare logico (ed quel che si fa in tutti i casi d'interesse) richiedere quanto
segue:
Al passaggio da automatico a manuale (apertura dell'anello) il controllo si deve fermare al valore corrente - col
che certamente non vi sono salti - e l'operatore deve poterlo incrementare o decrementare con due comandi,
tipicamente due tasti "+" e "-".
Al passaggio da manuale ad automatico (chiusura dell'anello) il controllo deve muoversi, a partire dal valore
corrente e verso quello richiesto dal regolatore per rendere la variabile controllata eguale al set point, senza fare
salti.

Introduzione al PID industriale

45

Alberto Leva, marzo 2000

Pensando poi a quali possono essere i motivi per cui un regolatore dev'essere messo in manuale (a parte le emergenze o
manovre particolari che non hanno nessun titolo ad entrare in una casistica generale), possiamo osservare anche i fatti
seguenti:
v

Vi sono casi in cui un regolatore dev'essere forzato in manuale, ossia andarvi non per diretta richiesta dell'operatore.
Questo vero ad esempio per i regolatori esterni dei controlli in cascata: se il regolatore interno va in manuale
anche l'anello esterno aperto, e dunque il regolatore esterno deve andare in manuale per evitare di porsi in una
situazione inconsistente, giacch quello interno (essendo appunto in manuale) si disinteressa del set point ch'esso gli
fornisce. Sar quindi necessario che i regolatori - di nuovo, almeno quelli di fascia alta e concepiti per sistemi
complessi - abbiano un ingresso di forzamento in manuale, che nel sistema di controllo complessivo sar governato
da una logica da costruirsi caso per caso.

Se il regolatore ha un comando "AUTO/MAN" locale e un ingresso di forzamento in manuale, nasce il problema di


quale dei due debba prevalere sull'altro. La risposta a questa domanda, o almeno quella che le si d in tutti i casi
d'interesse e dunque la sola su cui ci diffonderemo, scende dal rapporto gerarchico che normalmente s'instaura tra i
comandi "locali" ai regolatori, quelli cio - per appoggiare le idee - che sono dati loro dagli operatori tramite un
pannello posto vicino alla zona d'impianto da essi controllata, e quelli "remoti", ovvero provenienti da altri
regolatori, dalla sala controllo, da un sistema di supervisione, in una parola da "altri luoghi" dell'impianto. Tale
principio, sulla base del buon senso, dice che deve sempre prevalere il comando locale. Se un operatore mette in
manuale un regolatore per fronteggiare ad esempio un'emergenza lo fa perch ha bisogno di governare il controllo,
e nessun comando remoto deve potergli togliere questo potere: i livelli superiori del sistema di controllo devono
essere informati del fatto che quel regolatore in manuale per poter agire in modo conseguente sugli altri, certo, ma
quel regolatore deve restare in manuale fino a che la necessit dell'operatore locale di mantenervelo viene meno.
Quindi, si vuole che
Se localmente s'impone il manuale, l'ingresso di forzamento in manuale da remoto non abbia effetto;
Se localmente il regolatore in automatico l'ingresso di forzamento in manuale da remoto sia attivo, possa cio
metterlo in manuale o in automatico secondo i desideri del resto del sistema di controllo.

Introduzione al PID industriale

46

Alberto Leva, marzo 2000

L'implementazione di tutto questo si mostra "arricchendo" ulteriormente il codice di pagina 43: il significato dei nomi
delle variabili si omette perch immediato, e si assume di aver convenientemente definito i simboli AUTO e MAN:
/* Verifica lo stato del comando A/M locale e del forzamento remoto
e agisce di conseguenza */
if ((StatoAM = (ComandoAMlocale == MAN ? MAN : ComandoAMremoto)) == AUTO) {
/* Automatico: qui va il codice per il calcolo di DeltaCS */
/* Verifica lo stato dei blocchi Fplus e Fminus e agisce di conseguenza */
if ((DeltaCS > 0 && Fplus == 1) || (DeltaCS < 0 && Fminus == 1))
DeltaCS = 0;
/* Aggiorna il controllo in automatico */
CSnew = CSold + DeltaCS; }
else {
/* Manuale: verifica lo stato dei comandi locali d'incremento e decremento
e agisce di conseguenza: IncrementoUnitarioCS un parametro del
regolatore */
if (ComandoIncrementoCS == 1) CSnew = CSold + IncrementoUnitarioCS;
if (ComandoDecrementoCS == 1) CSnew = CSold - IncrementoUnitarioCS; }
/* In ogni caso (sia automatico che manuale) gestisce l'antiwindup
e, se del caso, segnala la saturazione */
if (HIsat = (CSnew >= CSmax)) CSnew = CSmax;
if (LOsat = (CSnew <= CSmin)) CSnew = CSmin;
/* Aggiorna lo stato dell'integratore finale */
CSold = CSnew;

Introduzione al PID industriale

47

Alberto Leva, marzo 2000

Azione diretta e inversa


A volte per far salire la variabile controllata si deve aumentare il segnale di controllo, a volte invece il viceversa. Ad
esempio, se la variabile controllata il livello di un serbatoio e quella di controllo l'apertura di una valvola posta a valle
di esso, si comprende che per far scendere la prima si dovr aumentare la seconda.
Concettualmente la cosa irrilevante, bastando pensare che il processo abbia un guadagno negativo e dunque, per far
positivo quello d'anello, negativo debba essere anche quello del regolatore. Tuttavia questo "tradizionalmente"
considerato sgradevole, talch i PID industriali hanno spesso un parametro logico che specifica se debbono operare in
quel che si dice "azione diretta" o "azione inversa", ovvero avere guadagno positivo o negativo. Implementare la cosa
banale: se il PID posizionale basta calcolare il controllo e poi "ribaltarlo" rispetto al centro scala, col che minimo e
massimo si scambiano; se il PID incrementale basta ad ogn'istante cambiare il segno dell'incremento del controllo.
Infine, un piccolo ma utile trucchetto: se capita di aver bisogno dell'azione inversa e lo strumento a disposizione non la
prevede e non accetta nemmeno valori di K negativi (cosa non infrequente in dispositivi di basso profilo), per risolvere il
problema basta scambiare tra loro gl'ingressi SP e PV.

Introduzione al PID industriale

48

Alberto Leva, marzo 2000

Gl'ingressi, le uscite ed i parametri del PID industriale


In base a tutto quanto detto finora, il PID industriale in generale ha (eventualmente non tutti) gl'ingressi, le uscite ed i
parametri elencati di seguito:

Ingressi

Modulanti

Logici

Uscite

Modulanti
Logiche

Parametri

Reali

Logici

Introduzione al PID industriale

SP
PV
TR
F+
FTS
CS
HIsat
LOsat
A/M
K
Ti
Td
N
b
Ts
Tt
D/I

Segnale di riferimento
Variabile controllata
Segnale di tracking
Blocco in salita
Blocco in discesa
Track switch
Segnale di controllo
Saturazione alta
Saturazione bassa
Condizione (automatico o manuale)
Guadagno
Tempo integrale
Tempo derivativo
Rapporto tra Td e la costante di tempo del derivatore reale
Peso sul segnale di riferimento nell'azione proporzionale
PasTempo di campionamento
Parametro dell'antiwindup posizionale
Azione diretta o inversa

49

Alberto Leva, marzo 2000

CONCLUSIONI
Richiamando quanto detto a pagina 12, si visto come la legge di controllo presente in un PID industriale sia ben pi
complessa della sua mera funzione di trasferimento. Questo potrebbe far sorgere dubbi sull'utilit pratica della seconda
nel descrivere il primo, e quindi bene fare alcune considerazioni.
Anzitutto, va detto che descrivere un PID con la sua funzione di trasferimento rimane l'approccio principe alla sua sintesi
sulla base di un modello del processo e/o di misure ingresso/uscita fatte su di esso, non foss'altro perch soltanto con tale
descrizione del regolatore possibile applicare i potenti metodi di sintesi provenienti dalla teoria del controllo lineare. Se
poi si vuol essere un poco pi precisi, rappresentando ad esempio la pesatura del set point, si potr impiegare per
descrivere il regolatore non un singolo blocco ma uno schema che distingua le tre azioni, come ad esempio quello di
pagina 16, e ancora la teoria lineare e i suoi metodi potranno essere usati.
In secondo luogo, si visto che vi sono accorgimenti implementativi i quali - uscendo dall'ambito lineare - con le
funzioni di trasferimento non si potranno rappresentare mai. E' per vero che questi fanno riferimento eminentemente al
comportamento "in grande" del sistema di controllo, ovvero al caso in cui i segnali in gioco abbiano variazioni cos
grandi da far intervenire appunto gli aspetti non lineari non tanto del singolo regolatore ma del processo - comprendendo
in quest'ultimo i sensori, gli attuatori e le loro saturazioni - oppure del sistema di controllo nel suo complesso, come ad
esempio le modifiche strutturali alla sua dinamica complessiva che avvengono quando un loop messo in manuale.
In conclusione, quindi, la sintesi di un sistema di controllo basato su PID pu considerarsi in estrema sintesi un
procedimento in due fasi: prima si ottiene il comportamento desiderato dei singoli loop per piccoli segnali, cosa che pu
farsi tranquillamente in ambito lineare e conduce a calcolare la maggioranza dei parametri dei regolatori; poi si
considerano i grandi transitori e le interazioni dei loop tra di loro, con le logiche e con l'operatore, e dei regolatori si
"mettono a posto" le parti rimanenti.
Lo scopo di questa trattazione, oltre a far conoscere i regolatori industriali con un sufficiente grado di dettaglio, voleva
essere quello di mettere il progettista di un sistema di controllo in grado di affrontare il problema con cognizione di causa
sulla base proprio di tale conoscenza.

Introduzione al PID industriale

50

Alberto Leva, marzo 2000