ste.m
来自「一个控制系统的PID参数寻优的单纯形法的MATLAB的程序」· M 代码 · 共 57 行
M
57 行
function [sigma,e,tr,tp,ts]=ste(y,t)
[mp,tf]=max(y);
cs=length(t);
yss=y(cs);
sigma=(mp-yss)/yss; %计算超调量
k=1; %计算误差函数
for k=1:cs
e(k)=y(k)-yss;
end
tp=t(tf); %峰值时间
m=1;kt=0;km=0; %计算上升时间
for m=1:cs
if y(m)>yss,
break
end
end;
if m>1,
kt=(y(m)-y(m-1))/(t(m)-t(m-1));
km=y(m-1)-kt*t(m-1);
end;
if kt==0,
tr=t(m);
else
tr=(yss-km)/kt;
end;
i=cs+1;n=0; %计算调整时间(95%-105%)
while n==0
i=i-1;
if i==1,
n=1;
elseif y(i)>1.05*yss,
n=1;
end;
end;
t1=t(i);cs=length(t);j=cs+1;
n=0;
while n==0
j=j-1;
if j==1,
n=1;
elseif y(i)<0.95*yss,
n=1;
end;
end;
t2=t(j);
if t2<tp
if t1>t2
ts=t1;
end;
elseif t2>tp,
if t2<t1,
ts=t2;
else
ts=t1;
end;
end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?