Solution 10.8.9.7c
The MATLAB program
w=logspace(-2,3,200);;
s=j*w;;
K =138
z1 = 3.26
p1 = 0
p2 = 1
p3 = 30
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 10897c.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 10897csr.eps
Draws the plot shown in Figure 1.
As can be seen the log magnitude plot passes just outside the 2 dB circle.
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
If weestimate 1.8 dB, then Then
10
1:8=20
=1:2303:
Based on this calculation wewould expect the maximum overshoot to be
about 23%. The step response is shown in Figure 2. The actual overshoot
is about 18% so the Nichols chart gives a conservative estimate in this case.
5
0 0.5 1 1.5 2 2.5 3 3.5 4
0
0.2
0.4
0.6
0.8
1
1.2
Figure 2: Step response
6