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 を超えていることを明確に示しています。これは、オーバーシュートが 18.81 ではなく 20 より大きいことを意味します。 ステップ応答

違いのソースは?

4

1 に答える 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

これは期待される結果です。

于 2013-01-08T12:30:29.637 に答える