solution 9.10.1.17 The rst step is to put the transfer function in time constant form. So we have G(s) = 100(s 2 +2s +26) s(s +20)(s+50) = (100)(26)[(s= p 26) 2 +(1=13)s+1] (20)(50)s(1+ s=20)(1+ s=50) = 2:6[(s= p 26) 2 +(1=13)s+1] s(1 + s=20)(1+ s=50) : Then the terms to be plotted are 2:6 ;; 1 s ;; 1 1+s=20 ;; 1 1+s=50 and s= p 26) 2 +(1=13)s+1: 20log 10 (2:6) = 8:3dB Atlowfrequencies the only terms that contribute are the gain and 1=s. The term 1=s, whichisastraightline crossing the 0-dB line at ! =1,withslope ;20 dB/dec. When the gain is added in, it will cross ! =1rad/s at 8.3 dB, since the gain, in dB, is 8.3. The quadratic term is a straight line out to the vicinityofthe natural frequency ! n ,and a straightline for frequencies much larger than ! n .Ifwemodelthe complex zeros as a double zero we get the aymptotic plot shown in Figure 1. This is not very accurate because the complex zeros bend the magnitude plot down. The accurate magnitude plot, also shown in Figure 1, was generated with the MATLAB statements w=logspace(-2,3,200);; s=j*w;; z1 = 1 -j*5 z2 = 1 + j*5 p1 = 0 p2 = 20 p3 = 50 K=100 mag = 20.*log10( ( K*abs(s + z1).*abs(z + z2) ) ./( abs( s + p1) .* abs(s + p2).*abs(s + p3) ) );; semilogx(w,mag);; grid on axis([0.1 1000 -40 40]) print -deps 910117a.eps 1 10 -1 10 0 10 1 10 2 10 3 -40 -30 -20 -10 0 10 20 30 40 Figure 1: Accurate and asymptotic Bode magnitude plots The phase plot, shown in Figure 2, is generated with the MATLAB statements w1 = logspace(-2,3,20);; s1 = j*w1;; phase = (angle(s + z1)+ angle(s + z2)- angle(s + p1) -angle(s + p2) - angle(s + p3) )*180/pi;; phase1 =(angle(s1 + z1)+angle(s1 + z2) - angle(s1 + p1) -angle(s1 + p2) - angle(s1 + p3))*180/pi;; semilogx(w,phase,'k-',w1,phase1,'rd');; grid on axis([0.1 1000 -100 100]) print -deps 910117b.eps zeta = cos(atan(10/1)) Note that twentypoint spread over vedecades will giveafairly accurate phase plot. The complete MATLAB program to drawbothplots is w=logspace(-2,3,200);; 2 10 -1 10 0 10 1 10 2 10 3 -100 -80 -60 -40 -20 0 20 40 60 80 100 Figure 2: Accurate and approximate Bode phase plots s=j*w;; z1 = 1 -j*5 z2 = 1 + j*5 p1 = 0 p2 = 20 p3 = 50 K=100 mag = 20.*log10( ( K*abs(s + z1).*abs(z + z2) ) ./( abs( s + p1) .* abs(s + p2).*abs(s + p3) ) );; semilogx(w,mag);; grid on axis([0.1 1000 -40 40]) print -deps 910117a.eps pause w1 = logspace(-2,3,20);; s1 = j*w1;; phase = (angle(s + z1)+ angle(s + z2)- angle(s + p1) -angle(s + p2) - angle(s + p3) )*180/pi;; phase1 =(angle(s1 + z1)+angle(s1 + z2) - angle(s1 + p1) -angle(s1 + p2) - angle(s1 + p3))*180/pi;; semilogx(w,phase,'k-',w1,phase1,'rd');; 3 grid on axis([0.1 1000 -100 100]) print -deps 910117b.eps zeta = cos(atan(10/1)) 4