solution 9.10.1.18 The rst step is to put the transfer function in time constant form. So we have G(s) = 100(s 2 +2s +37) s(s +10)(s+400) = (100)(37)[(s= p 37) 2 +(2=37)s+1] (10)(400)s(1+ s=10)(1+ s=400) = 0:925[(s= p 36) 2 +(2=37)s+1] s(1 + s=10)(1+ s=400) : Then the terms to be plotted are 0:925 ;; 1 s ;; 1 1+s=10 ;; 1 1+s=400 and s= p 37) 2 +(2=37)s+1: 20log 10 (0:925) = ;0:6772 dB Atlowfrequencies the only terms that contribute are the gain and 1=s. The term 1=s, whichisastraightline crossing the 0-dB line at ! =1,with slope ;20 dB/dec. When the gain is added in, it will cross ! =1rad/s at -0.6772 dB, since the gain, in dB, is -0.6772. The quadratic term is a straight line out to the vicinityofthe natural frequency ! n ,and a straight line for frequencies muchlargerthan! n .Ifwemodel the complex zeros as adouble zero wegettheaymptotic 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*6 z2 = 1 + j*6 p1 = 0 p2 = 10 p3 = 400 K=100 mag = 20.*log10( abs( ( K*(s + z1).*(s + z2) ) ./( ( s + p1).*(s+p2).*(s+p3)) ));; semilogx(w,mag);; 1 10 -1 10 0 10 1 10 2 10 3 -100 -80 -60 -40 -20 0 20 40 60 Figure 1: Accurate and asymptotic Bode magnitude plots grid on axis([0.1 1000 -40 20]) print -deps 910118a.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 + 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 40]) print -deps 910118b.eps zeta = cos(atan(10/1)) 2 10 -1 10 0 10 1 10 2 10 3 -100 -80 -60 -40 -20 0 20 40 Figure 2: Accurate and approximate Bode phase plots 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 = 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 910118a.eps pause w1 = logspace(-2,3,20);; s1 = j*w1;; 3 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 910118b.eps zeta = cos(atan(6/1)) 4