You are on page 1of 48

K

n
(
s
)
d
10



p
o
l
e
s

nm

d
1
z
e
r
o
s

(
s
)
nn
(
s
)
d

;
K
n
(
s
)
/
d
(
s
)
The root locus technique


m)
z

lke(za
gl
e
pz)a
g
l
ep
1. Obtain closed-loop TF and char eq d(s) = 0

m)
a n
g )kn(p
2. Re-arrange to get

'
1
1 1'
1 11
3. Mark zeros with o and poles with x

p k k
4. High light segments of x-axis and put arrows

k k
5. Decide #asymptotes, their angles, and x-axis meeting
place:

6. Determine jw-axis crossing using Routh table


7. Compute breakaway:
8. Departure/arrival angle:
Example: in prev. ex., change s+2 to s+3
1
K 1 0

s s 3 s 2s 2
2

poles : 0,3,1 j
no zeros
Real axis : 3,1 seg is on R.L.

Asymptotes : # 4
3 1 1 5

4 4
3
e : ,
4 4
dep for 0,3 : no need.
dep for 1 j
dep - i
-1 1 3
tan
2 2 4
-1 1
tan
4 2
dep for 1 j is neg of by symmetry.
Break away points : d s 0
d s 4s 3 15s 2 16 s 6 0
One solution at s 2.6 on R.L.
?
j -axis crossing:
char. poly:
s 4 5s 3 8s 2 6 s K
s 4 :1 8 K
s3 : 5 6
2 34
s : K
5
1
34
5
6 5K
s : 34
5
0
s :K
346
set 34
5
6 5K 0 K 55

s 2 : 345 s 2 34556 0 s j 6
5
346
at K 25
, R.L. cross j - axis at j 6
5
>> rlocus(1, conv([1 3 0], [1 2
2]))
>> axis equal
>> sgrid Root Locus
8
0.84 0.74 0.6 0.42 0.22

6
0.91
4
0.96

2
Imaginary Axis

0.99

10 8 6 4 2
0

0.99
-2

0.96
-4
0.91
-6

0.84 0.74 0.6 0.42 0.22


-8
-10 -8 -6 -4 -2 0 2 4 6 8
Real Axis
Effects of additional pole
One additional R.L. branch shoots out
It increases # asymp. by one
More asymptotes go towards +Re-axis
More likely to be unstable
Poles tend to push R.L. away from them

Dont introduce poles unless required by


other concerns
Examples:

# asymp 2
Effects of additional zero

It sinks one branch of R.L.


It reduces the # asymp. by one
Asymptotes move more towards Re-axis
More likely to be stable
Zeros attract R.L.
Each zero attracts one branch
If > 1 branches nearby, they go to Re-axis
& split, the one branch goes to zero
Never have >= 2 branches go to a zero
Examples:
If we put that additional
zero near (0,0):

The dominant pole


pair are more
negative
But there is one pole
(real) close to s = 0,
which will settle very
slowly (sluggish
settling)
C(s)Kspz1szp2K
Typical setup:

spz1
Controller Design Goal:

nds10
Controller design by R.L.

C(s) G(s)
G s
n s
d s

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
1. Draw R.L. for given plant
KG
Proportional control design
1sdG
n
sK
2. Draw desired region for poles from specs

11P

0
D
3. Pick a point on R.L. and in desired region
Use ginput to get point and convert to complex #
4. Compute K using abs
and polyval
5. Obtain closed-loop TF
6. Obtain step response and compute specs
7. Decide if modification is needed
Matlab program template
% enter plant transfer function Gp(s)
nump = . ; denp=. ;

% enter desired closed loop step response specification:


% you may allow both uppper and lower limits

% convert from specs to zeta, omegan, sigma, omegad

%Draw root locus; may need to re-arrange equation based on steady state ess requirements

%adjust window size, x-limit, y-limit, etc using values of omegan, sigma, omegad

% hold the graph, and plot allowable region for pole location on RL graph

% obtain controller transfer function


%if PD or lead needed, design a PD or lead

%if PI or lag needed, design a PI or lag

%design P, or final decision on overall gain

% get controller TF

% obtain closed loop transfer function from Gp(s) and C(s)


numcl=; dencl=;
% obtain closed-loop step response

% compute actual step response specs, using your program from last week

% are they good?


% compute the actual closed-loop poles, place x at those locations

% are they in the allowable region?


When to use:
If R.L. of G(s) goes through
the desired region for c.l. poles
What is that region:
From design specs, get desired Mp, ts, tr,
etc.
Use formulae for 2nd order system to get
desired n , , , d
Identify / plot these in s-plane
Example:

1
C(s)
s s 6

When C(s) = 1, things are okay


But we want initial response speed as fast
as possible; yet we can only tolerate
10% overshoot.
Sol: From the above, we needM p 10%
that means: 0.6
This is a cone around Re axis with 60 area
We also want tr to be as small as possible.
i.e. : want n as large as possible
i.e. : want pd to be as far away from s = 0 as
possible

1. Draw R.L.
2. Pick pd on R.L., in cone & | pd | max
1
3. K pd pd 6 25
G pd
Root Locus
5

2
Imaginary Axis

-1

-2 System: sys
Gain: 24.9
Pole: -3 - 3.99i
-3 Damping: 0.601
Overshoot (%): 9.43
Frequency (rad/sec): 4.99
-4

-5
-7 -6 -5 -4 -3 -2 -1 0 1
Real Axis

n=1; d=[1 6 0]; sys_p = tf(n,d);


rlocus(sys_p)
[x,y]=ginput(1); pd=x+j*y;
Gpd = evalfr(sys_p,pd); K=1/abs(Gpd); K=25
Step Response
1.4

System: sys
1.2 Time (sec): 0.79
Amplitude: 1.09

0.8
Amplitude

0.6

0.4

0.2

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
Time (sec)
sys_cl = feedback(K*sys_p,1);
step(sys_cl);
10
Example: C(s)
s ( s 2) s 6

Want: M p 5% , as fast as possible


Sol:
10
1. Draw R.L. forG s
2. s s 2 s 6
M p 5% 0.7
Draw cone 45 about Re axis
3. Pick pd as the crossing point of
the = 0.7 line & R.L. pd=-0.9+j0.9
1
4.K P G p pd pd 2 pd 6 10 0.9368
d
Root Locus
20

15

10

5
Imaginary Axis

-5

-10

-15

-20
-25 -20 -15 -10 -5 0 5 10
Real Axis
Step Response

0.8
Amplitude

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8
Time (sec)

Overshoot is a little too much.

Re-choose pd =-0.8+j0.8
Root Locus
5
0.76 0.64 0.5 0.38 0.24 0.12

0.88

0.97
aginaryAxis

0
6 5 4 3 2 1

0.97
Im

0.88

0.64 0.5 0.38 0.24 0.12


-5 0.76
-6 -5 -4 -3 -2 -1 0 1
Real Axis
Step Response
1

0.8
ylim([0,yss*(1+Mp)])
Amplitude

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7
Time (sec)
Controller tuning:
1. First design typically may not work
2. Identify trends of specs changes as K
is increased.
e.g.: as KP , pole
, d , & MP

3. Perform closed-loop step response


4. Adjust K to improve specs
e.g. If MP too much, the 2. says
reduce KP
PD controller design
C s K K s K s z
P D D
z KP KD
This is introducing an additional zero to
the R.L. for G(s)
Use this if the dominant pole pair
branches of G(s) do not pass through the
desired region
Place additional zero to bend the RL
into the desired region
Design steps:
1. From specs, draw desired region for pole.
Pick pd jd from region, not on RL
2. Compute G p d Gpd=evalfr(sys_p,pd)
phi=pi - angle(Gpd)

3. Select z s.t. pd z G pd
i.e. z d tan G pd
z=abs(real(pd))+abs(imag(pd)/tan(phi))

1
4. Select: K D
pd z G pd
K P z K D
Kd=1/abs(pd+z)/abs(Gpd)
1
Example: C(s)
s ( s 2)

Want: M p 5%, t s 2 sec for 2%


Sol: M p 5% 0.7
4
t s 2 sec 2
ts
Choose pd 2 j 2
2 , d 2 , 0.707
(pd not on R.L.)
(Need a zero to attract R.L. to pd)
2. G pd 1
2 j 2 2 j 2 2

2 j 2 j 2
3 5 3
4 2 4 4
G pd 34 4
3. z tan
d

4
22 1 4
4. 1
KD 2
2 j 2 4 2 j 2 2 j 2 2 1

K zK 8
P D

C s 8 2s
Step Response

1 ts is OK

But Mp too large


0.8

To redesign:
Amplitude

0.6 Reduce d

pd=-2+j1.5
0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Time (sec)
Gpd = evalfr(sys_p, pd)
Gpd = - 0.1600 + 0.2133i

phi = pi - angle(Gpd)
phi = 0.9273

z = abs(real(pd)) + abs(imag(pd)/tan( phi))


z = 3.1250

Kd = 1/abs(pd+z)/abs(Gpd)
Kd = 2

Kp = z*Kd
Kp = 6.2500

sys_c=tf([Kd Kp], 1);


sys_cl=feedback(sys_c*sys_p, 1)
Transfer function:
2 s + 6.25
----------------
s^2 + 4 s + 6.25

step(sys_cl); ylim([0 yss*(1+2*Mp)])


Step Response

0.8
Amplitude

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Time (sec)
Drawbacks of PD
Not proper : deg of num > deg of den
High frequency gain :
K P K D j as
High gain for noise
Saturates circuits
Cannot be implemented physically
Lead Controller

Approximation to PD
Same usefulness as PD
sz
C s K pz0
s p
It contributes a lead angle:
C pd pd z
pd p

C(s) G(s)
Lead Design:

1. Draw R.L. for G


2. From specs draw region for desired
c.l. poles
3. Select pd from region pd jd
4. Let G pd
Pick z somewhere below pd on Re
axis 1 pd z , 2 1
Let p s.t. pd p 2
Select i.e. p d tan 2
1 pd p
Let K
pd z
G pd pd z G pd
pd p

sz
Your controller is : C s K
s p
There are many choices of z, p
More neg. (z) & (p) more close to
PD & more sensitive to noise, and
worse steady-state error
But if z is > Re(pd), pd may not
dominate
Example: Lead Design
MP is fine,
but too slow.
Want: Dont increase MP
C(s)
s(
4
2)
but double the resp. speed
Sol: Original system: C(s) = 1
c.l. TF 2 4
s 2s4
n 2 , 2 n 2 0.5
Since MP is a function of , speed is
proportional to n
Hence we want new 0.5
new n 4
Draw R.L. & desired
region
Pick pd right at the
vertex:
pd 2 j 2 3
(Could pick pd a little
inside the region
to allow flex)
Clearly, R.L. does not pass through
pd, nor the desired region.
need PD or Lead to bend the
R.L. into region.
(Note our choice may be the
easiest to achieve)
Lets do Lead:
G pd pd pd 2
2

3 2 6
Pick z to the left of pd
Pick z 4 , z 4

1 pd 4
3

then 2 1
3 6 6
then p d tan 2
2 2 3 13 8
K 1
7
pd z 4

pd p pd pd 2
C s 7 s4
s 8
Step Response

1.2

0.8
Amplitude

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Time (sec)

Speed is doubled, but over shoot is too much.


Step Response
1.2

0.8
Amplitude

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3
Time (sec)
s4 s4
Change controller from C s 7 to C s 6
s 8 s 10

To reduce the gain a bit, and make it a little closer to PD


Particular choice of z :

Apd O pd O pd
Choose B s.t.
Bpd bisect Apd O

OBpd Bpd A

12 Apd O
12 pd
pd
1 pd z O z pd z pd A Bpd A
2 2 2
pd
2 pd p
2 2
z d tan 1
p d tan 2
In prev. example :pd 2 j 2 3
2, d 2 3
Follow above procedure, we get
C s 4.73 s 2.93
s 5.46

c.l. step : M p 21% , t r 0.359


change 2 to 2.5 , repeat.
c.l. step : M p 16.1% , t r 0.375

You might also like