Main Content

isstable

動的システム モデルが安定であるかどうかの判定

説明

B = isstable(sys) は、動的システム モデル sys が安定したダイナミクスをもつ場合に 1 (true) の logical 値を返し、それ以外の場合は 0 (false) の logical 値を返します。sys がモデル配列の場合、関数は、sys のすべてのモデルが安定である場合にのみ 1 を返します。

次の場合、isstable は動的システムの安定性について logical 値 1 (true) を返します。

  • 連続時間システムでは、すべての極が複素平面の左開半平面内にある。

  • 離散時間システムでは、すべての極が単位開円板内にある。

isstable は、有限個の極をもつ解析モデルでのみサポートされます。

B = isstable(sys,'elem') は、モデル配列 sys と同じ次元の logical 配列を返します。logical 配列は sys のどのモデルが安定しているかを示します。

すべて折りたたむ

0.1 秒のサンプル時間をもつこの離散時間 SISO 伝達関数モデルの安定性を判別します。

sys(z)=2z4z3+3z-1

離散時間伝達関数モデルを作成します。

sys = tf([2,0],[4,0,3,-1],0.1);

システムの極を調べます。

P = abs(pole(sys))
P = 3×1

    0.9159
    0.9159
    0.2980

伝達関数モデルのすべての極は 1 より小さいゲインをもつため、すべての極は単位開円板内にあり、システムは安定です。

isstable を使用してモデルの安定性を確認します。

B = isstable(sys)
B = logical
   1

システム sys は安定です。

この連続時間零点-極-ゲイン モデルの安定性を判別します。

sys(s)=2(s+2+3j)(s+2-3j)(s-0.5)

零点、極、ゲインを指定してモデルを zpk モデル オブジェクトとして作成します。

sys = zpk([],[-2-3*j,-2+3*j,0.5],2);

モデルの 1 つの極が複素平面の右半平面内にあるため、システムは不安定です。

isstable を使用してモデルの不安定性を確認します。

B = isstable(sys)
B = logical
   0

システム sys は不安定です。

-2 から 2 まで変動する極をもつ SISO 伝達関数モデルの配列の安定性を判別します。

[1s+2,1s+1,1s,1s-1,1s-2]

配列を作成するには、まずゼロ値の SISO 伝達関数をもつ次元 [length(a),1] の配列を初期化します。

a = [-2:2];
sys = tf(zeros(1,1,length(a)));

その配列に 1/(s-a) 形式の伝達関数を設定します。

for j = 1:length(a)
    sys(1,1,j) = tf(1,[1 -a(j)]);
end

isstable によって、モデル配列内のすべてのモデルが安定か、または各個別のモデルが安定かを判定できます。

モデル配列の安定性を検証します。

B_all = isstable(sys)
B_all = logical
   0

既定では、isstable は配列内のすべてのモデルが安定な場合にのみ 1 (true) となる単一の logical 値を返します。sys には、安定でない非負の極をもついくつかのモデルが含まれています。したがって、isstable は配列全体について 0 (false) を返します。

'elem' フラグを使用して配列内の各モデルの安定性を検証します。

B_elem = isstable(sys,'elem')
B_elem = 5x1 logical array

   1
   1
   0
   0
   0

この関数は、モデル配列内の対応するエントリの安定性を示す logical 値の配列を返します。たとえば、B_elem(2)1 です。これは、配列の 2 番目のモデル sys(1,1,2) が安定であることを示しています。これは、sys(1,1,2)-1 に極をもつためです。

入力引数

すべて折りたたむ

動的システム。SISO または MIMO 動的システム モデル、あるいは SISO または MIMO 動的システム モデルの配列として指定します。使用できる動的システムには、tfzpkss モデルなどの連続時間または離散時間の数値 LTI モデルが含まれます。

sys が一般化状態空間モデル genss または不確かさをもつ状態空間モデル uss (Robust Control Toolbox) である場合、isstable は、sys の現在の値またはノミナル値の安定性を確認します。

sys がモデルの配列である場合、isstable は配列内のすべてのモデルの安定性を確認します。

  • B = isstable(sys) を使用する場合、配列内のすべてのモデルが安定である場合にのみ、出力は 1 (true) です。

  • B = isstable(sys,'elem') を使用する場合、出力は logical 配列であり、そのエントリは、モデル配列内の対応するエントリの安定性を示しています。

モデル配列の詳細については、モデル配列を参照してください。

出力引数

すべて折りたたむ

True または false の結果。安定モデルの場合 1、または不安定モデルの場合 0 として返されます。

'elem' フラグによって isstable はモデル配列と同じ次元をもつ logical 値の配列を返します。配列の値は、モデル配列の対応するエントリの安定性を示しています。

参考

| |

R2012a で導入