Solution 10.8.9.7d
The MATLAB program
w=logspace(-2,3,200);;
s=j*w;;
K =13.2
z1 = 0.1
p1 = 0
p2 = 1
p3 = 5
mag = 20*log10( abs((K.*( +z1))./((s+p1).*(s+p2).*(s+p3))));;
phase=(angle(s+z1)-angle(s+p1)-angle(s+p2)-angle(s+p3))*180/pi;;
%
% 0.5 dB
%
M=10^(0.5/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[gamma'];;
R=[rho'];;
%
% 1dB
%
M=10^(1/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
1
G=[G gamma'];;
R=[R rho'];;
M=1.0593;;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
%
% 2dB
%
M=10^(2/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
%
% 3dB
%
M=10^(3/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
2
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
%
% 4dB
%
M=10^(4/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
%
% 6dB
%
M=10^(6/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
%
% 9dB
%
M=10^(9/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
3
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
%
% 12 dB
%
M=10^(12/20);;
c=-M^2/(M^2 - 1);;
r =abs(M/(M^2-1));;
theta = linspace(0.00001,2*pi,360);;
x=c+r*cos(theta);;
y=r*sin(theta);;
s=x+j*y;;
gamma = angle(s)*180/pi;;
b=zeros(1,360);;
c=gamma > b;;
gamma = gamma -360*c;;
rho = 20*log10(abs(s));;
G=[G gamma'];;
R=[R rho'];;
plot(phase,mag,'k-',G,R,'k--')
grid on
axis([-360 0 -10 30])
print -deps 10897d.eps
gcgp = zpk([-z1],[-p1 -p2 -p3],K)
tc = feedback(gcgp,1)
t=linspace(0,4,800);;
[yhat,t] = step(tc,t);;
plot(t,yhat)
grid on
axis([0,4,0,1.4])
print -deps 10897dsr.eps
Draws the plot shown in Figure 1.
As can be seen the log magnitude plot passes well outside the 0.5 dB
4
-350 -300 -250 -200 -150 -100 -50 0
-10
-5
0
5
10
15
20
25
30
0.5 dB
1 dB
2 dB
3 dB
4 dB
6 dB
9 dB
12 dB
Figure 1: Nichols plot
circle. If we estimate 0.1 dB, then Then
10
0:1=20
=1:0116:
Based on this calculation wewould expect the maximum overshoot to be
about 1%. As weknowfrom the example, the system has no overshoot.
5