用Matlab求二阶系统的峰值时间、上升时间、调整时间、超调量、

用Matlab求二阶系统的峰值时间、上升时间、调整时间、超调量、_第1张图片

以下是第二个传递函数的做法,若想求第一个或其他的传递函数的参数,只需要改变分子矩阵num和分母矩阵即可

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%该层循环是计算上升时间即第一次达到稳态值的时间
if y(k)<=yss&y(k+1)>=yss%第一次达到稳态值
tr=t(k+1);%用tr存储稳态值
break
end
end
for i=n:-1:1%该层循环用于计算调整时间,我们是从最终时间(无穷远的时间)往前开始遍历查找,否则从前开始查找的话会出错
    if y(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)

用Matlab求二阶系统的峰值时间、上升时间、调整时间、超调量、_第2张图片

你可能感兴趣的:(matlab)