Controller design by R.L. Typical setup: C(s)G(s) Controller Design Goal: 1.Select poles and zero of C(s) so that R.L. pass through desired region 2.Select K corresponding to a good choice of dominant pole pair
Types of classical controllers Proportional control –Needed to make a specific point on RL to be closed-loop system dominant pole Proportional plus derivative control (PD control) –Needed to “bend” R.L. into the desired region Lead control –Similar to PD, but without the high frequency noise problem; max angle contribution limited to < 75 deg Proportional plus Integral Control (PI control) –Needed to “eliminate” a non-zero steady state tracking error Lag control –Needed to reduce a non-zero steady state error, no type increase PID control –When both PD and PI are needed, PID = PD * PI Lead-Lag control –When both lead and lag are needed, lead-lag = lead * lag
Proportional control design 1.Draw R.L. for given plant 2.Draw desired region for poles from specs 3.Pick a point on R.L. and in desired region Use ginput to get point and convert to complex # 4.Compute 5.Obtain closed-loop TF 6.Obtain step response and compute specs 7.Decide if modification is needed nump=…; denp= …; sysp=tf(nump, denp); rlocus(sysp); use your program from several weeks ago to do all these syscl = feedback(sysc*sysp,1); Gpd=evalfr(sysp,pd); K=1/Gpd; sysc = K; [x,y]=ginput(1); pd=x+j*y;
Design steps: 1.From specs, draw desired region for pole. Pick from region, not on RL 2.Compute 3.Select 4.Select: Gpd=evalfr(sysp,pd) phi=pi - angle(Gpd) z=abs(real(pd))+abs(imag(pd)/tan(phi)); Kd=1/abs(pd+z)/abs(Gpd); Kp=z*Kd; PD controller design [x,y]=ginput(1); pd=x+j*y;
Lead Control: 1.Draw R.L. for G 2.From specs draw region for desired c.l. poles 3.Select p d from region 4.Let Pick –z somewhere below p d on –Re axis Let Select Approximation to PD Same usefulness as PD [x,y]=ginput(1); z=abs(x); phi1=angle(pd+z); phi2=phi1-phi; [x,y]=ginput(1); pd=x+j*y; Gpd=evalfr(sysp,pd) phi=pi - angle(Gpd) p=abs(real(pd))+abs(imag(pd)/tan(phi2)); K=abs((pd+p)/(pd+z)/Gpd); sysc=tf(K*[1 z],[1 p]); Hold on; rlocus(sysc*sysp);
Alternative Lead Control 1.Draw R.L. for G 2.From specs draw region for desired c.l. poles 3.Select p d from region 4.Let Select phipd=angle(pd); phi1=(phipd+phi)/2; phi2=phi1-phi;
Lag Design steps 1.Draw R.L. for G(s). 2.From specs, draw desired pole region 3.Select p d on R.L. & in region 4.Get 5.With that K, compute error constant (K pa, K va, K aa ) from KG(s) 6.From specs, compute K pd, K vd, K ad Kdes = 1/ess; sysol = sysc*sysp; [nol, dol]=tfdata(sysol,'v'); dn0=dol(dol~=0); Kact=nol(end)/dn0(end);
7.If K #a > K #d, done else: pick 8.Re-compute 9.Closed-loop simulation & tuning as necessary z=-real(pd)/…; p=z*Kact/Kdes/(1+…); 0.05 or 0.1
First design: design PD for G(s)/s Second design: 1.Draw R.L. for G(s) 2.From specs, draw desired region 3.Pick p d on R.L. & in region 4.i. Choose ii. Choose 5. 6.Simulate & tune PI Design steps
Example: Want: Solution: C(s)
Draw R.L. Pick p d on R.L. & in Region pick p d = – j0.5 Since there is one in G(s)
New root locus: RL going north-east, reduce K will increase and and increase
Use original K=0.86 instead of 0.914; ess should be OK Mp reduced by not enough.
Change that divide # from 5 to 15. ans = yss=1; ess=0; tr=2.78; td=2.78; ts=10.6; tp=6.94; Mp=15.8
Lag control can improve e ss, but cannot eliminate e ss Use PI control to eliminate e ss PI :
Overall controller design 1.Draw R.L. for G(s), hold graph 2.Draw desired region for closed-loop poles based on desired specs 3.If R.L. goes through region, pick p d on R.L. and in region. Go to step 7. C(s)G p (s) R(s)E(s)Y(s)U(s)
4.Pick p d in region (near corner but inside region for safety margin) 5.Compute angle deficiency: 6.a. PD control, choose z pd such that then
6.b. Lead control: choose z lead, p lead such that You can select z lead & compute p lead. Or you can use the “bisection” method to compute z and p. Then
7.Compute overall gain: 8.If there is no steady-state error requirement, go to With K from 7, evaluate error constant that you already have:
The 0, 1, 2 should match p, v, a This is for lag control. For PI:
10.Compute desired error const. from specs: 11.For PI : set K * a = K * d & solve for z pi For lag : pick z lag & let
12.Re-compute K Get closed-loop T.F. Do step response analysis. 15.If not satisfactory, go back to 3 and redesign.
If we have both PI and PD we have PID control:
If we have both Lead and Lag, we have lead-lag control:
Lead-lag design example Too much overshoot, too slow & e ss to ramp is too large. C(s)G p (s) R(s)E(s)Y(s)U(s)
Draw R.L. for G(s) & the desired region
Clearly R.L. does not pass through desired region. need PD or lead. Let’s do lead. Pick p d in region
Now choose z lead & p lead. Could use bisection. Let’s pick z lead to cancel plant pole s + 0.5
Use our formula to get p lead Now compute K : Now evaluate error constant K va
Could re-compute K, but let’s skip: do step response.
Control System Implementation C(s)G p (s) R(s)E(s)Y(s)U(s) ControllerActuator Reference Command error output control Plant Sensor disturbance input noise + _ plant input
PC-in-the-loop Control power Amp Actuator Reference Command output Plant Sensor disturbance input A/D D/A PC I/O All control algorithms implemented in PC (could be Matlab Real-Time) Needs data acquisition system, including A/D and D/A Needs power amplifier Signal Conditioner and amplifier
-Controller based control power Amp Actuator Reference Command output Plant Sensor disturbance input -Controller I/O Very similar architecture to PC-in-the-loop control All control algorithms implemented in -controller -controller has its own A/D and D/A, but make sure resolution is OK Still needs power amplifier, because -controller outputs weak signal Signal Conditioner and amplifier
Power electronic based control Op Amp circuit Actuator Reference Command output Plant Sensor disturbance input Difference amplifier Analog operation, fast Inexpensive All algorithms in circuit hardware No sampling and aliasing issues
Difference Amplifier Example circuit: e R1 R2 R3 R4 +−+− r y
Op-amp controller circuit: 1.Proportional: −+−+ −+−+ e R1 R2 R3 R4 u
2.Integral: −+−+ −+−+ e R1 C1 R3 R4 u
3.Derivative control: −+−+ −+−+ e C1 R3 R4 u R2
4.PD controller: −+−+ −+−+ e C1 R3 R4 u R2 R1
5.PI controller: −+−+ −+−+ e R1 C1 R3 R4 u R2
6.PID controller: −+−+ −+−+ e R1 C2 R3 R4 u R2 C1
7.Lead or lag controller: −+−+ −+−+ e R1 R3 R4 u R2 C1 C2
If R 1 C 1 > R 2 C 2 then z < p This is lead controller If R 1 C 1 p This is lag controller
8.Lead-lag controller: −+−+ −+−+ e R1 R3 R6 u R2 C1 C2 R4 R5