solution 9.10.1.2
The rst step is to put the transfer function in time constant form. So we
have
G(s) =
1000(s+1)
s(s +30)(s+100)
=
1000(s+1)
(30)(100)s(1+ s=30)(1+ s=100)
=
0:33(1+ s=1)
s(1 + s=30)(1+ s=100)
:
Then the terms to be plotted are
0:33 ;;
1
s
;;
1
1+s=10
;;
1
1+s=50
and 1+s:
log
10
(0:33) = ;9:54 db
Atlow frequencies the only terms that contribute are the gain and 1=s.
The term 1=s, whichisastraight line crossing the 0-dB line at ! =1,
will, when the gain is added in, cross at -9.54 dB. The other terms are
straight lines. The asymptotic magnitude plot is shown in Figure 1 along
with the accurate plot. The accurate magnitude plot was generated with
the MATLAB statements
w=logspace(-2,3,200);;
s=j*w;;
z=1
p1 = 0
p2 = 30
p3 = 100
K=1000
mag = 20.*log10( ( K*abs(s + z) )./( abs( s + p1) .* abs(s + p2).*abs(s + p3) ) );;
semilogx(w,mag);;
grid on
axis([0.1 1000 -100 20])
print -deps 91012a.eps
The phase plot, shown in Figure 2, is generated with the MATLAB
statements
w1 = logspace(-2,3,20);;
s1 = j*w1;;
phase = ( angle(s + z)- angle(s + p1)-angle(s + p2) - angle(s + p3))*180/pi;;
1
10
-1
10
0
10
1
10
2
10
3
-100
-80
-60
-40
-20
0
20
Figure 1: Accurate and asymptotic Bode magnitude plots
phase1 =( angle(s1 + z)- angle(s1 + p1)-angle(s1 + p2) - angle(s1 + p3))*180/pi;;
semilogx(w,phase,'k-',w1,phase1,'rd');;
grid on
axis([0.1 1000 -180 0])
print -deps 91012b.eps
Note that twentypoint spread over vedecades will giveafairly accurate
phase plot. The complete MATLAB program to drawbothplots is
w=logspace(-2,3,200);;
s=j*w;;
z=1
p1 = 0
p2 = 30
p3 = 100
K=1000
mag = 20.*log10( ( K*abs(s + z) )./( abs( s + p1) .* abs(s + p2).*abs(s + p3) ) );;
semilogx(w,mag);;
grid on
axis([0.1 1000 -100 20])
print -deps 91012a.eps
2
10
-1
10
0
10
1
10
2
10
3
-180
-160
-140
-120
-100
-80
-60
-40
-20
0
Figure 2: Accurate and approximate Bode phase plots
w1 = logspace(-2,3,20);;
s1 = j*w1;;
phase = ( angle(s + z)- angle(s + p1)-angle(s + p2) - angle(s + p3))*180/pi;;
phase1 =( angle(s1 + z)- angle(s1 + p1)-angle(s1 + p2) - angle(s1 + p3))*180/pi;;
semilogx(w,phase,'k-',w1,phase1,'rd');;
grid on
axis([0.1 1000 -180 0])
print -deps 91012b.eps
3