solution 9.10.1.5
The rst step is to put the transfer function in time constant form. So we
have
G(s) =
800(s+5)
s(s +20)
2
=
(800)(5)(1+ s=5)
(20)(20)s(1+ s=20)
2
=
10(1+ s=5)
s(1 + s=20)
2
:
Then the terms to be plotted are
10 ;;
1
s
;; 1+s=5 ;;and [
1
1+s=20
]
2
20log
10
(10) = 20 db
Atlowfrequencies 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 the vertical line through ! =1rad/s at 20 dB.
The other terms are straightlines. 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=5
p1 = 0
p2 = 20
p3 = 20
K=800
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 -60 40])
print -deps 91015a.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
-60
-50
-40
-30
-20
-10
0
10
20
30
40
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 -200 -60])
print -deps 91015b.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=5
p1 = 0
p2 = 20
p3 = 20
K=800
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 -60 40])
2
10
-1
10
0
10
1
10
2
10
3
-200
-180
-160
-140
-120
-100
-80
-60
Figure 2: Accurate and approximate Bode phase plots
print -deps 91015a.eps
pause
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 -200 -60])
print -deps 91015b.eps
3