freqsep
低速/高速分解
構文
説明
[
は、G1
,G2
] = freqsep(G
,[fmin,fmax]
)G1
に固有振動数 fmin ≤ ωn ≤ fmax のすべてのモードが含まれ、G2
に残りのモードが含まれる分解を計算します。 (R2023b 以降)
例
モデルの高速ダイナミクスと低速ダイナミクスへの分解
動的システム モデルを読み込みます。
load numdemo Pd bode(Pd)
Pd
には 4 つの複素数の極と 1 つの実極があります。ボード線図には 210 rad/s 付近の共振と 10,000 rad/s 未満の高周波共振が示されています。
このモデルを 1000 rad/s 付近で分解してこれら 2 つの共振を分離します。
[Gs,Gf] = freqsep(Pd,10^3); bode(Pd,Gs,Gf) legend('original','slow','fast','Location','Southwest')
ボード線図には、低速成分 Gs
に低周波数の共振のみが含まれることが示されます。また、この成分は元のモデルの DC ゲインと一致します。高速成分 Gf
には高周波数の共振が含まれ、高周波における元のモデルの応答に一致します。2 つの成分の和 Gs+Gf
は元のモデルになります。
許容誤差の調整による近傍モードの分離
モデルを、間隔が狭い極の間で低速成分と高速成分に分解します。
次のシステムには、実極と複素共役極が含まれ、すべて s = -2 の近くにあります。
G = zpk(-.5,[-1.9999 -2+1e-4i -2-1e-4i],10);
低速成分に実極、高速成分に複素共役極が含まれるように、モデルを約 2 rad/s で分解します。
[Gs,Gf] = freqsep(G,2);
Warning: One or more fast modes could not be separated from the slow modes. To force separation, relax the accuracy constraint by increasing the "SepTol" factor (see "freqsepOptions" for details).
これらの極は間隔が狭すぎて freqsep
では分離できません。分離できるように相対許容誤差を増加させます。
[Gs,Gf] = freqsep(G,2,SepTol=5e10);
今度は freqsep
によりダイナミクスが分離されます。
slowpole = pole(Gs)
slowpole = -1.9999
fastpole = pole(Gf)
fastpole = 2×1 complex
-2.0000 + 0.0001i
-2.0000 - 0.0001i
周波数範囲のモードを取得するための状態空間モデルの分解
この例では、モデルを分解し、freqsep
を使用して指定した周波数範囲のモードを保持する方法を説明します。
モデル Gms
を読み込み、その周波数応答を調べます。
load modeselect Gms bodeplot(Gms)
freqsep
を使用して、周波数範囲 0.1 rad/s ~ 50 rad/s のダイナミクスを保持します。
[G1,G2] = freqsep(Gms,[0.1,50]);
この分解では、出力 G1
には固有振動数が [0.1,50]
の範囲内であるすべての極が含まれ、G2
には残りの極が含まれます。
bodeplot(Gms,G1,G2) legend
入力引数
G
— 分解する動的システム
数値 LTI モデル
分解する動的システム。ss
または tf
モデルなどの数値 LTI モデルとして指定します。
st
— 精度損失係数
10 (既定値) | 非負のスカラー
R2023b 以降
低速/高速分解の精度損失係数。非負のスカラー値として指定します。freqresp
では、元のシステム G
と分解されたシステムの和 G1+G2
の周波数応答の差が、G(s)
の計算された値の絶対精度の SepTol
倍以下であることが保証されます。SepTol
を増やすことは、精度を犠牲にして、低速/高速の境界をまたぐモードを分離するのに役立ちます。
出力引数
info
— その他の情報
構造体 | []
R2023b 以降
分解に関する追加情報。次のフィールドをもつ構造体として返されます。
フィールド | 説明 |
---|---|
TL | ブロック対角化変換の左辺の行列。Nx 行 Nx 列の次元をもつ行列として返されます。ここで Nx はモデル G 内の状態の数です。 |
TR | ブロック対角化変換の右辺の行列。Nx 行 Nx 列の次元をもつ行列として返されます。ここで Nx はモデル G 内の状態の数です。 |
アルゴリズムはモデル G
の状態空間実現 (A, B, C, D) を以下に変換します。
入力モデル G
が状態空間モデルでない場合、関数はこの引数に対して空の値 []
を返します。
バージョン履歴
R2014a で導入R2023b: 新しい構文
新しい構文 [G1,G2] = freqsep(G,[fmin,fmax])
は、G1
に固有振動数が [fmin,fmax]
の範囲内であるすべての極が含まれ、G2
に残りの極が含まれる分解を得る場合に使用します。
R2023b: 簡易構文の使用
R2023b 以降では、名前と値の引数として SepTol
オプションを直接指定できます。以下に例を示します。
[G1,G2] = freqsep(G,2,SepTol=1e9);
この変更の結果として、freqsepOptions
および構文 [Gs,Gf] = freqsep(G,fcut,options)
は推奨されません。
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)