Main Content

hsvdOptions

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

hsvdOptions は推奨されません。代わりに balredOptions を使用してください。詳細については、互換性についての考慮事項を参照してください。

構文

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

周波数を制限したハンケル特異値 (balred) または平衡実現 (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

時間を制限したハンケル特異値 (balred) または平衡実現 (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 値の両方を指定する場合、計算ではこれらの間隔の和集合が使用されます。

SepTol

安定/不安定分解での精度の値の最大損失。不安定な極をもつモデルの場合、balred はまず stabsep を使用して安定ダイナミクスを抽出します。'SepTol' を使用して分解の精度を制御します。

詳細については、balredOptions を参照してください。

既定値: SepTol = 'auto'

Offset

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

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

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

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

既定値: 1e-8

これらのオプションの詳細と計算に対するその影響の詳細については、balredOptions を参照してください。時間および周波数を制限した状態の寄与は、時間および周波数を制限した可制御グラミアンと可観測グラミアンを使用して計算されます (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)
ans = 2×1

       Inf
    0.1875

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

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

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

load modeselect Gms
bodeplot(Gms)

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

opts = hsvdOptions('FreqInterval',[30 Inf]);
hsvd(Gms,opts)
ans = 18×1
10-4 ×

    0.6237
    0.4558
    0.3183
    0.2468
    0.0895
    0.0847
    0.0243
    0.0028
    0.0000
    0.0000
      ⋮

参考文献

[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 で導入

すべて折りたたむ

R2021a: hsvdOptions は非推奨

R2021a 以降、balredOptions コマンドを使用して、特定のオプションをもつオプション セットを作成します。balredOptions には、ロールオフ特性を保持する新しいオプションも含まれます。

次の表に、hsvd の一般的な用法と、代わりに balredOptions を使用するためにコードを更新する方法を示します。

非推奨推奨

opts = hsvdOptions(Name,Value)

opts = balredOptions(Name,Value) は、指定されたオプションをもつオプション セットを作成します。詳細については、balredOptions を参照してください。

現時点で hsvdOptions を削除する予定はありません。