ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

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

frestimate

Simulink モデルの周波数応答の推定

構文

sysest = frestimate(model,io,input)
sysest = frestimate(model,op,io,input)
[sysest,simout] = frestimate(model,op,io,input)
[sysest,simout] = frestimate(model,op,io,input,options)

説明

sysest = frestimate(model,io,input) は、周波数応答モデル sysest を推定します。model は Simulink® モデルを指定する文字列です。input は、sinestream、チャープ、ランダムな信号、または MATLAB® timeseries オブジェクトです。io は、getlinio を使用して取得したか、またはlinio を使用して作成した線形化 I/O オブジェクトを指定します。I/O ポイントは、バス信号上には置けません。推定は、Simulink モデルで指定された操作点で実行されます。

sysest = frestimate(model,op,io,input) は、周波数応答モデルを推定する前に、操作点 op でモデルを初期化します。operpoint または findop のいずれかを使用して op を作成します。

[sysest,simout] = frestimate(model,op,io,input) は、周波数応答モデルを推定し、シミュレーションされた出力 simout を返します。この出力は、nm 列の次元をもつ Simulink.Timeseries オブジェクトのセル配列です。n は線形化出力ポイントの数で、m は入力チャンネルの数です。

[sysest,simout] = frestimate(model,op,io,input,options) は、周波数応答オプション (options) を使用して、周波数応答を推定します。frestimateOptions を使用してこれらのオプションを指定します。

次の Simulink モデルの周波数応答を推定します。

% Create input signal for simulation:
input = frest.Sinestream('Frequency',logspace(-3,2,30));

% Open the Simulink model:
watertank

% Specify portion of model to estimate:
io(1)=linio('watertank/PID Controller',1,'input');
io(2)=linio('watertank/Water-Tank System',1,'openoutput');

% Specify the steady state operating point for the estimation.
watertank_spec = operspec('watertank');
op = findop('watertank',watertank_spec);

% Estimate frequency response of specified blocks:
sysest = frestimate('watertank',op,io,input);
bode(sysest)

 

次の Simulink モデルの周波数応答推定を使用して、正確な線形化の結果を検証します。

% Open the Simulink model:
watertank

% Specify portion of model to estimate:
io(1)=linio('watertank/PID Controller',1,'input');
io(2)=linio('watertank/Water-Tank System',1,'output');

% Specify operating point for linearization and estimation:
watertank_spec = operspec('watertank');
op = findop('watertank',watertank_spec);

% Linearize the model:
sys = linearize('watertank',op,io);

% Estimate the frequency response of the watertank model
input = frest.Sinestream('Frequency',logspace(-1,2,10));
[sysest,simout] = frestimate('watertank',op,io,input);

% Compare linearization and estimation results in frequency domain:
frest.simView(simout,input,sysest,sys)

詳細

すべて展開する

アルゴリズム

frestimate は、sinestream 信号の使用時に以下の操作を実行します。

  1. 設計した Sinestream 入力信号 uest(t) を、線形化入力ポイントに挿入します。

  2. 線形化出力ポイントで出力をシミュレーションします。

    関数 frestimate が、設計した信号を、線形化入力ポイントの既存の Simulink 信号に追加します。

  3. 各周波数における出力 (および対応する入力) の SettlingPeriods 部分を除去します。

    各周波数でシミュレーションされた出力は、遷移部分と定常状態部分をもっています。SettlingPeriods は、出力信号および入力信号の遷移成分に相当します。SettlingPeriods に続く周期は定常状態にあるとみなされます。

  4. 出力の残りの部分と、各入力周波数における対応する入力信号をバンドパス フィルターを使用してフィルター処理します。ほとんどのモデルが定常状態にないため、応答には低周波数遷移動作が含まれることがあります。一般的に、フィルター処理すると、入力周波数以外の周波数の影響が排除されるので、モデルの精度が向上しますが、サンプリング データおよび解析データの長さが有限である場合に問題となります。これらの影響は、"スペクトル リーケージ" と呼ばれます。

    フィルター処理に関連する遷移は、フィルター処理された定常状態の出力の最初の期間だけに生じます。フィルター処理の後、frestimate は入力/出力信号の最初の期間を破棄します。frestimate は有限インパルス応答 (FIR) を使用します。この次数は、期間内のサンプル数と一致しています。

  5. 出力信号 yest(t) のフィルター処理された定常状態部分の高速フーリエ変換と、フィルター処理された入力信号 uest(t) の高速フーリエ変換の比を計算することによって、処理された信号の周波数応答を推定します。

    各周波数における応答を計算するために、関数 frestimate では、その周波数でのシミュレーション出力のみ使用します。

参考

| | | | |

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