统一电能质量变换器(UPQC)Matlab/simulink仿真,ip-iq检测,电压电流补偿,软件版本matlab2016
最近在实验室折腾统一电能质量变换器(UPQC)的仿真,发现Matlab2016的Simulink真是个好东西,不过有些模块用起来确实得留点心。今天就跟大伙唠唠这个ip-iq检测法和双补偿的实现,顺便分享几个调试时踩过的坑。
先看整体结构(配张仿真模型截图),UPQC主体分为串联和并联两个逆变器。重点在于检测环节——这里用了个三相锁相环同步电网电压相位,坐标变换部分直接调用了Simulink自带的abctodq0模块。有个细节要注意:当电网电压畸变时,锁相环输出角度得做谐波滤波,我这边用了二阶低通滤波器,参数设的是50Hz截止频率。
% 锁相环滤波参数设置 Kp = 0.5; Ki = 32; cutoff_freq = 2*pi*50; damping_ratio = 0.707;ip-iq检测的核心代码写在Matlab Function块里(展示关键代码段):
function [ip, iq] = ipiq_detect(ia, ib, ic, sinwt, coswt) % dq变换计算 id = (2/3)*(ia.*sinwt + ib.*sinwt_120 + ic.*sinwt_240); iq = (2/3)*(ia.*coswt + ib.*coswt_120 + ic.*coswt_240); % 低通滤波处理 persistent h; if isempty(h) h = designfilt('lowpassiir', 'FilterOrder',2, ... 'HalfPowerFrequency',100, 'SampleRate',1e4); end ip = filtfilt(h, id); iq = filtfilt(h, iq);这里有个坑:直接使用移动平均滤波会引入相位延迟,导致补偿滞后。后来改用了零相位滤波(filtfilt函数),实测动态响应快了约0.5个周波。不过要注意这会增加计算量,仿真时得把步长调到50us以下。
统一电能质量变换器(UPQC)Matlab/simulink仿真,ip-iq检测,电压电流补偿,软件版本matlab2016
电压补偿环节的控制策略用了双闭环(展示控制子系统截图):外环是直流母线电压PI控制,内环是电流跟踪控制。PI参数调试时发现个现象——当Kp超过0.8时系统开始振荡,最后定在Kp=0.35,Ki=25时纹波最小。补偿电压生成部分用到了SVPWM模块,开关频率设的10kHz,死区时间必须设置2us以上,否则会报短路错误。
最后说下仿真设置要点(展示Configuration Parameters窗口):
- 求解器选ode23tb,适合电力电子开关系统
- 最大步长强制设为1e-5秒
- 勾选零交叉检测
- 离散化处理电力系统模块(右键Powergui选Phasor solution)
跑完仿真看波形(展示FFT分析图),电压畸变率从8.7%降到2.1%,电流THD从15%降到4.3%。不过发现个有趣现象:当负载突变时,并联侧补偿会有约2ms的延迟,后来在检测环节加了前馈补偿才解决。建议调试时先开环运行验证算法,再接闭环控制,能节省一半调试时间。
仿真文件已上传GitHub(伪链接),遇到PWM波形畸变的同学记得检查IGBT的反并联二极管是否启用。下次准备试试神经网络控制策略,有同样在搞电能质量的朋友欢迎交流调试心得~