最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

stepinfo

立ち上がり時間、整定時間、および他のステップ応答の特性

構文

S = stepinfo(sys)
S = stepinfo(y,t)
S = stepinfo(y,t,yfinal)
S = stepinfo(___,'SettlingTimeThreshold',ST)
S = stepinfo(___,'RiseTimeLimits',RT)

説明

S = stepinfo(sys) は、動的システム モデル sys のステップ応答の特性を計算します。関数は、以下のフィールドを含む構造体として特性を返します。

  • RiseTime — 応答が定常状態応答の 10% から 90% に達するまでの時間。

  • SettlingTime — 応答 y(t) と定常状態応答 yfinal の誤差 |y(t) - yfinal| が yfinal の 2% 以内に下がるまでの時間。

  • SettlingMin — 応答が立ち上がったときの y (t) の最小値。

  • SettlingMax — 応答が立ち上がったときの y (t) の最大値。

  • Overshoot — yfinal に対するオーバーシュートの割合。

  • Undershoot — アンダーシュートの割合。

  • Peak — y (t) のピークの絶対値。

  • PeakTime — ピーク値が発生する時間。

次の図は、一般的な 2 次応答でのこれらの数量をいくつか示しています。

この構文を使用するには、Control System Toolbox™ ライセンスが必要です。

S = stepinfo(y,t) は、ステップ応答データの配列 y と対応する時間ベクトル t からステップ応答特性を計算します。SISO システム応答の場合、yt と同じエントリ数をもつベクトルになります。MIMO 応答データの場合、y は各 I/O チャネルの応答を含む配列になります。この構文は、定常値に依存する特性を計算する際、その定常値として y の最後の値 (または各チャネルの対応する応答データの最後の値) を使用します。

S = stepinfo(y,t,yfinal) は、定常値 yfinal に対するステップ応答の特性を計算します。この構文は、測定ノイズなどの理由から、予想される定常状態システム応答が y の最後の値とは異なることがわかっている場合に有用です。

SISO の応答の場合、ty は、同じ長さ NS をもつベクトルです。NU 入力と NY 出力をもつシステムについては、y を NS x NY x NU 配列 (step を参照) として、また yfinal を NY 行 NU 列の配列として指定できます。これにより stepinfo は、各 I/O ペアに対する性能メトリクスの NY 行 NU 列の構造体配列 S を返します。

S = stepinfo(___,'SettlingTimeThreshold',ST) を使用すると、整定時間の定義に使われるしきい値 ST を指定できます。応答は、誤差 |y(t) - yfinal| が、そのピーク値の小数部 ST より小さくなったときに整定します。既定値は ST = 0.02 (2%) です。この構文では、前述の任意の入力引数の組み合わせで使用できます。

S = stepinfo(___,'RiseTimeLimits',RT) を使用すると、立ち上がり時間の定義に使われる下限と上限のしきい値を指定できます。既定では、立ち上がり時間は、応答が定常値の 10% から 90% まで立ち上がるのにかかる時間として定義されます (RT = [0.1 0.9])。上限しきい値 RT(2)SettlingMin および SettlingMax の計算にも使用されます。これらの値は、応答が上限しきい値に達した後に発生する応答の最小値と最大値です。この構文では、前述の任意の入力引数の組み合わせで使用できます。

すべて折りたたむ

動的システム モデルの立ち上がり時間、整定時間、オーバーシュートなどのステップ応答の特性を計算します。この例では、次の連続時間の伝達関数を使用します。

伝達関数を作成してそのステップ応答を確認します。

sys = tf([1 5 5],[1 1.65 5 6.5 2]);
step(sys)

プロットから、応答は数秒間で立ち上がった後、約 2.5 の定常値に下がることがわかります。stepinfo を使用してこの応答の特性を計算します。

S = stepinfo(sys)
S = struct with fields:
        RiseTime: 3.8456
    SettlingTime: 27.9762
     SettlingMin: 2.0689
     SettlingMax: 2.6873
       Overshoot: 7.4915
      Undershoot: 0
            Peak: 2.6873
        PeakTime: 8.0530

