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

📄 stepr.m

📁 基于MATLAB的辅助设计 简述了矩阵分析的重要性
💻 M
字号:
%
% STEPR   is the M-file used for plotting the step response
%         curve(s) of the given system(s).

%    Author:  Ole Barup Sorensen, Rapid Data Ltd 

%    Copyright (c) 1989-94 by Rapid Data Ltd
%    Revision 10:08  07/02/94

okflag=figflag(tit1,0);

if okflag==0
  Fig18=figure('Numbertitle','off','Name',tit1,'Menubar','none',...
  'Units','normal','Position',[110/Scx 10/Scy 440/Scx 350/Scy]);
  set(0,'currentfig',Fig18);

% design menu
  pt_menu
  uimenu(Han_fil,'Label','Close','Sep','on','Callback',...
  'close(Fig18);clear Fig18');
end

delete(gca);	

tbeg = 0;
tgain = tend/150;
t_range = tbeg : tgain : tend;
config

clear tbeg tgain 
mmm = step(num,den,t_range);
aa = roots(den);  ii = find(aa>=0); ii=size(ii);
if ii == 0,
   [nr,nc] = size(den);
   t1 = num(nc)/den(nc);
else
   t1 = 0;
end
ref = t1 * ones(size(mmm)); ref0 = ref;
if id > 9
   ddd = step(numx,denx,t_range);
   aa = roots(denx);  ii = find(aa>=0); ii=size(ii);
   if ii == 0,
      [nr,nc] = size(denx);
      t1 = numx(nc)/denx(nc);
   else
      t1 = 0;
   end
   refx = t1 * ones(size(ddd)); ref0 = [ref0 refx];
end

if t_delay ~= 0
   n0 = size(t_range);
   ii = find(t_range + eps >= t_delay); 
   mmm = [zeros(ii(1)-1,1);mmm(1:n0(2)-ii(1)+1)];
   if id > 9
      ddd = [zeros(ii(1)-1,1);ddd(1:n0(2)-ii(1)+1)];
   end
   clear ii;
end

mmm0 = mmm;
if id > 9, mmm0 = [mmm0 ddd]; end

plot(t_range,mmm0,t_range,ref0,'-');
if id <= 9
   title('Step Response')
else
   title('Step Response - Yellow: Compensated')
end
grid
xlabel('Time'), ylabel('Magnitude')

% find the step response performances, such as
% percent overshot, rising time, etc.
T1_str=' ';ov_str=' ';pt_str=' ';rt_str=' ';
st_str=' ';st_str=' ';DCg_str=' ';

T1_str1=' ';ov_str1=' ';pt_str1=' ';rt_str1=' ';
st_str1=' ';st_str1=' ';DCg_str1=' ';
rrt=roots(den);
if rrt<0,
 if ptype == 1,
  if (id <= 9),
    T1_str='The system performance parameters is:';
  else
    T1_str='The compensated system performance is:';
  end

  [ov_str,rt_str,st_str,pt_str]=timrsp(t_range,mmm,ref);

  mv = t_delay;
  t_delay = 0;
  config;
  t_delay = mv;
  clc
  mv1 = dcgain(num,den);
  DCg = abs(ref(1)-mv1);

  DCg_str=['Steady state error: ',num2str(DCg)];

  clear ref mv mv1 DCg

  if (id > 9),
    T1_str1='The uncompensated system performance is:';
    [ov_str1,rt_str1,st_str1,pt_str1]=timrsp(t_range,ddd,refx);

    mv = t_delay;
    t_delay = 0;
    config;
    t_delay = mv;
    mv1 = dcgain(numx,denx);
    DCg = abs(refx(1)-mv1);

    DCg_str1=['Steady state error: ',num2str(DCg)];
  
    clear ovshot refx
  end
 end
else
  T1_str='The system is unstable!!';
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -