Main Content

平衡化打ち切りによるモデルの低次元化

平衡化打ち切りは、モデル応答全体への影響が比較的低い状態を無視することによって、モデルの低次近似を計算します。対象のダイナミクスを維持する低次近似を使用して、解析および制御設計を簡略化できます。モデルの低次元化の平衡化打ち切り方法では、ソフトウェアはハンケル特異値によって状態の寄与を測定して (hsvd を参照)、小さい値をもつ状態を破棄します。平衡化打ち切りを使用して低次元化されたモデルを計算できます。

  • コマンド ラインで "balanced" メソッドを指定した reducespec コマンドを使用してモデル次数の低次元化タスクを作成します。

  • Model Reducer アプリで [平衡化打ち切り] の方法を使用する。

  • ライブ エディターの [モデル次数の低次元化] タスクで [平衡化打ち切り] の方法を使用する。

モデルの低次元化の一般的な情報については、モデルの低次元化の基礎を参照してください。

Model Reducer アプリでの平衡化打ち切り

Model Reducer は、モデルを低次元化し、元のモデルと低次元化されたモデルの応答を調査および比較する、対話型のツールを提供します。Model Reducer で平衡化打ち切りによってモデルを近似するには、次の手順を実行します。

  1. アプリを開き、低次元化する LTI モデルをインポートします。たとえば、MATLAB® ワークスペースに build という名前のモデルがあるとします。次のコマンドは、Model Reducer を開いてモデルをインポートします。

    modelReducer(build)
  2. データ ブラウザーで、低次元化するモデルを選択します。 [平衡化打ち切り] をクリックします。

    [平衡化打ち切り] タブで、Model Reducer は元のモデルと低次元化されたモデルの周波数応答のプロットを表示します。既定では、周波数応答は SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。アプリには元のモデルのハンケル特異値プロットと近似誤差プロットも表示されます。

    ハンケル特異値プロットは、システムにおけるそれぞれの状態の相対的なエネルギーの寄与を示します。Model Reducer はこれらの値に基づいて、初期の低次元化されたモデルを計算します。強調表示されているバーは、初期の低次元化されたモデルでエネルギーが最も低い状態です。Model Reducer は、強調表示されているバーよりハンケル特異値が小さい状態を破棄します。

  3. アプリケーションにとって重要なダイナミクスを保持するモデルで最も低次元のものを探すために、低次元化されたモデルの別の次元を試します。別の次元を指定するには、次のどちらかを行います。

    • [低次元化された次数のベクトル] フィールドでモデル次数を明示的に指定する。単一の整数、または 10:14[4,8,10] などの整数の配列を入力できます。

    • ハンケル特異値プロットでバーをクリックして、低次元化されたモデルのエネルギーが最も低い状態を指定する。複数の値を指定するには、Ctrl キーを押しながらクリックします。

    低次元化されたモデルの指定次元を変更すると、Model Reducer は新しい低次元化されたモデルを自動的に計算します。モデルの次元を複数指定する場合、Model Reducer は複数の低次元化されたモデルを計算して、その応答をプロットに表示します。

  4. 必要に応じて、周波数応答に加え、元のモデルと低次元化されたモデルの間の絶対誤差または相対誤差を調べます。[平衡化打ち切り] タブにあるボタンを使用して、誤差のプロットのタイプを選択します。

    解析プロットの使用方法の詳細については、低次元化されたモデルの Model Reducer アプリによる可視化を参照してください。

  5. 低周波数ダイナミクスがアプリケーションにとって重要ではない場合、[オプション] ダイアログで [DC ゲインの保持] チェックボックスをオフにすることができます。そうすると、高周波数で、元のモデルと低次元化されたモデルがより一致するようになることがあります。

    [DC ゲインの保持] チェック ボックスをオンまたはオフにすると、Model Reducer は、新しい低次元化されたモデルを自動的に計算します。使用可能なオプションの詳細については、Specify Options for Balanced Truncation in Model Reducerを参照してください。

  6. 必要に応じて、ハンケル特異値の計算を特定の周波数範囲に制限します。そのような制限が便利なのは、特定のアプリケーションにとっての関心領域の外部にあるモードがモデルにある場合です。周波数制限を適用する場合、Model Reducer は、指定された周波数範囲内のみのエネルギーの寄与に基づいて、どの状態を打ち切るべきかを判断します。その範囲外のエネルギーの寄与を無視することで、さらに低次の、それでもアプリケーションにはまだ適切な近似が得られます。

    特異値の計算を制限するには、[オプション] をクリックし、周波数範囲を追加します。その後、[低域カットオフ] パラメーターと [高域カットオフ] パラメーターを使用して周波数範囲を指定します。ここで、単位は rad/TimeUnit です。TimeUnit は低次元化を行っているモデルの TimeUnit プロパティです。

    応答プロットまたは誤差プロットで、影付きの領域の境界または影付きの領域自体をドラッグできます。Model Reducer は、影付きの領域内のみの状態の寄与を解析します。

    オプションで周波数範囲を変更するかオフにすると、Model Reducer は新しい低次元化されたモデルを自動的に計算します。

  7. 絶対誤差または相対誤差を選択するには、[相対誤差の制御] チェックボックスをオンにします。絶対誤差は GGr、相対誤差は G1(GGr) です。相対誤差が周波数全体のより良好な一致を表すのに対し、絶対誤差は大部分のゲインをもつ領域を強調します。

    メモ

    誤差範囲オプションを切り替えると、指定されている周波数範囲は自動的にクリアされます。DC の一致を強制するには、[DC ゲインの保持] をオンにします。周波数範囲の制限は、相対誤差の制御ではサポートされないことに注意してください。

  8. 1 つ以上の低次元化されたモデルを格納してさらに解析を行う場合は、[低次元化されたモデルの保存] をクリックします。新しいモデルがデータ ブラウザーに表示されます。複数の次元を指定していた場合は、それぞれの低次元化されたモデルが別々に表示されます。モデル名は、低次元化されたモデルの次数を反映します。

    低次元化されたモデルをデータ ブラウザーで作成した後、引き続き低次元化パラメーターを変更して、解析および比較用として異なる次数をもつ低次元化されたモデルを作成することができます。

これで、低次元化されたモデルを使用してさらに解析を行うことができるようになります。以下に例を示します。

  • 低次元化されたシステムの、ステップ応答またはニコルス線図などの他の応答を調べます。これを行うには、[プロット] タブのツールを使用します。詳細については、低次元化されたモデルの Model Reducer アプリによる可視化を参照してください。

  • さらに解析または制御設計を行うために、低次元化されたモデルを MATLAB ワークスペースにエクスポートします。[Model Reducer] タブで、 [エクスポート] をクリックします。

平衡化打ち切り用 MATLAB コードの生成

コマンド ラインでモデルの低次元化タスクをさらに行うために使用できる MATLAB スクリプトを作成するには、[低次元化されたモデルの保存] をクリックして、[MATLAB スクリプトの生成] を選択します。

Model Reducer は、[平衡化打ち切り] タブで設定したパラメーターやオプションによるモデルの低次元化を、reducespec および getrom (balanced) コマンドを使用して実行するスクリプトを作成します。スクリプトが MATLAB エディターで開きます。

他の環境での平衡化打ち切り

Model Reducer アプリで作業する代わりに、他の環境で平衡化打ち切りを行えます。

参考

アプリ

ライブ エディター タスク

関数

関連するトピック