LCL型逆变器控制/Matlab/Simulink仿真 *Lcl型逆变器 *SVPWM调制方式
LCL滤波器的三阶特性让它成了并网逆变器的标配,但玩过实际项目的都知道这东西就像个带刺的玫瑰——滤波效果是好了,谐振峰也够让人头疼。今天咱们直接上Simulink搭个模型,手把手看怎么用SVPWM调教这个难搞的LCL。
先甩个参数镇楼:电网电压311V/50Hz,直流母线650V,开关频率10kHz。滤波器参数L1=3mH,L2=1mH,C=10uF。这参数配置下谐振峰大概在1.8kHz左右晃悠,后面咱们得重点盯着这个点。
打开Simulink先拖个三相全桥出来,桥臂上的IGBT记得并联RC吸收电路。重点是这个SVPWM生成模块,自己搭其实比用现成模块靠谱。核心代码就这段:
function [g1,g2,g3,g4,g5,g6] = fcn(Valpha, Vbeta) sector = floor((atan2(Vbeta, Valpha)/pi*3)+3); % 这里省略矢量作用时间计算... % 生成开关序列 if sector == 1 cmp1 = t1 + t2; cmp2 = t2 + t3; cmp0 = T0/4; end % 载波比较生成PWM波 end这个自定义函数模块直接输出六路PWM驱动信号,注意死区时间得留够2us。有个坑要躲开:Simulink的fixed-step solver必须设成和开关周期一致,否则PWM波形会抽风。
LCL型逆变器控制/Matlab/Simulink仿真 *Lcl型逆变器 *SVPWM调制方式
电流环控制用双闭环结构,外环电压内环电流。重点看这个谐振抑制的骚操作——在电流环里叠个带阻滤波器:
function i_ref = current_controller(i_grid, v_cap) Kp = 0.5; Ki = 200; % 带阻滤波器参数 wn = 2*pi*1800; damping = 0.02; notch_num = [1, 0, wn^2]; notch_den = [1, 2*damping*wn, wn^2]; G_notch = tf(notch_num, notch_den); % 串联到PI控制器后 end这个二阶带阻直接把谐振峰附近的增益压下去5dB,实测波形明显稳了。不过要注意相位补偿,别把系统整得不稳定了。
跑起来看波形时,重点盯住网侧电流THD。这是某次跑出来的数据:
THD Analysis: Fundamental (50Hz) = 19.83 A THD = 2.37% 3rd harmonic = 0.32% 5th harmonic = 1.12%注意看频谱图在1.8kHz附近有没有凸起,有的话得回去调带阻参数。有个邪门现象——有时候仿真结果和理论计算差挺多,这时候别怀疑人生,八成是求解器设置问题,把步长从auto改成fixed-step ode3试试。
最后说个实战技巧:LCL参数调整时,电容值别超过15uF,否则轻载时容易引发谐振。实在要加大滤波效果,宁可把电感量往上加,虽然损耗会多点但比系统震荡强。另外这个模型导出到FPGA时,记得把控制周期和PWM周期对齐,不然会有迷之时延。