Solution 6.8.1.18
The MATLAB dialogue
EDU>g = zpk([-1],[0 -4 -30],10)
Zero/pole/gain:
10 (s+1)
--------------
s(s+4) (s+30)
EDU>rlocus(g)
EDU>print -deps rl68118.eps
EDU>
draws and saves the root locus shown in Figure 1. Then the MATLAB
-30 -25 -20 -15 -10 -5 0 5
-10
-8
-6
-4
-2
0
2
4
6
8
10
Real Axis
I
mag
A
x
i
s
Figure 1: Root locus
program
z=1
p1 =0
p2 = 4
1
-16.7 -16.68 -16.66 -16.64 -16.62 -16.6 -16.58 -16.56 -16.54 -16.52 -16.5
-180.4
-180.3
-180.2
-180.1
-180
-179.9
-179.8
-179.7
-179.6
-179.5
-179.4
Figure 2: Angle versus real part of s
p3 = 30
omegad = 10
x=linspace(-16.7,-16.5,400);;
s=x+j*omegad;;
ang = (angle(s + z)- angle(s + p1)-angle(s+p2)-angle(s+p3))*180/pi;;
plot(x,ang)
print -deps 68118a.eps
creates the plot shown in Figure 2. Then s = ;16:6268 + j10. Indeed, at
s = ;16:6268+ j10 the net angle is 180:00
.
Then the gain to place closed loop poles at s = ;16:6268+ j10 is
K =
jsjjs +1js +30j
js +1j
s=;16:6268+j10
=281:2841:
The natural frequency of the closed loop poles is
!
n
=
p
16:6268
2
+10
2
=19:4023:
The MATLAB program
z=1
p1 =0
2
p2 = 4
p3 = 30
omegad = 10
x=linspace(-16.7,-16.5,400);;
s=x+j*omegad;;
ang = (angle(s + z)- angle(s + p1)-angle(s+p2)-angle(s+p3))*180/pi;;
plot(x,ang)
print -deps 68118a.eps
pause
s=x(147) + j*omegad
K=(abs(s + p1)*abs(s+p2)*abs(s+p3))/abs(s+z)
omegan = abs(s)
tn2 = zpk([],[s conj(s)],omegan^2)
g=zpk([-z],[-p1 -p2 -p3],K)
tc = feedback(g,1)
T=linspace(0,5,100);;
[Yn2,T] = step(tn2,T);;
[Ytc,T] = step(tc,T);;
plot(T,Yn2,'k-',T,Ytc,'k--')
print -deps sr68118.eps
Prints and plots the step responses of T
c
(t) and T
N2
(t) shown in Figure 3
3
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Figure 3: Comparison of step responses of T
c
and T
N2
for =0:4
4