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

連続伝導モードのプッシュプル降圧コンバーター

この例では、プッシュプル降圧コンバーターの出力電圧を制御する方法を説明します。インダクターを流れる電流がゼロになることはないため、この DC-DC コンバーターは連続伝導モード (CCM) で動作します。定格出力電圧への変換と維持のために、PI Controller サブシステムでは単純な積分制御を使用します。起動時に、基準電圧が目的の出力電圧まで上昇します。

コンバーターは次の場合にのみ CCM で動作します。

  • $K > K_{critical}$

ここで、

  • $K = 2 * L/(R * Tsw)$

  • $K_{critcal} = 1 - D$

  • $L$ はフィルターのインダクタンス。

  • $R$ は負荷抵抗。

  • $T_{sw}$ は各 MOSFET のスイッチング周期。つまり、$f_{sw}$ がスイッチング周波数として、$T_{sw} = 0.5/f_{sw}$

  • $D$ は、各 MOSFET のゲートに対する PWM 入力のデューティ比。つまり、$T_{on}$ が MOSFET のオン時間として、$D = T_{on}/T_{sw}$

モデルを開く

open_system('ee_push_pull_converter_ccm.slx');

設計パラメーターの指定

システムは、1000 W の全負荷電力容量で 80 V の出力電圧を生成し、維持する必要があります。入力電圧は 400 V で、変圧器の巻数比は 2 です。全負荷には、定負荷と周期的負荷が含まれます。'ee_push_pull_converter_ccm_data.m' スクリプトは、設計パラメーターを MATLAB® ワークスペースの変数として定義します。

Input_Voltage           = 400;                                %  Input voltage to the push-pull converter [V]
Output_Voltage          = 80;                                 %  Desired output voltage from the push-pull converter [V]
Output_Power            = 1000;                               %  Full load power output [W]
fsw_Hz                  = 40000;                              %  MOSFET switching frequency [Hz]
primary_winding         = 200;                                %  Number of turns in the primary winding
secondary_winding       = 100;                                %  Number of turns in the secondary winding
TR                      = primary_winding/secondary_winding;  %  Turns ratio
Kp                      = 0.01;                               %  Proportional gain for PI controller
Ki                      = 20;                                 %  Integral gain for PI controller
del_I                   = 40;                                 %  Peak-peak inductor ripple current as a percentage of full load current
del_V                   = 1;                                  %  Peak-peak output voltage ripple as a percentage of output voltage
share_constload         = 70;                                 %  Percentage of load current drawn by constant load
share_cyclicload        = 100-share_constload;                %  Percentage of load current drawn by cyclic load
cyclic_load_period      = 1/20;                               %  Cyclic load period
cyclic_load_pul_width   = 50;                                 %  Pulse width of the current pulses drawn by the cyclic load
Ts                      = 1e-7;                               %  Sampling time for the solver

開ループのデューティ比の計算

デューティ比は、入力電圧、巻数比および目的の出力電圧によって異なります。

Duty = Output_Voltage/(Input_Voltage/TR);

定負荷抵抗の決定

I_fl_average = Output_Power/Output_Voltage;                     %  Full load average current that flows through the load
R_const = Output_Voltage/I_fl_average;

フィルター インダクタンスの計算

コンバーターの入出力仕様に基づいてインダクタンスの値を選択します。インダクタンスの値は、コンバーターの入出力仕様によって異なります。この例では、コンバーターは、全負荷電力の 20 ~100% に対して CCM で動作するよう求められます。下限条件において電力が全負荷電力の 20% である場合、平均負荷電流は、全負荷平均電流 I_fl_average の 20% になります。下限条件における各サイクルの終了時点で、インダクターの電流はゼロになります。この時点のインダクターのリップル電流 del_I は、平均出力負荷電流の 2 倍、つまり全負荷平均出力電流の 40% です。

L_min = (Input_Voltage/TR)*Duty*(1-Duty)/(2*fsw_Hz*del_I*I_fl_average*...
    0.01);

インダクター電流リップルに対するインダクタンスのプロット

次のプロットを生成し、フィルター インダクタンスがインダクターのリップル電流にどのように関係しているかを確認します (全負荷電流のパーセント比として表す)。この例では、40% の位置にあるマーカーは 1.2e-04 H のインダクタンスに対応しています。

del_I_range = 20:0.1:50;     %  Percentage of full load current (20-50%)
L_range = (Input_Voltage/TR)*Duty*(1-Duty)./(2*fsw_Hz*del_I_range*...
    I_fl_average*0.01);
figure;
hold on;
plot(del_I_range,L_range);
hold on;
L_del_I = (Input_Voltage/TR)*Duty*(1-Duty)/(2*fsw_Hz*del_I*...
    I_fl_average*0.01);
plot(del_I,L_del_I, '*');
xlabel('Inductor current ripple (% of full load current)');
ylabel('Inductance (H)');
title('Inductance Vs Inductor Current Ripple');

フィルターの静電容量の選択

C_min = (Input_Voltage/TR)*Duty*(1-Duty)/(8*(2*fsw_Hz)^2*L_min*...
    Output_Voltage*del_V*0.01);

電圧リップルに対する静電容量のプロット

次のプロットを生成し、出力電圧リップルを制限するための静電容量が設計パラメーターによってどのように変わるかを確認します。この例では、出力電圧リップル 1% の位置にあるマーカーは 9.766e-06 F の静電容量に対応しています。

del_V_range = 0.5:0.1:5;
C_range = (Input_Voltage/TR-Output_Voltage)*Duty./(8*(2*fsw_Hz)^2*L_min*...
    Output_Voltage*del_V_range*0.01);
figure;
hold on;
plot(del_V_range,C_range);
hold on;
C = (Input_Voltage/TR-Output_Voltage)*Duty/(8*(2*fsw_Hz)^2*L_min*...
    Output_Voltage*del_V*0.01);
plot(del_V,C,'*');
xlabel('Voltage Ripple (%)');
ylabel('Capacitance (F)');
title('Capacitance Vs Voltage Ripple');

シミュレーションの実行

sim('ee_push_pull_converter_ccm.slx');

シミュレーション結果の表示

シミュレーション中またはシミュレーション後に結果の概要を表示するには、モデル ウィンドウから、または MATLAB コマンド プロンプトで次を入力することによって Circuit Scope ブロックを開きます。

open_system('ee_push_pull_converter_ccm/Scopes/Circuit Scope');

シミュレーション中またはシミュレーション後に制御と誤差のデータを表示するには、モデル ウィンドウから PI Controller Scope ブロックを開くか、次のように入力します。

open_system('ee_push_pull_converter_ccm/Scopes/PI Controller Scope');

シミュレーション後に Simscape™ 結果エクスプローラーを使用してログに記録された Simscape データを表示するには、次のように入力します。

sscexplore(simlog_ee_push_pull_converter_ccm);
%