solution 9.10.1.17
The rst step is to put the transfer function in time constant form. So we
have
G(s) =
100(s
2
+2s +26)
s(s +20)(s+50)
=
(100)(26)[(s=
p
26)
2
+(1=13)s+1]
(20)(50)s(1+ s=20)(1+ s=50)
=
2:6[(s=
p
26)
2
+(1=13)s+1]
s(1 + s=20)(1+ s=50)
:
Then the terms to be plotted are
2:6 ;;
1
s
;;
1
1+s=20
;;
1
1+s=50
and s=
p
26)
2
+(1=13)s+1:
20log
10
(2:6) = 8:3dB
Atlowfrequencies the only terms that contribute are the gain and 1=s. The
term 1=s, whichisastraightline crossing the 0-dB line at ! =1,withslope
;20 dB/dec. When the gain is added in, it will cross ! =1rad/s at 8.3 dB,
since the gain, in dB, is 8.3. The quadratic term is a straight line out to
the vicinityofthe natural frequency !
n
,and a straightline for frequencies
much larger than !
n
.Ifwemodelthe complex zeros as a double zero we
get the aymptotic plot shown in Figure 1. This is not very accurate because
the complex zeros bend the magnitude plot down. The accurate magnitude
plot, also shown in Figure 1, was generated with the MATLAB statements
w=logspace(-2,3,200);;
s=j*w;;
z1 = 1 -j*5
z2 = 1 + j*5
p1 = 0
p2 = 20
p3 = 50
K=100
mag = 20.*log10( ( K*abs(s + z1).*abs(z + z2) )
./( abs( s + p1) .* abs(s + p2).*abs(s + p3) ) );;
semilogx(w,mag);;
grid on
axis([0.1 1000 -40 40])
print -deps 910117a.eps
1
10
-1
10
0
10
1
10
2
10
3
-40
-30
-20
-10
0
10
20
30
40
Figure 1: Accurate and asymptotic Bode magnitude plots
The phase plot, shown in Figure 2, is generated with the MATLAB
statements
w1 = logspace(-2,3,20);;
s1 = j*w1;;
phase = (angle(s + z1)+ angle(s + z2)- angle(s + p1)
-angle(s + p2) - angle(s + p3) )*180/pi;;
phase1 =(angle(s1 + z1)+angle(s1 + z2) - angle(s1 + p1)
-angle(s1 + p2) - angle(s1 + p3))*180/pi;;
semilogx(w,phase,'k-',w1,phase1,'rd');;
grid on
axis([0.1 1000 -100 100])
print -deps 910117b.eps
zeta = cos(atan(10/1))
Note that twentypoint spread over vedecades will giveafairly accurate
phase plot. The complete MATLAB program to drawbothplots is
w=logspace(-2,3,200);;
2
10
-1
10
0
10
1
10
2
10
3
-100
-80
-60
-40
-20
0
20
40
60
80
100
Figure 2: Accurate and approximate Bode phase plots
s=j*w;;
z1 = 1 -j*5
z2 = 1 + j*5
p1 = 0
p2 = 20
p3 = 50
K=100
mag = 20.*log10( ( K*abs(s + z1).*abs(z + z2) )
./( abs( s + p1) .* abs(s + p2).*abs(s + p3) ) );;
semilogx(w,mag);;
grid on
axis([0.1 1000 -40 40])
print -deps 910117a.eps
pause
w1 = logspace(-2,3,20);;
s1 = j*w1;;
phase = (angle(s + z1)+ angle(s + z2)- angle(s + p1)
-angle(s + p2) - angle(s + p3) )*180/pi;;
phase1 =(angle(s1 + z1)+angle(s1 + z2) - angle(s1 + p1)
-angle(s1 + p2) - angle(s1 + p3))*180/pi;;
semilogx(w,phase,'k-',w1,phase1,'rd');;
3
grid on
axis([0.1 1000 -100 100])
print -deps 910117b.eps
zeta = cos(atan(10/1))
4