Open vs Closed Loop Frequency Response And Frequency

  • Slides: 63
Download presentation
Open vs Closed Loop Frequency Response And Frequency Domain Specifications C(s) Goal: 1) Define

Open vs Closed Loop Frequency Response And Frequency Domain Specifications C(s) Goal: 1) Define typical “good” freq resp shape for closed-loop 2) Relate closed-loop freq response shape to step response shape 3) Relate closed-loop freq shape to open-loop freq resp shape 4) Design C(s) to make C(s)G(s) into “good” shape.

Prototype 2 nd order system closed-loop frequency response z=0. 1 0. 2 0. 3

Prototype 2 nd order system closed-loop frequency response z=0. 1 0. 2 0. 3 No resonance for z <= 0. 7 For small zeta, resonance freq is about wn BW ranges from 0. 5 wn to 1. 5 wn For good z range, BW is 0. 8 to 1. 1 wn So take BW = wn Mr=0. 5 d. B for z=0. 6 Mr=3 d. B for z=0. 5 Mr=7 d. B for z=0. 4 w/wn

Closed-loop BW to wn ratio BW≈1. 4 wn z

Closed-loop BW to wn ratio BW≈1. 4 wn z

Prototype 2 nd order system closed-loop frequency response z=0. 1 When z >=0. 6

Prototype 2 nd order system closed-loop frequency response z=0. 1 When z >=0. 6 no visible resonance peak 0. 2 0. 3 When z <=0. 5 visible resonance peak near w=wn No resonance for z <= 0. 7 Mr<0. 5 d. B for z=0. 6 Mr=1. 2 d. B for z=0. 5 Mr=2. 5 d. B for z=0. 4 w=wn w/wn

Prototype 2 nd order system closed-loop frequency response Mr vs z

Prototype 2 nd order system closed-loop frequency response Mr vs z

Percentage Overshoot in closed-loop step response z

Percentage Overshoot in closed-loop step response z

Percentage Overshoot in closed-loop step response Mr

Percentage Overshoot in closed-loop step response Mr

Percentage Overshoot in closed-loop step response Mr in d. B

Percentage Overshoot in closed-loop step response Mr in d. B

Phase Margin PM = 100 z z

Phase Margin PM = 100 z z

PM+Mp =70 line Percentage Overshoot in closed-loop step response Phase Margin in degrees

PM+Mp =70 line Percentage Overshoot in closed-loop step response Phase Margin in degrees

z=0. 1 0. 2 0. 3 0. 4 wgc In the range of good

z=0. 1 0. 2 0. 3 0. 4 wgc In the range of good zeta, wgc is about 0. 65 times to 0. 8 times wn w/wn

Open-loop wgc to wn ratio wgc≈0. 7 wn z

Open-loop wgc to wn ratio wgc≈0. 7 wn z

z=0. 1 In the range of good zeta, PM is about 100*z 0. 2

z=0. 1 In the range of good zeta, PM is about 100*z 0. 2 0. 3 0. 4 w/wn

Important relationships • Closed-loop BW are very close to wn • Open-loop gain cross

Important relationships • Closed-loop BW are very close to wn • Open-loop gain cross over wgc ≈ (0. 65~0. 8)* wn, • When z <= 0. 6, wr and wn are close • When z >= 0. 7, no resonance • z determines phase margin and Mp: z 0. 4 0. 5 0. 6 0. 7 PM Mp 44 25 53 16 61 10 67 5 deg % ≈100 z

Desired Bode plot shape

Desired Bode plot shape

Proportional controller design • Obtain open loop Bode plot • Convert design specs into

Proportional controller design • Obtain open loop Bode plot • Convert design specs into Bode plot req. • Select KP based on requirements: – For improving ess: KP = Kp, v, a, des / Kp, v, a, act – For fixing Mp: select wgcd to be the freq at which PM is sufficient, and KP = 1/|G(jwgcd)| – For fixing speed: from td, tr, tp, or ts requirement, find out wn, let wgcd = wn and choose KP as above

clear all; n=[0 0 40]; d=[1 2 0]; figure(1); clf; margin(n, d); %proportional control

clear all; n=[0 0 40]; d=[1 2 0]; figure(1); clf; margin(n, d); %proportional control design: figure(1); hold on; grid; V=axis; Mp = 10/100; zeta = sqrt((log(Mp))^2/(pi^2+(log(Mp))^2)); PMd = zeta * 100 + 3; semilogx(V(1: 2), [PMd-180], ': r'); %get desired w_gc x=ginput(1); w_gcd = x(1); KP = 1/abs(polyval(n, j*w_gcd)/polyval(d, j*w_gcd)); figure(2); margin(KP*n, d); figure(3); stepchar(KP*n, d+KP*n);

PD Controller

PD Controller

KP/KD 20*log(KP) Place wgcd here

KP/KD 20*log(KP) Place wgcd here

n=[0 0 1]; d=[0. 02 0. 3 1 0]; figure(1); clf; margin(n, d); Could

n=[0 0 1]; d=[0. 02 0. 3 1 0]; figure(1); clf; margin(n, d); Could be a little less Mp = 10/100; zeta = sqrt((log(Mp))^2/(pi^2+(log(Mp))^2)); PMd = zeta * 100 + 3; tr = 0. 3; w_n=1. 8/tr; w_gcd = w_n; PM = angle(polyval(n, j*w_gcd)/polyval(d, j*w_gcd)); phi = PMd*pi/180 -PM; Td = tan(phi)/w_gcd; KP = 1/abs(polyval(n, j*w_gcd)/polyval(d, j*w_gcd)); KP = KP/sqrt(1+Td^2*w_gcd^2); KD=KP*Td; ngc = conv(n, [KD KP]); figure(2); margin(ngc, d); figure(3); stepchar(ngc, d+ngc);

