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

📄 st.m

📁 xnsy算法的matlab实现
💻 M
字号:
function [t,s,q]=stbd(k)
%G(s)=Wn^2/s^2+2*k*Wn*s+Wn^2;
Wn=1;
t=0:0.01:15;
ng=Wn^2;
dg=[1,2*k*Wn,Wn^2];
y=step(ng,dg,t);

[mp,m]=max(y);               %mp--峰值
yss=y(length(t));           %yss--终值
tp=t(m);
if k<=0.25,pos=0;
else
   pos=100*(mp-yss)/yss;    %pos--超调量
end
 %tr--上升时间
 %(响应从其稳态值的10%上升到90%所需时间)
if k<=0.25, tr=0;
elseif k>=0 
 i=1;j=1;
 while y(i)<0.1;
   i=i+1;
 end;
 t1=t(i);
 while y(j)<0.9;
   j=j+1;
 end;
 t2=t(j);
 tr=t2-t1;
else 
 i=1;
 while abs(y(i)-1)>=0.01
 i=i+1;
 end
 tr=t(i);
end
q(1)=tr;

 %tp--峰值时间
if k<=0.25,tp=0;
else
for m=1:1:length(t)
 if y(m)==mp, break; end 
end
tp=t(m);
end
q(2)=tp;
 %ts--调节时间 
 %(响应达到并停留有稳值的+(-)3%误差范围内所需最小时间)  
if k<=0.25,ts=0;
else
for m=length(t):-1:1 
if abs((y(m)-yss)/yss)>=0.03,  break;end
end
ts=t(m);
end
q(3)=ts;
q(4)=pos;
s=y;

⌨️ 快捷键说明

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