Двухтактный понижающий конвертер в непрерывном режиме проводимости

Этот пример показывает, как управлять выходным напряжением двухтактного понижающего конвертера. Текущее течение через индуктор никогда не является нулем, поэтому конвертер DC-DC действует в Непрерывном режиме проводимости (CCM). Чтобы преобразовать и поддержать номинальное выходное напряжение, Подсистема контроллера PI использует простое интегральное управление. Во время запуска ссылочное напряжение сползается до желаемого выходного напряжения.

Конвертер действует в CCM только если

  • ,

где:

  • .

  • .

  • индуктивность фильтра.

  • нагрузочное сопротивление.

  • переключающийся период для каждого MOSFET. Таким образом, где переключающаяся частота.

  • рабочий цикл входа PWM к логическому элементу каждого MOSFET. Таким образом, где На времени MOSFET.

Открытая модель

open_system('ee_push_pull_converter_ccm.slx');
set_param(find_system('ee_push_pull_converter_ccm','FindAll', 'on','type','annotation','Tag','ModelFeatures'),'Interpreter','off');

Задайте параметры проекта

Система требуется, чтобы генерировать и поддерживать выходное напряжение 80 В с возможностью степени предельной нагрузки 1 000 Вт. Входное напряжение составляет 400 В, и отношение поворотов преобразователя равняется 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;

Вычислите индуктивность фильтра

Выберите значение индуктивности на основе спецификаций ввода и вывода конвертера. Значение индуктивности зависит от спецификаций ввода и вывода конвертера. В данном примере конвертер требуется, чтобы работать в CCM на 20-100% степени предельной нагрузки. Когда при условии нижней границы степень составляет 20% степени предельной нагрузки, средняя текущая загрузка составляет 20% текущего среднего значения предельной нагрузки, I_fl_average. В конце каждого цикла при условии нижней границы, индуктор текущие движения, чтобы обнулить. Текущая пульсация индуктора, del_I, в этой точке является дважды средней выходной текущей загрузкой, который составляет 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');

Просмотрите результаты симуляции

Чтобы просмотреть итоговые результаты во время или после симуляции, откройте блок Circuit Scope от окна модели или путем ввода в подсказке команды MATLAB:

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

Чтобы просмотреть управление и ошибочные данные во время или после симуляции, откройте блок Controller Scope PI от окна модели или, введите:

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

После симуляции, чтобы просмотреть регистрируемые данные Simscape™ с помощью Проводника Результатов Simscape, введите:

sscexplore (simlog_ee_push_pull_converter_ccm);