solution 9.10.1.19
The rst step is to put the transfer function in time constant form. So we
have
G(s) =
100(s+10)
s(s +50)(s+100)
=
1000(1+ s=10)
(50)(100)s(1+ s=50)(1+ s=100)
=
0:2(1+ s=10)
s(1 + s=50)(1+ s=100)
:
Then the terms to be plotted are
0:2 ;;
1
s
;;
1
1+s=50
;;
1
1+s=100
and 1+s=10:
log
10
(0:2) = ;13:98 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 -13.98
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;;
z1 = 10
p1 = 0
p2 = 0
p3 = 50
p4 = 100
K=100
mag = 20.*log10( abs( ( K*(s + z1) )
./( ( s + p1) .*(s + p2).*(s + p3).*(s + p4) ) ) );;
semilogx(w,mag);;
grid on
axis([0.1 1000 -120 0])
print -deps 910118a.eps
The phase plot, shown in Figure 2, is generated with the MATLAB
statements
1
10
-1
10
0
10
1
10
2
10
3
-120
-100
-80
-60
-40
-20
0
Figure 1: Accurate and asymptotic Bode magnitude plots
w1 = logspace(-2,3,20);;
s1 = j*w1;;
phase = (angle(s + z1)- angle(s + p1)-angle(s + p2)
-angle(s + p3)-angle(s + p4) )*180/pi;;
phase1 =(angle(s1 + z1) - angle(s1 + p1)-angle(s1 + p2)
-angle(s1 + p3)-angle(s1 + p4) )*180/pi;;
semilogx(w,phase,'k-',w1,phase1,'rd');;
grid on
axis([0.1 1000 -280 -140])
print -deps 910118b.eps
20*log10(0.2)
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;;
z1 = 10
p1 = 0
2
10
-1
10
0
10
1
10
2
10
3
-280
-260
-240
-220
-200
-180
-160
-140
Figure 2: Accurate and approximate Bode phase plots
p2 = 0
p3 = 50
p4 = 100
K=100
mag = 20.*log10( abs( ( K*(s + z1) ) ./( ( s + p1)
.*(s + p2).*(s + p3).*(s + p4) ) ) );;
semilogx(w,mag);;
grid on
axis([0.1 1000 -120 0])
print -deps 910119a.eps
pause
w1 = logspace(-2,3,20);;
s1 = j*w1;;
phase = (angle(s + z1)- angle(s + p1)-angle(s + p2)
- angle(s + p3)-angle(s + p4) )*180/pi;;
phase1 =(angle(s1 + z1) - angle(s1 + p1)-angle(s1 + p2)
-angle(s1 + p3)-angle(s1 + p4) )*180/pi;;
semilogx(w,phase,'k-',w1,phase1,'rd');;
grid on
3
axis([0.1 1000 -280 -140])
print -deps 910119b.eps
20*log10(0.2)
4