Main Content

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

複数の忠実度をもつドループ コントローラーを使用したリモート マイクログリッドの自立運転

この例では、Simscape™ Electrical™ コンポーネントを使用して Simulink® でモデル化されたリモート マイクログリッドの自立運転を示します。この例ではドループ制御を使用した最も簡潔なグリッド形成コントローラーを示します。

リモート マイクログリッド モデル

リモート マイクログリッドは、メインの電力網への接続がない場所で電気負荷を供給するためによく使用されます。メインの電力網は負荷の変化を均衡化するために使用できないため、このように慣性の低いマイクログリッドの制御は簡単ではありません。

この例のマイクログリッドは 2 つの異なる系統連系点 (PCC) の母線に接続された 2 つの Inverter サブシステムで構成されます。マイクログリッドは最初に固定負荷で電力平衡に到達しますが、切り替え可能な負荷もマイクログリッドに接続されています。マイクログリッドは通常、平衡状態に到達するために事前に計画された負荷解放手法を使用します。リモート マイクログリッドでは、すぐに負荷解放を実装するのは困難です。この例では、上位のエネルギー管理システムがないため、マイクログリッドの周波数と電圧はドループ制御を使用してそのノミナル値 (それぞれ、60 Hz および 380 Vrms) 前後で保たれます。

このマイクログリッドのブロック線図では、各 Inverter サブシステムが理想的な DC 電源とインターフェイスで接続されており、太陽光アレイ、風力タービン、バッテリー エネルギー貯蔵システムなどの一般的な再生可能エネルギー生成システムの DC リンクを表します。各サブシステムには d 軸と q 軸の基準電圧を計算するドループ コントローラーが含まれます。電圧コントローラーはインバーターに供給するスイッチング シーケンスを生成することにより、電圧を調整します。最初に接続された負荷は力率 0.95 で合計 175 kW の AC 電力を消費します。

ドループ制御

ドループ P/F は 2.5% に設定されます。つまり、インバーターから投入される有効電力の変更が 1 p.u. で、マイクログリッドの周波数は 1.5 Hz まで変化できます。ドループ Q/V も 2.5% に設定されます。つまり、PCC 母線におけるマイクログリッドの電圧は無効電力の変更が 1 p.u. で、ノミナル 380 Vrms 前後の 9.5 Vrms の範囲まで変化できます。

マイクログリッド モデル

モデルを開きます。

mdl = 'scd3busMicrogridDroopControlFidelityLevels';
open_system(mdl)

マイクログリッドは 2 つの別個の DC 電源に接続されています。各電源の定格電圧は 1000 V です。シミュレーション開始時のマイクログリッドには合計 175 kW の負荷があります。2 秒で、力率 0.98 の有効電力 15 kW を消費する負荷がブレーカー Breaker 1 を介してマイクログリッドに接続されます。両方のインバーターの実消費電力および皮相消費電力を含め、マイクログリッドの動作は、Operation Commands サブシステム内の Signal Editor ブロックに読み込まれたシナリオを使用してスケジュールされます。

モデルの忠実度

ニーズに応じて低忠実度または高忠実度でインバーターのスイッチング動作をシミュレートできます。Inverter サブシステムのアクティブなバリアントにより、忠実度が決まります。

高忠実度モード

高忠実度モードでは、PWM Generator ブロックはスイッチ ゲート信号 g を作成します。次に、この信号はインバーターのゲート入力 "G" に渡されます。

高忠実度モードでは、インバーター内のすべてのスイッチを個別にモデル化してシミュレートします。既定では、スイッチは IGBT モデルです。Converter (Three-Phase) ブロックで [スイッチング デバイス] パラメーターを使用してスイッチ モデルを変更できます。

high-fidelity-inverter-parameters.png

このレベルのスイッチ シミュレーションは、非常に詳細にインバーターの動作を表し、出力電圧および周波数の小さな変化を捉えます。ただし、高忠実度モードではインバーター内のすべての個別スイッチの動作をモデル化するため、シミュレーション時間が遅くなります。このため、高忠実度モデルは、電圧や周波数のリップルなどのシステム応答特性を詳細に解析することに関心があり、シミュレーション時間の優先度が低い場合に使用すると最適です。

低忠実度モード

低忠実度モードでは、Converter (Three-Phase) ブロックの [スイッチング デバイス] パラメーターは Averaged Switch に設定されます。この場合、すべての個別スイッチを完全にモデル化するのではなく、平均 PWM インバーター モデルを使用します。

low-fidelity-inverter-parameters.png

平均 PWM モデルは、PWM Generator (Three-phase, Two-level) ブロックで出力された変調波形を使用し、この変調波形を範囲 [–1,1] から範囲 [0,1] のデューティ比信号に変換して機能します。低忠実度モードがアクティブな場合、このデューティ比信号はスイッチ信号をインバーター ゲート入力として置き換えます。

fidelity-level-switch.png

このモデルは Average-Value Signal サブシステムでデューティ比変換を実行します。

duty-cycle-calculation.png

このモードではスイッチがモデル化されないため、シミュレーション ステップがスイッチング周期より大きくなることが許容されます。これにより、シミュレーションが高速化します。ただし、これが原因で、電圧および周波数のリップルなどのコンバーターの一部の現象が完全には捉えられなくなることにもなります。低忠実度モデルは、シミュレーションはより高速ですが、すべてのインバーターの動作を完全には表さないため、さまざまなコントローラー設計反復を試す場合など、立て続けにシミュレーションを実行し、主にシステムの大まかな動作に関心がある場合に最適です。

