Main Content

モデル次数の低次元化

ライブ エディターで線形時不変 (LTI) モデルの複雑度を低減

R2019b 以降

説明

[モデル次数の低次元化] タスクにより、アプリケーションにとって重要なモデル特性を保持したまま、高次元モデルの低次元化近似を対話的に計算できます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。ライブ エディター タスク全般の詳細については、ライブ スクリプトへの対話型タスクの追加を参照してください。

低次元化されたモデルを使用すると、解析および制御設計を簡略化できます。簡略化されたモデルでは、理解や操作もより容易です。プラントのコントローラーを設計する前に関連するダイナミクスに焦点を置くためにプラント モデルを低次元化できます。モデルの低次元化を使用して、最大次数のコントローラーを簡略化することもできます。モデルの低次元化およびそれが役立つ状況の詳細については、モデルの低次元化の基礎を参照してください。

まず、低次元化するモデルと、モデルの低次元化の方法を選択します。それぞれの方法ごとに、タスクには、アプリケーションにとって重要なダイナミクスを低次元化されたモデルで確実に保持するためのコントロールとプロットが用意されています。

  • 平衡化打ち切り — エネルギーの寄与が比較的小さい状態を削除することにより、モデルの低次元近似を計算します。

  • モードの選択 — 対象とする周波数範囲を指定することによりモードを選択します。

  • 極-零点の簡略化 — 相殺またはほぼ相殺となる極-零点のペアを除去します。

関連する関数

[モデル次数の低次元化] によって生成されるモデルの低次元化コードには次の関数が使用されます。

Reduce Model Order task in Live Editor

タスクを開く

MATLAB エディターでライブ スクリプトに [モデル次数の低次元化] タスクを追加するには、次を行います。

  • [ライブ エディター] タブで [タスク][モデル次数の低次元化] を選択します。

  • スクリプトのコード ブロック内で、reducebalredminreal などの関連するキーワードを入力します。コマンド補完候補から [モデル次数の低次元化] を選択します。

パラメーター

すべて展開する

低次元化するモデルを選択します。利用可能なモデルのリストには、MATLAB ワークスペースのプロパーなモデル tfss、または zpk が含まれます。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。

  • 連続時間モデルはむだ時間をもつことができません。むだ時間をもつ連続時間モデルを低次元化するには、最初に pade を使用して、むだ時間をモデル ダイナミクスとして近似します。

  • 離散時間モデルはむだ時間をもつことができます。[平衡化打ち切り] の低次元化手法の場合、タスクでは absorbDelay を使用して遅延を z = 0 の極に変換してから、モデルを低次元化します。

メモ

[モデル次数の低次元化] では、モデルの時間単位 (モデルの TimeUnit プロパティで指定) は秒単位であることを前提にします。[平衡化打ち切り][モードの選択] の手法で、モデルに TimeUnit = 'seconds' が設定されていない場合、chgTimeUnit を使用してモデルを秒に変換してください。

それぞれの方法ごとに、[モデル次数の低次元化] タスクには、アプリケーションにとって重要なダイナミクスを低次元化されたモデルで確実に保持するためのコントロールとプロットが用意されています。

  • 平衡化打ち切り — エネルギーの寄与が比較的小さい状態を削除することにより、モデルの低次元近似を計算します。この方法を使用するには、低次元化されたモデルの状態数 (次元) を指定します。ハンケル特異値プロットは、元のモデルにおけるそれぞれの状態の相対的なエネルギー寄与を可視化します。タスクは、このプロットで選択された状態よりもエネルギーの低い状態を破棄します。この方法は balred コマンドを使用するコードを生成します。

    むだ時間をもつ離散時間モデルの場合、[モデル次数の低次元化] はモデルを平衡化打ち切りによって低次元化する前に、absorbDelay を使用してむだ時間を z = 0 での極に変換します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。

  • モードの選択 — 対象とする周波数範囲を指定することによりモードを選択します。タスクは、周波数応答プロットで指定された領域の外側にあるダイナミクスを破棄します。この方法は freqsep コマンドを使用するコードを生成します。

  • 極-零点の簡略化 — 相殺またはほぼ相殺となる極-零点のペアを除去します。タスクは、[許容誤差] パラメーターで指定されたしきい値を使って相殺される極-零点のペアを破棄します。さらに多くの状態を破棄するには許容誤差を大きくします。この方法は minreal コマンドを使用するコードを生成します。

