Solution: 7.9.2.8
R
+
C
G
c
G
p
Σ
-
Figure 1: Cascade Compensation with UnityFeedback
For the system of Figure 1 wehave
G
p
=
1
(s +2)(s +6)
The PI compensator can be put in the form:
G
c
= k
pi
+
k
i
s
=
k
pi
s + k
i
s
=
k
pi
(s + k
i
=k
pi
)
s
:
The constant k
pi
serves as the gain of the compensator and the ratio k
i
=k
pi
determines the zero of the compensator. In this problem werstelect to
make
k
i
k
pi
=2;;
and the zero of the PI compensator cancels the pole of the plantats = ;2
As as consequence
G
c
(s)G
p
(s)=
K
pi
s(s +6)
:
The root locus is shown in Figure 2 Toachieve
t
p
< 1sec;;
wemust have
!
d
>
1
=3:2 rad/sec:
The gain to place the closed loop poles at s = ;3j!
d
is
K
pi
= jsjjs +6jj
s=;3+j!
d
= !
2
n
:
Since we are allowed 20% overshoot, our next goal is to determine !
d
. The
following MATLAB dialogue shows that wecanlet =0:45.
1
Im(s)
Re(s)
-3
ω
s + 6
s
-6
d
Figure 2: Root Locus of Gain Compensated System
EDU>x =-0.45*pi/sqrt(1-0.45^2)
x=
-1.583058779296969e+00
EDU>exp(x)
ans =
2.053460284220887e-01
EDU>wn = 3/0.45
wn =
6.666666666666666e+00
EDU>wd = wn*sqrt(1-0.45^2)
wd =
2
5.953523699830583e+00
EDU>k = 3^2 + wd^2
k=
4.444444444444444e+01
EDU>kv = k/6
kv =
7.407407407407406e+00
EDU>
Weseethat wecan just meet the specication on steady state accuracy.
Based on these calculations wechoose Then the compensator is
G
c
(s)=
44:44(s+2)
s
:
We can try to improveonthis result bymoving the zero of the PI com-
pensator around, but as the following analysis shows it is hard to get much
improvementonthe pole/zero cancellation approach. The following Matlab
program nds a, and K
v
over a range of acceptable values of !
d
. Because
wedonot haveperfect cancellation, wehave increased to 0.5.
p1 = 2
p2 = 6
kplant=1
omegan = 6
zeta = 0.5
dw = 0.05
i=0
while omegan <10
s=-omegan*zeta + j*omegan*sqrt(1-zeta^2);;
x=omegan*zeta;;
i=i+1;;
alpha(i) = angle(s) + angle(s + p1) +angle(s + p2) - pi;;
a(i) = x + ( x / tan(alpha(i) ) );;
3
5 5.5 6 6.5 7 7.5 8 8.5 9
3
4
5
6
7
8
9
Figure 3: K
v
as a function of !
d
xp(i) = omegan*sqrt(1-zeta^2);;
k(i) = ( abs(s)*abs(s + p1)*abs(s + p2) )/ (kplant*abs(s + a(i)) );;
kv(i) = (kplant*k(i)*a(i))/(p1*p2);;
ess(i) = 1 / ( kv(i));;
omegan = omegan + dw;;
end
plot(xp,kv)
print -deps pi8c.eps
Figure 3 shows K
v
as a function of !
d
.Thefollowing Matlab dialogue
shows determines the step response for a system with K
v
=8:24.
EDU>xp(29)
ans =
6.40858798800484
4
EDU>kv(29)
ans =
8.24248135292352
EDU>wn = xp(29)/sqrt(1-zeta^2)
wn =
7.40000000000000
EDU>a(29)
ans =
1.96569850494106
EDU>k(29)
ans =
50.31787732780915
EDU>g = zpk([-1.966],[0 -2 -6],50.32)
Zero/pole/gain:
50.32 (s+1.966)
---------------
s (s+2) (s+6)
EDU>h=1
h=
1
EDU>tc = feedback(g,h)
Zero/pole/gain:
5
Time (sec.)
Amplitude
Step Response
0 0.5 1 1.5 2 2.5 3
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Figure 4: Step Response of Compensated System
50.32 (s+1.966)
------------------------------
(s+1.96) (s^2 + 6.04s + 50.48)
EDU>step(tc,3)
EDU>print -deps pi8step.eps
EDU>
Then the compensator is
G
c
(s)=
50:32(s+1:966)
s
;;
The step response is shown in Figure 4.
6