Main Content

isproper

動的システム モデルがプロパーであるかどうかの判定

構文

B = isproper(sys)
B = isproper(sys,'elem')
[B,sysr] = isproper(sys)

説明

B = isproper(sys) は、動的システム モデル sys がプロパーな場合に 1 (true) の論理値を返し、それ以外の場合は 0 (false) の論理値を返します。

プロパーなモデルは相対次数 ≤ 0 であり、因果性があります。SISO 伝達関数および零点-極-ゲイン モデルは、分子係数の次数が分母係数の次数以下である場合 (すなわち、それらが少なくとも零点と同じ個数の極をもっている場合) にプロパーになります。SISO エントリがすべてプロパーであれば、MIMO 伝達関数はプロパーです。通常の状態空間モデル (行列 E をもたない状態空間モデル) は常にプロパーです。可逆の行列 E をもつ記述子状態空間モデルは常にプロパーです。特異な (可逆でない) 行列 E をもつ記述子状態空間モデルは、モデルが少なくとも零点と同じ個数の極をもっている場合にプロパーです。

sys がモデル配列の場合、配列内のすべてのモデルがプロパーであれば B1 になります。

B = isproper(sys,'elem') はモデル配列 sys 内の各モデルをチェックし、sys と同じサイズの logical 配列を返します。logical 配列は sys のどのモデルがプロパーであるかを示します。

sys が非可逆行列 E をもつプロパーな記述子状態空間モデルである場合、[B,sysr] = isproper(sys) は、少ない状態 (低い次数) と非特異行列 E をもつ等価モデル sysr も返します。sys が プロパーでない場合は、sysr = sys になります。

すべて折りたたむ

SISO 連続時間伝達関数 H1=s を作成します。

H1 = tf([1 0],1);

H1 がプロパーかどうかをチェックします。

B1 = isproper(H1)
B1 = logical
   0

SISO 伝達関数は、分子の次数が分母の次数以下である場合 (すなわち、伝達関数が少なくとも零点と同じ個数の極をもっている場合) にプロパーになります。H1 は 1 つの零点をもち、極をもたないので、isproper コマンドは 0 を返します。

次に、極と零点を 1 つずつもつ伝達関数 H2=s/(s+1) を作成します。

H2 = tf([1 0],[1 1]);

H2 がプロパーかどうかをチェックします。

B2 = isproper(H2)
B2 = logical
   1

H2 がもつ極と零点の数は同じなので、isproper1 を返します。

状態空間モデルを組み合わせると、必要以上の状態を含む結果が生成されることがあります。isproper を使用して、等価の低次元化されたモデルを計算します。

H1 = ss(tf([1 1],[1 2 5]));
H2 = ss(tf([1 7],[1]));
H = H1*H2;
size(H)
State-space model with 1 outputs, 1 inputs, and 4 states.

H はプロパーで可約です。isproper は低次元化されたモデルを返します。

[isprop,Hr] = isproper(H);
size(Hr)
State-space model with 1 outputs, 1 inputs, and 2 states.

HHr は、ボード線図が示すように等価です。

bodeplot(H,Hr,'r--')
legend('original','reduced')

参照

[1] Varga, Andràs. "Computation of irreducible generalized state-space realizations." Kybernetika 26.2 (1990): 89-106.

バージョン履歴

R2006a より前に導入

参考

|