既定では、整定時間は がそのピーク値の 2% 未満に下がるまでの所要時間です。ここで は時間 t でのシステム応答、 は定常状態応答です。結果の S.SettlingTime からは、sys でこの条件が約 28 秒後に発生することがわかります。既定では、立ち上がり時間は、応答がその定常値の 10% から 90% に達するまでの所要時間として定義されます。S.RiseTime は、sys でこの立ち上がりが 4 秒未満で発生することを示しています。最大オーバーシュートは S.Overshoot に返されます。このシステムでは、ピーク値 S.Peak が時間 S.PeakTime で発生し、定常値を約 7.5% オーバーシュートします。

MIMO システムの場合、stepinfo は構造体配列を返し、その各エントリはシステムの対応する I/O チャネルの応答特性を含みます。この例では、2 つの出力と 2 つの入力をもつ離散時間システムを使用します。ステップ応答の特性を計算します。

A = [0.68 -0.34; 0.34 0.68];
B = [0.18 -0.05; 0.04 0.11];
C = [0 -1.53; -1.12 -1.10];
D = [0 0; 0.06 -0.37];
sys = ss(A,B,C,D,0.2);

S = stepinfo(sys)
S = 2x2 struct array with fields:
    RiseTime
    SettlingTime
    SettlingMin
    SettlingMax
    Overshoot
    Undershoot
    Peak
    PeakTime

特定の I/O チャネルの応答の特性にアクセスするには、S にインデックスを付けます。たとえば、S(2,1) に対応する、sys の最初の入力から 2 番目の出力への応答の特性を調べます。

S(2,1)
ans = struct with fields:
        RiseTime: 0.4000
    SettlingTime: 2.8000
     SettlingMin: -0.6724
     SettlingMax: -0.5188
       Overshoot: 24.6476
      Undershoot: 11.1224
            Peak: 0.6724
        PeakTime: 1

特定の値にアクセスするには、ドット表記を使用します。たとえば、(2,1) チャネルの立ち上がり時間を抽出します。

rt21 = S(2,1).RiseTime
rt21 = 0.4000

既定では、stepinfo は整定時間を、応答 と定常状態応答 の誤差 の 2% 以内になるまでの所要時間として定義します。また、stepinfo は立ち上がり時間を、応答が の 10% から の 90% に上がるまでの所要時間として定義します。これらの定義は、SettlingTimeThreshold および RiseTimeThreshold を使用して変更できます。この例では、次で与えられるシステムを使用します。

伝達関数を作成します。

sys = tf([1 5 5],[1 1.65 5 6.5 2]);

sys の応答の誤差が定常状態応答の 0.5% に達するまでの時間を計算します。そのためには SettlingTimeThreshold を 0.5%、つまり 0.005 に設定します。

S1 = stepinfo(sys,'SettlingTimeThreshold',0.005);
st1 = S1.SettlingTime
st1 = 46.1325

sys の応答が定常値の 5% から 95% に上がるまでの時間を計算します。そのためには、RiseTimeThreshold をこれらの範囲を含むベクトルに設定します。

S2 = stepinfo(sys,'RiseTimeThreshold',[0.05 0.95]);
rt2 = S2.RiseTime
rt2 = 4.1690

整定時間と立ち上がり時間の両方を同じ計算で定義することができます。

S3 = stepinfo(sys,'SettlingTimeThreshold',0.005,'RiseTimeThreshold',[0.05 0.95])
S3 = struct with fields:
        RiseTime: 4.1690
    SettlingTime: 46.1325
     SettlingMin: 2.0689
     SettlingMax: 2.6873
       Overshoot: 7.4915
      Undershoot: 0
            Peak: 2.6873
        PeakTime: 8.0530

システムのモデルがない場合でも、ステップ応答データからステップ応答の特性を抽出することができます。たとえば、システムのステップ入力への応答を測定して、結果の応答データを、応答値を含むベクトル y と応答の時間を含むもう 1 つのベクトル t に保存したとします。応答データを読み込んで調べます。

load StepInfoData t y
plot(t,y)

stepinfo を使用して、この応答データからステップ応答の特性を計算します。定常状態応答値 yfinal を指定しない場合、stepinfo は、応答ベクトル y の最後の値が定常状態応答であると仮定します。.データにはノイズが含まれるため、y の最後の値は実際の定常状態応答値ではない可能性があります。定常値がわかっている場合、stepinfo にそれを指定できます。この例では、定常状態応答を 2.4 と仮定します。

