Matlab中step和stepinfo结果的差异

Matlab中step和stepinfo结果的差异,matlab,Matlab,我正在使用函数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 = Rise

我正在使用函数
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
步骤(T,0:1e-3:10)
得出的曲线图清楚地表明响应超过1.2,这意味着超调量大于20,而不是18.81。


造成差异的原因是什么?

这似乎是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

这是预期的结果。

您正在运行哪个版本的matlab?我的答案是20.94,这与图相符。我有MatlabR2012A,如前所述,它提供了正确的答案。如果其他人能够证实这一点,那么问题很可能是一个已经修复的bug。在Matlab2012a这里也是一样(超调:20.9442)