Variation • Restricted to using KP = 1 • Meet Mp requirement • Find

Variation • Restricted to using KP = 1 • Meet Mp requirement • Find wgc and PM • Find PMd • Let f = PMd – PM + (a few degrees) • Compute TD = tan(f)/wgcd • KP = 1; KD=KPTD

n=[0 0 5]; d=[0. 02 0. 3 1 0]; figure(1); clf; margin(n, d); Mp

n=[0 0 5]; d=[0. 02 0. 3 1 0]; figure(1); clf; margin(n, d); Mp = 10/100; zeta = sqrt((log(Mp))^2/(pi^2+(log(Mp))^2)); PMd = zeta * 100 + 18; [GM, PM, wgc, wpc]=margin(n, d); phi = (PMd-PM)*pi/180; Td = tan(phi)/wgc; Kp=1; Kd=Kp*Td; ngc = conv(n, [Kd Kp]); figure(2); margin(ngc, d); figure(3); stepchar(ngc, d+ngc);

Lead Controller Design

Lead Controller Design

plead zlead 20 log(Kzlead/plead) Goal: select z and p so that max phase lead

plead zlead 20 log(Kzlead/plead) Goal: select z and p so that max phase lead is at desired wgc and max phase lead = PM defficiency!

Lead Design • • • From specs => PMd and wgcd From plant, draw

Lead Design • • • From specs => PMd and wgcd From plant, draw Bode plot Find PMhave = 180 + angle(G(jwgcd) DPM = PMd - PMhave + a few degrees Choose a=plead/zlead so that fmax = DPM and it happens at wgcd

Lead design example • Plant transfer function is given by: • n=[50000]; d=[1 60

Lead design example • Plant transfer function is given by: • n=[50000]; d=[1 60 500 0]; • Desired design specifications are: – Step response overshoot <= 16% – Closed-loop system BW>=20;

n=[50000]; d=[1 60 500 0]; G=tf(n, d); figure(1); margin(G); Mp_d = 16/100; zeta_d =0.

n=[50000]; d=[1 60 500 0]; G=tf(n, d); figure(1); margin(G); Mp_d = 16/100; zeta_d =0. 5; % or calculate from Mp_d PMd = 100*zeta_d + 3; BW_d=20; w_gcd = BW_d*0. 7; Gwgc=evalfr(G, j*w_gcd); PM = pi+angle(Gwgc); phimax= PMd*pi/180 -PM; alpha=(1+sin(phimax))/(1 -sin(phimax)); zlead= w_gcd/sqrt(alpha); plead=w_gcd*sqrt(alpha); K=sqrt(alpha)/abs(Gwgc); ngc = conv(n, K*[1 zlead]); dgc = conv(d, [1 plead]); figure(1); hold on; margin(ngc, dgc); hold off; [ncl, dcl]=feedback(ngc, dgc, 1, 1); figure(2); step(ncl, dcl);

Before design After design

Before design After design

Closed-loop Bode plot by: margin(ncl*1. 414, dcl); Magnitude plot shifted up 3 So, gc

Closed-loop Bode plot by: margin(ncl*1. 414, dcl); Magnitude plot shifted up 3 So, gc is BW

n=[50]; d=[1/5 1 0]; figure(1); clf; margin(n, d); grid; hold on; Mp = 20/100;

n=[50]; d=[1/5 1 0]; figure(1); clf; margin(n, d); grid; hold on; Mp = 20/100; zeta = sqrt((log(Mp))^2/(pi^2+(log(Mp))^2)); PMd = zeta * 100 + 10; ess 2 ramp= 1/200; Kvd=1/ess 2 ramp; Kva = n(end)/d(end-1); Kzp = Kvd/Kva; figure(2); margin(Kzp*n, d); grid; [GM, PM, wpc, wgc]=margin(Kzp*n, d); w_gcd=wgc; phimax = (PMd-PM)*pi/180; alpha=(1+sin(phimax))/(1 -sin(phimax)); z=w_gcd/sqrt(alpha); p=w_gcd*sqrt(alpha); ngc = conv(n, alpha*Kzp*[1 z]); dgc = conv(d, [1 p]); figure(3); margin(tf(ngc, dgc)); grid; [ncl, dcl]=feedback(ngc, dgc, 1, 1); figure(4); step(ncl, dcl); grid; figure(5); margin(ncl*1. 414, dcl); grid;

n=[50]; d=[1/5 1 0]; figure(1); clf; margin(n, d); grid; hold on; Mp = 20/100;

n=[50]; d=[1/5 1 0]; figure(1); clf; margin(n, d); grid; hold on; Mp = 20/100; zeta = sqrt((log(Mp))^2/(pi^2+(log(Mp))^2)); PMd = zeta * 100 + 10; ess 2 ramp= 1/200; Kvd=1/ess 2 ramp; Kva = n(end)/d(end-1); Kzp = Kvd/Kva; figure(2); margin(Kzp*n, d); grid; [GM, PM, wpc, wgc]=margin(Kzp*n, d); w_gcd=wgc; phimax = (PMd-PM)*pi/180; alpha=(1+sin(phimax))/(1 -sin(phimax)); z=w_gcd/alpha^. 25; %sqrt(alpha); p=w_gcd*alpha^. 75; %sqrt(alpha); ngc = conv(n, alpha*Kzp*[1 z]); dgc = conv(d, [1 p]); figure(3); margin(tf(ngc, dgc)); grid; [ncl, dcl]=feedback(ngc, dgc, 1, 1); figure(4); step(ncl, dcl); grid; figure(5); margin(ncl*1. 414, dcl); grid;