solution 9.10.1.9
The rst step is to put the transfer function in time constant form. So we
have
G(s) =
10(s+5)
s(s +0:01)(s+50)
=
50(1+ s=5)
(0:01)(50)s(1+ s=0:01)(1+ s=50)
=
100(1+ s=5)
s(1 + s=0:01)(1+ s=50)
:
Then the terms to be plotted are
100 ;;
1
s
;;
1
1+s=5
;;
1
1+s=50
and 1+s:
20log
10
(100) = 40 db
Asumptotically,all the terms are 0 db except the gain and 1=s at frequencies
below ! =0:01 rad/s. The term 1=s,whichisastraight line crossing the
0-dB line at ! =1,will, when the gain is added in, cross ! =1rad/s
at 40 dB, establishing the low frequency asymptote. 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(-3,3,200);;
s=j*w;;
z=5
p1 = 0
p2 = 0.01
p3 = 50
K=10
mag = 20*log10(abs( (K.*(s + z) )./( ( s + p1) .* (s + p2).*(s + p3)) ) );;
semilogx(w,mag);;
grid on
axis([0.001 1000 -100 100])
print -deps 91019a.eps
The phase plot, shown in Figure 2, is generated with the MATLAB
statements
w1 = logspace(-3,3,40);;
s1 = j*w1;;
1
10
-3
10
-2
10
-1
10
0
10
1
10
2
10
3
-100
-80
-60
-40
-20
0
20
40
60
80
100
Figure 1: Accurate and asymptotic Bode magnitude plots
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.001 1000 -180 -90])
print -deps 91019b.eps
Note that fortypoints spread over six decades will giveafairly accurate
phase plot. The complete MATLAB program to drawbothplots is
w=logspace(-3,3,200);;
s=j*w;;
z=5
p1 = 0
p2 = 0.01
p3 = 50
K=10
mag = 20*log10(abs( (K.*(s + z) )./( ( s + p1) .* (s + p2).*(s + p3)) ) );;
semilogx(w,mag);;
grid on
axis([0.001 1000 -100 100])
2
10
-3
10
-2
10
-1
10
0
10
1
10
2
10
3
-180
-170
-160
-150
-140
-130
-120
-110
-100
-90
Figure 2: Accurate and approximate Bode phase plots
print -deps 91019a.eps
pause
w1 = logspace(-3,3,40);;
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.001 1000 -180 -90])
print -deps 91019b.eps
normalsize
3