ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

freqresp

グリッド上の周波数応答

構文

[H,wout] = freqresp(sys)
H = freqresp(sys,w)
H = freqresp(sys,w,units)
[H,wout,covH] = freqresp(idsys,...)

説明

[H,wout] = freqresp(sys) は、周波数 wout「動的システム モデル」 sys周波数応答を返します。freqresp コマンドは、sys のダイナミクスに基づいて周波数を自動的に判断します。

H = freqresp(sys,w) は、ベクトル w で指定された実周波数グリッドの周波数応答を返します。

H = freqresp(sys,w,units) は、文字列 units を使用して、w の周波数単位を明示的に指定します。

[H,wout,covH] = freqresp(idsys,...) はまた、「同定されたモデル」 idsys の周波数応答の共分散 covH も返します。

入力引数

sys

任意の「動的システム モデル」またはモデル配列。

w

周波数応答を評価する実周波数のベクトル。周波数を rad/TimeUnit 単位で指定します。ここで、TimeUnitsysTimeUnit プロパティ内で指定される時間単位です。

units

入力周波数ベクトル w の周波数単位を指定する文字列。単位には次の値をとることができます。

  • 'rad/TimeUnit' — 時間単位あたりのラジアン。sysTimeUnit プロパティで指定します。

  • 'cycles/TimeUnit' — 時間単位あたりの周期。sysTimeUnit プロパティで指定します。

  • 'rad/s'

  • 'Hz'

  • 'kHz'

  • 'MHz'

  • 'GHz'

  • 'rpm'

既定値: 'rad/TimeUnit'

idsys

任意の「同定されたモデル」

出力引数

H

周波数応答値を含む配列。

sysNy 出力と Nu 入力をもつ個々の動的システム モデルである場合、H は次元が Ny x Nu x Nw の 3 次元配列です。ここで、Nw は周波数点の数です。このため、H(:,:,k) は周波数が w(k) または wout(k) の場合の応答になります。

sys がサイズ [Ny Nu S1 ... Sn] のモデル配列である場合、H は次元が Ny x Nu x Nw x S1 x...xSn] 配列の配列になります。

sys が周波数応答データ モデル (frdgenfrd、または idfrd など) の場合、freqresp(sys,w)sys.frequency で定義された周波数範囲から外れる w の値を NaN に評価します。freqresp コマンドは、sys.frequency の周波数の間で内挿することができます。ただし freqresp では、sys.frequency によって定義された周波数期間を超えた部分は外挿できません。

wout

H の周波数応答値に対応する周波数のベクトル。freqresp への入力から w を省略すると、コマンドはシステム ダイナミクスに基づいて、wout の周波数を自動的に判断します。w を指定すると、wout = w になります。

covH

応答 H の共分散。共分散は、covH(i,j,k,:,:) に周波数 w(k) における i 番目の入力から j 番目の出力までの応答の 2 行 2 列の共分散行列が含まれる 5 次元配列です。この 2 行 2 列の行列の (1,1) 要素は、応答の実数部の分散です。(2,2) 要素は虚数部の分散です。(1,2) 要素と (2,1) 要素は、応答の実数部と虚数部の間の共分散です。

周波数応答

2 入力 2 出力システム

sys=[01s+1s1s+21]

の周波数応答を計算します。

sys11 = 0; 
sys22 = 1; 
sys12 = tf(1,[1 1]); 
sys21 = tf([1 -1],[1 2]);
sys = [sys11,sys12;sys21,sys22];

[H,wout] = freqresp(sys);

H は 2 x 2 x 45 の配列です。H の各要素 H(:,:,k) は、対応する周波数 wout(k) における sys のすべての入出力ペアの複素周波数応答を提供する 2 行 2 列の行列です。wout の 45 の周波数は、sys のダイナミクスに基づいて自動選択されます。

指定された周波数グリッドの応答

10 ~ 100 ラジアン/秒の対数的に等間隔な 200 の周波数点グリッドに基づいて、2 入力 2 出力システム

sys=[01s+1s1s+21]

の周波数応答を計算します。

sys11 = 0; 
sys22 = 1; 
sys12 = tf(1,[1 1]); 
sys21 = tf([1 -1],[1 2]);
sys = [sys11,sys12;sys21,sys22];

w = logspace(1,2,200);

H = freqresp(sys,w);

H は 2 x 2 x 200 の配列です。H の各要素 H(:,:,k) は、対応する周波数 w(k) における sys のすべての入出力ペアの複素周波数応答を提供する 2 行 2 列の行列です。

周波数応答および関連した共分散

同定されたモデルのピーク応答周波数での周波数応答および関連した共分散を計算します。

load iddata1 z1
model = procest(z1, 'P2UZ');
w = 4.26;
[H,~,covH] = freqresp(model, w)

代替法

evalfr を使用して、個々の周波数、または少数の周波数の周波数応答を評価します。freqresp は中~大規模の周波数ベクトル用に最適化されています。

詳細

すべて展開する

周波数応答

連続時間では、周波数 ω での周波数応答は s = jω での伝達関数値になります。状態空間モデルの場合、この値は以下によって与えられます。

H(jω)=D+C(jωIA)1B

離散時間では、周波数応答は実周波数に対応する単位円の点で評価された伝達関数です。freqresp は変換 z=ejωTs を使用して、実周波数 w(1),..., w(N) を単位円の点にマップします。Ts はサンプル時間です。この関数は、結果として生成される z 値の伝達関数の値を返します。サンプル時間が指定されていないモデルでは、freqresp は Ts = 1 を使用します。

アルゴリズム

伝達関数モデルまたは零点-極-ゲイン モデルの場合、freqresp は指定された周波数点で分子 (s) と分母 (s) を評価します。連続時間の状態空間モデル (A, B, C, D) の周波数応答は次のようになります。

D+C(jωA)1B,ω=ω1,,ωN

効率を高めるため、A は upper Hessenberg form に低減され、Hessenberg 構造を利用しつつ、線形方程式 (jω − A)X = B を各周波数点で解きます。Hessenberg 型に低減することで、効率と信頼性の両方の妥協を取ることができます。この技法の詳細は、[1] を参照してください。

参考文献

[1] Laub, A.J., "Efficient Multivariable Frequency Response Computations," IEEE® Transactions on Automatic Control, AC-26 (1981), pp. 407-408.

この情報は役に立ちましたか?