Main Content

モーダル打ち切りによるモデルの低次元化

モーダル打ち切りの方法では、位置や DC の寄与に基づいて極を破棄できます。この方法は、システム ダイナミクスの特定のサブセットでの解析に焦点を置く場合に役立ちます。たとえば、アクチュエータ ダイナミクスに制限される帯域幅の制御システムを動かしている場合、プラントの高周波数のダイナミクスを破棄してもよい場合があります。対象周波数範囲外のダイナミクスの削除により、モデルについての計算の数値的複雑度が低減されます。モードの選択によって低次元化されたモデルを計算するには、2 つの方法があります。

  • コマンド ラインで "modal" メソッドを指定して reducespec ワークフローを使用する。

  • Model Reducer[モーダル打ち切り] の方法を使用する。

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

Model Reducer アプリでのモーダル打ち切り

Model Reducer は、モデルを低次元化し、元のモデルと低次元化されたモデルの応答を調査および比較する、対話型のツールを提供します。Model Reducer のモードの選択によるモデルの近似手順は以下のとおりです。

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

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

    [モーダル打ち切り] タブで、Model Reducer は元のモデルと低次元化されたモデルの周波数応答のプロットを表示します。アプリには元のモデルの極配置も表示されます。

    極配置はプロットに x でマークされます。

    メモ

    周波数応答は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。

  3. Model Reducer は、影付きの領域の外側にある極を削除します。影付きの領域を変更して、低次元化されたモデルで保持するダイナミクスのみを取得します。これを行う方法は 2 つあります。

    • いずれかの応答プロットで、影付きの領域の境界または影付きの領域自体をドラッグする。

    • [モーダル打ち切り] タブで、モードの周波数範囲、減衰範囲、または最小の DC の寄与に基づいてモデル次数の低次元化の基準を入力する。

    影付きの領域またはカットオフ周波数が変更されると、Model Reducer は、新しい低次元化されたモデルを自動的に計算します。低次元化されたモデルで保持されるすべての極は、モード位置プロットの影付きの領域内に収まります。低次元化されたモデルには、影付きの領域の外側にある零点が含まれることがあります。

    オプションをカスタマイズするには、[オプション] をクリックします。詳細については、Specify Options for Modal Truncation in Model Reducerを参照してください。

  4. 必要に応じて、元のモデルと簡略化されたモデルの間の絶対誤差または相対誤差を調べます。[モーダル打ち切り] タブにあるボタンを使用して、誤差のプロットのタイプを選択します。

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

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

    低次元化されたモデルをデータ ブラウザーで作成した後、モードの選択領域を引き続き調整して、解析や比較用に異なる次数をもつ低次元化されたモデルを作成することができます。

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

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

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

モードの選択用 MATLAB コードの生成

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

Model Reducer は、[モードの選択] タブで設定したパラメーターによるモデルの低次元化を、reducespec コマンドおよび getrom コマンドを使用して実行するスクリプトを作成します。スクリプトが MATLAB エディターで開きます。

コマンド ラインでのモーダル打ち切り

コマンド ラインでモーダル打ち切りによってモデルの次数を低次元化するには、reducespec を使用します。この例では、特定の周波数範囲と減衰のダイナミクスに焦点を絞って高次のモデルを低次元化します。

モデルを読み込み、その周波数応答を検証します。

load('highOrderModel.mat','G')
bodeplot(G)

G は、5.2 rad/s、13.5 rad/s、および 24.5 rad/s 周辺にいくつかの大きなピーク領域をもち、多くの周波数に散在する小さなピークをもつ 48 次モデルです。

モデル次数の低次元化タスクを作成します。

R = reducespec(G,"modal");
view(R)

アプリケーションに関して、減衰が 0.04 未満の 10 ~ 40 rad/s 付近のダイナミクスにのみ関心があると仮定します。モデルの低次元化においては、関心領域に焦点を絞ることで低次の近似との良好な一致が得られます。

rsys = getrom(R,Frequency=[10,40],Damping=[0.022 0.04]);
opt = bodeoptions;
opt.PhaseMatching = "on";
bodeplot(G,rsys,"r--",opt)
legend("Full order","Reduced order")

低次元化されたモデルは、指定したターゲットについて良好な近似を示しています。

参考

アプリ

関数

ライブ エディター タスク

関連するトピック