Main Content

freqsep

説明

[G1,G2] = freqsep(G,fcut) は、線形動的システムを、指定されたカットオフ周波数で低速成分と高速成分に分解します。分解は G = G1 + G2 です。ここで、G1 には固有振動数が fcut 未満のすべてのモードが含まれます。

[G1,G2] = freqsep(G,[fmin,fmax]) は、G1 に固有振動数 fmin ≤ ωn ≤ fmax のすべてのモードが含まれ、G2 に残りのモードが含まれる分解を計算します。 (R2023b 以降)

[G1,G2] = freqsep(G,___,SepTol=st) は、精度損失係数を st と等しく設定します。 (R2023b 以降)

[G1,G2,info] = freqsep(___) は、ブロック対角化変換行列が含まれている構造体 info を返します。 (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

入力引数

すべて折りたたむ

分解する動的システム。ss または tf モデルなどの数値 LTI モデルとして指定します。

高速/低速分解のカットオフ周波数。正のスカラーとして指定します。出力 G1 には固有振動数が fcut 未満であるすべての極が含まれます。出力 G2 には固有振動数が fcut 以上であるすべての極が含まれます。

R2023b 以降

分解の周波数範囲。2 要素ベクトルとして指定します。出力 G1 には固有振動数が [fmin,fmax] の範囲内であるすべての極が含まれます。出力 G2 には残りの極が含まれます。

R2023b 以降

低速/高速分解の精度損失係数。非負のスカラー値として指定します。freqresp では、元のシステム G と分解されたシステムの和 G1+G2 の周波数応答の差が、G(s) の計算された値の絶対精度の SepTol 倍以下であることが保証されます。SepTol を増やすことは、精度を犠牲にして、低速/高速の境界をまたぐモードを分離するのに役立ちます。

出力引数

すべて折りたたむ

分解されたシステムの低速ダイナミクス。G と同じタイプの数値 LTI モデルとして返されます。G1 には、G の極のうち固有振動数が fcut 未満のものがすべて含まれ、G = G1 + G2 となります。

分解されたシステムの高速ダイナミクス。G と同じタイプの数値 LTI モデルとして返されます。Gf には、G の極のうち固有振動数が fcut 以上であるものがすべて含まれ、G = G1 + G2 となります。

R2023b 以降

分解に関する追加情報。次のフィールドをもつ構造体として返されます。

フィールド説明
TLブロック対角化変換の左辺の行列。Nx 行 Nx 列の次元をもつ行列として返されます。ここで Nx はモデル G 内の状態の数です。
TRブロック対角化変換の右辺の行列。Nx 行 Nx 列の次元をもつ行列として返されます。ここで Nx はモデル G 内の状態の数です。

アルゴリズムはモデル G の状態空間実現 (A, B, C, D) を以下に変換します。

TLATR=(A100A2),TLB=(B1B2),CTR=(C1C2)

入力モデル G が状態空間モデルでない場合、関数はこの引数に対して空の値 [] を返します。

代替機能

アプリ

Model Reducer

ライブ エディター タスク

モデル次数の低次元化

バージョン履歴

R2014a で導入

すべて展開する