Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

モデル線形化器での 2 値疑似乱数列を使用した周波数応答の推定

この例では、Simscape™ Electrical™ コンポーネントを使用して Simulink® でモデル化されたパワー エレクトロニクス システムについて、2 値疑似乱数列 (PRBS) を使用して周波数領域のモデルを同定する方法を示します。この例では、PRBS を入力信号として使用して、コントローラー設計ワークフローでの周波数応答推定を扱います。

通常の場合、パワー エレクトロニクス システムはパルス幅変調 (PWM) 発生器などの高周波数のスイッチング コンポーネントを使用するため、線形化することができません。しかし、大半の Simulink Control Design™ の PID 調整ツールは、線形化されたプラント モデルに基づいて PID ゲインを設計します。線形化できないパワー エレクトロニクス モデル用のそのようなモデルを取得するため、この例で示すように、ある範囲の周波数にわたってプラントの周波数応答を推定できます。

周波数応答データを収集するためには、次のことが可能です。

  • コマンド ラインでプラントの周波数応答を推定する

  • モデル線形化器アプリを使用してプラントの周波数応答を推定する

この例では、モデル線形化器でプラントの周波数応答を推定する方法を示します。パワー エレクトロニクス システムのプラントの周波数応答をコマンド ラインで PRBS 入力信号を使用して推定する方法については、2 値疑似乱数信号を使用したパワー エレクトロニクス モデルの周波数応答の推定を参照してください。

昇圧コンバーター モデル

この例では、パワー エレクトロニクス システムとして昇圧コンバーター モデルを使用します。昇圧コンバーター回路は、電圧源のチョッピングまたはスイッチング制御によって、ある DC 電圧を別の (通常はより高い) DC 電圧に変換します。

mdl = 'scdboostconverter';
open_system(mdl)

このモデルでは、PWM 信号で駆動する MOSFET をスイッチ動作に使用します。出力電圧 Vout は参照値 Vref に調整されます。デジタル PID コントローラーが、電圧誤差信号に基づき PWM デューティ比 Duty を調整します。この例では、PWM デューティ比から負荷電圧 Vout への周波数応答を推定します。

Simscape Electrical ソフトウェアには、多くのパワー エレクトロニクス システム用の事前定義されたブロックが含まれています。このモデルには、昇圧コンバーター モデルの 2 つのバージョンをもつバリアント サブシステムが含まれます。

  • 電力コンポーネントを使用して作成された昇圧コンバーターの回路。回路コンポーネントのパラメーターは [1] に基づきます。

  • 昇圧コンバーター回路と同じパラメーターをもつように設定された昇圧コンバーター ブロック。このブロックの詳細については、Boost Converter (Simscape Electrical)を参照してください。

サブシステムの Boost Converter ブロック バージョンを使用するには、モデルで Boost Converter ブロックをクリックするか、または次のコマンドを使用します。

set_param([bdroot '/Boost Converter'],...
    'OverrideUsingVariant','block_boost_converter');

モデル線形化器を開いてモデルの操作点を検出

モデル線形化器を開くには、Simulink モデル ウィンドウの [アプリ] ギャラリーで [モデル線形化器] をクリックします。

昇圧コンバーターの周波数応答を推定するには、まず、コンバーターが動作する定常状態の操作点を特定しなければなりません。操作点の検出の詳細については、Simscape モデルの定常状態の操作点の検出を参照してください。この例では、0.045 秒でのシミュレーションのスナップショットから推定された操作点を使用します。

シミュレーションのスナップショット時間を指定するには、モデル線形化器[線形解析] タブで、[操作点] リストから [Take Simulation Snapshot] を選択します。

[線形化するスナップショット時間を入力] ダイアログ ボックスの [シミュレーションのスナップショット時間] フィールドに「0.045」と入力します。

[スナップショットを撮る] をクリックしてモデルの操作点を検出します。操作点 op_snapshot1[データ ブラウザー][線形解析ワークスペース] セクションに表示されます。

計算した操作点でモデルを初期化するには、op_snapshot1 をダブルクリックし、[エディット] ダイアログ ボックスで [モデルの初期化] をクリックします。

op_snap.png

init_dialog.png

[モデルの初期化] ダイアログ ボックスで、操作点オブジェクトの [変数名] を指定します。あるいは、既定の変数名を使用できます。

操作点を MATLAB® ワークスペースにエクスポートしてモデルの初期条件をこの操作点に設定するには、[OK] をクリックします。

モデルの推定する部分の指定

既定では、モデル線形化器はモデルに定義されている線形化解析ポイント ("モデル I/O") を使用して、テスト信号を挿入する位置および周波数応答を測定する位置を決定します。モデル scdboostconverter には、事前定義された線形解析ポイントが含まれています。すなわち、PID コントローラーの出力の入力ポイントと、負のフィードバック Sum ブロックの前の開ループ出力です。

モデルの異なる部分の周波数応答を取得する場合は、モデル線形化器[推定] タブで、[解析 I/O] ドロップダウン リストを使用します。推定のための解析ポイントは、線形化の解析ポイントと同じように機能します。線形解析ポイントの詳細については、モデルの一部を線形化するよう指定を参照してください。

2 値疑似乱数列入力信号の作成

PRBS は、2 つの値の間で切り替わるホワイトノイズのようなプロパティをもつ、周期的で確定的な信号です。PRBS は、最大周期の長さが 2n-1 の本来的に周期的な信号です。ここで、n は PRBS の次数です。

PRBS 入力信号を作成するには、モデル線形化器[推定] タブで、[入力信号][PRBS 2 値疑似乱数列] を選択します。

