三相并网逆变器双闭环控制,电网电流外环电容电流内环控制算法,matlab/Simulink仿真模型,有源阻尼,单位功率因数,电网电压和电流同相位。
先整个控制结构图镇楼(此处脑补Simulink模型截图)。核心就两个环:外环盯着电网电流不跑偏,内环拿电容电流当刹车片。这组合拳打出去,电网电压就算抽风,电流也能乖乖跟着相位走。
内环的电容电流控制特别有意思,直接怼了个虚拟电阻进去。代码层面其实就一行传递函数的事:
Gdamp = Kd / (1 + s*Td); // 假装自己是电阻的戏精这货在仿真里能有效抑制LC滤波器的谐振,实测比物理加电阻省银子多了。注意时间常数Td别设太小,否则数值振荡能让你怀疑人生——别问我怎么知道的,都是泪。
三相并网逆变器双闭环控制,电网电流外环电容电流内环控制算法,matlab/Simulink仿真模型,有源阻尼,单位功率因数,电网电压和电流同相位。
外环PI参数整定有讲究,直接上代码:
Kp = Lg * 2*pi*f_sw / 3; // 手调过的经验公式 Ki = Rg * 2*pi*f_sw;这里Lg是电网侧电感,f_sw取个10kHz不翻车。重点是这个系数3,试过2.8也行,玄学参数留着给各位自己调。
锁相环必须安排上,Simulink里的PLL模块建议勾选"抗频偏"选项。实测当电网电压THD超过5%时,普通PLL就开始跳disco了。加个移动平均滤波,效果立竿见影:
windowSize = 20; // 跟采样率挂钩 voltage_filter = movmean(grid_voltage, windowSize);最后po个仿真波形(此处脑补电压电流同相位图)。注意看0.2秒时故意给电网电压来个跌落,电流波形稳如老狗,功率因数死死咬住0.99+。参数没调好的话,这时候早就相位放飞自我了。
调试时建议先开环跑一遍,把LC谐振点摸清楚再上闭环。遇到振荡别慌,先把内环比例系数砍半试试。记住:并网控制,稳字当头,别老想着响应速度——电网可比你的DSP记仇多了。