Top Banner
s K K s C I P ) ( PI Controller Design 0 0 P I K K 0 ), / log( 20 ), log( 20 ) ( as KI as K j K K j C P I P 0 , 90 , 0 ) ( tan ) ( 1 as as K K j C P I Use PI only when you have to increase system type, i.e., when you have to make a nonzero ess to zero!
47

PI Controller Design

Jan 30, 2016

Download

Documents

ansel

PI Controller Design. Use PI only when you have to increase system type, i.e., when you have to make a nonzero ess to zero!. KI/KP=1/2. KI/KP=1/5. KI/KP=1/10. Want these: DC gain boosting. KI/KP=1/20. w gcd. KI/KP=1/40. -5.7. -1.4. -2.8. -11.3. -26. 6. Don’t want these: - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PI Controller Design

s

KKsC IP )(

PI Controller Design

00 PI KK

0),/log(20

),log(20)(

asKI

asK

j

KKjC PIP

0,90

,0)(tan)( 1

as

as

K

KjC

P

I

Use PI only when you have to increase system type, i.e., when you have to make a nonzero ess to zero!

Page 2: PI Controller Design

0

20

40

60M

agn

itu

de

(dB

)

10-3

10-2

10-1

100

101

-90

-60

-30

0

Ph

ase

(deg

)Bode Diagram

Frequency (rad/sec)

gcd

Kill PM significantly

KI/KP=1/2

KI/KP=1/40

KI/KP=1/5KI/KP=1/10

KI/KP=1/20

-11.3

-26. 6

-5.7-2.8-1.4

Don’t want these:PM reduction!

Want these:DC gain boosting

Page 3: PI Controller Design

Basic PI Design Steps• From plant, draw Bode plot

• From specs => PMd and gcd

– If there is speed or BW req, gcd, • In this case, if PM not enough, design PD or lead

– Otherwise, choose gcd to have PM>PMd

• Find K to enforce gcd:

• Let KP = K

• And KI = Kgcd/10~20, depending on extra PM room to spare

1gcd )(

jCGK

Need to increase type to make a nonzero ess to be zero. But no requirement on ess after type increase.

Page 4: PI Controller Design

56

500)(

2

sssG

Want Mp <= 16%Steady state error = 0 when input is constant.

Analysis: steady state error = 0 when input is constant means that ess to step must be 0; or the system type must be 1 or higher.

Original system is type 0, so need PI control to increase the system type to 1.

Example

Page 5: PI Controller Design

%PI control examplen=[500]; d=[1 6 5];figure(1); clf; margin(n,d); hold on; grid; V=axis;Mp = 16; PMd = 70 - Mp +10; %put in a large extra PM, because PI kills PMsemilogx(V(1:2),[PMd-180 PMd-180],':r');%draw PMd linex=ginput(1); w_gcd = x(1); %get desired w_gcKP = 1/abs(polyval(n,j*w_gcd)/polyval(d,j*w_gcd));z = w_gcd/10; KI = z*KP;ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(1); margin(ngc,dgc); grid; [ncl,dcl]=feedback(ngc,dgc,1,1);figure(2);step(ncl,dcl); grid;figure(3); margin(ncl*1.414,dcl); grid;

Page 6: PI Controller Design

-20

0

20

40M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 15.4 deg (at 22.1 rad/sec)

Frequency (rad/sec)

Page 7: PI Controller Design

-60

-40

-20

0

20

40

60M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 58.6 deg (at 4.1 rad/sec)

Frequency (rad/sec)

Page 8: PI Controller Design

0 2 4 6 8 10 12 140

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (sec)

Am

plit

ud

e

Ess is 0

Can afford more overshoot!

Page 9: PI Controller Design

Sluggish settling is typical of PI or lag controlled systems.

Can reduce it by moving the p/z of controller to higher frequency.

Page 10: PI Controller Design

-40

-20

0

Mag

nit

ud

e (d

B)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 74.8 deg (at 6.13 rad/sec)

Frequency (rad/sec)

Page 11: PI Controller Design

%PI control examplen=[500]; d=[1 6 5];figure(1); clf; margin(n,d); hold on; grid; V=axis;Mp = 16; PMd = 70 - Mp +10; %put in a large extra PM, because PI kills PMsemilogx(V(1:2),[PMd-180 PMd-180],':r');%draw PMd linex=ginput(1); w_gcd = x(1); %get desired w_gcKP = 1/abs(polyval(n,j*w_gcd)/polyval(d,j*w_gcd));z = w_gcd/5; KI = z*KP;ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(1); margin(ngc,dgc); grid; [ncl,dcl]=feedback(ngc,dgc,1,1);figure(2);step(ncl,dcl); grid;figure(3); margin(ncl*1.414,dcl); grid;

Page 12: PI Controller Design

-100

-50

0

50

100M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 52.8 deg (at 4.14 rad/sec)

Frequency (rad/sec)

Page 13: PI Controller Design

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (sec)

Am

plit

ud

e

Page 14: PI Controller Design

PI Design with ess specs• From plant, draw Bode plot

• From specs => Kv,a-des, PMd and gcd

– For required ess, Kv,a-des =1/ess

– With C(s)=1/s, compute Kv,a-have

– If there is speed or BW req, gcd, • In this case, if PM not enough, design PD or lead

– Otherwise, choose gcd to have PM>PMd

• Find K to enforce gcd:

• Let KP = K, KIdes= Kv,a-des/Kv,a-have

– If KIdes <= Kgcd/5~20, done, let KI = KIdes

– Else, increase gcd and go back to previous step

1gcd )(

jCGK

Need to increase type by 1 to make a nonzero ess to be zero, and after type increase, there is further requirement on ess.

Page 15: PI Controller Design

56

500)(

2

sssG

Want Mp <= 16%Steady state error <= 0.1 for ramp input.

Analysis: steady state error <= 0.1 for ramp implies that the system type must be 1 or higher.

Original system is type 0, so need PI control.

Ess to ramp <= 0.1 requires Kvd >= 10.

Previous design leaves Kv = KI*500/5 = 100KI = 4.44

Example

KI=0.0444

Page 16: PI Controller Design

0 500 1000 15000

500

1000

1500Step Response

Time (sec)

Am

plit

ud

e

Page 17: PI Controller Design

499.8 500 500.2 500.4 500.6

499.5

500

500.5

Step Response

Time (sec)

Am

plit

ud

e

ess>0.1

Page 18: PI Controller Design

In the previous design, KI=0.0444 is already at the maximum of the range Kgcd/5~20,

But KIdes = 0.1, which is a factor of 10/4.22 larger.

So need to increase KP.

Hence, try letting KI = KIdes = 0.1, and make KP larger by 10/4.22.

Page 19: PI Controller Design

KP = KP*0.1/KI; KI =0.1;

ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(1); margin(ngc,dgc); grid;[ncl,dcl]=feedback(ngc,dgc,1,1);figure(2);step(ncl,dcl); grid;figure(3); step(ncl,[dcl 0]); grid;

Ramp response

Old KI, new KI

Page 20: PI Controller Design

0 500 1000 15000

500

1000

1500 Step Response

Time (sec)

Am

plit

ud

e

Page 21: PI Controller Design

499.85 499.9 499.95 500 500.05 500.1 500.15 500.2

499.7

499.8

499.9

500

500.1

500.2

Step Response

Time (sec)

Am

plit

ud

e

ess = 0.1

Page 22: PI Controller Design

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4Step Response

Time (sec)

Am

plit

ud

e

Can play with KP, but difficult to achieve the best KP

Page 23: PI Controller Design

PI Design with PD Design Steps• From required ess, Kv,a-des =1/ess

• With C(s)=1/s, compute Kv,a-have

• Let KI = Kv,a-des/Kv,a-have

• Multiply G(s) by KI/s

• Do a PD design for KIG(s)/s, with DC gain=1:– Find gc and PM

– Find PMd

– Let = PMd – PM + (a few degrees)

– Compute TD = tan()/wgcd

• KP = KI*TD

Page 24: PI Controller Design

%Alternative PI control by PD designclear all; n=[0 0 500]; d=[1 6 5];ess2ramp = 0.1; Kvd = 1/ess2ramp;Kva = n(end)/d(end); %after introducing 1/sKI = Kvd/Kva;%multiplying G(s) by KI/s and get new Bodeni=KI*n; di=[d 0];figure(1); clf; margin(ni,di); hold on; grid;[GM,PM,wpc,wgc]=margin(ni,di);PMd=50+10; phi = (PMd-PM)*pi/180;Td = tan(phi)/wgc; KP=KI*Td;ngc = conv(n, [KP KI]); dgc=di;figure(1); margin(n,d); margin(ngc,dgc);[ncl,dcl]=feedback(ngc,dgc,1,1);figure(3);step(ncl,dcl); grid;

Page 25: PI Controller Design

-100

-50

0

50

100M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-270

-180

-90

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 38.8 deg (at 6.2 rad/sec)

Frequency (rad/sec)

Page 26: PI Controller Design

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4Step Response

Time (sec)

Am

plit

ud

e

Page 27: PI Controller Design

clear all; n=[0 0 500]; d=[1 6 5];ess2ramp = 0.1; Kvd = 1/ess2ramp;Kva = n(end)/d(end); %after introducing 1/sKI = Kvd/Kva;%multiplying G(s) by KI/s and get new Bodeni=KI*n; di=[d 0];figure(1); clf; margin(ni,di); hold on; grid;[GM,PM,wpc,wgc]=margin(ni,di);PMd=50+3; phi = (PMd-PM)*pi/180;Td = tan(phi)/wgc; KP=KI*Td;ngc = conv(n, [KP KI]); dgc=di;figure(1); margin(n,d); margin(ngc,dgc);[ncl,dcl]=feedback(ngc,dgc,1,1);figure(3);step(ncl,dcl); grid;

Page 28: PI Controller Design

-100

-50

0

50

100M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-270

-180

-90

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 40.2 deg (at 5.04 rad/sec)

Frequency (rad/sec)

Page 29: PI Controller Design

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4Step Response

Time (sec)

Am

plit

ud

e

Page 30: PI Controller Design

Alternative PI Design Steps• For required ess, Kv,a-des =1/ess

• With C(s)=1/s, compute Kv,a-have

• Let KI = Kv,a-des/Kv,a-have

• Rewrite char eq: (KP + KI/s)G(s) + 1=0• KP*n/d + KI*n/d/s +1 = 0• KP *n*s + KI*n+d*s =0, KP*n*s/(KI*n+d*s) + 1 =0• So do a KP design for n*s/(KI*n+d*s), with KI above

– Draw Bode plot for n*s/(KI*n+d*s)– Select max PM frequency– Compute KP to make that frequency wgc

Page 31: PI Controller Design

%Alternative PI control exampleclear all; n=[0 0 500]; d=[1 6 5]; %note same lengthess2ramp = 0.1; Kvd = 1/ess2ramp;Kva = n(end)/d(end); %after introducing 1/sKI = Kvd/Kva;%get TF after closing the G(s) and KI/s loopni=[n 0]; di=[d 0]+KI*[0 n];figure(1); clf; margin(ni,di); grid;x=ginput(1); w_gcd = x(1); %get desired w_gcKP = 1/abs(polyval(ni,j*w_gcd)/polyval(di,j*w_gcd));ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(2); margin(n,d); hold on; margin(ngc,dgc);[ncl,dcl]=feedback(ngc,dgc,1,1);figure(3);step(ncl,dcl); grid;

Page 32: PI Controller Design

-40

-20

0

20

40

60M

agn

itu

de

(dB

)

10-1

100

101

102

-315

-270

-225

-180

-135

-90

Ph

ase

(deg

)

Bode DiagramGm = -43.5 dB (at 2.89 rad/sec) , Pm = 15.1 deg (at 22.1 rad/sec)

Frequency (rad/sec)

Pick wgc here

Page 33: PI Controller Design

-100

-50

0

50

100M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 29.5 deg (at 3.43 rad/sec)

Frequency (rad/sec)

Page 34: PI Controller Design

0 1 2 3 4 50

0.5

1

1.5Step Response

Time (sec)

Am

plit

ud

e

Page 35: PI Controller Design

-40

-20

0

20

40

60M

agn

itu

de

(dB

)

10-1

100

101

102

-315

-270

-225

-180

-135

-90

Ph

ase

(deg

)

Bode DiagramGm = -43.5 dB (at 2.89 rad/sec) , Pm = 15.1 deg (at 22.1 rad/sec)

Frequency (rad/sec)

Pick wgc here

Page 36: PI Controller Design

-100

-50

0

50

100M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 36.2 deg (at 3.89 rad/sec)

Frequency (rad/sec)

Page 37: PI Controller Design

0 0.5 1 1.5 2 2.5 3 3.5 40

0.2

0.4

0.6

0.8

1

1.2

1.4Step Response

Time (sec)

Am

plit

ud

e

Page 38: PI Controller Design

-40

-20

0

20

40

60M

agn

itu

de

(dB

)

10-1

100

101

102

-315

-270

-225

-180

-135

-90

Ph

ase

(deg

)

Bode DiagramGm = -43.5 dB (at 2.89 rad/sec) , Pm = 15.1 deg (at 22.1 rad/sec)

Frequency (rad/sec)

Pick wgc here

Page 39: PI Controller Design

0 0.5 1 1.5 2 2.50

0.2

0.4

0.6

0.8

1

1.2

1.4 Step Response

Time (sec)

Am

plit

ud

e

Page 40: PI Controller Design

We conclude that it is impossible to meet the specifications with a PI controller.

But we can fix the excessive overshoot with a lead.

Page 41: PI Controller Design

56

500)(

2

sssG

Want Mp <= 16%Steady state error <= 0.1 for ramp input.

Overall design:1.Ess2ramp <=0.1, PI with KI=1/0.1*5/500=0.12.Close the I-loop and select KP for best PM shape, KP = 0.0843.Use a lead controller with DC gain = 1 to reduce Mp from 30% to <= 16%

Page 42: PI Controller Design

clear all; n=[0 0 500]; d=[1 6 5];ess2ramp = 0.1; Kvd = 1/ess2ramp;Kva = n(end)/d(end); %after introducing 1/sKI = Kvd/Kva;%get TF after closing the G(s) and KI/s loopni=[n 0]; di=[d 0]+KI*[0 n];figure(1); clf; margin(ni,di); grid;x=ginput(1); w_gcd = x(1); %get desired w_gcKP = 1/abs(polyval(ni,j*w_gcd)/polyval(di,j*w_gcd));ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(2); margin(n,d); hold on; margin(ngc,dgc);[ncl,dcl]=feedback(ngc,dgc,1,1);figure(3);step(ncl,dcl); grid;

Page 43: PI Controller Design

%follow with a lead controller with DC gain =1 %to make Mp=30% ==> Mp<=16%[GM,PM,wpc,wgc]=margin(ngc,dgc);w_gcd=wgc; PMd=50+10; phimax = (PMd-PM)*pi/180;alpha=(1+sin(phimax))/(1-sin(phimax));zlead=w_gcd/alpha^.25; plead=w_gcd*alpha^.75;ngcc = conv(ngc, alpha*[1 zlead]);dgcc = conv(dgc, [1 plead]);figure(2); margin(ngcc,dgcc); grid;[ncl,dcl]=feedback(ngcc,dgcc,1,1);figure(5);step(ncl,dcl); grid;figure(6);step(ncl,[dcl 0]); grid; %ramp response

Page 44: PI Controller Design

-100

-50

0

50

100M

agn

itu

de

(dB

)

10-2

10-1

100

101

102

103

-180

-135

-90

-45

0

Ph

ase

(deg

)

Bode DiagramGm = Inf dB (at Inf rad/sec) , Pm = 53.9 deg (at 7.1 rad/sec)

Frequency (rad/sec)

Original system

After PI alone

With PI and lead

Page 45: PI Controller Design

0 0.5 1 1.5 20

0.2

0.4

0.6

0.8

1

1.2

1.4Step Response

Time (sec)

Am

plit

ud

e

Mp <= 16% is met.

Page 46: PI Controller Design

0 500 1000 15000

500

1000

1500Step Response

Time (sec)

Am

plit

ud

e

Page 47: PI Controller Design

499.6 499.7 499.8 499.9 500 500.1 500.2 500.3499.5

499.6

499.7

499.8

499.9

500

500.1

500.2

500.3Step Response

Time (sec)

Am

plit

ud

e Ess=0.1

y=t