prbs_sel.png

[PRBS 入力の作成] ダイアログ ボックスで、まず、[サンプル時間] をモデルの入力信号インジェクション ポイントのサンプル時間に合わせて 5e–6 に設定します。次に、[最小値][最大値] のパラメーターを使用して周波数範囲を 300 rad/s から 30000 rad/s までに指定し、[パラメーターの計算] をクリックします。指定した周波数範囲に基づいて、信号の [周期数] パラメーターと [信号の次数] パラメーターがソフトウェアで計算されます。自動パラメーター決定を使用すると、作成した入力信号から指定した周波数範囲の正確な周波数応答が得られます。

prbs_in1.png

非周期的な PRBS を使用するには、[期間数] パラメーターを 1 に設定します。

システムが確実に正しく励起されるようにするため、[振幅] パラメーターを使用して摂動の振幅を 0.05 に設定します。入力の振幅が大きすぎる場合、昇圧コンバーターは不連続の電流モードで動作します。入力の振幅が小さすぎる場合は、PRBS をパワー エレクトロニック回路のリップルと区別できなくなります。

prbs_in2.png

[OK] をクリックします。ソフトウェアによって PRBS 信号が [線形解析ワークスペース] に追加されます。

周波数応答データの収集

[推定] タブで、op_snapshot1 を推定の操作点として選択します。

estimationtab.png

線形化出力の信号パスで時変信号を生成するすべてのソース ブロックを検出します。このような時変信号は、線形化出力ポイントでの信号を妨げ、推定結果が不正確になる可能性があります。時変ソース ブロックを無効にするには、[追加オプション] をクリックします。[周波数応答の推定のオプション] ダイアログ ボックスで、[時変ソース] タブの [時変ソース ブロックを自動的に検出して追加] をクリックします。

timvar_dialog.png

ブロック パスが表示されたらダイアログ ボックスを閉じます。

周波数応答を推定してプロットするには、[推定] タブで [ボード線図] をクリックします。推定されたシステム estsys1[線形解析ワークスペース] に表示され、[ボード線図 1] に追加されます。

prbs_boostestsys1.png

周波数応答の推定結果の間引き

PRBS 入力信号を使用した周波数応答の推定では、多数の周波数点を含む結果が得られます。結果の間引き機能を使用して、推定された周波数応答モデルから目的の周波数範囲と周波数点の数を指定して、内挿された結果を抽出できます。

300 rad/s から 30000 rad/s までの目的の周波数範囲の結果を抽出するには、[線形解析ワークスペース]estsys1 を選択し、[プロットと結果] タブで [結果の間引き] をクリックします。[周波数の指定] ダイアログ ボックスで、周波数範囲を 300 rad/s から 30000 rad/s までと入力します。また、対数的に等間隔な 30 個の周波数点を指定します。

prbs_resthin.png

[OK] をクリックします。推定結果のシステム estsys1_thinned[線形解析ワークスペース] に表示されます。間引きされた結果をプロットするには、estsys1_thinned を選択し、[ボード線図] をクリックします。

prbs_boostestsys1_thinned.png

周波数応答データの sinestream FRE 結果との比較

[モデル線形化器] で、周波数応答データを、sinestream 信号を使用して得られる結果と比較することもできます。次のコマンドを使用して、指定した周波数応答の推定結果を読み込みます。

load frdSinestream

結果の estsysSinestream は、sinestream を使用して推定した 50 Hz から 5 kHz までの対数的に等間隔な 15 個の周波数をもつモデルです。

モデル線形化器で sinestream の結果を間引きした結果と比較するには、[データ ブラウザー][MATLAB ワークスペース] ペインで estsysSinestream を選択し、[ボード線図 2] をクリックします。

sine_thinprbs_compare.png

入力信号による周波数応答の推定にかかった最終シミュレーション時間を調べるには、[線形解析ワークスペース] で入力信号を選択し、モデル線形化器[変数プレビュー] ペインでシミュレーション時間を確認します。あるいは、入力信号を MATLAB ワークスペースにエクスポートして関数 getSimulationTime を使用することもできます。この例の前に保存したセッションを読み込みます。

load boostconv_frdPRBS.mat
tfinal_sinestream = in_sine1.getSimulationTime
tfinal_sinestream = 0.2833
tfinal_prbs = in_prbs1.getSimulationTime
tfinal_prbs = 0.0819

in_prbs1 を使用した場合のシミュレーション時間は、in_sine1 でモデルの周波数応答を推定するのにかかった時間の約 30% です。これは、sinestream 入力信号を使用した場合よりも、PRBS 入力信号を使用した場合の方が、周波数応答の推定がはるかに高速であることを示しています。

推定された周波数応答の結果 estsys1_thinnedestsysSinestream とほぼ一致しています。PRBS 入力信号では多数の周波数点から周波数応答を推定するため、推定結果にシステムの共振特性に関する情報が多数含まれます。sinestream 入力信号を使用して同様の結果を得るには、周波数点の数を増やさなければならない場合があり、そうすると推定時間が長くなります。この方法を使用すると、sinestream 信号を使用した推定に比べて、短いシミュレーション時間で正確な周波数応答の推定が得られます。

モデルを閉じます。

close_system(mdl,0)

参考文献

[1] Lee, S. W. Practical Feedback Loop Analysis for Voltage-Mode Boost Converter. Application Report SLVA633. Texas Instruments, 2014. https://www.ti.com/lit/an/slva633/slva633.pdf.

参考

関連するトピック