Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

balred

(非推奨) モデル次数の低次元化

    balred および balredOptions は推奨されません。代わりに reducespec (Control System Toolbox) を使用してください。 (R2023b 以降)コードの更新の詳細については、互換性についての考慮事項を参照してください。

    説明

    [rsys,info] = balred(sys,order) は、LTI モデル sys の低次元化された近似 rsys を計算します。目的の次数 (状態数) は order で指定されます。order を整数のベクトルに設定することで、複数の次元をまとめて試すことができます。この場合、rsys は低次元化されたモデルの配列です。balred は、ハンケル特異値 (HSV)、誤差範囲、正則化レベル、グラミアンのコレスキー因子などの追加情報を含む構造体 info も返します。

    [~,info] = balred(sys) は、低次元化されたモデルを計算せずに構造体 info を返します。この情報は、低次元化された次数 order を目的の忠実度に基づいて選択するために使用できます。

    メモ

    パフォーマンスを重視する場合は、ハンケル特異値を 2 回計算しなくても済むように、上記の構文で取得した情報を使用して目的のモデル次数を選択してから、rsys = balred(sys,order,info) を使用して低次元化されたモデルを計算してください。

    [___] = balred(___,opts) は、balredOptions で指定したオプション セット opts を使用して低次元化されたモデルを計算します。追加オプションを指定して、状態を削除したり、絶対誤差の制御と相対誤差の制御の使用を比較したり、特定の時間または周波数帯域を強調表示したり、安定モードと不安定モードを分離したりできます。オプション セット opts の作成と構成については、balredOptions を参照してください。

    balred(sys) は、ハンケル特異値 (HSV) と近似誤差をプロットに表示します。このプロットをカスタマイズするには hsvplot (Control System Toolbox) を使用します。

    すべて折りたたむ

    次によって与えられるシステムの低次元化近似を計算します。

    G ( s ) = ( s + 0 . 5 ) ( s + 1 . 1 ) ( s + 2 . 9 ) ( s + 1 0 - 6 ) ( s + 1 ) ( s + 2 ) ( s + 3 ) .

    モデルを作成します。

    sys = zpk([-0.5 -1.1 -2.9],[-1e-6 -2 -1 -3],1);

    安定/不安定分解の安定項から、 s = 1 0 - 6 にある極を排除します。これを行うには、balredOptionsOffset オプションを、排除する極より大きい値に設定します。

    opts = balredOptions('Offset',0.001,'StateProjection','Truncate');

    ハンケル特異値 (HSV) と近似誤差を可視化します。

    balred(sys,opts)

    赤の HSV は、不安定モードに関連していることを示しています。

    次に、指定したオプションを使用して 2 次近似を計算します。

    [rsys,info] = balred(sys,2,opts);
    rsys
    rsys =
     
      0.99113 (s+0.5235)
      -------------------
      (s+1e-06) (s+1.952)
     
    Continuous-time zero/pole/gain model.
    

    低次元化されたモデル rsys において、-1e-6 の極が変わらず表示されることに注目してください。

    元のモデルと低次元化されたモデルの応答を比較します。

    bodeplot(sys,rsys,'r--')

    元のモデルのボード応答と低次元化されたモデルのボード応答がほぼ一致することを確認します。

    入力引数

    すべて折りたたむ

    動的システム。SISO または MIMO 動的システム モデル (Control System Toolbox)として指定します。使用できる動的システムには、tfzpk (Control System Toolbox)ss (Control System Toolbox) モデルなどの連続時間または離散時間の数値 LTI モデルがあります。

    sys が不安定な極をもつ場合、balredsys を安定部と不安定部に分解し、安定部だけを近似します。balredOptions (Control System Toolbox) を使用して、安定/不安定な分解に対する追加オプションを指定します。

    balred では、周波数応答データ モデル、不確かさをもつ状態空間モデル、一般化状態空間モデル、PID モデル、スパース モデル オブジェクトはサポートされていません。

    目的の状態の数。整数または整数のベクトルとして指定します。order を整数のベクトルに設定することで、複数の次元をまとめて試すことができます。この場合、rys は低次元化されたモデルの配列として返されます。

    ハンケル特異値と誤差範囲の情報を使用して、低次元化されたモデルの次数を目的のモデルの忠実度に基づいて選択することもできます。

    モデルの低次元化の追加オプション。オプション セットとして指定します。追加オプションを指定して、状態を削除したり、絶対誤差の制御と相対誤差の制御の使用を比較したり、特定の時間または周波数帯域を強調表示したり、安定モードと不安定モードを分離したりできます。

    オプション セット opts の作成と構成については、balredOptions (Control System Toolbox) を参照してください。

    出力引数

    すべて折りたたむ

    低次元化されたモデル。動的システム モデルまたは動的システム モデルの配列として返されます。

    LTI モデルに関する追加情報。次のフィールドをもつ構造体として返されます。

    • HSV — ハンケル特異値 (入力/出力の動作に対する状態の寄与)。入力から状態と状態から出力へのエネルギー変換が等価な状態座標において、ハンケル特異値は、入力/出力の動作への各状態の寄与を測定します。行列のランクに対する特異値があるようにモデルの次数に対する特異値があります。特に、小さなハンケル特異値の信号の状態は、モデルを簡略化するために切り捨てることができます。

    • ErrorBound — 絶対的または相対的な近似誤差の範囲。info.ErrorBound(J+1) は次数 J の誤差の範囲を指定します。

    • Regularization — 正則化レベル ⍴ (相対誤差のみ)。ここで、sys は、すべての周波数において適切に定義された相対誤差が確保される [sys,⍴*I] または [sys;⍴*I] に置き換えられます。

    • RrRo — グラミアンのコレスキー因子。

    アルゴリズム

    1. balred は、最初に G を安定部と不安定部に分けます。

      G=Gs+Gu

    2. ErrorBoundabsolute と指定した場合、balred[1]の平衡化打ち切り方法を使用して Gs を低次元化します。この方法では、ハンケル特異値 (HSV) σj を可制御グラミアンおよび可観測グラミアンに基づいて計算します。次数を r とすると、絶対誤差 GsGr の範囲は 2j=r+1nσj になります。ここで、n は Gs の状態の数です。

    3. ErrorBoundrelative と指定した場合、balred[2]の確率的な平衡化打ち切り方法を使用して Gs を低次元化します。正方の Gs の場合は、位相行列 F=(W')1G の HSV σj を計算します。ここで、W(s) は GG’ の安定した最小位相のスペクトル分解です。

      W'(s)W(s)=G(s)G'(s)

      次数 r の場合は、相対誤差 Gs1(GsGr) の範囲は次のようになります。

      j=r+1H(1+σj1σj)12j=r+1nσj

      ここで、2j=r+1nσj1 です。

    代替機能

    アプリ

    Model Reducer (Control System Toolbox)

    ライブ エディター タスク

    モデル次数の低次元化 (Control System Toolbox)

    参照

    [1] Varga, A., "Balancing-Free Square-Root Algorithm for Computing Singular Perturbation Approximations," Proc. of 30th IEEE CDC, Brighton, UK (1991), pp. 1062-1065.

    [2] Green, M., "A Relative Error Bound for Balanced Stochastic Truncation", IEEE Transactions on Automatic Control, Vol. 33, No. 10, 1988

    バージョン履歴

    R2006a より前に導入

    すべて展開する

    R2023b: 非推奨

    balred および balredOptions は推奨されません。平衡化打ち切りによるモデル次数の低次元化を実行するには、以下の構文の関数 reducespec (Control System Toolbox) を使用します。

    R = reducespec(sys,"balanced");

    完全なワークフローについては、Task-Based Model Order Reduction Workflow (Control System Toolbox)を参照してください。

    参考

    関数

    アプリ

    ライブ エディター タスク

    トピック