Solution 9.10.2.1
The MATLAB program
load bodeid1
topm = size(bodeid1)
top = topm(1,1)
w=bodeid1(1:top,1);;
mag = bodeid1(1:top,2);;
phase = bodeid1(1:top,3);;
semilogx(w,mag);;
grid on
print -deps 91021mag.eps
p1 = 1
p2 = 10
p3 = 10
wp = logspace(-2,3,20);;
jw = j*wp;;
K=200;;
p1 = 1;;
p2 = 10;;
p3 = 10;;
mag1 = 20*log10( (K )./ (abs(jw +p1).* abs(jw + p2).*abs(jw+p3) ) );;
semilogx(w,mag,'k-',wp,mag1,'kd')
grid on
print -deps 91021mag1.eps
phase1 = ( -angle(jw +p1) -angle(jw + p2) - angle(jw+p3) )*180/pi;;
semilogx(w,phase,'k-',wp,phase1,'kd')
grid on
print -deps 91021phase.eps
K=10^(6/20)
can be used to load and plot the data. You will havetoedit this data
le. You only wantthe rst 138 lines. There is some other data mistakenly
appended. That should be deleted.
Figure 1 shows the magnitude data with the asymptotes added. The
transfer function is then
G(s)=
K
(1+ s=1)(1+s=10)
2
:
K =10
6=20
=2
1
10
-2
10
-1
10
0
10
1
10
2
10
3
-140
-120
-100
-80
-60
-40
-20
0
20
Figure 1: ABode magnitude plot
2
10
-2
10
-1
10
0
10
1
10
2
10
3
-140
-120
-100
-80
-60
-40
-20
0
20
Figure 2: Comparison of actual and derived Bode magnitude plots
Then
G(s) =
K
(1 +s=1)(1+s=10)
2
=
100K
(s+1)(s+10)
2
=
200
(s+1)(s+10)
2
Wecheckthe accuracy of the model bycomparing the actual magnitude and
phase to the phase of the derived transfer function, as shown in Figures 2
and 3
3
10
-2
10
-1
10
0
10
1
10
2
10
3
-300
-250
-200
-150
-100
-50
0
Figure 3: Comparison of actual and derived Bode phase plots
4