このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,ライブエディターでモデル次数の低次元化タスクを使用して,平衡化打ち切り,モードの選択,および極——零点の簡略化によるモデルの低次元化を行うためのコードを生成する方法を説明します。モデル次数の低次元化タスクにより,アプリケーションにとって重要なモデル特性を保持したまま,高次元モデルの低次元化近似を対話的に計算できます。
このモデルを開くと,モデル次数の低次元化タスクを含む事前に構成されたスクリプトが表示されます。ライブエディタータスク一般に関する詳細については,ライブスクリプトへの対話型タスクの追加を参照してください。
ライブエディターで,低次元化するモデルをMATLAB®ワークスペースに読み込みます。
负载构建G大小(G)
状态空间模型,包含1个输出,1个输入和48个状态。
LTIモデルG
48岁的はの状態をもつ状態空間モデルです。これらの状態の一部は,重要なダイナミクスは保ちつつ,破棄することができます。モデルの低次元化を試行するには,モデル次数の低次元化ライブエディタータスクを開きます。[ライブエディター]タブで[タスク]、[モデル次数の低次元化)を選択します。
平衡化打ち切りは,エネルギーの寄与が比較的小さい状態を削除することにより,モデルの低次元近似を計算します。平衡化打ち切りの詳細については,平衡化打ち切りによるモデルの低次元化を参照してください。
モデル次数の低次元化タスクで平衡化打ち切りのコードを生成するには,低次元化するモデルとしてG
を選択します。[手法]として平衡截断
を指定します。
低次元化するモデルのターゲットの(低次元化された次数)を指定します。“ハンケル特異値のプロット”を使用してターゲットの次数を選択することができます。このプロットは,元のモデルにおけるそれぞれの状態の相対的なエネルギー寄与を可視化します。タスクは,このプロットで選択された状態よりもエネルギーの低い状態を破棄します。
応答プロットに元のモデルと低次元化されたモデルのボード線図が表示されます。異なる低次元化されたモデルを試します。ハンケル特異値のプロットで異なる次数を選択し,応答プロットで低次元化されたモデルがどのように変化するか観察します(元のモデルと低次元化されたモデルの間の絶対誤差または相対誤差を表示するには,[モデル応答)メニューを使用します)。
そのアプリケーションにとって重要なダイナミクスが適切に保持される,最も小さいモデル次数を選択します。特定の周波数範囲でのダイナミクスにのみ関心がある場合は,エネルギー寄与の計算をその範囲に限定することができます。そのためには,[周波数範囲]をオンにします。次に,最小周波数と最大周波数を入力するか,応答プロットの垂直方向スライダーを使用して範囲を指定します([周波数範囲]をオンにすると,(直流ゲインの保持]オプションはオフになります。これは0 rad / sは既定の周波数範囲内にないからです)。
タスクは,指定の低次元化されたモデルを計算するコードを生成します。生成されたコードを確認するには,タスクの下部にあるをクリックします。タスクが展開され,生成されたコードが表示されます。平衡化打ち切りの場合,[モデル次数の低次元化)はbalred
をbalredOptions
で指定されるオプションとともに使用します(応答プロットを生成するコードを含めるには,(出力プロット]メニューで目的とする応答を選択します)。
既定では,生成されたコードは出力変数の名前としてsysReduced
を使用します。別の出力変数名を指定するには,タスクの一番上にあるサマリー行に新しい名前を入力します。
タスクは新しい変数を反映して生成コードを更新し,低次元化された状態空間モデルがMATLAB®ワークスペースに新しい名前で表示されます。
低次元化されたモデルは,MATLABワークスペースで,解析および制御設計のために他のLTIモデルと同じように使用できます。この例では,低次元化されたモデルの応答を,別のモデル低次元化方法”モードの選択”を使用して作成された低次元化されたモデルと比較します。モードの選択は、指定した周波数領域の外側のダイナミクスを破棄することによってモデルを低次元化します。
平衡化打ち切りを使用して作成したモデルを上書きしないように,出力変数の名前をG_mr
に変更します。次に,低次元化の方法を模式选择
に設定します。プロットにある垂直方向のスライダーを使用して,ダイナミクスを保持する周波数領域を選択するか,[カットオフ周波数)に周波数範囲を入力します。
モードの選択の場合,[モデル次数の低次元化]はfreqsep
を使用するコードを生成します。極——零点プロットを追加することは,どの極とどの零点が低次元化されたモデルから除去されているかを観察するのに有用な場合があります。そのためには,(出力プロット]メニューで[Pole-Zero
]を選択します。この選択により,元のモデルと低次元化されたモデル両方の極と零点を示すプロットが生成されます。また,そのプロットを生成するためのコードを生成されたコードに追加します。
極——零点の簡略化は,極——零点のペアを相殺するか,全体のモデル応答に影響がない状態を削除することで,モデルの次数を減らします。極——零点のペアは,たとえば閉ループアーキテクチャを構築する際に導入されます。数値計算に関連する小さい標準誤差は,そのような相殺ペアからほぼ相殺ペアに変換できます。これらの状態を削除すると,解析および制御設計を簡略化しながらモデル応答の特性が保持されます。
モデル次数の低次元化の極——零点の簡略化の方法は,以下を自動的に削除します。
伝達関数から相殺またはほぼ相殺の極——零点のペア
状態空間モデルの不可観測状態または非可制御状態
入力や出力に構造的に接続されていない状態
他の方法で作成したモデルを上書きしないように,出力変数の名前をG_pz
に変更します。次に,低次元化の方法をPole-Zero取消
に設定します。[許容誤差]パラメーターを使用して,削除対象となる相殺された極——零点のペア間の近さを調整します。スライダーを[より大きい]に近づけると,より多くの極——零点ペアが相殺され,モデルの次数が小さくなります。(出力プロット]で[Pole-Zero
]を選択し,そのプロットを使用して,低次元化されたモデルからどの極と零点が削除されたかを観察します。
モデル次数の低次元化タスクは,MATLABワークスペース内に低次元化されたモデルを自動的に作成します。そのモデルは,解析および制御設計のために他のLTIモデルと同じように使用できます。たとえば,元のモデルと低次元化されたすべてのモデルの周波数応答を1つのプロット上で比較できます。
波德(G, G_bt G_mr G_pz,{0.1, 1000})传奇