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