⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nyqst.m

📁 基于MATLAB的辅助设计 简述了矩阵分析的重要性
💻 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 + -