Main Content

周波数応答の推定中にノイズ源を無効にする

以下の例では、周波数応答の推定時に Simulink® モデルのノイズ源を無効にする方法を説明します。このようなノイズ源は、線形化出力ポイントでの信号を妨げ、推定結果が不正確になる可能性があります。

モデルを開きます。

mdl = 'scdplane';
open_system(mdl)

線形化の入力ポイントと出力ポイントを指定します。

io(1) = linio('scdplane/Sum1',1);
io(2) = linio('scdplane/Gain5',1,'output');

モデルを線形化し、結果の線形システムのダイナミクスに基づいて sinestream 推定入力信号を作成します。

sys = linearize(mdl,io);
in = frest.Sinestream(sys);

周波数応答を推定します。

[sysest,simout] = frestimate(mdl,io,in);

推定された周波数応答と正確な線形化の結果を比較します。

frest.simView(simout,in,sysest,sys)

ボード線図では、推定される周波数応答は正確な線形化の応答とは一致しません。これは、モデルの Pilot ブロックおよび Wind Gust Disturbance ブロックの影響から生じる結果です。特定の周波数の時間応答に対するノイズの影響を表示するには、時間応答プロットを右クリックし、[フィルター後の定常状態の出力のみ表示] が選択されていることを確認します。

モデルでソース ブロックを見つけます。

srcblks = frest.findSources(mdl,io);

ソース ブロックを無効にした状態で、周波数応答推定を繰り返します。

opts = frestimateOptions('BlocksToHoldConstant',srcblks);
[sysest,simout] = frestimate(mdl,io,in,opts);
frest.simView(simout,in,sysest,sys)

結果の周波数応答は正確な線形化結果と一致します。

参考

| | |

関連するトピック