Main Content

Model Reducer

線形時不変 (LTI) モデルの複雑度を低減

説明

Model Reducer アプリにより、高次のモデルの低次元化近似を計算できます。低次元化されたモデルを使用すると、解析および制御設計を簡略化できます。簡略化されたモデルでは、理解や操作もより容易です。プラントのコントローラーを設計する前に関連するダイナミクスに焦点を置くためにプラント モデルを低次元化できます。またはモデルの低次元化を使用して、最大次数のコントローラーを簡略化できます。

次の方法のいずれかを使用すると、Model Reducer によってアプリケーションにとって重要なモデルの特性を維持しながらモデル次数を低次元化しやすくなります。

  • 平衡化打ち切り — エネルギーの寄与が比較的小さいステートを削除します。

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

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

Model Reducer は、応答プロットおよび誤差のプロットを提供して、低次元化されたモデルが重要なダイナミクスを必ず保持するようにします。モデルの低次元化とそれが役立つ理由の詳細については、モデルの低次元化の基礎を参照してください。

モデルの低次元化を対話的に実行し、ライブ スクリプト用のコードを生成することができる Model Reducer アプリの代替方法については、ライブ エディターのモデル次数の低次元化タスクを参照してください。

Model Reducer app

Model Reducer アプリを開く

  • MATLAB® ツールストリップ: [アプリ] タブの [制御システム設計と解析] で、アプリ アイコンをクリックします。

  • MATLAB コマンド プロンプト: modelReducer と入力します。

パラメーター

すべて展開する

[平衡化打ち切り] タブ

[モデル] ドロップダウン リストから選択して、低次元化するモデルを指定します。リストには、現在データ ブラウザー内にあるすべてのモデルが含まれます。MATLAB ワークスペースからデータ ブラウザーにモデルを取得するには、[Model Reducer] タブで [モデルのインポート] をクリックします。次がインポートできます。

  • プロパーな tf モデル、ss モデル、または zpk モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。

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

    • 離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは absorbDelay を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。

  • genss モデルなどの一般化モデル。Model Reducer アプリは、model ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue を参照)。

メモ

Model Reducer では、モデルの時間単位 (モデルの TimeUnit プロパティで指定) は秒単位であることを前提にします。モデルに TimeUnit = 'seconds' が設定されていない場合は、chgTimeUnit を使用してモデルを秒単位に変換します。

低次元化されたモデルの状態数を指定します。モデルの不安定な状態数と元のモデルの状態数の間の値が許可されます。単一値を指定する場合、Model Reducer はその次元のモデルの応答を計算して表示します。複数の値を指定する場合、Model Reducer はすべての指定された次元のモデルを計算して、その応答を同じプロット上に表示します。低次元化されたモデルをデータ ブラウザーに格納するには、 をクリックします。

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

例: 5

例: 4:7

例: [3,7,10]

絶対誤差または相対誤差を選択するには、[誤差範囲] で適切なオプションを選択します。[絶対] に設定すると絶対誤差 GGr が制御され、[相対] に設定すると相対誤差 G1(GGr) が制御されます。相対誤差が周波数全体のより良好な一致を表すのに対し、絶対誤差は大部分のゲインをもつ領域を強調します。

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

[DC ゲインの保持] をオンにすると、低次元化されたモデルの DC ゲインが元のモデルの DC ゲインと等しくなります。モデルの DC の動作がアプリケーションにとって重要である場合、このオプションをオンのままにします。高周波数の動作に適切に一致させるには、このオプションをオフにします。

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

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

特定の周波数範囲に対する状態の寄与の解析を制限するには、[注目する範囲] をオンにします。次に、応答プロット上の縦方向のカーソルをドラッグし、対象の周波数範囲を指定します。あるいは、テキスト ボックスに形式 [fmin,fmax] のベクトルとして周波数範囲を入力します。単位は rad/TimeUnit です。ここで、TimeUnit は低次元化を行っているモデルの TimeUnit プロパティです。

[モードの選択] タブ

[モデル] ドロップダウン リストから選択して、低次元化するモデルを指定します。リストには、現在データ ブラウザー内にあるすべてのモデルが含まれます。MATLAB ワークスペースからデータ ブラウザーにモデルを取得するには、[Model Reducer] タブで [モデルのインポート] をクリックします。次がインポートできます。

  • プロパーな tf モデル、ss モデル、または zpk モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。

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

    • 離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは absorbDelay を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。

  • genss モデルなどの一般化モデル。Model Reducer アプリは、model ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue を参照)。

詳細については、モードの選択によるモデルの低次元化を参照してください。

メモ

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

低次元化されたモデルで保持するために最も低速なダイナミクスの周波数を入力します。このカットオフを下回る固有振動数をもつ極は、低次元化されたモデルから除去されます。

低次元化されたモデルで保持するために最も高速なダイナミクスの周波数を入力します。このカットオフを上回る固有振動数をもつ極は、低次元化されたモデルから除去されます。

[極-零点の簡略化] タブ

[モデル] ドロップダウン リストから選択して、低次元化するモデルを指定します。リストには、現在データ ブラウザー内にあるすべてのモデルが含まれます。MATLAB ワークスペースからデータ ブラウザーにモデルを取得するには、[Model Reducer] タブで [モデルのインポート] をクリックします。次がインポートできます。

  • プロパーな tf モデル、ss モデル、または zpk モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。

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

    • 離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは absorbDelay を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。

  • genss モデルなどの一般化モデル。Model Reducer アプリは、model ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue を参照)。

スライダーを使用するか値をテキスト ボックスに入力して、極-零点相殺の許容誤差を設定します。この値が、Model Reducer が低次元化されたモデルから極と零を除去するには、極と零の間隔がどの程度近くなければならないかを決定します。スライダーを左に動かすか、テキスト ボックスに小さい値を入力すると、相殺される極および零が少なくなり、モデルはあまり簡略化されません。スライダーを右に動かすか、テキスト ボックスに大きい値を入力すると、より離れている極および零が相殺され、モデルがより簡略化されます。

詳細については、極-零点の簡略化を参照してください。

プログラムでの使用

すべて展開する

modelReducer は、Model Reducer アプリをデータ ブラウザーにモデルがない状態で開きます。MATLAB ワークスペースからモデルをインポートするには、 [モデルのインポート] をクリックします。

modelReducer(model) はアプリを開き、指定された LTI モデルをインポートします。model には次のいずれかを指定できます。

  • プロパーな tf モデル、ss モデル、または zpk モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。

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

    • 離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは absorbDelay を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。

  • genss モデルなどの一般化モデル。Model Reducer アプリは、model ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue を参照)。

modelReducer(model1,...,modelN) はアプリを開き、指定されたモデルをインポートします。

modelReducer(sessionFile) はアプリを開き、以前に保存したセッションを読み込みます。sessionFile は、現在の作業ディレクトリ内または MATLAB パス上のセッション データ ファイルの名前です。

セッション データをディスクに保存するには、Model Reducer アプリの [Model Reducer] タブで、 [セッションの保存] をクリックします。保存されたセッション データには、現在のプロット構成とデータ ブラウザー内のすべてのモデルが含まれます。

バージョン履歴

R2016a で導入

すべて展開する

参考

関数

ライブ エディター タスク