Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

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

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

  • $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_dcm.slx');

設計パラメーターの指定

システムは、100 W の所要電力で 80 V の出力電圧を生成し、維持する必要があります。入力電圧は 400 V で、変圧器の巻数比は 2 です。負荷には定抵抗負荷が含まれます。'ee_push_pull_converter_dcm_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_V                   = 1;                                  %  Peak-Peak Output Voltage Ripple as a percentage of Output Voltage
K                       = 0.3;                                %  Denotes trajectory that gives a relation between Output Voltage Ratio and Duty Cycle.
Ts                      = 1e-7;                               %  Sampling time for the solver

不連続伝導モードと連続伝導モードの動作境界

K およびデューティ比によって規定される制約に基づいて、動作モードは不連続伝導モード (DCM) と連続伝導モード (CCM) の間で切り替わります。CCM と DCM の出力電圧比は次のようになります。

  • 連続伝導モード

  • $V_{output}/V_{input} = D$

  • 不連続伝導モード

  • $V_{output}/V_{Input} = 2/(1 + \sqrt{1 + 4*K/D^2})$

DCM に対応する開ループ デューティ比の計算

出力電圧比とデューティ比間のプロットを生成することによって、異なる K の値について動作モードを可視化できます。このプロットから、選択した特定の K の値に対する設計パラメーターで指定される、出力電圧比の達成に必要な対応するデューティ比を見つけます。

figure;
D_range = 0:0.001:1;
Voltage_ratio = zeros(length(D_range));
for i=1:length(D_range)
    K_crit = 1-D_range(i);
    if K < K_crit
        Voltage_ratio(i) = 2/(1+sqrt(1+4*K/D_range(i)^2));
    else
        Voltage_ratio(i) = D_range(i);
    end
end
VR = Output_Voltage/(Input_Voltage/TR);
Duty = sqrt(4*K/((2/VR-1)^2-1));
hold on;
plot(Voltage_ratio,D_range);
hold on;
plot(VR,Duty,'*');
ylabel('Duty Cycle');
xlabel('Output to Input Voltage Ratio');
title('Discontinuous Mode Operating Region');

% The Open-Loop Duty Cycle required would be approximately 28.28% from the
% graph.

定負荷抵抗の決定

I_average = Output_Power/Output_Voltage;                     %  Average current that flows through the load
R_const = Output_Voltage/I_average;

フィルター インダクタンスの決定

DCM に必要なインダクタンスを推定するには、K、抵抗、スイッチング期間の間にある次の関係を使用します。

L_min = (K*R_const)/(2*2*fsw_Hz);

推定されたインダクタンス値が DCM 動作をもたらすことを確認します。この値が CCM 動作をもたらす場合は、K に別の値を選択して再計算します。DCM 動作をもたらすインダクタンス値が見つかるまでこれを繰り返します。

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

静電容量と出力電圧リップルの関係は次のようになります。

C_min = (2-(Duty/(Output_Voltage/(Input_Voltage/TR))))^2/(4*R_const*2*fsw_Hz*del_V*0.01);

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

プロットを生成し、出力電圧リップルの制限に必要な静電容量が設計パラメーターによって異なることを確認します。この例では、出力電圧リップル 1% の位置にあるマーカーは 8.157e-06 F の静電容量に対応しています。

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

シミュレーションの実行

sim('ee_push_pull_converter_dcm.slx');

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

シミュレーション中またはシミュレーション後に結果の概要を表示するには、Scopes サブシステムから Circuit Scope ブロックを開くか、MATLAB コマンド プロンプトで次のように入力します。

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

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

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

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

sscexplore(simlog_ee_push_pull_converter_dcm);
%