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

PI Controller Design

Embed Size (px)

DESCRIPTION

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. K P =1. KI/KP=1/40. -5.7. -1.4. -2.8. -11.3. -26. 6. Don’t want these: - PowerPoint PPT Presentation

Citation preview

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

KP=1

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 = KP gcd/5~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.

When to use:

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/100; zeta =sqrt((log(Mp))^2/(pi^2+(log(Mp))^2));PMd = zeta*100+15; %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)

Bode plot of original system

PMd = 65 deg line

Page 7: PI Controller Design

-100

-50

0

50M

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 = 60.8 deg (at 3.89 rad/sec)

Frequency (rad/sec)

Blue is originalGreen is with PI Controller

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.4Step Response

Time (sec)

Am

plit

ud

e

Ess is 0

Page 9: 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 10: 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.

In this case, if we change the divide by 10 into divide by 5, the sluggish settling will improve.

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/100; zeta =sqrt((log(Mp))^2/(pi^2+(log(Mp))^2));PMd = zeta*100+15; %put in a large extra PM, because PI kills PMsemilogx(V(1:2), [PMd-180 PMd-180],':r');x=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; z = w_gcd/5; KI = z*KP;ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(1); margin(ngc,dgc);[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

-50

0

50M

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 = 53.6 deg (at 4.06 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.4Step Response

Time (sec)

Am

plit

ud

e

Notice the significant improvement of settling time

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 <= ~K * gcd/5, done, let KI = KIdes

– Else, let KI = KIdes and adjust KP to meet Mp specs

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

Example

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.0422 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); hold on; grid;x=ginput(1); w_gcd = x(1); %get desired w_gcKP = 1/abs(evalfr(tf(ni,di),sqrt(-1)*w_gcd));ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(1); margin(n,d); margin(ngc,dgc);[ncl,dcl]=feedback(ngc,dgc,1,1);figure(3);clf; stepspecs(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(evalfr(tf(ni,di),j*w_gcd));ngc = conv(n, [KP KI]); dgc = conv(d, [1 0]);figure(2); clf; 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(dcl-ncl,[dcl 0]); grid; %ramp response of e

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 2 4 6 8 10 120

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

Step Response

Time (sec)

Am

plitu

de