このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
平衡化打ち切りによるモデルの低次元化
平衡化打ち切りは、モデル応答全体への影響が比較的低い状態を無視することによって、モデルの低次近似を計算します。対象のダイナミクスを維持する低次近似を使用して、解析および制御設計を簡略化できます。モデルの低次元化の平衡化打ち切り方法では、ソフトウェアはハンケル特異値によって状態の寄与を測定して (hsvd
を参照)、小さい値をもつ状態を破棄します。平衡化打ち切りを使用して低次元化されたモデルを計算できます。
コマンド ラインで
balred
コマンドを使用する。Model Reducer アプリで [平衡化打ち切り] の方法を使用する。
ライブ エディターの [モデル次数の低次元化] タスクで
[平衡化打ち切り]
の方法を使用する。
モデルの低次元化の一般的な情報については、モデルの低次元化の基礎を参照してください。
Model Reducer アプリでの平衡化打ち切り
Model Reducer は、モデルを低次元化し、元のモデルと低次元化されたモデルの応答を調査および比較する、対話型のツールを提供します。Model Reducer で平衡化打ち切りによってモデルを近似するには、次の手順を実行します。
アプリを開き、低次元化する LTI モデルをインポートします。たとえば、MATLAB® ワークスペースに
build
という名前のモデルがあるとします。次のコマンドは、Model Reducer を開いてモデルをインポートします。modelReducer(build)
データ ブラウザーで、低次元化するモデルを選択します。
[平衡化打ち切り] をクリックします。
[平衡化打ち切り] タブで、Model Reducer は元のモデルと低次元化されたモデルの周波数応答のプロットを表示します。周波数応答は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。アプリには元のモデルのハンケル特異値プロットと近似誤差プロットも表示されます。
ハンケル特異値プロットは、システムにおけるそれぞれの状態の相対的なエネルギーの寄与を示します。Model Reducer はこれらの値に基づいて、初期の低次元化されたモデルを計算します。強調表示されているバーは、初期の低次元化されたモデルでエネルギーが最も低い状態です。Model Reducer は、強調表示されているバーよりハンケル特異値が小さい状態を破棄します。
アプリケーションにとって重要なダイナミクスを保持するモデルで最も低次元のものを探すために、低次元化されたモデルの別の次元を試します。別の次元を指定するには、次のどちらかを行います。
[低次元化された次数] フィールドにモデル次数を入力する。単一の整数、または
10:14
や[8,11,12]
などの整数の配列が入力できます。ハンケル特異値プロットでバーをクリックして、低次元化されたモデルのエネルギーが最も低い状態を指定する。複数の値を指定するには、Ctrl キーを押しながらクリックします。
低次元化されたモデルの指定次元を変更すると、Model Reducer は新しい低次元化されたモデルを自動的に計算します。モデルの次元を複数指定する場合、Model Reducer は複数の低次元化されたモデルを計算して、その応答をプロットに表示します。
必要に応じて、周波数応答に加え、元のモデルと低次元化されたモデルの間の絶対誤差または相対誤差を調べます。[平衡化打ち切り] タブにあるボタンを使用して、誤差のプロットのタイプを選択します。
解析プロットの使用方法の詳細については、低次元化されたモデルの Model Reducer アプリによる可視化を参照してください。
低周波数ダイナミクスがアプリケーションにとって重要ではない場合、[DC ゲインの保持] チェック ボックスをオフにすることができます。そうすると、高周波数で、元のモデルと低次元化されたモデルがより一致するようになることがあります。
[DC ゲインの保持] チェック ボックスをオンまたはオフにすると、Model Reducer は、新しい低次元化されたモデルを自動的に計算します。このオプションの詳細については、打ち切りによる低次元モデル近似と DC 一致によるものとの比較を参照してください。
必要に応じて、ハンケル特異値の計算を特定の周波数範囲に制限します。そのような制限が便利なのは、特定のアプリケーションにとっての関心領域の外部にあるモードがモデルにある場合です。周波数制限を適用する場合、Model Reducer は、指定された周波数範囲内のみのエネルギーの寄与に基づいて、どの状態を打ち切るべきかを判断します。その範囲外のエネルギーの寄与を無視することで、さらに低次の、それでもアプリケーションにはまだ適切な近似が得られます。
特異値の計算を制限するには、[注目する範囲] をオンにします。次に、以下の手順で周波数範囲を指定します。
テキスト ボックスで、形式
[fmin,fmax]
のベクトルを入力する。単位はrad/TimeUnit
です。ここで、TimeUnit
は低次元化を行っているモデルのTimeUnit
プロパティです。応答プロットまたは誤差プロットで、影付きの領域の境界または影付きの領域自体をドラッグします。Model Reducer は、影付きの領域内のみの状態の寄与を解析します。
[注目する範囲] チェックボックスをオンまたはオフにしたり、選択範囲を変更したりすると、Model Reducer は新しい、低次元化されたモデルを自動的に計算します。
メモ
[注目する範囲] をオンにすると、[DC ゲインの保持] が自動的にオフになります。周波数制限を使用している場合でも DC の一致を強制するには、[DC ゲインの保持] を再度オンにします。周波数範囲の制限は、相対誤差の制御ではサポートされないことに注意してください。
絶対誤差または相対誤差を選択するには、[誤差範囲] で適切なオプションを選択します。[絶対] に設定すると絶対誤差 が制御され、[相対] に設定すると相対誤差 が制御されます。相対誤差が周波数全体のより良好な一致を表すのに対し、絶対誤差は大部分のゲインをもつ領域を強調します。
メモ
[誤差範囲] オプションを切り替えると、[注目する範囲] と [DC ゲインの保持] が自動的にオフになります。DC の一致を強制するには、[DC ゲインの保持] を再度オンにします。周波数範囲の制限は、相対誤差の制御ではサポートされないことに注意してください。
1 つ以上の低次元化されたモデルを格納してさらに解析を行う場合には、
をクリックします。新しいモデルがデータ ブラウザーに表示されます。複数の次元を指定していた場合は、それぞれの低次元化されたモデルが別々に表示されます。モデル名は、低次元化されたモデルの次数を反映します。
低次元化されたモデルをデータ ブラウザーで作成した後、引き続き低次元化パラメーターを変更して、解析および比較用として異なる次数をもつ低次元化されたモデルを作成することができます。
これで、低次元化されたモデルを使用してさらに解析を行うことができるようになります。以下に例を示します。
低次元化されたシステムの、ステップ応答またはニコルス線図などの他の応答を調べます。これを行うには、[プロット] タブのツールを使用します。詳細については、低次元化されたモデルの Model Reducer アプリによる可視化を参照してください。
さらに解析または制御設計を行うために、低次元化されたモデルを MATLAB ワークスペースにエクスポートします。[Model Reducer] タブで、
[エクスポート] をクリックします。
平衡化打ち切り用 MATLAB コードの生成
コマンド ラインでモデルの低次元化タスクをさらに行うために使用できる MATLAB スクリプトを作成するには、[低次元化されたモデルの作成] をクリックして、[MATLAB スクリプトの生成] を選択します。
Model Reducer は、[平衡化打ち切り] タブで設定したパラメーターやオプションによるモデルの低次元化を、balred
コマンドを使用して実行するスクリプトを作成します。スクリプトが MATLAB エディターで開きます。
他の環境での平衡化打ち切り
Model Reducer アプリで作業する代わりに、他の環境で平衡化打ち切りを行えます。
ライブ エディターでは、[モデル次数の低次元化] タスクを使用して、平衡化打ち切りによるモデルの低次元化を対話的に実行し、ライブ スクリプト内にコードを生成できます。例については、ライブ エディターでのモデルの低次元化を参照してください。
MATLAB コマンド プロンプト、スクリプトまたは関数内では、
balred
コマンドを使用します。たとえば、以下を参照してください。