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