Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

hsvdOptions

ハンケル特異値と入力/出力バランシングを計算するためのオプション セットを作成する

構文

opts = hsvdOptions
opts = hsvdOptions(Name,Value)

説明

opts = hsvdOptionshsvd および balreal コマンドのための既定のオプションを返します。

opts = hsvdOptions(Name,Value) は、1 つ以上の Name,Value のペア引数により指定されるオプションをもつオプション セットを返します。

入力引数

名前と値のペアの引数

Name,Value のペア引数をコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は一重引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペア引数を任意の順序で指定できます。

FreqIntervals

周波数を制限したハンケル特異値 (hsvd) または平衡実現 (balreal) を計算するための周波数範囲。2 列の行列として指定します。各行は周波数範囲 [fmin fmax] を指定します。ここで、fmin および fmax は非負の周波数であり、モデルの周波数単位で表されます。以下に例を示します。

  • モデルの周波数単位を rad/s と仮定して、計算の範囲を 3 ~ 15 rad/s に制限するには、FreqIntervals[3 15] に設定します。

  • 計算を 2 つの周波数範囲 (3 ~ 15 rad/s と 40 ~ 60 rad/s) に制限するには、[3 15; 40 60] を使用します。

  • カットオフ周波数 fcut より低いすべての周波数を指定するには、[0 fcut] を使用します。

  • カットオフを超えるすべての周波数を指定するには、連続時間では [fcut Inf]、離散時間では [fcut pi/Ts] を使用します。ここで、Ts はモデルのサンプル時間を表します。

既定値 [] では周波数制限が適用されません。この既定値は、連続時間の [0 Inf] または離散時間の [0 pi/Ts] と等価です。ただし、[] 以外の TimeIntervals 値を指定する場合、この制限によって FreqIntervals = [] が上書きされます。TimeIntervals 値と FreqIntervals 値の両方を指定する場合、計算ではこれらの間隔の和集合が使用されます。

既定値: []

TimeIntervals

時間を制限したハンケル特異値 (hsvd) または平衡実現 (balreal) を計算するための時間間隔。2 列の行列として指定します。各行は時間間隔 [tmin tmax] を指定します。ここで、tmin および tmax は非負の時間であり、モデルの時間単位で表されます。ソフトウェアはこれらの時間間隔にあるシステムのインパルス応答に対する状態の寄与のみを計算します。以下に例を示します。

  • モデルの時間単位を秒と仮定して、計算の範囲を 3 ~ 15 秒に制限するには、TimeIntervals[3 15] に設定します。

  • 計算を 2 つの時間間隔 (3 ~ 15 秒と 40 ~ 60 秒) に制限するには、[3 15; 40 60] を使用します。

  • ゼロから最大でカットオフ時間 tcut までのすべての時間を指定するには、[0 tcut] を使用します。カットオフ後のすべての時間を指定するには、[tcut Inf] を使用します。

既定値 [] では時間制限が適用されません。この既定値は [0 Inf] と等価です。ただし、[] 以外の FreqIntervals 値を指定する場合、この制限によって Timeintervals = [] が上書きされます。TimeIntervals 値と FreqIntervals 値の両方を指定する場合、計算ではこれらの間隔の和集合が使用されます。

AbsTol, RelTol

安定/不安定分解の絶対および相対の許容誤差。正のスカラー値。不安定な極をもつ入力モデル G の場合、hsvd および balreal はまず、安定/不安定分解 G → GS + GU を計算して安定ダイナミクスを抽出します。AbsTol および RelTol 許容誤差はこの分解の精度の制御に使用します。具体的には、G および GS + GU の周波数応答の差が AbsTol + RelTol*abs(G) を超えないようにします。これらの許容誤差を増やすことは、精度を犠牲にして、近傍の安定モードと不安定モードを分離する場合には役立ちます。詳細は、stabsep を参照してください。

既定値: AbsTol = 0; RelTol = 1e-8

Offset

安定/不安定境界のオフセット。正のスカラー値。安定/不安定分解では、安定項は次の条件を満たす極のみを含みます。

  • Re(s) < -Offset * max(1,|Im(s)|) (連続時間)

  • |z| < 1 - Offset (離散時間)

安定境界の近くの極を不安定として扱うには、Offset の値を増加します。

既定値: 1e-8

これらのオプションの詳細と計算に対するその影響の詳細については、hsvd を参照してください。時間および周波数を制限した状態の寄与は、時間および周波数を制限した可制御グラミアンと可観測グラミアンを使用して計算されます (gram および[1]を参照)。

すべて折りたたむ

以下で求められるシステムのハンケル特異値を計算します。

sys=(s+0.5)(s+10-6)(s+2)

Offset オプションを使用して、安定/不安定分解の安定項から s=10-6 にある極を hsvd によって強制的に排除します。

sys = zpk(-.5,[-1e-6 -2],1); 
opts = hsvdOptions('Offset',.001); 
hsvd(sys,opts)

このプロットは、1 つの状態が不安定として扱われることを示しています。hsvd は安定状態のエネルギーの寄与のみを計算します。

低周波数と高周波数のダイナミクスをもつモデルのハンケル特異値を計算します。計算を高周波数モードに絞り込みます。

モデルを読み込み、その周波数応答を調べます。

load modeselect Gms
bodeplot(Gms)

Gms には 2 組の共振があり、一方は周波数が相対的に低く、他方は周波数が相対的に高くなっています。低周波数ダイナミクスに対するエネルギーの寄与を除外して、高周波数モードのハンケル特異値を計算します。これを行うには、hsvdOptions を使用して 30 rad/s を超える周波数範囲を指定します。

opts = hsvdOptions('FreqInterval',[30 Inf]);
hsvd(Gms,opts)

参考文献

[1] Gawronski, W. and J.N. Juang. “Model Reduction in Limited Time and Frequency Intervals.” International Journal of Systems Science. Vol. 21, Number 2, 1990, pp. 349–376.

参考

| | |

R2010a で導入