% ***** MATLAB Code Starts Here %
%NYQUIST_03_MAT
%
fig_size = [232 84 774 624];
K = [20 40 80];
% system numeratorsden = [1 6 11 6];
% system denominator%
w = logspace(-3,2,501);
[GM(1),PM(1),wphi(1),wx(1)] = margin(K(1),den);
% stability margins%
[re1,im1] = nyquist(K(1),den,w);
% frequency responses[re2,im2] = nyquist(K(2),den,w);
[re3,im3] = nyquist(K(3),den,w);
%
[xx,yy] = circle;
% unit circle%
figure(1),clf,plot(re1,im1,
'b',xx,yy,'k',[-1/GM(1) -1/GM(1)],[-0.05 0.05],'r',[0 -2],[0 -2*tan(PM(1)*pi/180)],'m'),...axis(
'square'),axis([-2 0 -1 1]),plotax,xlabel('Real Axis'),...ylabel(
'Imag Axis'),title('Definitions of Gain and Phase Margin'),...text(-.8,.5,
'unit circle'),text(-1/GM(1)-0.1,0.1,'1/GM'),text(-1.1,-0.5,'PM'),set(gcf,'Position',fig_size)%
figure(2),clf,plot(re1,im1,
'b',re1,-im1,'r--',xx,yy,'k'),axis('square'),axis([-2 4 -3 3]),xlabel('Real Axis'),...ylabel(
'Imag Axis'),title('G(s) = 20 / [(s+1)(s+2)(s+3)]'),plotax,set(gcf,'Position',fig_size)%
figure(3),clf,plot(re2,im2,
'b',re2,-im2,'r--',xx,yy,'k'),axis('square'),axis([-3 7 -5 5]),xlabel('Real Axis'),...ylabel(
'Imag Axis'),title('G(s) = 40 / [(s+1)(s+2)(s+3)]'),plotax,set(gcf,'Position',fig_size)%
figure(4),clf,plot(re3,im3,
'b',re3,-im3,'r--',xx,yy,'k'),axis('square'),axis([-5 15 -10 10]),xlabel('Real Axis'),...ylabel(
'Imag Axis'),title('G(s) = 80 / [(s+1)(s+2)(s+3)]'),plotax,set(gcf,'Position',fig_size)%
figure(5),clf,plot(re1,im1,re2,im2,re3,im3,xx,yy,
'k'),plotax,...axis(
'square'),axis([-2 0 -1 1]),xlabel('Real Axis'),...ylabel(
'Imag Axis'),title('Comparison of Nyquist Plots'),set(gcf,'Position',fig_size)%
text(-.65,-.5,
'K = 20'),...text(-1.25,-.8,
'K = 40'),...text(-1.75,-.35,
'K = 80'),...text(-.8,.5,
'unit circle')%
% % ***** MATLAB Code Stops Here
Click the
icon to return to the Dr. Beale's home page