📄 nyqst.m
字号:
%
% NYQST NYQST is the M-file which is used to plot the required
% Nyquist Plots for the given system or systems.
% Author: Ole Barup Sorensen, Rapid Data Ltd
% Copyright (c) 1989-94 by Rapid Data Ltd
% Revision 10:31 07/02/94
okflag=figflag(tit1,0);
if okflag==0,
Fig12=figure('Numbertitle','off','Name',tit1,'Menubar','none',...
'Units','normal','Position',[150/Scx 50/Scy 440/Scx 350/Scy]);
set(0,'currentfig',Fig12);
% design menu
pt_menu
uimenu(Han_fil,'Label','Close','Sep','on','Callback',...
'close(Fig12);clear Fig12');
end
w_range=logspace(w_start,w_end,pt);
delete(gca);
config;
if t_delay == 0
[mmm,ddd] = nyquist(num,den,w_range);
if ip ~= 1
[m2,p2] = bode(num,den,w_range);
end
else
if cloop == 1
n0 = size(H_den);
if n0(2) == 1,
cmpc = num(1)/den(1)*ones(size(w_range'));
else
[mmm,ddd] = nyquist(H_num,H_den,w_range);
cmpc = mmm + sqrt(-1) * ddd;
end
end
[mmm,ddd] = timdly(cloop,num,den,w_range,t_delay,cmpc);
ddd = ddd * pi / 180;
if ip ~= 1, p2 = ddd; end
m2 = mmm; mmm = m2 .* cos(ddd); ddd = m2 .* sin(ddd);
end
if ip ~= 1,
md1 = 2/pi * atan(m2).* cos(p2*pi/180);
pd1 = 2/pi * atan(m2).* sin(p2*pi/180);
end
if id > 9
if t_delay == 0
[mmmx,dddx] = nyquist(numx,denx,w_range);
if ip ~= 1
[m2,p2] = bode(numx,denx,w_range);
end
else
[mmmx,dddx] = timdly(cloop,numx,denx,w_range,t_delay,cmpc);
dddx=dddx * pi / 180;
if ip ~= 1, p2 = dddx; end
m2 = mmmx; mmmx = m2 .* cos(dddx); dddx = m2 .* sin(dddx);
end
mmm = [mmm mmmx]; ddd = [ddd dddx];
clear mmmx dddx
if ip ~= 1
md2 = 2/pi * atan(m2).* cos(p2*pi/180);
pd2 = 2/pi * atan(m2).* sin(p2*pi/180);
md1 = [md1 md2]; pd1 = [pd1 pd2];
clear md2 pd2
end
end
if ip == 3, subplot(121); end
if ip ~= 2,
plot(mmm,ddd);
if id <= 9
title('Nyquist Plot')
else
title('Nyquist Plot - Yellow: Compensated')
end
grid; xlabel('Real Axis'), ylabel('Imaginary Axis')
end
if ip == 3, subplot(122); end
if ip ~= 1,
tt = 0:pi/50:2*pi; xx = 0.5*sin(tt(:)); yy = 0.5*cos(tt(:));
plot(md1,pd1,xx,yy); clear xx yy tt
if id <= 9
title('ATAN Nyquist Plot')
else
title('ATAN Nyquist Plot - Yellow: Compensated')
end
grid; xlabel('Real Axis'), ylabel('Imaginary Axis')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -