Model Reducer
線形時不変 (LTI) モデルの複雑度を低減
説明
Model Reducer アプリにより、高次のモデルの低次元化近似を計算できます。低次元化されたモデルを使用すると、解析および制御設計を簡略化できます。簡略化されたモデルでは、理解や操作もより容易です。プラントのコントローラーを設計する前に関連するダイナミクスに焦点を置くためにプラント モデルを低次元化できます。またはモデルの低次元化を使用して、最大次数のコントローラーを簡略化できます。
次の方法のいずれかを使用すると、Model Reducer によってアプリケーションにとって重要なモデルの特性を維持しながらモデル次数を低次元化しやすくなります。
平衡化打ち切り — エネルギーの寄与が比較的小さいステートを削除します。
モードの選択 — 対象とする周波数範囲を指定することによりモードを選択します。
極-零点の簡略化 — 相殺またはほぼ相殺となる極-零点のペアを除去します。
Model Reducer は、応答プロットおよび誤差のプロットを提供して、低次元化されたモデルが重要なダイナミクスを必ず保持するようにします。モデルの低次元化とそれが役立つ理由の詳細については、モデルの低次元化の基礎を参照してください。
モデルの低次元化を対話的に実行し、ライブ スクリプト用のコードを生成することができる Model Reducer アプリの代替方法については、ライブ エディターのモデル次数の低次元化タスクを参照してください。

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]
誤差範囲
— 誤差範囲のタイプ
absolute
(既定値) | relative
絶対誤差または相対誤差を選択するには、[誤差範囲] で適切なオプションを選択します。[絶対]
に設定すると絶対誤差 が制御され、[相対]
に設定すると相対誤差 が制御されます。相対誤差が周波数全体のより良好な一致を表すのに対し、絶対誤差は大部分のゲインをもつ領域を強調します。
詳細については、平衡化打ち切りによるモデルの低次元化を参照してください。
DC ゲインの保持
— 低次元化されたモデルと元のモデルとの DC ゲインの一致
オン (既定値) | オフ
[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
modelReducer
は、Model Reducer アプリをデータ ブラウザーにモデルがない状態で開きます。MATLAB ワークスペースからモデルをインポートするには、 [モデルのインポート] をクリックします。
modelReducer(model
)
model
)modelReducer(
はアプリを開き、指定された LTI モデルをインポートします。model
)model
には次のいずれかを指定できます。
プロパーな
tf
モデル、ss
モデル、またはzpk
モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。連続時間モデルに、むだ時間があってはなりません。むだ時間をもつ連続時間モデルを低次元化するには、最初に
pade
を使用して、むだ時間をモデル ダイナミクスとして近似します。離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは
absorbDelay
を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。
genss
モデルなどの一般化モデル。Model Reducer アプリは、model
ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue
を参照)。
modelReducer(model1
,...,modelN
)
model1
,...,modelN
)modelReducer(
はアプリを開き、指定されたモデルをインポートします。model1
,...,modelN
)
modelReducer(sessionFile
)
sessionFile
)modelReducer(
はアプリを開き、以前に保存したセッションを読み込みます。sessionFile
)sessionFile
は、現在の作業ディレクトリ内または MATLAB パス上のセッション データ ファイルの名前です。
セッション データをディスクに保存するには、Model Reducer アプリの [Model Reducer] タブで、 [セッションの保存] をクリックします。保存されたセッション データには、現在のプロット構成とデータ ブラウザー内のすべてのモデルが含まれます。
バージョン履歴
R2016a で導入R2023b: モデル次数の低次元化の新しいワークフローを使用したコードの生成
Model Reducer アプリで、モデル次数の低次元化の新しいワークフローを使用してコードが生成されるようになりました。たとえば、次の表で、生成されるコードにおけるモデル次数の低次元化ワークフローの変更を説明します。
メソッド | R2023b より前に生成されるコード | R2023b で生成されるコード |
---|---|---|
平衡化打ち切り | %% Reduce LTI model order using balanced truncation System = G; % Define System to reduce Order = 14; % Create option set for balred command Options = balredOptions(); % Offset for the stable/unstable boundary Options.Offset = 1e-05; % Compute reduced order approximation ReducedSystem = balred(System,Order,Options); % Create comparison plot bode(System,ReducedSystem); | %% Reduce LTI model order using balanced truncation System = G; % Define System to reduce % Compute reduced order approximation R = reducespec(System,'balanced'); % Set options for Balanced Truncation specification % Offset for the stable/unstable boundary R.Options.Offset = 1e-05; % Compute MOR data once R = process(R); % Get reduced-order model ReducedSystem = getrom(R,Order=14); % Create comparison plot bode(System,ReducedSystem); |
モードの選択 | %% Reduce LTI model order using mode selection System = G; % Define System to reduce UpperCutoffFrequency = 100; LowerCutoffFrequency = 10; % Create option set for freqsep command Options = freqsepOptions(); % Accuracy loss factor for stable/unstable decomposition Options.SepTol = 100; % Select modes between lower and upper cutoff frequencies ReducedSystem = freqsep(System,... [LowerCutoffFrequency UpperCutoffFrequency],Options); % Create comparison plot bode(System,ReducedSystem); | %% Reduce LTI model order using mode selection System = G; % Define System to reduce % Select modes between lower and upper cutoff frequencies R = reducespec(System,'modal'); % Set options for Modal Truncation specification % Accuracy loss factor for stable/unstable decomposition R.Options.SepTol = 1e-11; % Compute MOR data once R = process(R); % Get reduced-order model ReducedSystem = getrom(R,Frequency=[10 100],Method='truncate'); % Create comparison plot bode(System,ReducedSystem); |
新しいワークフローの詳細については、reducespec
およびTask-Based Model Order Reduction Workflowを参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)