Nyquist Example #3

MATLAB Code




%         ***** MATLAB Code Starts Here
%

%NYQUIST_03_MAT

%

fig_size = [232 84 774 624];

K = [20 40 80]; % system numerators

den = [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