Рекуперативный выпрямитель напряжения AFE
Моделирование и анализ работы активного выпрямителя AFE
Пример посвящен моделированию и анализу работы активного выпрямителя AFE (Active Front End), включая исследование его алгоритмов управления, режимов потребления и рекуперации энергии. На основе моделирования в Engee продемонстрированы ключевые преимущества AFE: поддержание коэффициента мощности близкого к 1, снижение гармонических искажений тока до 5,8% и стабилизация напряжения в звене постоянного тока. Результаты работы актуальны для разработчиков систем силовой электроники, энергоэффективного транспорта и промышленных электроприводов, где требуются современные подходы к управлению потоками энергии и минимизация воздействия на сеть.
Введение
AFE-выпрямитель (Active Front End) — это активное электронное устройство, разработанное для преобразования переменного тока в постоянный с высоким коэффициентом мощности и минимальными гармоническими искажениями. Его создание связано с развитием силовой электроники начиная с 1980-х годов, когда компании Siemens, ABB, Danfoss и прочие начали внедрять IGBT и цифровые системы управления. В отличие от пассивных диодных выпрямителей, AFE использует IGBT работающие "на сеть", что обеспечивает двунаправленность преобразователя: не только потреблять энергию из сети, но и возвращать её обратно, например, при рекуперативном торможении.
AFE-выпрямители находят применение в промышленных электроприводах, системах возобновляемой энергетики, транспорте (электропоезда, метро, электробусы) и энергоёмких производства (прокатные станы, центры обработки данных). Например, в метрополитенах AFE обеспечивает рекуперацию энергии торможения в сеть, снижая общее энергопотребление. Ключевые преимущества таких выпрямителей — высокая эффективность, компактность, снижение помех в сети и возможность работы с нестабильным напряжением. Эти особенности делают их незаменимыми в современных системах, где требуются интеллектуальное управление энергией и экологическая устойчивость.
Модель примера
Модель Active_front_end.engee
, рассматриваемая в данном примере, воссоздана по аналогу - модели Active_front_end.slx
[1].
Силовая часть состоит из следующих элементов.
- Трёхфазный источник напряжения .
- Блоки измерения фазных напряжений и токов.
- Кабельная линия с сопротивлением и индуктивностью .
- Мостовой трёхфазный преобразователь
Converter
на NPN-IGBT с обратными диодами, верхние ключи установлены коллекторами в трёхфазную сеть, а обратные диоды выполняют роль выпрямительного комплекта. - Конденсатор звена постоянного тока с ёмкостью .
- Минимальная активная нагрузка в звене постоянного тока - резистор с сопротивлением .
- Подключаемая активная нагрузка в звене постоянного тока - резистор с сопротивлением .
- Подключаемое противоэдс в звене постоянного тока с величиной , и резистор с сопротивлением - имитация торможения.
- Вольтметр в звене постоянного тока.
Нагрузка подключается в момент модельного времени, выключается в . Цепь с противоэдс коммутируется в .
Алгоритм AFE функционирует во всех режимах работы выпрямителя.
Описание принципа работы AFE
IGBT преобразователя (Converter
) получают управляющие ШИМ сигналы от модуля ШИМ генератора (PWM Generator
). Опорный сигнал ШИМ - треугольный с частотой . Заданные сигналы генератора ШИМ - фазные напряжения в трёхфазной системе координат :
В свою очередь, получено обратным преобразованием Парка-Горева из
где - \text{заданные} \text{напряжения} \text{во} \text{вращающейся} \text{системе} \text{координат} ,
- угол поворота вращающейся системы координат, рассчитываемый при помощи фазовой автоподстройки частоты (ФАПЧ) в блоке PLL
.
В свою очередь, эти компоненты определяются следующими выражениями:
Здесь:
- - базовая гармоника питающего напряжения;
- - измеренные напряжения во вращающейся системе координат ;
- - измеренные фазные токи во вращающейся системе координат ;
- - напряжения на выходе ПИ-регуляторов тока
Current Controller
во вращающейся системе координат ;
Напряжения и токи получены с помощью блоков прямого преобразования Парка-Горева из измеренных фазных токов и напряжений и :
ПИ-регуляторы тока Current Controller
получают разность измеренных и заданных сигналов токов во вращающейся системе координат :
Проекция заданного тока на ось , - результат регулирования ПИ-регулятора напряжения Voltage Controller
. Он получает разность измеренного и заданного значений напряжения в звене постоянного тока:
Проекция заданного тока на ось , устанавливается равной для формирования
Представленная выше система управления AFE воспроизводит приведённые соотношения в виде блочной диаграммы.
Моделирование
При помощи программного управления выполним модель примера и запишем результаты моделирования в переменную simout
.
модель = engee.load("/user/start/examples/power_systems/active_front_end_rectifier/Active_front_end.engee", force = true); # Загружаем модель
engee.run(модель); # Выполняем модель и сохраняем данные
После выполнения модели закроем её и перейдём к анализу сигналов.
engee.close(модель; force=true);
Анализ записываемых сигналов
Из записанных сигналов модели выделим сигналы времени моделирования, тока и напряжения фазы A, напряжения в звене постоянного тока:
t = simout["Active_front_end/Va"].time;
Va = simout["Active_front_end/Va"].value;
Ia = simout["Active_front_end/Ia"].value;
Vdc = simout["Active_front_end/Vdc"].value;
Выведем осциллограммы тока и напряжения фазы А для разных режимов работы AFE: потребления с обычной нагрузкой, потребления с повышенной нагрузкой и рекуперации.
using Plots; gr()
start = Int(1e6÷5*0.5);
start_load = Int(1e6÷5);
start_recup = Int(1e6÷5*3);
stop = Int(1e6÷5/50*5);
usual = start:start+stop
load = start_load:start_load+stop
recup = start_recup:start_recup+stop;
plot_usual = plot(t[usual], [Ia[usual], Va[usual]]; label=["Ia⋅13, А" "Va, В"], title = "Обычная нагрузка")
plot_load = plot(t[load], [Ia[load], Va[load]]; label=["Ia⋅13, А" "Va, В"], title = "Повышенная нагрузка")
plot_recup = plot(t[recup], [Ia[recup], Va[recup]]; label=["Ia⋅13, А" "Va, В"], title = "Рекуперация")
plot(plot_usual, plot_load, plot_recup;
size=(1200,300), legend = :topright, xlabel = "Время, с", ylabel = "Напряжение, ток", layout=(1,3))
Как видно из этих осциллограмм, ток и напряжение совпадают по фазе в режиме потребления, форма потребляемого/генерируемого тока близка к синусоидальной, а в режиме рекуперации фазы тока и напряжения инвертированы. Последнее означает, что AFE обеспечивает рекуперацию в сеть энергии торможения (что имитируется включением противоэдс в звене постоянного тока).
Исходя из графика напряжения в звене постоянного тока, который приведён ниже, можно сделать вывод, что в различных режимах работы AFE уровень напряжения стабилизирован и равен заданному на уровне .
gr(); plot(t[1:2000:end], Vdc[1:2000:end]; legend=:none, title = "Напряжение в звене постоянного тока")
Анализ коэффициента мощности
Установим и подключим необходимые для анализа библиотеки
import Pkg; Pkg.add(["FFTW", "LinearAlgebra"]);
using FFTW, LinearAlgebra;
Помимо поддержания напряжения в звене постоянного тока и обеспечения рекуперации энергии в сеть, выпрямитель AFE компенсирует потребление реактивной мощности, повышая коэффициент мощности практически до 1. По полученным данным (напряжению и току фазы A) рассчитаем и проанализируем коэффициент мощности для каждого периода напряжения.
# Подключим функцию расчёта коэффициента мощности для каждого периода входных векторов тока и напряжения
include("/user/start/examples/power_systems/active_front_end_rectifier/pf_calculation.jl");
# Расчет коэффициентов
коэффициенты_мощности = calculate_power_factor(Vector(Va), Vector(Ia));
# Построим интерактивный график коэффициента мощности
plotlyjs();
plot(0:0.02:3.98, коэффициенты_мощности;
legend=:none, title="Коэффициент мощности", ylabel="cos(ϕ), о.е.")
Из полученного графика коэффициента мощности можно судить о следующем:
- в режиме потребления энергии из сети AFE обеспечивает вне зависимости от уровня нагрузки;
- в режиме рекуперации энергии в сеть AFE обеспечивает ;
Анализ гармонических искажений при работе AFE
Ещё одно неоспоримое преимущество использования активного выпрямителя AFE - снижение гармонических искажений тока как в режиме потребления, так и при рекуперации. Из осциллограмм тока выше видно, что в режиме рекуперации сигнал больше, чем в режимах потребления, отличается по форме от синусоиды. Кроме того, в отдельные периоды несущей частоты гармонические искажения будут более выражены, чем на протяжении всего режима работы. Поэтому для оценки максимальной величины коэффициента гармонических искажений (THD) тока и напряжения мы возьмём участок длительностью в один период базовой гармоники питающего напряжения в режиме рекуперации.
# Подключим функцию для расчёта THD и гармонического спектра
# Скрипт также устанавливает и подключает требуемые библиотеки (FFTW.jl, LinearAlgebra.jl)
include("/user/start/examples/power_systems/active_front_end_rectifier/thd_calculation.jl");
# Зададим начальные условия
start_recup = Int(1e6÷5*3.02); # Начальная точка анализа
stop = Int(1e6÷5*3.04); # Конечная точка анализа
sample_rate = Int(1e6÷5) # Частота дискретизации, Гц
f_base = 50; # Частота базовой гармоники, Гц
n_max = 40; # Наибольший порядок искажающей гармоники
# Получим результаты анализа THD и гармонических спектров
result_Ia = calculate_thd(Ia[start_recup:stop], sample_rate, n_max, f_base);
result_Va = calculate_thd(Va[start_recup:stop], sample_rate, n_max, f_base);
# Построим гармонические спектры тока и напряжения, выведем значения THD
gr();
let
# График гармонического спектра тока
plot(result_Ia.frequencies, result_Ia.amplitudes,
label="Спектр тока", linewidth=2)
# График гармонического спектра напряжения
plot!(result_Va.frequencies, result_Va.amplitudes,
label="Спектр напряжения", linewidth=1,
seriestype=:path, linestyle=:dash, color=:black)
# Маркер амплитуды базовой гармоники
scatter!([result_Ia.frequencies[result_Ia.fundamental_idx]],
[result_Ia.amplitudes[result_Ia.fundamental_idx]],
label="Базовая гармоника", markersize=4, color=:red)
vline!([result_Ia.frequencies[result_Ia.fundamental_idx]],
linestyle=:dash, color=:gray, label=:none)
# Маркеры амплитуд гармоник высших порядков
if !isempty(result_Ia.frequencies[result_Ia.harmonic_indices])
scatter!(result_Ia.frequencies[result_Ia.harmonic_indices],
result_Ia.amplitudes[result_Ia.harmonic_indices],
label="Высшие гармоники", markersize=4, color=:green)
vline!(result_Ia.frequencies[result_Ia.harmonic_indices],
linestyle=:dash, color=:gray, label=:none)
end
# Настройки отображения
xlims!(0, n_max)
xticks!(1:2:n_max)
display(plot!(yscale=:log; xlabel="Частота, (Гц)", ylabel="Амплитуда, log(A)",
title="Гармонический анализ", legend=:bottom,))
# Вывод значений суммарных гармонических искажений напряжения и тока
println("THD_v: ", round(result_Va.thd, digits=2), " %")
println("THD_i: ", round(result_Ia.thd, digits=2), " %")
end
Представление гармонического спектра в логарифмическом амплитудном масштабе не является классическим, однако даёт наиболее детальное визуальное представление спектрального состава анализируемого сигнала. Из полученных данных можно судить о следующем:
- Суммарный уровень гармонических искажений тока , следовательно, AFE полностью справляется со снижением гармонических искажений тока от неуправляемого выпрямителя.
- Наиболее выраженные на спектре тока гармоники принадлежат порядкам , где - пульсность схемы выпрямителя.
Заключение
В примере выполнено моделирование работы AFE-выпрямителя при помощи Engee, подтвердившее способность устройства поддерживать коэффициент мощности, близкий к 1, и снижать гармонические искажения тока до 5,8% даже в режиме рекуперации. Показано, что система стабильно удерживает напряжение в звене постоянного тока на заданном уровне (например, 800 В) при переменных нагрузках, демонстрируя эффективность двунаправленного управления энергией. Результаты подтверждают, что AFE существенно снижает реактивную мощность и электромагнитные помехи, что критично для энергоёмких объектов (метрополитен, промышленные приводы).
Использованные источники
- Ricardo Palma (2025). Active front end rectifier (https://www.mathworks.com/matlabcentral/fileexchange/63357-active-front-end-rectifier), MATLAB Central File Exchange. Retrieved April 29, 2025.