推定用の入力信号
周波数応答の推定では、対象の周波数でモデルを励起するために入力信号が必要になります。その後、ソフトウェアは指定の出力で応答を測定し、入力信号と測定した応答を使用して周波数応答を推定します。
周波数応答の推定を実行する際、使用する入力信号のタイプとそのプロパティを指定します。
オフライン推定
次の表は、モデル線形化器でのオフライン推定や、MATLAB® コマンド ラインで frestimate
を使ったオフライン推定に使用できる入力信号のタイプをまとめています。
信号 | 説明 |
---|---|
sinestream | 順次適用される一連の正弦波摂動。sinestream 信号は、ほとんどの状況で推奨されます。システムの非線形性が強い場合や、非常に正確な周波数応答モデルが必要な場合には特に便利です。 |
チャープ | 入力周波数が即座に変化するように、ある範囲の周波数でシステムを励起するスイープ周波数信号。システムがシミュレーション範囲内でほぼ線形の場合はチャープ信号が便利です。また、多くの周波数点についてすばやく応答を取得する場合にも役立ちます。 |
PRBS | 2 つの値の間で切り替わる、ホワイトノイズのようなプロパティをもつ、確定的な 2 値疑似乱数列。PRBS 信号は、sinestream の入力信号を使用する場合と比較して、合計の推定時間が削減される一方で、比較可能な結果が得られます。PRBS 信号は、通信システムやパワー エレクトロニクス システム向けに周波数応答を推定するのに有用です。 |
乱数 | 乱数入力信号。乱数信号は、ナイキスト周波数までのあらゆる周波数でシステムを一様に励起できるので便利です。 |
ステップ | ステップ入力信号。ステップ入力は迅速にシミュレートでき、推定しようとしているシステムについての知識があまりない場合には最初の試みとして役立つことがあります。 |
任意 | 任意の時変信号を入力として指定できる MATLAB timeseries。 |
一般に、推定された周波数応答は、次のように入力信号と出力信号に関連しています。
ここで、uest (t) は挿入された入力信号、yest (t) は対応するシミュレートされた出力信号です。詳細については、frestimate
の「アルゴリズム」の節を参照してください。
オンライン推定
Frequency Response Estimator ブロックを用いたオンライン推定の場合、2 つのタイプの入力信号を使用できます。
sinestream — 順次適用される一連の正弦波摂動
重ね合わせ — 同時に適用される正弦波摂動のセット
オンライン推定の場合、sinestream 信号を使用すると、重ね合わせ信号よりも正確で、さらに広い周波数範囲に対応できます。また、sinestream モードの方が割り込みが少ない場合があります。ただし、sinestream 摂動は順次行われるため、周波数点を追加するごとに実験時間は長くなります。したがって、推定実験は通常、重ね合わせ信号を使用する方がはるかに高速で、満足な結果が得られます。
オンライン推定に使用する入力信号のタイプを指定するには、Frequency Response Estimator ブロックの [実験モード] パラメーターを使用します。
sinestream 信号
sinestream 信号の構造とその作成方法の詳細については、sinestream 入力信号を参照してください。
チャープ信号
チャープ信号の構造とその作成方法の詳細については、チャープ入力信号を参照してください。
PRBS 信号
PRBS 信号の構造とその作成方法の詳細については、PRBS 入力信号を参照してください。
乱数信号
乱数信号は、ナイキスト周波数までのあらゆる周波数でシステムを一様に励起できるので便利です。推定のために乱数入力信号を作成するには、次を行います。
モデル線形化器の [推定] タブで、[入力信号] 、 [乱数] を選択。
コマンド ラインで、
frest.Random
を使って乱数信号を作成し、これをfrestimate
の入力引数として使用。
乱数信号は、正と負の振幅についてそれぞれ [0 Amplitude]
または [Amplitude 0]
の間隔で一様分布した乱数で構成されます。入力信号を作成するときに、振幅、サンプル時間、およびサンプル数を直接指定できます。あるいは、状態空間 (ss
) モデルなどの関連する線形時不変 (LTI) モデルがある場合、それを使用して乱数信号パラメーターを初期化できます。たとえば、システムの正確な線形化がある場合は、それを使用してパラメーターを初期化することができます。
推定に乱数入力信号を使用する場合、推定された frd
モデルに返される周波数は、信号の長さとサンプリング時間によって異なります。それらは、入力信号の高速フーリエ変換で取得される周波数です (frestimate
の「アルゴリズム」の節を参照)。
ステップ信号
ステップ入力はすばやくシミュレートできます。乱数信号と同様に、ステップ信号はシステムをナイキスト周波数までのすべての周波数で励起できます。そのため、ステップ入力は、推定しようとしているシステムについての知識があまりない場合に最初の試みとして役立つ場合があります。ただし、励起の大きさは周波数が高まるにつれて急速に小さくなります。したがって、ステップ信号の使用は、最低速の極が優先される低次元のプラントの同定に最も適しています。ステップ入力は、広範な周波数にわたる推定には推奨されません。
推定のためのステップ入力信号を作成するには、frest.createStep
を使用します。この関数は、frest.createStep
を呼び出す際に指定するサンプル時間、ステップ時間、および合計信号長をもつステップ入力を表す MATLAB timeseries
を作成します。
MATLAB ワークスペースで作成したステップ入力信号を使用するには、次のようにします。
モデル線形化器の [推定] タブで、[入力信号] ドロップダウン リストの [既存の入力信号] セクションから選択。
コマンド ラインで、
frestimate
の入力引数として使用。
推定にステップ入力信号を使用する場合、推定された frd
モデルに返される周波数は、信号の長さとサンプリング時間によって異なります。それらは、入力信号の高速フーリエ変換で取得される周波数です (frestimate
の「アルゴリズム」の節を参照)。
任意の信号
sinestream 信号、チャープ信号、ステップ信号、乱数信号以外の信号を使用する場合は、独自の MATLAB timeseries
オブジェクトを指定することができます。たとえば、ランプ、ノコギリ波、または矩形波の入力を表す timeseries
を作成できます。
timeseries
オブジェクトを推定の入力信号として使用するには、まず MATLAB ワークスペースで timeseries
を作成します。次に、以下を行います。
モデル線形化器の [推定] タブで、[入力信号] ドロップダウン リストの [既存の入力信号] セクションから選択。
コマンド ラインで、
frestimate
の入力引数として使用。
推定に任意の入力信号を使用する場合、推定された frd
モデルに返される周波数は、信号の長さとサンプリング時間によって異なります。それらは、入力信号の高速フーリエ変換で取得される周波数です (frestimate
の「アルゴリズム」の節を参照)。
重ね合わせ信号
重ね合わせ信号は、Frequency Response Estimator ブロックを使うオンライン推定でのみ利用できます。周波数のベクトル ω = [ω1, … , ωN] における振幅 A = [A1, … , AN] での周波数応答の推定では、重ね合わせ信号が次のように与えられます。
ブロックは実験の持続時間中 (start/stop 信号が正である間) に摂動 Δu を提供します。ブロックは、次の図に示すように、システムの過渡状態の消滅を待つ時間および推定に使用するサイクル数を決定します。
Texp は、start/stop 信号の構成で指定される実験の持続時間です (詳細については、ブロックのリファレンス ページの start/stop 端子の説明を参照)。ブロックは推定の計算に NlongestP のウィンドウで収集されたデータだけを使用します。ここで、P は周波数ベクトル ω で最も遅い周波数の周期、Nlongest は [推定に使用される最も低い周波数の周期数] ブロック パラメーターの値です。このウィンドウの前のサイクルはすべて破棄されます。したがって、整定時間は Tsettle = Texp – NlongestP です。システムがすばやく整定されることがわかっている場合、Nlongest を変更せずに Texp を短くして、実質的に Tsettle を短縮することができます。システムにノイズが多い場合は、データ収集ウィンドウでより多くの平均化が行われるように、Nlongest を大きくできます。いずれの場合も、十分な整定とデータ収集がなされるよう、常に十分な長さの Texp を選択します。Texp = 2NlongestP が推奨されます。
推定に重ね合わせ信号を使用するには、Frequency Response Estimator ブロックで、[実験モード] パラメーターを [重ね合わせ] に設定します。詳細については、Frequency Response Estimator を参照してください。
参考
frestimate
| frest.createStep
| frest.Random
| frest.Sinestream
| frest.Chirp
| frest.PRBS