このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Frequency Response Estimator
シミュレーション時またはリアルタイムでプラントの周波数応答を推定

ライブラリ:
Simulink Control Design /
Frequency Response Estimation
説明
Frequency Response Estimator ブロックを使用して、実験ベースの推定を物理プラントでリアルタイムに、または Simulink® モデルでシミュレーション中に実行します。推定された周波数応答を取得するため、ブロックは以下を同時に行います。
摂動信号をプラントの定格操作点に挿入
プラント出力から応答データを収集
推定された周波数応答を計算
プラントを摂動してシステム応答を測定する周波数を指定します。推定プロセスは start/stop 信号を介してトリガーされます。この信号を使って推定をいつでも開始できますが、通常はプラントが定格操作点にあるときに開始します。周波数応答が収束した後、推定を終了します。
周波数応答のオンライン推定は任意の安定した SISO プラントに使用できます。不安定なプラントの場合、閉ループが内的に安定であればオンライン推定はその閉ループ構成で機能します。閉ループ システムが内的に安定であるのは、ノミナル閉ループ特性方程式の根がすべて左開半平面にある場合のみです。伝達関数 G = NG/DG とコントローラー C = NC/DC をもつプラントの場合、特性方程式は次のとおりです。
DGDC + NGNC = 0.
実質的にこの条件は、G のどの不安定な極も GC の極-零点相殺によって安定化はしないということです。この条件を満たさない不安定なプラントにはオンライン推定を使用しないでください。
コードを生成して Frequency Response Estimator ブロックをハードウェアに展開し、推定をリアルタイムで実行することができます。ブロックは Simulink Coder™、Embedded Coder®、および Simulink PLC Coder™ でのコード生成をサポートします。HDL Coder™ でのコード生成はサポートしません。
Frequency Response Estimator ブロックの使い方の詳細については、次を参照してください。
周波数応答のオンライン推定の一般情報については、周波数応答のオンライン推定の基礎を参照してください。
例
シミュレーション中の周波数応答のオンライン推定
モデルのシミュレーション時に Frequency Response Estimator ブロックを使用して周波数応答のオンライン推定を実行する。
オフライン推定のための周波数応答実験データの収集
Frequency Response Estimator ブロックを使用して、周波数応答の推定実験を実行し、後でオフライン推定を行うためにデータを保存する。
非線形プラントの周波数応答のオンライン推定
Frequency Response Estimator ブロックを使用して、非線形プラントのオンライン推定をさまざまな定格操作点で実行する。
端子
入力
システムにブロックを挿入して、この端子が制御信号または他のプラント入力信号を受け入れるようにします。たとえば、閉ループ構成ではこの端子を、次のブロック線図に示すように接続できます。
開ループ構成では、この入力端子を、推定のための望ましい操作点へとプラントを駆動するソースに接続できます。たとえば、Constant ブロックを使用して適切な値を設定することができます。
データ型: single
| double
この端子をプラント出力に接続します。
データ型: single
| double
推定プロセスを開始し終了するために、start/stop
端子で信号を提供します。信号の値によって次のように処理されます。
負の値またはゼロから正の値に変わると、実験が開始します。
正の値から負の値またはゼロに変わると、実験が終了します。
通常、0 から 1 に変わると実験を開始し、1 から 0 に変わると実験を終了する信号を使用できます。実験が実行中でない場合、ブロックは u + Δu や Δu 端子で摂動を追加しません。この状態では、ブロックはプラントの動作に影響しません。
実験はプラントが目的の平衡操作点にあるときに開始してください。閉ループ構成では、コントローラーを使用してプラントを操作点へと駆動します。開ループ構成では、u に接続されたソース ブロックを使用してプラントを操作点へと駆動できます。
調査するすべての周波数で良好な推定を得るのに十分なデータをアルゴリズムが収集できるまで、実験を実行し続けます。ブロックは、推奨される実験の長さをブロック パラメーターの [実験の長さ] セクションに表示します。この値は実験のモードおよび実験に指定される周波数に基づいています。
[実験モード] が [Sinestream] の場合、推奨される実験の長さは次のようになります。
ここで
ωi は [周波数] パラメーターに指定されている i 番目の周波数 (rad/s 単位)。
Nfreq は [周波数] にある周波数の数。
Nset,i は、[整定周期数] パラメーターの対応する値。
Nestim,i は、[推定周期数] パラメーターの対応する値。
Ts は、[サンプル時間 (Ts)] パラメーターで指定される、実験のサンプリング時間。
[実験モード] が [重ね合わせ] の場合、推奨される実験の長さは最長周期の 6 倍です。システムが過渡状態の減衰やノイズの平均化による除去にあまり時間を必要としない場合は、実験の長さを短くすることができます。重ね合わせモードで実験の長さを決定する方法の詳細については、重ね合わせモードにおける実験の長さとデータ収集のウィンドウを参照してください。
[実験モード] が [PRBS] の場合 (R2023a 以降)、推奨される実験の長さは次のようになります。
ここで
Ts は実験のサンプリング時間であり、[サンプル時間 (Ts)] パラメーターで指定します。
n は PRBS 信号の次数であり、[信号の次数] パラメーターで指定します。
Np は PRBS 信号の周期数であり、[周期数] パラメーターで指定します。
実験中はプラントへの負荷外乱をすべて回避してください。負荷外乱によってプラント出力が歪み、周波数応答の推定の精度が低下することがあります。
データ型: single
| double
[周波数] パラメーターに値を指定します。周波数の選択方法については、このパラメーターを参照してください。
この端子から周波数を指定する場合は、[励起信号の周波数の数] パラメーターで周波数の数を指定します。
依存関係
この端子を有効にするには、[励起信号ソース] で [外部端子] を選択します。
データ型: single
| double
[振幅] パラメーターに値を指定します。詳細については、そのパラメーターを参照してください。
依存関係
この端子を有効にするには、[励起信号ソース] で [外部端子] を選択します。
データ型: single
| double
出力
システムにブロックを挿入して、次のブロック線図にあるように、この端子がプラントに入力信号を送るようにします。
実験が実行中である (start/stop が正である) 場合、ブロックはこの端子でプラントにテスト信号を挿入する。プラントを保護する飽和やレート制限がある場合は、信号を u + Δu からプラントに送ります。
実験が実行中でない (start/stop がゼロまたは負である) 場合、ブロックは信号を変更せずに u から u + Δu に渡す。この状態では、ブロックはプラントに影響しません。
依存関係
この端子を有効にするには、[出力信号の構成] で [制御動作 + 摂動] を選択します。
データ型: single
| double
ブロックはこの端子で摂動信号を生成します。通常、次のブロック線図に示すように、摂動をこの端子から Sum ブロックを介して挿入します。
実験が実行中である (start/stop が正である) 場合、ブロックはこの端子で摂動信号を生成。
実験が実行中でない (start/stop がゼロまたは負である) 場合、この端子での信号はゼロ。この状態では、ブロックはプラントに影響しません。
依存関係
この端子を有効にするには、[出力信号の構成] で [摂動のみ] を選択します。
データ型: single
| double
この端子の信号には、プラントに適用された摂動信号や、測定されたプラント応答周波数など、応答の推定実験中にブロックが収集したデータが含まれています。実験データをログに記録して後で使用する場合は、この端子を使用します。たとえば、データをログに記録して推定をオフラインで実行することにより、展開先環境のリソースを節約できます ([推定モード] を参照)。周波数応答実験のデータにアクセスするには 2 つの方法があります。
To Workspace ブロックを使用して、データを MATLAB® ワークスペースに timeseries データを含む構造体として書き込む。To Workspace ブロックの [保存形式] パラメーターは
[timeseries]
でなければなりません。構造体には、以下のフィールドがあります。Ready
— 推定の計算に含めるタイム ステップ (1) と、除外するタイム ステップ (0) を示す論理信号。たとえば sinestream モードでは、[整定周期数] パラメーターと [推定周期数] パラメーターによって決定される周期内に収まるデータについてのみ、この信号は 1 になります。重ね合わせモードでは、重ね合わせモードにおける実験の長さとデータ収集のウィンドウに説明されているウィンドウ内に収まるデータについてのみ、信号が 1 になります。PRBS 信号では、これは、実際の実験の長さに収まるデータの場合にのみ 1 になります。Perturbation
— プラントに適用される正弦波摂動Δu
PlantInput
— プラント入力信号u + Δu
(u
はブロック入力端子 y で収集された信号)PlantOutput
— ブロック入力端子 y で収集されたプラント出力信号
Simulink のデータ ログを使用して、データをワークスペースに
Simulink.SimulationData.Dataset
オブジェクトとして書き込む。この場合、4 つの timeseries 信号を含む構造体が、結果のデータセットのValues
フィールドに格納されます。たとえば、ログ データを変数logsout
に保存するようモデルが構成されており、data がログを取る唯一の端子であるとします。この場合、構造体はlogsout{1}.Values
に格納されます。
この端子からのデータを使用して、周波数応答の推定をオフラインで実行できます。たとえば、構造体を frestimate
コマンドに渡すことで、推定された周波数応答を MATLAB で計算することができます。実験データのアクセスと使用の詳細については、オフライン推定のための周波数応答実験データの収集を参照してください。
データ型: single
| double
この端子の信号は、[周波数] パラメーターで指定される各周波数につき 1 つのエントリをもつベクトルに、プラントの推定された周波数応答を含んでいます。To Workspace ブロックを使用して MATLAB ワークスペースにこの信号を書き込むか、Simulink データ ログを使用してワークスペースに Simulink.SimulationData.Dataset
オブジェクトとしてデータを書き込むことができます。
通常、最適な推定が得られるのは実験の一番最後です。そのため、この端子で履歴データをすべてログに記録する必要は必ずしもありません。代わりに、最後のステップを除き、すべてのタイム ステップの値を破棄することができます。たとえば、To Workspace ブロックで、[直近のデータ点数に制限] パラメーターを 1 に設定できます。その場合、実験が終了すると、結果のワークスペース変数には [周波数] パラメーターに指定されている各周波数ごとに 1 つの複素数値からなるベクトルが含まれています。
[PRBS] 実験モードでは、この端子の信号は推定実験が完了した後にのみ更新されます。 (R2023a 以降)
依存関係
この端子を有効にするには、[推定モード] を [オンライン] に設定します。
データ型: single
| double
パラメーター
ブロックは、このパラメーターで指定される固定サンプル時間で実行される離散時間ブロックです。推定できる最大の周波数はナイキスト周波数 π/Ts rad/s です。ナイキスト周波数の少なくとも 5 倍は速いサンプル時間を使用することをお勧めします。
Ts = π/(5ωmax) ≅ 0.6/ωmax or 0.1/fmax,
ここで、ωmax は [周波数] にある最も高い周波数 (rad/s 単位) で、fmax は Hz 単位での最も高い周波数です。サンプル時間は最速の望ましい周波数を推定するのに十分小さくなければなりませんが、不要な計算負荷が発生するほど小さくしてはなりません。
サンプル時間を -1 に設定すると、ソフトウェアはブロックの外のソースに基づいてコンパイル時にサンプル時間を決定します。サンプル時間を -1 に設定することで、推定の周波数をナイキスト周波数より低く抑えるブロックでの内部チェックは無効になります。
ヒント
展開されたブロックを、異なるサンプル時間を使ってアプリケーション内で実行する場合、このパラメーターを –1 に設定し、ブロックを Triggered Subsystem 内に配置します。その後、目的のサンプル時間でサブシステムをトリガーします。展開後にサンプル時間を変更する予定がない場合には、固定された有限のサンプル時間を指定してください。
プログラムでの使用
ブロック パラメーター: DiscreteTs |
型: スカラー |
値: 正のスカラー | –1 |
既定: 0.1 |
既定では、ブロックは制御信号を入力として受け取り、制御信号に実験の摂動を加えて端子 u+Δu に出力します。その後、次のブロック線図に示すように、この信号をプラント入力に送ります。
この既定の構成では、ブロックをコントローラーとプラントの間に挿入することが必要です。制御信号に摂動信号を自分で追加する場合は [摂動のみ] を選択します。この構成では、端子 Δu において、ブロックの出力に摂動信号のみが含まれます。次のブロック線図のように、たとえば Sum ブロックを使用して、この摂動信号をプラントに挿入します。
この構成では Frequency Response Estimator が閉ループの一部ではないため、ループ構成を中断せずにオプションでコメント アウトすることができます。
シミュレーション環境またはハードウェア要件に基づいて浮動小数点精度を指定します。
プログラムでの使用
ブロック パラメーター: BlockDataType |
タイプ: 文字ベクトル |
値: 'double' | 'single'
|
既定: 'double' |
実験の摂動信号の周波数と振幅を、ブロック パラメーターと外部端子のどちらを介して提供するかを指定します。
ブロック パラメーター — [周波数] および [振幅] パラメーターを有効にする場合に選択します。
外部端子 — w および amp 入力端子を有効にする場合に選択します。展開後に摂動信号の周波数と振幅を変更する場合はこのオプションを使用します。
プログラムでの使用
ブロック パラメーター: SineSource |
タイプ: 文字ベクトル、string |
値: 'Block parameters' | 'External ports'
|
既定: 'Block parameters' |
プラントの周波数応答を推定する周波数。ブロックは、摂動をこれらの各周波数で挿入します。推定できる最も高い周波数はナイキスト周波数 π/Ts rad/s により制限されます。ここで、Ts は [サンプル時間 (Ts)] パラメーターに設定した値です。
[実験モード] が [重ね合わせ] の場合、次のことが言えます。
妥当な収束速度と推定の精度を維持するため、推定に約 20 ~ 30 個の周波数を使用するのが一般的です。指定する周波数の数は約 50 個以内にすることをお勧めします。
最も低い周波数から最も高い周波数までの範囲を約 2 decade 以下に制限することをお勧めします。この制限によって、一部の周波数の応答が優勢に過ぎて、他の周波数での応答の推定に悪影響が出る可能性は小さくなります。
重ね合わせモードと 50 を超える数の周波数を使用して Frequency Response Estimator ブロックを含むモデルを線形化しようとすると、エラーが発生することがあります。エラーには、"モデルは線形化に対して多すぎる要素を含んでいます。モデルのサイズを減らしてください。" と表示されます。線形化を完了するには、周波数応答推定器ブロックをコメント アウトするか、周波数の数を減らさなければなりません。
[実験モード] が [Sinestream] の場合、周波数の数や周波数範囲に推奨される制限はありません。ただし、sinestream 摂動は順番に処理されることから、周波数点を追加するごとに必要な実験時間は長くなります (詳細については、start/stop 入力端子を参照)。また、周波数範囲が広すぎると高周波数で高速サンプル時間の使用が必要になりますが、これは低周波数では非効率的です。
[実験モード] が [PRBS] の場合、周波数の範囲は実験の長さに影響します。最も低い周波数の値により、指定した周波数をカバーできる最小の信号の次数が決定されます。最も低い周波数範囲を下げると、必要な最小の信号の次数が増加するため、実験の長さが増大します。ただし、PRBS 入力信号の広帯域特性のため、周波数点を追加しても実験の長さは増大しません。
閉ループ構成でブロックを使用する場合、開ループ帯域幅よりはるかに高い周波数では推定の精度が低くなる可能性があります。
ヒント
このパラメーターは調整できません。展開の後に周波数を指定するには、[励起信号ソース] を [外部端子] に設定して w 入力端子を使用します。詳細については、リアルタイムで使用するための周波数応答の推定アルゴリズムの展開を参照してください。
依存関係
このパラメーターを有効にするには、[励起信号ソース] を [ブロック パラメーター] に設定します。
プログラムでの使用
ブロック パラメーター: Frequencies |
型: ベクトル |
値: 正の実数値 |
既定: '[0.5 1 2]' |
[周波数] パラメーターの値がラジアン/秒単位かヘルツ単位かを示します。
このパラメーターを有効にするには、[励起信号ソース] を [ブロック パラメーター] に設定します。
プログラムでの使用
ブロック パラメーター: FreqUnits |
タイプ: string、文字ベクトル |
値: 'rad/s' 、'Hz' |
既定: 'rad/s' |
プラントに挿入される摂動信号の振幅を指定します。すべての周波数に同じ振幅を使用するには、スカラー値を指定します。推定する周波数の範囲内で応答が大きく変化することがわかっている場合、ベクトルを使って各周波数に別々の振幅を指定できます。たとえば、既知の共振周波数の周りで小さい値を使用し、ロールオフ周波数より上では大きい値を使用することができます。ベクトルは [周波数] に指定するベクトルと同じ長さでなければなりません。
振幅は以下の条件を満たしていなければなりません。
摂動がプラント アクチュエータのすべての不感帯を克服してノイズ レベルを超える応答を生成できる程度に大きい
定格操作点近傍のほぼ線形の領域内でプラントを実行し続け、プラントの入力または出力の飽和を回避できる程度に小さい
[実験モード] が [重ね合わせ] の場合、正弦波信号は位相シフトなしで重ね合わせられます。したがって最大摂動は、すべての振幅の総和を上限として、個々のどの成分の振幅よりも大きくなることがあります。取り得る最大摂動がプラント アクチュエータの範囲内に必ず収まるようにします。アクチュエータが飽和状態になると、推定周波数応答に誤りが発生することがあります。
ヒント
このパラメーターは調整できません。展開後に振幅を指定するには、[励起信号ソース] を [外部端子] に設定して amp 入力端子を使用します。詳細については、リアルタイムで使用するための周波数応答の推定アルゴリズムの展開を参照してください。
依存関係
このパラメーターを有効にするには、[励起信号ソース] を [ブロック パラメーター] に設定します。
プログラムでの使用
ブロック パラメーター: Amplitudes |
型: スカラー、ベクトル |
既定: '1' |
外部端子 w を介して実験の周波数を提供する場合は、周波数の数 (w のベクトル信号の長さ) をこのパラメーターで指定します。
依存関係
このパラメーターを有効にするには、[励起信号ソース] を [外部端子] に設定します。
プログラムでの使用
ブロック パラメーター: NumOfFreq |
型: スカラー |
既定: '3' |
各周波数の摂動を逐次正弦波 ([Sinestream])、同時正弦波 ([重ね合わせ])、または 2 値疑似乱数列 ([PRBS]) のいずれとして適用するのかを指定します。
Sinestream — このモードでは、摂動が各周波数で別々に適用されます。各周波数でシステムに許可される整定までの周期数を、[整定周期数] パラメーターを使用して指定します。応答を測定する周期の数を、[推定周期数] パラメーターを使用して指定します。推定に用いる sinestream 信号の詳細については、sinestream 入力信号を参照してください。
重ね合わせ — このモードでは、指定された周波数がすべて一度に摂動信号に含められます。周波数のベクトル ω = [ω1, … , ωN]、振幅 A = [A1, … , AN] での周波数応答の推定の場合、摂動信号は次のようになります。
重ね合わせ信号内の周波数は約 50 個を超えないようにすることをお勧めします。
PRBS — 2 つの値の間で切り替わる、ホワイトノイズのようなプロパティをもつ、確定的な 2 値疑似乱数列。PRBS 信号は、sinestream の入力信号を使用する場合と比較して、合計の推定時間が削減される一方で、比較可能な結果が得られます。PRBS 信号は、通信システムやパワー エレクトロニクス システム向けに周波数応答を推定するのに有用です。詳細については、PRBS 入力信号を参照してください。 (R2023a 以降)
[Sinestream] モードは、[重ね合わせ] モードに比べてより正確な場合があり、より広範な周波数を受け入れることができます ([周波数] パラメーターを参照)。また、[Sinestream] モードでは、摂動の合計サイズが [振幅] パラメーターで指定されている値を超えることはないため、割り込みも少なくなります。ただし、sinestream 摂動は順番に処理されることから、周波数点を追加するごとに推奨される実験時間は長くなります (詳細については、[start/stop] 入力端子を参照)。したがって、推定実験は通常、[Sinestream] モードと比較して [重ね合わせ] モードの方がはるかに高速で、満足できる結果が得られます。
PRBS 入力信号は広帯域信号であるため、[PRBS] モードには他の 2 つのモードより多くの周波数点を含めることができます。同様の周波数範囲をカバーするには、実験の長さは通常、他の 2 つのモードよりはるかに短くなります。ただし、結果の速度と品質の間にトレードオフが生じます。得られる品質結果を向上させるには、複数の周期をもつ信号を使用できますが、その場合も実験の長さが長くなります。 (R2023a 以降)
ヒント
重ね合わせモードと 50 を超える数の周波数を使用して Frequency Response Estimator ブロックを含むモデルを線形化しようとすると、エラーが発生することがあります。エラーには、"モデルは線形化に対して多すぎる要素を含んでいます。モデルのサイズを減らしてください。" と表示されます。線形化を完了するには、周波数応答推定器ブロックをコメント アウトするか、周波数の数を減らさなければなりません。
プログラムでの使用
ブロック パラメーター: ExperimentMode |
タイプ: 文字ベクトル、string |
値: 'Sinestream' | 'Superposition' | 'PRBS'
|
既定: 'Sinestream' |
sinestream 実験モードでは、ブロックは [周波数] に指定された各周波数で別々に摂動を挿入します。[整定周期数] を使用して、各周波数で推定を開始する前に待機する時間を指定します。待機することでプラント応答にある過渡状態をすべて減衰させ、推定された周波数応答の精度を高めます。待機する周期数が増えると推定の精度は改善されますが、実験時間は長くなります。
すべての周波数に同数の整定周期を使用するには、正のスカラー値を指定します。推定する周波数の範囲内で過渡状態の整定速度に違いのあることがわかっている場合は、ベクトルを使って各周波数に別々の整定周期数を指定できます。
推定に用いる sinestream 信号の詳細については、sinestream 入力信号を参照してください。
調整可能: Yes
依存関係
このパラメーターを有効にするには、[実験モード] で [Sinestream] を選択します。
プログラムでの使用
ブロック パラメーター: NumOfSetPeriod |
型: 整数、整数のベクトル |
既定: '2' |
sinestream 実験モードでは、ブロックは [周波数] に指定された各周波数で別々に摂動を挿入します。[推定周期数] を使用して、各周波数での推定に使用する挿入信号の周期数を指定します。使用する周期数が増えると推定の精度は改善されますが、実験時間は長くなります。
すべての周波数に同数の推定周期を使用するには、2 以上のスカラー値を指定します。ベクトルを使用して各周波数に異なる数の整定周期を指定することもできます。この方法は、一部の周波数でシステムのノイズが少ないことがわかっている場合や、一部の周波数での精度についてはさほど心配がない場合に便利です。
推定に用いる sinestream 信号の詳細については、sinestream 入力信号を参照してください。
調整可能: Yes
依存関係
このパラメーターを有効にするには、[実験モード] で [Sinestream] を選択します。
プログラムでの使用
ブロック パラメーター: NumOfEstPeriod |
型: 整数、整数のベクトル |
既定: '4' |
重ね合わせ実験モードでは、実験の実行中に、ブロックがすべての周波数で同時に摂動を適用します。ブロックはこのパラメーターを使用して、推定に使用するデータ収集ウィンドウの長さを決定します。データ収集ウィンドウの詳細については、重ね合わせモードにおける実験の長さとデータ収集のウィンドウを参照してください。
依存関係
このパラメーターを有効にするには、[実験モード] で [重ね合わせ] を選択します。
プログラムでの使用
ブロック パラメーター: NumOfSlowestPeriod |
型: 整数 |
既定: '3' |
R2023a 以降
PRBS 信号の周期数。正の整数として指定します。
指定した周波数およびサンプル時間に基づいて、ブロックは、このパラメーターの推奨される値をブロック ダイアログの [実験の長さ] セクションに表示します。
依存関係
このパラメーターを有効にするには、[実験モード] で [PRBS] を選択します。
プログラムでの使用
ブロック パラメーター: NumOfPRBSPeriod |
型: 正の整数 |
既定: '1' |
R2023a 以降
信号の次数。正の整数として指定します。PRBS 信号の最大の長さは 2n–1 (n は信号の次数) です。正確な周波数応答推定を取得するには、PRBS の長さは十分に大きくなければなりません。
与えられたサンプル時間に対して、より高い周波数解像度を得るには、より大きい信号の次数を指定します。24 以下の値を指定して、実験の実行時間が長くなりすぎないようにします。
指定した周波数およびサンプル時間に基づいて、ブロックは、このパラメーターの推奨される値をブロック ダイアログの [実験の長さ] セクションに表示します。
依存関係
このパラメーターを有効にするには、[実験モード] で [PRBS] を選択します。
プログラムでの使用
ブロック パラメーター: PRBSSignalOrder |
型: 正の整数 ≤ 24 |
既定: '12' |
R2023b 以降
ブロックは、指定された周波数とサンプル時間に基づいて、[周期数] パラメーターと [信号の次数] パラメーターに対する推奨値を計算します。PRBS 信号パラメーターの片方または両方で自動生成された値を使用する場合は、このオプションを有効にします。これは、周波数範囲またはサンプル時間を変更して複数の実験を実行する場合に役立ちます。
依存関係
このパラメーターを有効にするには、[実験モード] を [PRBS] に設定します。
[励起信号ソース] が [外部端子] に設定されていて、[推定モード] が [オンライン] の場合、このパラメーターは使用できません。
周波数応答の推定の計算をオンラインで実行するか、それとも後ほどオフラインで推定するために、周波数応答データの収集のみを行うかを指定します。
オンライン — ブロックは実験の実行中に実験データを収集し、推定された周波数応答を計算します。結果である推定された周波数応答は frd 端子で取得できます (詳細については、この端子の説明を参照)。
オフライン — ブロックは実験データの収集のみを行い、推定された周波数応答を計算しません。実験データは data 端子で取得できます (詳細については、この端子の説明を参照)。その後、周波数応答の推定をオフラインで実行できます。たとえば、
frestimate
コマンドにより、MATLAB にあるデータを使用して推定された周波数応答を計算することができます。詳細については、オフライン推定のための周波数応答実験データの収集を参照してください。
プログラムでの使用
ブロック パラメーター: EstimationMode |
タイプ: 文字ベクトル、string |
値: 'Online' | 'Offline'
|
既定: 'Online' |
選択して、推定された周波数応答を示すボード線図を生成します。プロットは推定実験中に定期的に更新されます。予想されるプラント応答や他の関連ベースラインを表す LTI モデルがある場合は、[ベースラインのプラント モデル] パラメーターを使用してプロットに参照として含めます。
ヒント
Frequency Response Estimator ブロックを含むモデルの平衡化または線形化を高速にするには、このパラメーターをオフにします。
プログラムでの使用
ブロック パラメーター: UseBodePlot |
タイプ: 文字ベクトル、string |
値: 'off' | 'on'
|
既定: 'off' |
推定された周波数応答と共にプロットするベースライン モデルを指定します。tf
、ss
、frd
モデルなどの LTI モデルを使用します。
例: tf(10,[1 10 1000])
依存関係
このパラメーターを有効にするには、[ボード線図の表示] を選択します。
プログラムでの使用
ブロック パラメーター: BaselinePlant |
型:LTI モデル |
既定: '[]' |
周波数応答の推定実験の最中、ブロックはこのパラメーターに指定された頻度で、ボード線図の推定された周波数応答を更新します。ボード線図の更新に時間がかかりすぎる場合は値を増やします。
[PRBS] モードでは、推定は実験の最後に行われるため、ボード線図は 1 回だけ更新されます。
依存関係
このパラメーターを有効にするには、[ボード線図の表示] を選択します。
プログラムでの使用
ブロック パラメーター: PlotRefreshFactor |
型: 整数 |
既定: '100' |
詳細
ブロックは実験の持続時間中 (start/stop 信号が正である間) に摂動 Δu を提供します。ブロックは、次の図に示すように、システムの過渡状態の消滅を待つ時間および推定に使用するサイクル数を決定します。
Texp は、start/stop 信号の構成で指定される実験の持続時間です (詳細については、ブロックのリファレンス ページの start/stop 端子の説明を参照)。ブロックは推定の計算に NlongestP のウィンドウで収集されたデータだけを使用します。ここで、P は周波数ベクトル ω で最も遅い周波数の周期、Nlongest は [推定に使用される最も低い周波数の周期数] ブロック パラメーターの値です。このウィンドウの前のサイクルはすべて破棄されます。したがって、整定時間は Tsettle = Texp – NlongestP です。システムがすばやく整定されることがわかっている場合、Nlongest を変更せずに Texp を短くして、実質的に Tsettle を短縮することができます。システムにノイズが多い場合は、データ収集ウィンドウでより多くの平均化が行われるように、Nlongest を大きくできます。いずれの場合も、十分な整定とデータ収集がなされるよう、常に十分な長さの Texp を選択します。Texp = 2NlongestP が推奨されます。
アルゴリズム
[実験モード] が [Sinestream] の場合、ブロックは相関解析メソッドを使用します。このメソッドでは、測定されたプラント出力 y(t) がテスト周波数 ω で正弦信号および余弦信号と混合されます。その後、結果の信号が時間 T = N(2π/ω) で積分され平均化されます。ここで、N は [推定周期数] パラメーターの整数値です。これらの操作を次の図に示します。
平均化の時間 T が増えるにつれ、ω 以外の周波数における y(t) の成分の寄与はゼロに近づきます。R(T) および I(T) は一定になり、ω でのプラントの周波数応答の計算に使用できます。詳細については、[1]を参照してください。
[実験モード] が [重ね合わせ] の場合、ブロックは再帰的最小二乗 (RLS) アルゴリズムを使用して推定された周波数応答を計算します。プラントの周波数応答が G(jω) = γ∠jθ であると仮定します。信号 u(t) = Asin(ωt) がプラントを励起すると、定常状態のプラント出力は y(t) = Aγsin(ωt + θ) となり、これは次と等価です。
どの時点においても、Asin(ωt) と Acos(ωt) は既知です。したがって、これらを RLS アルゴリズムのリグレッサーとして使用して、実行時の測定されたプラント出力 y(t) から γcos(θ) および γsin(θ) を推定することができます。
励起信号に複数の信号の重ね合わせが含まれる場合、次のようになります。
この場合、プラント出力は次のようになります。
推定アルゴリズムは Aisin(ωit) と Aicos(ωit) をリグレッサーとして使用して、γicos(θi) および γisin(θi) を推定します。N 個の周波数につき、アルゴリズムは 2N 個のリグレッサーを使用します。
計算では、摂動信号 u(t) がゼロのノミナル入出力をもつプラントに適用されると仮定します。この条件を達成するため、ブロックは測定されたプラント入出力信号から、実験の開始時に測定された値を減算します。
[実験モード] が [PRBS] の場合、ブロックは frestimate
と同じアルゴリズムを使用して、推定周波数応答を計算します。ブロックはプラント入力に PRBS 信号 (uest(t)) を挿入し、プラント出力 (yest(t)) から応答信号を収集します。周波数応答を推定するために、ブロックは高速フーリエ変換の出力信号と入力信号の比率を計算します。
このモードでは、推定は実験の最後に行われるため、ボード線図は 1 回だけ更新されます。
PRBS 入力信号の詳細については、PRBS 入力信号を参照してください。
参照
[1] Wellstead, P. E. Technical Report 10: Frequency Response Analysis. Farnborough, Hampshire, UK: Solartron Instruments, 1997.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
バージョン履歴
R2019a で導入Frequency Response Estimator ブロックは Simulink Control Design/Frequency Response Estimation サブライブラリに含まれるようになりました。
R2023b では、以前のリリースで保存されたモデルを開くと、Frequency Response Estimator ブロックのライブラリ リンクが自動的に更新されます。
Frequency Response Estimator ブロックで 2 値疑似乱数列 (PRBS) 入力信号を使用した推定がサポートされるようになりました。PRBS 信号は、2 つの値の間で切り替わるホワイトノイズのようなプロパティをもつ、周期的で確定的な信号です。PRBS 信号では、sinestream または重ね合わせの入力信号を使用する場合と比較して、合計の推定時間が削減される一方で、比較可能な推定結果が得られます。PRBS 信号は、通信用途やパワー エレクトロニクス用途向けに周波数応答を推定するのに有用です。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)