NPC三电平并网逆变器闭环控制仿真 采用LCL滤波器。 包含锁相环,闭环控制器,驱动发生器。 运行环境为matlab/simulink
最近在实验室折腾三电平并网逆变器,发现闭环控制真不是搭积木那么简单。今天就拿NPC三电平拓扑开刀,咱们用Matlab/Simulink搭个带LCL滤波的闭环系统,聊聊实际调试时那些坑。
先看整体架构(图1),核心模块就四个:锁相环实时追踪电网相位、双闭环控制器稳电压电流、PWM驱动生成三电平波形、LCL滤波消除高次谐波。别看模块少,参数耦合起来能让你怀疑人生。
锁相环我用的是SRF-PLL结构,Simulink里直接拽出PLL模块就行。关键在参数设置,这里有个小窍门:把低通滤波截止频率设成电网频率的1/2,亲测能有效滤除5次谐波干扰。代码层面其实就是改个分母系数:
PLL.LPF_coeff = 2*pi*50 * 0.5; % 截止频率25Hz控制器部分最折腾,电流环用PI调节器,注意NPC拓扑的中点电位平衡问题。这里直接上离散化代码:
function y = PI_controller(u, Kp, Ki, Ts) persistent integral; if isempty(integral) integral = 0; end integral = integral + u*Ts; y = Kp*u + Ki*integral; end实际调试时Ki别超过Kp的1/10,否则波形立马给你表演震荡。电压环外环的响应速度要比电流环慢5倍,这个比例关系千万别搞反。
驱动生成模块藏着魔鬼细节,三电平需要两组载波比较。建议用反向层叠载波,Simulink里用Repeating Sequence模块生成三角波时,相位差要严格对齐。最近翻车过一次,载波相位差0.5ms没调准,直接导致输出电平缺失。
LCL参数设计才是重头戏,分享个实战公式:
L1 = (0.1*Vdc)/(3*2*pi*50*I_rated); % 网侧电感 Cf = 0.05*I_rated/(2*pi*50*Vdc); % 滤波电容 L2 = 0.2*L1; % 逆变侧电感这组参数能保证谐振频率在开关频率的1/10到1/2之间。但注意仿真时会遇到数值振荡,得在电容两端并联个虚拟阻尼电阻,取值别小于1kΩ,否则损耗算到你头疼。
最后说说闭环调试技巧:先断开电流环单独调电压环,等直流母线稳定了再接入电流环。波形出现毛刺别急着改参数,先检查PWM死区时间,NPC拓扑的死区至少要留2μs,我用的是带死区补偿的驱动逻辑,具体实现看这段代码:
deadtime = 2e-6; % 死区2μs if PWM1 > 0.5 S1 = 1; S2 = 0; elseif PWM1 < 0.5 S1 = 0; S2 = 1; end % 插入死区 S1_delayed = delay(S1, deadtime); S2_delayed = delay(S2, deadtime);跑完仿真别只看THD,重点观察并网电流的d轴分量是否跟踪上参考值。最近一次调试发现q轴电流有0.5A纹波,最后发现是锁相环的滤波时间常数设大了。搞电力电子仿真就像侦探破案,每个异常波形都在给你线索呢。