Main Content

コマンド ラインでの周波数応答の推定

この例では、MATLAB® コマンド ラインで Simulink® モデルの周波数応答を推定する方法を説明します。

Simulink モデルを開きます。

mdl = 'scdplane';
open_system(mdl)

周波数応答を推定する場合の一般的なモデル要件の詳細については、モデル要件を参照してください。

解析ポイントを使用して周波数応答推定の入力ポイントと出力ポイントを指定します。バス信号に解析ポイントを配置しないようにします。

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

線形解析ポイントの詳細については、モデルの一部を線形化するよう指定およびlinioを参照してください。

モデルを線形化し、結果の線形システムのダイナミクスに基づいて sinestream 信号を作成します。詳細については、推定用の入力信号およびfrest.Sinestreamを参照してください。

sys = linearize('scdplane',io);
input = frest.Sinestream(sys);

モデルが定常状態に達していない場合、周波数応答を推定する前に、定常状態の操作点を使用してモデルを初期化します。モデルをシミュレーションすることで、モデルが定常状態であるかどうかを確認できます。定常状態の操作点の検出の詳細については、定常状態の操作点の計算を参照してください。

線形化出力の信号パスで時変信号を生成するすべてのソース ブロックを検出します。このような時変信号は、線形化出力ポイントでの信号を妨げ、推定結果が不正確になる可能性があります。

srcblks = frest.findSources('scdplane',io);

時変ソース ブロックを無効にするには、frestimateOptions オプション セットを作成して BlocksToHoldConstant オプションを指定します。

opts = frestimateOptions;
opts.BlocksToHoldConstant = srcblks;

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

[sysest,simout] = frestimate('scdplane',io,input,opts);

sysest は推定された周波数応答です。simout は、シミュレートされた出力を表す Simulink.Timeseries オブジェクトです。

推定を高速化したり、そのメモリ要件を低減するには、推定速度とメモリの管理を参照してください。

シミュレーション結果のビューアーを開いて、推定された周波数応答を解析します。

frest.simView(simout,input,sysest)

推定された周波数応答 sysest を、システムの正確な線形化 sys と比較することもできます。

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

ボード線図プロットに、応答 sys が青い線として表示されます。

参考

| | | | |

関連するトピック