Upload
robert-turner
View
22
Download
0
Embed Size (px)
DESCRIPTION
pid
Citation preview
Regolatori PID
Regolatori standard con parametri regolabili:
La variabile di controllo è la somma di tre contributi (non sempre presenticontemporaneamente):
C(s) = KP + KI / s + KD s
⎟⎟⎠
⎞⎜⎜⎝
⎛++= sT
sTKsC d
i
11)(
Vantaggi:
• controllo ‘soddisfacente’ di un’ampia gamma di processi• semplicità di taratura in assenza di un modello del processo• ampia disponibilità commerciale• basso costo
• effetto dell’azione proporzionale: aumenta il guadagno di anello (destabilizzante)• effetto dell’azione integrale: migliora le prestazioni a regime (destabilizzante)• effetto dell’azione derivativa (anticipatrice): migliora il transitorio (stabilizzante)
A B
A: errore >0derivata <0
B:errore >0derivata >0
risposta algradino di unsistema conregolatoreproporzionale
L’azione di controllo èmaggiore se l’errore ècrescente e minore sel’errore è decrescente
Regolatori P: per processi a.s., quando le prestazioni statiche non richiedonol’uso dell’azione I
Regolatori I: è necessaria l’azione integrale per le prestazioni a regime, è ammissibile un restringimento di banda
Regolatori PI: è necessaria l’azione integrale per le prestazioni a regime, non è ammissibile un restringimento di banda (si introduce uno zero)
Regolatori PD: non è necessaria l’azione integrale, si vuole aumentare la banda
⎟⎟⎠
⎞⎜⎜⎝
⎛++= sT
sTKsC d
i
11)(
La f.d. t.:
non è fisicamente realizzabile, si deve aggiungere un polo
205
1
11)(
÷=
⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜
⎝
⎛
+++=
NN
sTsT
sTKsC
d
d
i
LIMITAZIONE DELL’AZIONE DERIVATIVA
Cambiamento brusco del riferimento
METODI DI TARATURA• EMPIRICI (ZIEGLER-NICHOLS)• ANALITICI
ZIEGLER-NICHOLS A CATENA APERTA
Si rileva sperimentalmente la risposta al gradino del sistema a catena aperta
seksP
Ts
τ+=
−
1)( τ/kR =
K Ti TdP 1/RTPI 0.9/RT T/0.3
PID 1.2/RT 2T T/2
Coeff. smorzamento=0.21:
ZIEGLER-NICHOLS A CATENA CHIUSA
Si rileva sperimentalmente la risposta la gradino del sistema controllatoa catena chiusa con regolatore proporzionale, al variare del guadagno
Margine di fase = 6db:
k Ti TdP 0.5KpPI 0.45Kp 0.8T
PID 0.6Kp 0.5T T/8È presente l’errore a regimeperché non c’è azione integrale
Sintesi con il metodo a catena aperta>> g=1000/((s+10)*(s+20)*(s+100))
Transfer function:1000
------------------------------s^3 + 130 s^2 + 3200 s + 20000
>> step(g)
0 0.1 0.2 0.3 0.4 0.5 0.60
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05Step Response
Time (sec)
Ampl
itude
sesG
s
2.0105.0)(
03.0
+=
−
0 0.1 0.2 0.3 0.4 0.5 0.60
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05Step Response
Time (sec)
Ampl
itude
>> gappr=0.05/(1+0.2*s)
Transfer function:0.05
---------0.2 s + 1
>> gappr.inputdelay=0.03
Transfer function:0.05
exp(-0.03*s) * ---------0.2 s + 1
>> step(g,gappr)0 0.2 0.4 0.6 0.8 1 1.2
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05
Step Response
Time (sec)
Ampl
itude
ggappr
Proviamo a migliorare l’approssimazione:>> gappr=0.05/(1+0.15*s)
Transfer function:0.05
----------0.15 s + 1
>> gappr.inputdelay=0.02
Transfer function:0.05
exp(-0.02*s) * ----------0.15 s + 1
>> step(g,gappr) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05Step Response
Time (sec)
Ampl
itude
>> g1=0.05/(1+1.2*s)
Transfer function:0.05
---------1.2 s + 1
>> g1.inputdelay=0.2
Transfer function:0.05
exp(-0.2*s) * ---------1.2 s + 1
>> step(g,g1)
0 1 2 3 4 5 6 70
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05Step Response
Time (sec)
Am
plitu
de
gg1
La stima è sufficientemente accurata
15.002.005.0
===
τTK
seksP
Ts
τ+=
−
1)( τ/kR =
K Ti TdP 1/RTPI 0.9/RT T/0.3
PID 1.2/RT 2T T/2
Regolatore proporzionale:>> tau=0.15>> k=0.05>> T=0.02>>R=k/tau>> kp=1/(R*T)kp =
150.0000
Prestazioni del regolatore P>> wp=feedback(kp*g,1)
Transfer function:1.5e005
--------------------------------s^3 + 130 s^2 + 3200 s + 1.7e005
>> w=feedback(g,1)
Transfer function:1000
------------------------------s^3 + 130 s^2 + 3200 s + 21000
>> step(wp,w) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.80
0.2
0.4
0.6
0.8
1
1.2
1.4Step Response
Time (sec)
Am
plitu
de
wpw
Regolatore PIK Ti Td
P 1/RT
PI 0.9/RT T/0.3
PID 1.2/RT 2T T/2>> ti=T/0.3ti = 0.0666>> kpi=0.9/(R*T)kpi =135.0000
>> cpi=kp*(1+1/(ti*s))Transfer function:10 s + 150----------0.06667 s>> wpi=feedback(cpi*g,1)
Transfer function:1e004 s + 1.5e005
-----------------------------------------------------------0.06667 s^4 + 8.667 s^3 + 213.3 s^2 + 1.133e004 s + 1.5e005
>> step(wpi,w,wp)
Abbiamo annullato l’errore a regime, la dinamica non va bene
0 1 2 3 4 5 6 7 8 90
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Step Response
Time (sec)
Am
plitu
de
wpiwwp
Regolatore PID
>> kpid=1.2/(R*T)kpid = 180>> ti=2*Tti = 0.0400>> td=0.5*Ttd = 0.0100>> cpid=kpid*(1+1/(ti*s)+td*s)Transfer function:0.072 s^2 + 7.2 s + 180-----------------------
0.04 s>> wpid=feedback(cpid*g,1)
Transfer function:72 s^2 + 7200 s + 1.8e005
-----------------------------------------------0.04 s^4 + 5.2 s^3 + 200 s^2 + 8000 s + 1.8e005>>
K Ti TdP 1/RT
PI 0.9/RT T/0.3
PID 1.2/RT 2T T/2
0 1 2 3 4 5 6 7 8 90
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Step Response
Time (sec)
Am
plitu
de
wpidwpi
Il transitorio è migliorato
Sintesi con il metodo a catena chiusa
>> g=1000/((s+10)*(s+20)*(s+100))
Transfer function:1000
------------------------------s^3 + 130 s^2 + 3200 s + 20000
>> w=feedback(g,1)
Transfer function:1000
------------------------------s^3 + 130 s^2 + 3200 s + 21000
>> step(w)0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
0.045
0.05Step Response
Time (sec)
Ampl
itude
• Aumentiamo il guadagno del regolatore proporzionale
0 0.1 0.2 0.3 0.4 0.5 0.60
0.2
0.4
0.6
0.8
1
1.2
1.4Step Response
Time (sec)
Ampl
itude
>> w=feedback(g*100,1)
Transfer function:100000
-------------------------------s^3 + 130 s^2 + 3200 s + 120000
>> step(w)
• Aumentiamo il guadagno del regolatore proporzionale
>> w=feedback(g*200,1)
Transfer function:200000
-------------------------------s^3 + 130 s^2 + 3200 s + 220000
>> step(w)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.5
1
1.5Step Response
Time (sec)
Ampl
itude
• Aumentiamo ancora il guadagno
0 0.5 1 1.5 2 2.50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8Step Response
Time (sec)
Ampl
itude
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8Step Response
Time (sec)
Ampl
itude
k=350k=300
0 5 10 15 20 25-10
-8
-6
-4
-2
0
2
4
6
8
10Step Response
Time (sec)
Ampl
itude
0 0.5 1 1.50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Step Response
Time (sec)
Ampl
itude
k=396k=400
Scegliamo k=396
>> kp=396/2kp =
198>> wp=feedback(g*kp,1)Transfer function:
198000-------------------------------s^3 + 130 s^2 + 3200 s + 218000>> w=feedback(g,1)Transfer function:
1000------------------------------s^3 + 130 s^2 + 3200 s + 21000>> step(w,wp)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.5
1
1.5
Step Response
Time (sec)
Ampl
itude
ww p
• Calcoliamo il periodo:
0 0.5 1 1.50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
System: wTime (sec): 0.505Amplitude: 1.78
System: wTime (sec): 0.39Amplitude: 1.75
Step Response
Time (sec)
Ampl
itude
T=0.505-0.39=0.11
0 0.5 1 1.5 2 2.5 3 3.5 4 4.50
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2Step Response
Time (sec)
Ampl
itude
>> ti=0.8*0.11ti = 0.0880>> cpi=kp*(1+1/(ti*s))Transfer function:15.68 s + 178.2---------------
0.088 s>> wpi=feedback(cpi*g,1)Transfer function:
1.568e004 s + 1.782e005-----------------------------------------------------------0.088 s^4 + 11.44 s^3 + 281.6 s^2 + 1.744e004 s + 1.782e005>> step(wp,wpi)
Si deve ancora migliorare ladinamica, usiamo un PID
0 0.1 0.2 0.3 0.4 0.5 0.60
0.2
0.4
0.6
0.8
1
1.2
1.4Step Response
Time (sec)
Ampl
itude
>> kpid=0.6*396
kpid =
237.6000
>> ti=0.5*0.11ti = 0.0550>> td=1.25*0.11td = 0.1375>> cpid=kpid*(1+1/(ti*s)+td*s)Transfer function:1.797 s^2 + 13.07 s + 237.6---------------------------
0.055 s>> wpid=feedback(cpid*g,1)Transfer function:
1797 s^2 + 13068 s + 237600--------------------------------------------------0.055 s^4 + 7.15 s^3 + 1973 s^2 + 14168 s + 237600>> step(wpid)
Analisi in frequenza a ciclo aperto
-150
-100
-50
0
50
100
Mag
nitu
de (d
B)
10-1
100
101
102
103
104
-270
-180
-90
0
Phas
e (d
eg)
Bode Diagram
Frequency (rad/sec)
P*gPI*gPID*g
Analisi in frequenza a ciclo chiuso
-150
-100
-50
0
50
Mag
nitu
de (d
B)
100
101
102
103
104
-270
-180
-90
0
Phas
e (d
eg)
Bode Diagram
Frequency (rad/sec)
w pw piw pid
Esercizio proposto
• Progettare, utilizzando sia il metodo di Ziegler e Nichols a catena aperta che quello a catena chiusa un regolatore P, un regolatore PI ed un regolatore PID per il processo: g=5000/((s+1)*(s+2)*(s+5))
• Analizzare le prestazioni dei regolatori progettati nel dominio del tempo e della frequenza
Metodo analitico di taratura
• Si vuole modificare, tramite il regolatore PID, la funzione di risposta armonica (il diagramma di Nyquist) del processo ad una determinata pulsazione
))()((arg(exp)()(
:
))((arg(exp)(
:
ϖϖϖϖ
ϖϖ
jPjCjjPjC
OB
jPjjP
OA
Si vuole quindi che sia:
))(arg())(arg()arg(
)()(
ϖϖ
ϖϖ
jPjCOB
jPjCOB
+=
=
da cui:
))(arg()arg())(arg()(
)(
ϖϖϖ
ϖ
jPOBjCjP
OBjC
−=
=
scegliendo:
))(arg())(arg()(
1)(
ϖπϖϖ
ϖ
ϕ jPMjCjP
jC
d −−=
=
1
)arg(:ha si
=
−=
=
OB
MOB d
td
π
ωϖ
ϕ
))(arg())(arg()(
1)(
ϖπϖϖ
ϖ
ϕ jPMjCjP
jC
d −−=
=
k
⎟⎟⎠
⎞⎜⎜⎝
⎛−
id T
Tkω
ω 1)( ωjC
))(arg( ωjC
poiché:
⎟⎟⎠
⎞⎜⎜⎝
⎛−+=
id T
TjkkjCω
ωω 1)(
Al variare dei parametri la fase introdotta dal PID varia tra -90° e 90°per un PD la variazione introdotta è tra 0° e 90°per un PI la variazione introdotta è tra -90° e 0°
Noti i valori di modulo e fase di C(s) alla pulsazione di attraversamento di possono quindi ricavare i parametri dalle formule:
))(tan(arg(1))(cos(arg()(
tditd
dtd
tdtd
jCT
T
jCjCk
ωω
ω
ωω
=−
=
Poiché si hanno 3 parametri liberi e due condizioni, si può imporre il valore desiderato di errore alla rampa tramite la relazione:
)0(PTkk
iv =
oppure imporre:di TT 4=
esempio
°==
=
++=
30sec/20
0_:
)5)(2(100)(
ϕωM
radstepe
specifichess
sP
t
Serve unPI o PID tale che:
)20()20(18030)20()20(1
jjjPjC
CC ϕϕ +=−
=
25,10520
22018030
14,4100
520220)20(
1)20(2222
=++−=
=++
==
arctgarctg
jPjC
Cϕ
E’ un anticipoquindi serve un PID
k
⎟⎟⎠
⎞⎜⎜⎝
⎛−
id T
Tkω
ω 1)( ωjC
))(arg( ωjC⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛+−=
⎟⎟⎠
⎞⎜⎜⎝
⎛++=
di
di
TT
jkjC
sTsT
ksC
2020
11)20(
11)(
⎟⎠⎞
⎜⎝⎛ ++=
==
=−−
=−−
=−
=−=
==
ss
ksC
TT
TT
TT
TT
TTtg
k
i
d
dd
dd
dd
id
02.008.011)(
08.002.0
014,141600
04*20*18,014*20*20
18,04*20
120
18,020
120)25,10(
077,4)25.10cos(14,4
2
2
>> modp=100/(sqrt(20^2+2^2)*sqrt(20^2+5^2))modp =
0.2413>> modc=1/modpmodc =
4.1437>> fasec=30-180+atand(20/2)i+atand(20/5)fasec =
10.2532>> k=modc*cosd(fasec)k =
4.0775tand(fasec)ans =
0.180920*20*4ans =
1600>> 0.18*20*4ans =
14.4000>> roots([1600 -14.4 -1])ans =
0.0299-0.0209
>> c=k*(1+1/(4*0.029*s)+0.029*s)
Transfer function:0.01372 s^2 + 0.473 s +
4.077-----------------------------
0.116 s>>bode(p,p*c)
-100
-50
0
50
100
150
Mag
nitu
de (
dB)
10-2 10-1 100 101 102 103-180
-135
-90
-45
0
Pha
se (d
eg)
Bode Diagram
Frequency (rad/sec)
senza PIDcon PID
>> w=feedback(p,1)
Transfer function:100
---------------s^2 + 7 s + 110
>> wpid=feedback(p*c,1)
Transfer function:1.372 s^2 + 47.3 s + 407.7
---------------------------------------0.116 s^3 + 2.184 s^2 + 48.46 s +
407.7
>> step(w,wpid)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.60
0.5
1
1.5Step Response
Time (sec)
Am
plitu
de
wwpid
Integratore ANTIWINDUP