三相PWM整流器 三相PWM整流器闭环仿真,电压电流双闭环控制,输出直流电压做外环 模型中包含主电路,坐标变换,电压电流双环PI控制器,PWM发生器 matlab/simulink模型
三相PWM整流器这玩意儿搞电力电子的都熟,说白了就是个能四象限运行的能量转换器。今天咱不扯理论,直接进Simulink开搞闭环仿真。记住核心就八个字:电压外环,电流内环!
主电路部分先搭起来,六个IGBT模块摆成三相桥。重点在母线电容取值——我见过有人随便填个1000uF结果仿真爆炸的。经验公式给个参考:C=(3√2Iload)/(2πfrippleV_dc)。别问我为啥这么算,老工程师传下来的玄学参数,实测有效。
坐标变换子系统藏着大乾坤。abc转dq的代码实现得讲究:
function [Id, Iq] = abc2dq(Ia, Ib, Ic, theta) % Clarke变换 I_alpha = (2*Ia - Ib - Ic)/3; I_beta = (Ib - Ic)/sqrt(3); % Park变换 Id = I_alpha.*cos(theta) + I_beta.*sin(theta); Iq = -I_alpha.*sin(theta) + I_beta.*cos(theta);这代码里有个坑——theta必须是锁相环输出的实时相位,直接拿电网频率积分会翻车。见过有人在这用atan2搞手动锁相,结果dq轴电流抖成筛子。
双环PI控制器才是重头戏。外环电压环参数别整太大,Kp=0.5、Ki=20起步;内环电流环要猛,Kp=5、Ki=500才镇得住场子。看这段离散化代码:
% 电压外环PI function V_ref = Voltage_PI(Vdc, Vdc_ref) persistent integral; if isempty(integral) integral = 0; end error = Vdc_ref - Vdc; integral = integral + 0.0001*error; % Ts=0.1ms V_ref = 0.5*error + 20*integral;注意积分项要加抗饱和,我之前忘了这个,结果电流指令直接飙到1000A,IGBT模块炸得那叫一个灿烂。
PWM发生器用载波比较法就行,但开关频率别超过10kHz,否则仿真步长得设到1e-6以下,普通电脑算到天亮都出不来结果。给个SVPWM的实现技巧:把dq轴电压指令转回abc坐标系后,记得除以母线电压做标准化。
最后说几个仿真翻车现场:
- 坐标变换没同步导致Id/Iq震荡——检查锁相环带宽
- 启动时直流电压过冲——在PI输出加个动态限幅器
- 网侧电流THD超标——把电流环带宽提到1000Hz以上
模型跑起来后重点看这几个波形:直流电压跟踪是否无静差、网侧电流是否正弦、dq轴电流是否解耦。要是发现Iq不为零,八成是锁相环相位没对齐。这玩意儿调好了能整出99%的功率因数,电网侧电流比教科书还漂亮。