两极三相光伏逆变并网仿matlab2021a 采用mppt算法,扰动观察法,采用spwm调制, 控制环采用双环PI调节, 逆变器采用三相桥式逆变器,坐标变换含PLL锁相环,逆变器输出端加设LCL滤波器。
光伏逆变并网系统仿真总带着点"电路搭积木"的趣味。今天咱们用Matlab2021a搞个三相光伏并网系统,从MPPT到LCL滤波器,全程手撸代码。先看整体架构:光伏阵列接三相桥式逆变器,控制环用了电流电压双闭环,坐标变换带着锁相环,最后用LCL滤掉高频毛刺。

MPPT部分选了经典的扰动观察法,核心就是欠揍式试探:
matlab
function [V_ref] = P_O(Voltage, Current)
persistent V_prev P_prev;
if isempty(V_prev)
V_prev = 0; P_prev = 0;
end
delta_V = 0.5; % 电压扰动步长
P_now = Voltage * Current;
if (P_now - P_prev) > 0
V_ref = V_prev + sign(Voltage - V_prev)*delta_V;
else
V_ref = V_prev - sign(Voltage - V_prev)*delta_V;
end
V_prev = V_ref;
P_prev = P_now;
end
这段代码活像个强迫症患者------不断微调电压观察功率变化。注意delta_V别设太大,否则会在最大功率点附近来回蹦迪。
SPWM调制部分用了三路相位差120度的正弦波与三角载波比较:
matlab
carrier = sawtooth(2*pi*F_sw*t, 0.5); % 2kHz三角载波
mod_signal = 0.8*[sin(2*pi*50*t);
sin(2*pi*50*t - 2*pi/3);
sin(2*pi*50*t + 2*pi/3)]; % 调制波
pwm = zeros(3,1);
for phase = 1:3
pwm(phase) = (mod_signal(phase) > carrier) - (mod_signal(phase) < -carrier);
end
调制比0.8留了20%安全裕度,避免过调制。实际工程中这个值要根据直流母线电压动态调整。

双环PI控制器是系统的CPU,外环控电压,内环控电流:
matlab
% 电流环
function [output] = Current_PI(error)
persistent integral Kp Ki;
if isempty(integral)
integral = 0; Kp = 0.5; Ki = 20;
end
integral = integral + error*Ts;
output = Kp*error + Ki*integral;
end
% 电压环
function [I_ref] = Voltage_PI(error)
persistent integral Kp Ki;
if isempty(integral)
integral = 0; Kp = 0.02; Ki = 0.5;
end
integral = integral + error*Ts;
I_ref = Kp*error + Ki*integral;
end
注意电流环响应速度要比电压环快5-10倍,这里Ki参数差了40倍不是手滑,是故意拉开响应速度差距。
两极三相光伏逆变并网仿matlab2021a 采用mppt算法,扰动观察法,采用spwm调制, 控制环采用双环PI调节, 逆变器采用三相桥式逆变器,坐标变换含PLL锁相环,逆变器输出端加设LCL滤波器。

锁相环实现电网同步时,用二阶广义积分器搞了个正交信号:
matlab
function [theta] = SOGI_PLL(grid_voltage)
persistent xi_prev xo_prev;
k = 1.414; % 阻尼系数
w = 2*pi*50; % 基波频率
xi = xi_prev + (w*Ts*(grid_voltage - xo_prev - k*xi_prev));
xo = xo_prev + (w*Ts*xi);
theta = atan2(xi, xo);
xi_prev = xi;
xo_prev = xo;
end
这个正交发生器比普通滤波器更抗谐波干扰,实测在5%THD电网下仍能稳定锁相。
LCL滤波器参数设计最怕谐振,这里取:
matlab
L1 = 2e-3; % 逆变侧电感
C = 10e-6; % 滤波电容
L2 = 1e-3; % 网侧电感
谐振频率设在sqrt((L1+L2)/(L1L2C)) ≈ 3.6kHz,远高于开关频率2kHz,避免振荡。仿真时看到并网电流THD约2.3%,符合预期。

最后吐槽下Matlab的步长设置------用ode23tb求解器时,最大步长必须设到开关周期的1/20以下,否则SPWM波形会出现迷之畸变。这坑我踩了三个小时,咖啡都续了五杯...
仿真跑完看波形,最治愈的瞬间是并网电流与电网电压完美同相位,THD分析窗口弹出绿色通过标志。这大概就是电力电子工程师的浪漫吧?