S1 = stepinfo(y,t,2.4)
S1 = struct with fields:
        RiseTime: 1.2713
    SettlingTime: 19.6478
     SettlingMin: 2.0219
     SettlingMax: 3.3302
       Overshoot: 38.7575
      Undershoot: 0
            Peak: 3.3302
        PeakTime: 3.4000

データにノイズがあるため整定時間の既定の定義では厳密すぎ、その結果、ほぼ 20 秒の不特定の値になります。ノイズを考慮するため、整定時間のしきい値を既定の 2% から 5% に増やします。

S2 = stepinfo(y,t,2.4,'SettlingTimeThreshold',0.05)
S2 = struct with fields:
        RiseTime: 1.2713
    SettlingTime: 10.4201
     SettlingMin: 2.0219
     SettlingMax: 3.3302
       Overshoot: 38.7575
      Undershoot: 0
            Peak: 3.3302
        PeakTime: 3.4000

入力引数

すべて折りたたむ

動的システム。SISO または MIMO 動的システム モデルとして指定します。使用できる動的システムには次のようなものがあります。

  • tfzpkss モデルなどの連続時間または離散時間の数値 LTI モデル。

  • genssuss モデルなどの一般化された、あるいは不確かさをもつ LTI モデル (不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です)。一般化モデルの場合、stepinfo は、調整可能なブロックの現在の値と不確かさをもつブロックのノミナル値を使用してステップ応答の特性を計算します。

  • idtfidssidproc モデルなどの同定された LTI モデル。(同定されたモデルを使用するには System Identification Toolbox™ ソフトウェアが必要です)。

ステップ応答データ。次のように指定します。

  • SISO 応答データの場合、長さ Ns のベクトル。Ns は応答データ内のサンプル数です。

  • MIMO 応答データの場合、Ns x Ny x Nu の配列。Ny はシステム出力の数、Nu はシステム入力の数です。

y の応答データに対応する時間ベクトル。長さ Ns のベクトルとして指定します。

定常状態応答。次のように指定します。

  • SISO 応答データの場合、スカラー値。

  • MIMO 応答データの場合、NyNu 列の配列。各エントリは対応するシステム チャネルの定常状態応答値を指定します。

yfinal を指定しない場合、stepinfo は、y の対応するチャネルにある最後の値を定常状態応答値として使用します。

整定時間を定義するためのしきい値。0 ~ 1 のスカラー値として指定します。既定では、stepinfo は整定時間を、応答 y (t) と定常状態応答 yfinal の誤差 |y(t) - yfinal| が yfinal の 2% 以内に下がるまでの所要時間として定義します。この定義を変更するには、ST を異なる値に設定します。たとえば、しきい値を 5% にするには ST を 0.05 に設定します。

立ち上がり時間を定義するためのしきい値。0 ~ 1 の非降順の値からなる 2 要素の行ベクトルとして指定します。既定では、stepinfo は立ち上がり時間を、応答が定常値 yfinal の 10% から 90% に上がるまでの所要時間として定義します。この定義を変更するには、RT を異なる値に設定します。たとえば、立ち上がり時間を、応答が定常値の 5% から 95% に上がるまでの時間として定義するには、RT[0.05 0.95] に設定します。

出力引数

すべて折りたたむ

sys のステップ応答の特性。次のフィールドを含む構造体として返されます。

  • RiseTime — 応答が定常状態応答の 10% から 90% に達するまでの時間。

  • SettlingTime — 応答 y(t) と定常状態応答 yfinal の誤差 |y(t) - yfinal| が yfinal の 2% 以内に下がるまでの時間。

  • SettlingMin — 応答が立ち上がったときの y (t) の最小値。

  • SettlingMax — 応答が立ち上がったときの y (t) の最大値。

  • Overshoot — yfinal に対するオーバーシュートの割合。

  • Undershoot — アンダーシュートの割合。

  • Peak — y (t) のピークの絶対値。

  • PeakTime — ピーク値が発生する時間。

MIMO モデルまたは応答データの場合、S は構造体配列になり、各エントリには対応する I/O チャネルのステップ応答の特性が含まれます。たとえば、3 入力 3 出力のモデルまたは応答データの配列を指定した場合、S(2,3) には、3 番目の入力から 2 番目の出力への応答の特性が含まれます。例については、MIMO システムのステップ応答の特性を参照してください。

sys が不安定な場合、すべてのステップ応答の特性は NaN になります。ただし、PeakPeakTime だけは Inf になります。

参考

|

R2006a で導入