AFE有源整流器运行的建模与分析
该示例致力于对AFE(有源前端)整流器的操作进行建模和分析,包括对其控制算法、能耗和恢复模式的研究。 基于Engee建模,证明了AFE的关键优势:保持功率因数接近1,将谐波电流失真降低到5.8%,并稳定直流环节的电压。 这项工作的结果与电力电子系统、节能运输和工业电力驱动的开发者有关,在这些领域需要现代的能源流动管理方法和尽量减少对网络的影响。
导言
**AFE整流器(有源前端)**是一种有源电子设备,旨在将交流电转换为直流电,具有高功率因数和最小的谐波失真。 它的创建与20世纪80年代以来电力电子技术的发展有关,当时西门子,ABB,丹佛斯等人开始实施IGBT和数字控制系统。 与无源二极管整流器不同,AFE使用"在电网上"运行的Igbt,这确保了转换器的双向性:不仅要消耗电网的能量,还要将其返回,例如在再生制动期间。
AFE整流器用于工业电力驱动,可再生能源系统,交通运输(电动火车,地铁,电动公共汽车)和能源密集型行业(轧机,数据处理中心)。 例如,在地铁中,AFE为电网提供制动能量回收,降低整体能耗。 这种整流器的主要优点是高效率,紧凑性,减少网络中的干扰以及在不稳定电压下工作的能力。 这些特性使它们在需要智能能源管理和环境可持续性的现代系统中不可或缺。
示例模型
模型 Active_front_end.engee 本示例中考虑的模型是从模拟模型重新创建的 Active_front_end.slx [1].
动力装置由以下元件组成。
*三相电压源 .
*相电压和电流测量单元。
*带电阻的电缆线 和电感 .
*桥式三相变流器 Converter 在具有反向二极管的NPN-IGBT上,上部开关由三相网络中的集电极安装,反向二极管充当整流器套件。
*容量为 .
*直流链路中的最小有功负载是电阻 .
*直流链路中连接的有源负载是一个电阻 .
*在直流链路中插入反电动势,其值为 ,以及具有电阻的电阻器 -模拟制动。
*直流电路中的电压表。
负荷/负荷 它被激活的时刻 模型时间,关闭 . 具有反电动势的电路被切换到 .
AFE算法在整流器的所有操作模式下运行。
AFE操作原理说明
IGBT转换器(Converter)从PWM发生器模块接收PWM控制信号(PWM Generator). PWM参考信号为三角形,频率为 . PWM发生器的设定信号为相电压 在三相坐标系中 :
反过来, 通过[逆Park-Gorev变换][1]从
[1]:https://engee.com/helpcenter/stable/ru/fmod-electricity-math-transform/inverse-park-transform.html
哪里 -\text{在旋转坐标系中设置应力} ,
-旋转坐标系的旋转角度,使用块中的相位频率自动调谐(PLL)计算 PLL.
反过来,这些组件由以下表达式定义:
这里:
- -电源电压的基本谐波;
- -测量旋转坐标系中的应力 ;
- -在旋转坐标系中测量相电流 ;
- -PI电流调节器的输出电压
Current Controller在旋转坐标系中 ;
电压;电压 和电流 使用[Park-Gorev直接转换]块[1]从测量的相电流和电压获得 和 :
[1]:https://engee.com/helpcenter/stable/ru/fmod-electricity-math-transform/park-transform.html
PI电流调节器 Current Controller 测量和设定的电流信号在旋转坐标系中的差值得到 :
给定电流在轴上的投影 , -PI电压调节器的调节结果 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工作模式的a相电流和电压波形:正常负载时的消耗,增加负载时的消耗和恢复。
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将制动能量的回收提供到网络中(这是通过在DC链路中接通反电动势来模拟的)。
根据如下所示的直流链路中的电压图,可以得出结论,在各种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完全应对来自不受控整流器的电流的谐波失真的减少。
*当前频谱上最明显的谐波属于 ,在哪里 -整流电路的脉动。
结论
在该示例中,使用Engee模拟AFE整流器工作,这证实了该器件即使在恢复模式下也能够保持接近1的功率因数,并将谐波电流失真降低高达5.8%。 结果表明,系统在可变负载下将直流链路中的电压稳定地保持在给定水平(例如,800V),证明了双向能量管理的有效性。 结果证实,AFE显着降低了无功功率和电磁干扰,这对于能源密集型设施(地铁,工业驱动器)至关重要。
使用过的来源
- 里卡多*帕尔马(2025)。 有源前端整流器(https://www.mathworks.com/matlabcentral/fileexchange/63357-active-front-end-rectifier),MATLAB中央文件交换。 检索到2025年4月29日。


