メインコンテンツ

minreal

最小実現または極-零点相殺

説明

msys = minreal(sys) は、状態空間モデルで非可制御あるいは不可観測な状態を消去したり、伝達関数または零点-極-ゲイン モデルの極-零点のペアを相殺したりします。出力 msys は最小次数で元のモデル sys と同じ応答特性があります。

msys = minreal(sys,tol) は、状態消去または極-零点相殺で使用される許容誤差を指定します。既定値は、tol = sqrt(eps) で、この許容誤差を大きくすることにより、さらに他の相殺が実行されます。

[msys,U] = minreal(___) は、状態空間モデル sys に対して、(UAUT,UB,CUT) が (A,B,C) のカルマン分解となる直交行列 U も返します。

すべて折りたたむ

この例では、零点-極-ゲイン モデルの最小実現を計算する方法を示します。

この例では、非最小の零点-極-ゲイン モデル cloop を生成する次のコマンドについて考えます。

g = zpk([],1,1);
h = tf([2 1],[1 0]);
cloop = inv(1+g*h) * g
cloop =
 
        s (s-1)
  -------------------
  (s-1) (s^2 + s + 1)
 
Continuous-time zero/pole/gain model.
Model Properties

s=1 で極-零点のペアを相殺するには、minreal 関数を使用します。

cloopmin = minreal(cloop)
cloopmin =
 
        s
  -------------
  (s^2 + s + 1)
 
Continuous-time zero/pole/gain model.
Model Properties

この例では、状態空間モデルの最小実現を計算する方法を示します。

この例では、25 状態の SISO モデルについて考えます。モデルを読み込みます。

load('reduce.mat','gasf35unst');
size(gasf35unst)
State-space model with 1 outputs, 1 inputs, and 25 states.

最小実現を計算するには、minreal 関数を使用します。

[msys,U] = minreal(gasf35unst);
11 states removed.

この構文は、状態空間モデル msys を直交行列 U と共に返します。この行列はカルマン分解の計算に使用されます。この分解により、元の状態空間モデルの非可制御状態と不可観測状態が特定されます。その後、最小実現を計算するために、minreal はそれらの非可制御状態または不可観測状態を消去します。既定では、このモデルの 11 個の状態が関数で削除されます。非可制御または不可観測に近い追加の状態を強制的に消去するには、許容誤差を大きくすることができます。

許容誤差を既定値の 100 倍に増やします。

tol = sqrt(eps)*100;
[msys2,U2] = minreal(gasf35unst,tol);
16 states removed.

関数で 5 つの追加の状態が削除されるようになりました。

入力引数

すべて折りたたむ

簡略化する動的システム モデル。次のいずれかとして指定します。

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

  • genss モデルや uss (Robust Control Toolbox) モデルなどの一般化された状態空間モデルまたは不確かさをもつ状態空間モデル。(不確かさをもつモデルを使用するには Robust Control Toolbox™ ソフトウェアが必要です。)

    このようなモデルでは、ソフトウェアはモデルの数値部分の最小実現を計算します。これらのモデルの分解の詳細については、getLFTModel一般化モデルの内部構造を参照してください。

  • 同定された状態空間 idss (System Identification Toolbox) モデル (同定されたモデルを使用するには System Identification Toolbox™ ソフトウェアが必要です。)

  • 動的システム モデルの配列。

極-零点相殺または状態消去の許容誤差。正の実数のスカラー値として指定します。

出力引数

すべて折りたたむ

簡略化されたモデル。sys と同じタイプのモデルとして返されます。

直交行列。行列として返されます。sys が状態空間モデルの場合、UNxNx 列の行列です。ここで、Nxsys の状態の数です。伝達関数および零点-極-ゲイン モデルの場合、関数は U を空行列 [] として返します。

アルゴリズム

極-零点相殺は極および零点を直接検索し、許容誤差内に一致がないかどうかを探します。伝達関数は最初に零点-極-ゲインの形式に変換されます。

代替機能

コマンド ライン

reducespec

アプリ

Model Reducer

ライブ エディター タスク

モデル次数の低次元化

バージョン履歴

R2006a より前に導入