シミュレーション

アクティブな忠実度を変更するには、Simulink モデルの [Select a model fidelity level][Low] または [High] をクリックします。モデルは既定では高忠実度モードに設定されています。そのため、最初はこのモードでモデルをシミュレートします。この例で提供されている scd3busMicrogridDroopControlDataFidelityLevels.m スクリプトを使用してモデル パラメーターを変更できます。また、インバーターの実電力設定点および皮相電力設定点である P および Q をそれぞれ変更するために、Signal Editor ブロックでアクティブなシナリオを編集します。

シミュレーション結果を観察するために、インバーター周波数スコープおよび電圧スコープを開きます。

open_system([mdl,'/Scopes/Inverter Freq']);
open_system([mdl,'/Scopes/Voltage']);

高忠実度シミュレーション

まず、モデル更新を実行します。

set_param(mdl,'SimulationCommand','update');

高忠実度モードでモデルをシミュレートおよび時間測定します (これには、システムによっては数分かかることがあります)。

tic;
sim(mdl);
highFidelitySimTime = toc;
highFidelityLogs = logsout;
fprintf("High fidelity simulation took %.2f seconds\n", highFidelitySimTime)
High fidelity simulation took 394.30 seconds

2 秒で負荷が急増した後、マイクログリッドは各インバーターの PCC で周波数を 60 Hz 前後、電圧を 1 p.u. 前後で維持します。Active and Reactive Power スコープで示されているように、増加した有効電力負荷と無効電力負荷は両方の電源で共有されます。インバーターの有効電力および無効電力は上位の監視制御を使用しないで調整されます。

open_system([mdl,'/Scopes/Active & Reactive Power']);

低忠実度シミュレーション

今度は、モデルを低忠実度モードに設定します。

fidelity = scd3busMicrogridDroopControl_variants_enum.Low;
Ts = 5e-5;
Ts_V = 1e-5;
Tsc = 1e-3;
Tsc_V = 5e-3;

モデル更新を実行します。

set_param(mdl,'SimulationCommand','update');

モデルをシミュレートおよび時間測定します。

tic;
sim(mdl);
lowFidelitySimTime = toc;
lowFidelityLogs = logsout;
timeDifference = highFidelitySimTime/lowFidelitySimTime;
fprintf("Low fidelity simulation took %.2f seconds, which is \n%.1f " + ...
    "times faster than high fidelity.\n", lowFidelitySimTime, timeDifference);
Low fidelity simulation took 35.11 seconds, which is 
11.2 times faster than high fidelity.

低忠実度モデルでは、"平均" ベースでは高忠実度モデルと非常に似た結果が表示されます。しかし、高忠実度モードでは表示されていた電圧や周波数の波形のリップルは示されていません。

シミュレーション結果の比較

低忠実度モデルと高忠実度モデルの両方についてインバーターの周波数をプロットします。

figure;
tiledlayout(2,1)
nexttile
plot(highFidelityLogs{12}.Values)
hold on
plot(lowFidelityLogs{12}.Values)
hold off
ylabel('Frequency (Hz)')
ylim([58 62])
title('Inverter1 Frequency')
legend(["High fidelity", "Low fidelity"])
nexttile
plot(highFidelityLogs{10}.Values)
hold on
plot(lowFidelityLogs{10}.Values)
hold off
ylabel('Frequency (Hz)')
ylim([58 62])
title('Inverter2 Frequency')

次に、両方のモデルについてインバーターの p.u. 電圧をプロットします。

figure;
tiledlayout(2,1)
nexttile
plot(highFidelityLogs{13}.Values)
hold on
plot(lowFidelityLogs{13}.Values)
hold off
ylabel('Voltage (p.u.)')
ylim([0.9 1.2])
title('Inverter1 Voltage')
legend(["High fidelity", "Low fidelity"])
nexttile
plot(highFidelityLogs{11}.Values)
hold on
plot(lowFidelityLogs{11}.Values)
ylabel('Voltage (p.u.)')
ylim([0.9 1.2])
title('Inverter2 Voltage')

予想どおり、高忠実度モデルでは周波数と電圧のリップルがはるかに詳細に捉えられています。ただし、低忠実度モデルの方が高速に実行されています。

制御設計の注意事項

使用した忠実度に関係なく、各 PCC において周波数と電圧の両方の波形に振動があることに注意してください。ドループ制御手法は、マイクログリッドの簡潔なグリッド形成コントローラーであるため、この結果は当然のことです。エネルギー貯蔵装置や再生可能エネルギー源のダイナミクスを考慮すると、このような振動がさらに悪化する可能性があります。マイクログリッドの電力品質を向上させるために、同期機エミュレーションやバーチャル発振器制御などのより高度なアプローチを利用できます。ドループ コントローラー アーキテクチャに基づいて、これらの多くのグリッド形成コントローラーを実装できます。

インバーター コントローラーには電圧コントローラーも含まれています。電圧 PI コントローラーをさらに調整し、d 軸と q 軸の基準電圧の追従性能を高めることができます。PID 調整器アプリを使用したコントローラーを調整する方法の例については、シミュレートされた I/O データを使用した PID コントローラーの設計を参照してください。

モデルを閉じる

モデルを保存せずに閉じます。

close_system(mdl,0)

Copyright 2021-2023 The MathWorks, Inc.

参考

|

関連するトピック