平衡化打ち切りのパラメーター

低次元化されたモデルの状態数を指定します。モデルの不安定な状態数と元のモデルの状態数の間にある任意の値を使用できます。詳細については、平衡化打ち切りによるモデルの低次元化を参照してください。

低次元化したモデルの DC ゲインを元のモデルと一致させます。モデルの DC 動作がアプリケーションにおいて重要である場合、[DC ゲインの保持] をオンにします。高周波数の動作によく一致させるには、このパラメーターをオフにします。詳細については、平衡化打ち切りによるモデルの低次元化を参照してください。

既定では、[モデル次数の低次元化] はすべての周波数のハンケル特異値を解析します。特定のアプリケーションにとっての関心領域の外部にあるモードがモデルにあるとわかっている場合、この解析を特定の周波数範囲に制限すると便利です。周波数極限を適用する場合、[モデル次数の低次元化] は、指定された周波数範囲内のみのエネルギーの寄与に基づいて、どの状態が打ち切るべき低エネルギーの状態であるかを判断します。

特定の周波数範囲に対する状態の寄与の解析を制限するには、[周波数範囲] をオンにします。次に、応答プロット上の縦方向のカーソルをドラッグし、対象の周波数範囲を指定します。あるいは、テキスト ボックスに周波数の最小値と最大値を入力します。単位は rad/s です。モデルに TimeUnit = 'seconds' が設定されていない場合は、chgTimeUnit を使用してモデルを秒単位に変換します。

[モデル次数の低次元化] は、元のモデルと低次元化されたモデル間の周波数応答の比較を表示します。このプロットを使用することで、モデル低次元化のパラメーター値をさまざまに試行しながら、元のモデルと低次元化されたモデルの一致を監視できます。利用できる比較プロットは次のとおりです。

  • モデル応答 — 元のモデルと低次元化されたモデルの周波数応答です。SISO モデルの場合はボード線図、MIMO モデルの場合は特異値プロットとして表示されます。

  • 絶対誤差のプロットG-Gr の特異値です。ここで、G は元のモデルで Gr は現在の低次元化されたモデルです (SISO モデルの場合、特異値プロットは周波数応答の振幅です)。

  • 相対誤差のプロット(G-Gr)/G の特異値です。このプロットは、アプリケーションにとって重要な領域内のモデルのゲインが非常に高いか非常に低い場合に役立ちます。そのような領域では、絶対誤差は誤りを招く可能性があります。

モードの選択のパラメーター

ダイナミクスを保持する周波数範囲の上限と下限を指定します。応答プロットの縦方向のカーソルを使用して範囲を指定することもできます。[モデル次数の低次元化] は指定された範囲外のダイナミクスを破棄します。

この方法の詳細については、モーダル打ち切りによるモデルの低次元化を参照してください。

[モデル次数の低次元化] は、元のモデルと低次元化されたモデル間の周波数応答の比較を表示します。このプロットを使用することで、モデル低次元化のパラメーター値をさまざまに試行しながら、元のモデルと低次元化されたモデルの一致を監視できます。利用できる比較プロットは次のとおりです。

  • モデル応答 — 元のモデルと低次元化されたモデルの周波数応答です。SISO モデルの場合はボード線図、MIMO モデルの場合は特異値プロットとして表示されます。

  • 絶対誤差のプロットG-Gr の特異値です。ここで、G は元のモデルで Gr は現在の低次元化されたモデルです (SISO モデルの場合、特異値プロットは周波数応答の振幅です)。

  • 相対誤差のプロット(G-Gr)/G の特異値です。このプロットは、アプリケーションにとって重要な領域内のモデルのゲインが非常に高いか非常に低い場合に役立ちます。そのような領域では、絶対誤差は誤りを招く可能性があります。

極-零点の簡略化のパラメーター

極-零点相殺の余裕を指定します。この許容誤差内で相殺される極-零点のペアは低次元化したモデルから削除されます。応答プロットでスライダーを使って許容誤差を変更し、結果を確認することができます。

結果のパラメーター

[モデル次数の低次元化] は、元のシステムと低次元化したシステムの応答を指定のプロット タイプに表示するコードを生成します。利用できるプロットには以下が含まれます。

  • ステップ応答

  • インパルス応答

  • ボード線図

  • 特異値 (シグマ) プロット

  • 極-零点プロット

バージョン履歴

R2019b で導入

すべて展開する