Matlab中`step`和`stepinfo`的结果差异

4
我在使用 stepinfo 函数来获取系统的阶跃响应,但是我得到的信息和使用 step 绘制的图形所获得的信息不一致。 对于闭环系统:
m1=3; m2=2; k=12; B=6;
p=35.1263; z=4.9686; K=683.9;

s=tf('s');
G=(B*s+k+s^2*m2)/(s^2*(s^2*m1*m2+(m1+m2)*(B*s+k)));
H=K*(s+z)/(s+p);
T=(G*H/(1+G*H));
stepinfo(T)的结果是:
ans = 

        RiseTime: 0.3876
    SettlingTime: 1.4245
     SettlingMin: 0.9863
     SettlingMax: 1.1881
       Overshoot: 18.8102
      Undershoot: 0
            Peak: 1.1881
        PeakTime: 0.5756

使用step(T,0:1e-3:10)生成的图形清楚地显示了响应超过1.2,这意味着超调大于20而不是18.81。 阶跃响应 造成差异的原因是什么?

你使用的Matlab版本是什么?我的显示是20.94,与图形匹配。 - Rasman
我有Matlab R2012a,正如所述,它提供了正确的答案。如果其他人可以确认这一点,那么问题很可能是一个被修复的错误。 - Rasman
在Matlab 2012a中也是一样的(超调:20.9442)。 - bla
1个回答

1

看起来这是R2009b版本的某种错误。如评论中所述,我已在安装了R2012a版本的机器上运行了相同的代码,stepinfo的结果如下:

ans = 

    RiseTime: 0.1671
SettlingTime: 1.3591
 SettlingMin: 0.9066
 SettlingMax: 1.2094
   Overshoot: 20.9442
  Undershoot: 0
        Peak: 1.2094
    PeakTime: 0.4604

这是预期的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接