Controlli13 Regolatori PID

41
Regolatori PID Regolatori standard con parametri regolabili:

description

pid

Transcript of Controlli13 Regolatori PID

Page 1: Controlli13 Regolatori PID

Regolatori PID

Regolatori standard con parametri regolabili:

Page 2: Controlli13 Regolatori PID

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

Page 3: Controlli13 Regolatori PID

• 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

Page 4: Controlli13 Regolatori PID

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

Page 5: Controlli13 Regolatori PID
Page 6: Controlli13 Regolatori PID
Page 7: Controlli13 Regolatori PID

⎟⎟⎠

⎞⎜⎜⎝

⎛++= 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

Page 8: Controlli13 Regolatori PID

LIMITAZIONE DELL’AZIONE DERIVATIVA

Cambiamento brusco del riferimento

Page 9: Controlli13 Regolatori PID

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:

Page 10: Controlli13 Regolatori PID

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

Page 11: Controlli13 Regolatori PID

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

Page 12: Controlli13 Regolatori PID

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

Page 13: Controlli13 Regolatori PID

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

Page 14: Controlli13 Regolatori PID

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

Page 15: Controlli13 Regolatori PID

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

Page 16: Controlli13 Regolatori PID

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

Page 17: Controlli13 Regolatori PID

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

Page 18: Controlli13 Regolatori PID

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

Page 19: Controlli13 Regolatori PID

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

Page 20: Controlli13 Regolatori PID

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

Page 21: Controlli13 Regolatori PID

• 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)

Page 22: Controlli13 Regolatori PID

• 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

Page 23: Controlli13 Regolatori PID

• 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

Page 24: Controlli13 Regolatori PID

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

Page 25: Controlli13 Regolatori PID

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

Page 26: Controlli13 Regolatori PID

• 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

Page 27: Controlli13 Regolatori PID

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

Page 28: Controlli13 Regolatori 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)

Page 29: Controlli13 Regolatori PID

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

Page 30: Controlli13 Regolatori PID

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

Page 31: Controlli13 Regolatori 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

Page 32: Controlli13 Regolatori PID

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

Page 33: Controlli13 Regolatori PID

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

π

ωϖ

ϕ

Page 34: Controlli13 Regolatori PID

))(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°

Page 35: Controlli13 Regolatori PID

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=

Page 36: Controlli13 Regolatori PID

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

E’ un anticipoquindi serve un PID

Page 37: Controlli13 Regolatori 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

Page 38: Controlli13 Regolatori PID

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

Page 39: Controlli13 Regolatori PID

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

Page 40: Controlli13 Regolatori 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

Page 41: Controlli13 Regolatori PID

Integratore ANTIWINDUP