num1=[0.01];
den1=[1,0.002,0.01];
t=0:0.001:10;%为了确保精度,即各个参数的小数的位数,减小步长
y=step(num1,den1,t);
n=length(t);[ymax,ind]=max(y);%y是原系统的阶跃响应,是一个二维矩阵,返回本身曲线的最大值和对应的时间矩阵变量的第几位
yss=y(n);%我们这里就设我们时间的最终值对应的就是稳态值
mp=(ymax-yss)/yss;%由超调量定义可以计算超调量
for k=1:n%该层循环是计算上升时间即第一次达到稳态值的时间
ify(k)<=yss&y(k+1)>=yss%第一次达到稳态值
tr=t(k+1);%用tr存储稳态值
break
end
end
for i=n:-1:1%该层循环用于计算调整时间,我们是从最终时间(无穷远的时间)往前开始遍历查找,否则从前开始查找的话会出错
ify(i)>=1.02*yss|y(i)<=0.98*yss%当得到的值与稳态值差的绝对值与稳态值之比为2%时说明到达了调整时间
ts=t(i);%ts存储调整时间
break
end
end
disp('峰值时间为:')disp(t(ind))disp('上升时间为:')disp(tr)disp('调整时间为:')disp(ts)disp('超调量为:')disp(mp)