このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Model Reducer
線形時不変 (LTI) モデルの複雑度を低減
説明
Model Reducer アプリにより、高次 LTI モデルやスパース LTI モデルの低次元化近似を計算できます。低次元化されたモデルを使用すると、解析および制御設計を簡略化できます。簡略化されたモデルでは、理解や操作もより容易です。プラントのコントローラーを設計する前に関連するダイナミクスに焦点を置くためにプラント モデルを低次元化できます。またはモデルの低次元化を使用して、最大次数のコントローラーを簡略化できます。
次の方法のいずれかを使用すると、Model Reducer によってアプリケーションにとって重要なモデルの特性を維持しながらモデル次数を低次元化しやすくなります。
平衡化打ち切り — エネルギーの寄与が比較的小さい状態を削除します。
モーダル打ち切り — 位置や DC の寄与に基づいてモードを破棄します。
極-零点の簡略化 — 相殺またはほぼ相殺となる極-零点のペアを除去します。
固有直交分解 (POD) — シミュレーション データを用いて、状態ベクトルの主要なモード (主成分) を計算して抽出し、近似の平衡化打ち切りを実行します。 (R2025a 以降)
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
を使用してモデルを秒単位に変換します。
[平衡化打ち切り] タブと [固有直交分解] (R2025a 以降) タブ
モデル次数の削減基準を指定します。次のいずれかとして指定します。
次数
— 次数を削減したモデルの目的の次数。非負のスカラーまたはベクトルとして指定します。最大誤差
— 最大近似誤差。非負のスカラーまたはベクトルとして指定します。アプリは、誤差が指定値を超えない最小の次数を選択します。最小エネルギー
— 正規化されたエネルギーの下限。非負のスカラーまたはベクトルとして指定します。アプリは、正規化されたエネルギーが指定値より小さい状態をすべて破棄します。最大損失
— 総エネルギーに対する最大エネルギー損失の割合。非負のスカラーまたはベクトルとして指定します。アプリは、指定値を下回る損失をもつ最小の次数を選択します。
モデルの不安定な状態数と元のモデルの状態数の間の値が許可されます。スカラー値を指定する場合、Model Reducer はその次元のモデルの応答を計算して表示します。ベクトルを指定する場合、Model Reducer はすべての指定された次元のモデルを計算して、その応答を同じプロット上に表示します。低次元化されたモデルをデータ ブラウザーに格納するには、[低次元化されたモデルの保存] をクリックします。
比較プロットのタイプを指定します。
モデル応答
— モデルの周波数応答をプロットします。この周波数応答の比較は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。絶対誤差のプロット
— 絶対誤差 の周波数応答をプロットします。相対誤差のプロット
— 相対誤差 の周波数応答をプロットします。
[モーダル打ち切り] タブ
対象の周波数範囲。[Fmin,Fmax] の形式のベクトルとして指定します。この範囲外のモードは、アルゴリズムですべて破棄されます。
対象の減衰範囲。[ζmin,ζmax] の形式のベクトルとして指定します。この範囲外のモードは、アルゴリズムですべて破棄されます。
低次元化されたモデルの DC の寄与の下限。非負のスカラーとして指定します。正規化された DC の寄与がこの値より小さいモードは、アルゴリズムですべて破棄されます。
比較プロットのタイプを指定します。
モデル応答
— モデルの周波数応答をプロットします。この周波数応答の比較は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。絶対誤差のプロット
— 絶対誤差 の周波数応答をプロットします。相対誤差のプロット
— 相対誤差 の周波数応答をプロットします。モード位置
— 元のモデルと低次元化されたモデルの極配置を比較します。
比較プロットのタイプを指定します。
DC の寄与
— 正規化された DC の寄与の棒グラフ。モード位置
— 極の位置をプロットします。モード減衰と固有振動数
— 極の減衰と固有振動数をプロットします。
[極-零点の簡略化] タブ
[モデル] ドロップダウン リストから選択して、低次元化するモデルを指定します。リストには、現在データ ブラウザー内にあるすべてのモデルが含まれます。MATLAB ワークスペースからデータ ブラウザーにモデルを取得するには、[Model Reducer] タブで [モデルのインポート] をクリックします。次がインポートできます。
プロパーな
tf
モデル、ss
モデル、またはzpk
モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。連続時間モデルに、むだ時間があってはなりません。むだ時間をもつ連続時間モデルを低次元化するには、最初に
pade
を使用して、むだ時間をモデル ダイナミクスとして近似します。離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは
absorbDelay
を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。
genss
モデルなどの一般化モデル。Model Reducer アプリは、model
ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue
を参照)。
スライダーを使用するか値をテキスト ボックスに入力して、極-零点相殺の許容誤差を設定します。この値が、Model Reducer が低次元化されたモデルから極と零を除去するには、極と零の間隔がどの程度近くなければならないかを決定します。スライダーを左に動かすか、テキスト ボックスに小さい値を入力すると、相殺される極および零が少なくなり、モデルはあまり簡略化されません。スライダーを右に動かすか、テキスト ボックスに大きい値を入力すると、より離れている極および零が相殺され、モデルがより簡略化されます。
詳細については、極-零点の簡略化を参照してください。
比較プロットのタイプを指定します。
モデル応答
— モデルの周波数応答をプロットします。この周波数応答の比較は、SISO モデルの場合はボード線図であり、MIMO モデルの場合は特異値プロットです。絶対誤差のプロット
— 絶対誤差 の周波数応答をプロットします。相対誤差のプロット
— 相対誤差 の周波数応答をプロットします。
プログラムでの使用
modelReducer
は、Model Reducer アプリをデータ ブラウザーにモデルがない状態で開きます。MATLAB ワークスペースからモデルをインポートするには、 [モデルのインポート] をクリックします。
modelReducer(
はアプリを開き、指定された LTI モデルをインポートします。model
)model
には次のいずれかを指定できます。
プロパーな
tf
モデル、ss
モデル、またはzpk
モデル。モデルは、SISO、MIMO、連続、離散のいずれも許容されます。連続時間モデルに、むだ時間があってはなりません。むだ時間をもつ連続時間モデルを低次元化するには、最初に
pade
を使用して、むだ時間をモデル ダイナミクスとして近似します。離散時間モデルはむだ時間をもつことができます。平衡化打ち切りの低次元化手法の場合、アプリでは
absorbDelay
を使用して遅延を z = 0 の極に変換してから、モデルを削減します。追加の状態が応答プロットとハンケル特異値のプロットに反映されます。
genss
モデルなどの一般化モデル。Model Reducer アプリは、model
ですべての制御設計ブロックの現在の値またはノミナル値を使用します (getValue
を参照)。sparss
モデルやmechss
モデルなどのスパース状態空間モデル。
modelReducer(
はアプリを開き、指定されたモデルをインポートします。model1
,...,modelN
)
modelReducer(
はアプリを開き、以前に保存したセッションを読み込みます。sessionFile
)sessionFile
は、現在の作業ディレクトリ内または MATLAB パス上のセッション データ ファイルの名前です。
セッション データをディスクに保存するには、Model Reducer アプリの [Model Reducer] タブで、 [セッションの保存] をクリックします。保存されたセッション データには、現在のプロット構成とデータ ブラウザー内のすべてのモデルが含まれます。
バージョン履歴
R2016a で導入固有直交分解 (POD) 法を使用して、スパース モデルおよび通常の LTI モデルの次数を削減したモデルを対話的に計算できるようになりました。POD は、主要な状態の方向を抽出し、近似の平衡化打ち切りを実行するシミュレーション ベースの手法です。この手法では、シミュレーション中に状態ベクトルのスナップショットを取得し、主成分分析 (PCA) を使用して主方向を取得します。
Model Reducer は、平衡化打ち切りと固有直交分解法のモデル削減基準に基づいて、解析プロット タイプを自動的に選択するようになりました。たとえば、[低次元化の基準] を [最小エネルギー]
に設定すると、アプリは正規化された状態エネルギーのプロットを自動的に表示します。
Model Reducer アプリを使用して、スパース状態空間モデルの低次元化されたモデルを対話形式で計算できるようになりました。このソフトウェアでは、以下の手法を使用したスパース モデルの次数の低次元化がサポートされています。
平衡化打ち切り — 寄与度の低い状態を破棄して低次の近似を得る。
モーダル打ち切り — 望ましくないモードを破棄して低次の近似を得る。
Model Reducer アプリで、[モードの選択] の方法が [モーダル打ち切り] の方法に置き換えられています。モーダル打ち切りの方法では、モードを破棄する基準をより柔軟に選択できます。
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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)