Model Reducer
線形時不変 (LTI) モデルの複雑度を低減
説明
Model Reducer アプリにより、高次 LTI モデルやスパース LTI モデルの低次元化近似を計算できます。低次元化されたモデルを使用すると、解析および制御設計を簡略化できます。簡略化されたモデルでは、理解や操作もより容易です。プラントのコントローラーを設計する前に関連するダイナミクスに焦点を置くためにプラント モデルを低次元化できます。またはモデルの低次元化を使用して、最大次数のコントローラーを簡略化できます。
次の方法のいずれかを使用すると、Model Reducer によってアプリケーションにとって重要なモデルの特性を維持しながらモデル次数を低次元化しやすくなります。
平衡化打ち切り — エネルギーの寄与が比較的小さい状態を削除します。
モーダル打ち切り — 位置や DC の寄与に基づいてモードを破棄します。
極-零点の簡略化 — 相殺またはほぼ相殺となる極-零点のペアを除去します。
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
を参照)。sparss
モデルやmechss
モデルなどのスパース状態空間モデル。
メモ
Model Reducer では、モデルの時間単位 (モデルの TimeUnit
プロパティで指定) は秒単位であることを前提にします。モデルに TimeUnit = 'seconds'
が設定されていない場合は、chgTimeUnit
を使用してモデルを秒単位に変換します。
低次元化の基準
— 低次元化されたモデルの状態数
次数
| 最大誤差
| 最小エネルギー
モデル次数の低次元化の基準を指定します。モデルの不安定な状態数と元のモデルの状態数の間の値が許可されます。単一値を指定する場合、Model Reducer はその次元のモデルの応答を計算して表示します。複数の値を指定する場合、Model Reducer はすべての指定された次元のモデルを計算して、その応答を同じプロット上に表示します。低次元化されたモデルをデータ ブラウザーに格納するには、[低次元化されたモデルの保存] をクリックします。
詳細については、平衡化打ち切りによるモデルの低次元化を参照してください。
比較プロット
— 比較プロットのタイプ
モデル応答
| 絶対誤差のプロット
| 相対誤差のプロット
比較プロットのタイプを指定します。
モデル応答
— モデルの周波数応答をプロットします。この周波数応答の比較は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。絶対誤差のプロット
— 絶対誤差 の周波数応答をプロットします。相対誤差のプロット
— 相対誤差 の周波数応答をプロットします。
詳細については、平衡化打ち切りによるモデルの低次元化を参照してください。
解析プロット
— 解析プロットのタイプ
ハンケル特異値
(既定値) | エネルギー
解析プロットのタイプを指定します。
ハンケル特異値
— ハンケル特異値と関連する誤差範囲の棒グラフ。エネルギー
— 正規化された状態エネルギーの棒グラフ。
モデル
— 低次元化のために現在選択されているモデル
モデル名
[モデル] ドロップダウン リストから選択して、低次元化するモデルを指定します。リストには、現在データ ブラウザー内にあるすべてのモデルが含まれます。MATLAB ワークスペースからデータ ブラウザーにモデルを取得するには、[Model Reducer] タブで [モデルのインポート] をクリックします。次がインポートできます。
プロパーな
tf
モデル、ss
モデル、またはzpk
モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。連続時間モデルに、むだ時間があってはなりません。むだ時間をもつ連続時間モデルを低次元化するには、最初に
pade
を使用して、むだ時間をモデル ダイナミクスとして近似します。離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは
absorbDelay
を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。
genss
モデルなどの一般化モデル。Model Reducer アプリは、model
ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue
を参照)。sparss
モデルやmechss
モデルなどのスパース状態空間モデル。
詳細については、モーダル打ち切りによるモデルの低次元化を参照してください。
メモ
[モデル次数の低次元化] では、モデルの時間単位 (モデルの TimeUnit
プロパティで指定) は秒単位であることを前提にします。モデルに TimeUnit = 'seconds'
が設定されていない場合は、chgTimeUnit
を使用してモデルを秒単位に変換します。
周波数範囲
— 周波数範囲
2 要素ベクトル
対象の周波数範囲。[Fmin,Fmax] の形式のベクトルとして指定します。この範囲外のモードは、アルゴリズムですべて破棄されます。
減衰範囲
— 減衰範囲
2 要素ベクトル
対象の減衰範囲。[ζmin,ζmax] の形式のベクトルとして指定します。この範囲外のモードは、アルゴリズムですべて破棄されます。
最小の DC の寄与
— DC の寄与の下限
非負のスカラー
低次元化されたモデルの DC の寄与の下限。非負のスカラーとして指定します。正規化された DC の寄与がこの値より小さいモードは、アルゴリズムですべて破棄されます。
比較プロット
— 比較プロットのタイプ
モデル応答
| 絶対誤差のプロット
| 相対誤差のプロット
| モード位置
比較プロットのタイプを指定します。
モデル応答
— モデルの周波数応答をプロットします。この周波数応答の比較は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。絶対誤差のプロット
— 絶対誤差 の周波数応答をプロットします。相対誤差のプロット
— 相対誤差 の周波数応答をプロットします。モード位置
— 元のモデルと低次元化されたモデルの極配置を比較します。
解析プロット
— 解析プロットのタイプ
DC の寄与
(既定値) | モード位置
| モード減衰と固有振動数
比較プロットのタイプを指定します。
DC の寄与
— 正規化された DC の寄与の棒グラフ。モード位置
— 極の位置をプロットします。モード減衰と固有振動数
— 極の減衰と固有振動数をプロットします。
モデル
— 低次元化のために現在選択されているモデル
モデル名
[モデル] ドロップダウン リストから選択して、低次元化するモデルを指定します。リストには、現在データ ブラウザー内にあるすべてのモデルが含まれます。MATLAB ワークスペースからデータ ブラウザーにモデルを取得するには、[Model Reducer] タブで [モデルのインポート] をクリックします。次がインポートできます。
プロパーな
tf
モデル、ss
モデル、またはzpk
モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。連続時間モデルに、むだ時間があってはなりません。むだ時間をもつ連続時間モデルを低次元化するには、最初に
pade
を使用して、むだ時間をモデル ダイナミクスとして近似します。離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは
absorbDelay
を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。
genss
モデルなどの一般化モデル。Model Reducer アプリは、model
ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue
を参照)。
極-零点ペアの簡略化
— 極-零点相殺の許容誤差
正のスカラー
スライダーを使用するか値をテキスト ボックスに入力して、極-零点相殺の許容誤差を設定します。この値が、Model Reducer が低次元化されたモデルから極と零を除去するには、極と零の間隔がどの程度近くなければならないかを決定します。スライダーを左に動かすか、テキスト ボックスに小さい値を入力すると、相殺される極および零が少なくなり、モデルはあまり簡略化されません。スライダーを右に動かすか、テキスト ボックスに大きい値を入力すると、より離れている極および零が相殺され、モデルがより簡略化されます。
詳細については、極-零点の簡略化を参照してください。
比較プロット
— 比較プロットのタイプ
モデル応答
| 絶対誤差のプロット
| 相対誤差のプロット
比較プロットのタイプを指定します。
モデル応答
— モデルの周波数応答をプロットします。この周波数応答の比較は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。絶対誤差のプロット
— 絶対誤差 の周波数応答をプロットします。相対誤差のプロット
— 相対誤差 の周波数応答をプロットします。
プログラムでの使用
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
を参照)。sparss
モデルやmechss
モデルなどのスパース状態空間モデル。
modelReducer(model1
,...,modelN
)
model1
,...,modelN
)modelReducer(
はアプリを開き、指定されたモデルをインポートします。model1
,...,modelN
)
modelReducer(sessionFile
)
sessionFile
)modelReducer(
はアプリを開き、以前に保存したセッションを読み込みます。sessionFile
)sessionFile
は、現在の作業ディレクトリ内または MATLAB パス上のセッション データ ファイルの名前です。
セッション データをディスクに保存するには、Model Reducer アプリの [Model Reducer] タブで、 [セッションの保存] をクリックします。保存されたセッション データには、現在のプロット構成とデータ ブラウザー内のすべてのモデルが含まれます。
バージョン履歴
R2016a で導入R2024a: sparss
モデルと mechss
モデルの低次元化モデルの取得
Model Reducer アプリを使用して、スパース状態空間モデルの低次元化されたモデルを対話形式で計算できるようになりました。このソフトウェアでは、以下の手法を使用したスパース モデルの次数の低次元化がサポートされています。
平衡化打ち切り — 寄与度の低い状態を破棄して低次の近似を得る。
モーダル打ち切り — 望ましくないモードを破棄して低次の近似を得る。
R2024a: [モードの選択] の方法が [モーダル打ち切り] に変更
Model Reducer アプリで、[モードの選択] の方法が [モーダル打ち切り] の方法に置き換えられています。モーダル打ち切りの方法では、モードを破棄する基準をより柔軟に選択できます。
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)