APF中谐波检测环节低通滤波器的设计及DSP实现董浩1研究背景及研究意义随着电力电子装置的广泛应用,电能得到了充分的运用。但电力电子设备具有非线性,会对电网的电能质量造成危害,这己经引起越来越多的关注。在我国,近年来由于电气化铁道的迅速发展以及化工、冶金、钢铁、有色金属、煤炭和交通等工业部门电力电子装置的大量应用,电力系统中谐波问题己经口趋严重,对电力系统和用电设备产生了严重危害和影响,因此需要认真加以研究和采取相应的限制措施来抑制这一危害。无源滤波器投资少、结构简单、运行可靠、维护方便,因此一直作为抑制谐波以及无功补偿的主要手段。但由于无源滤波器是通过在系统中为谐波提供了一个并联低阻通路,从而起到滤波作用,其滤波特性是由系统和滤波器的阻抗比决定的,因此存在以下的缺点:1.谐波特性受系统参数的影响比较大。2.只能消除特定次数的谐波,但是却会对某些次谐波会反而会放大。3.滤波要求和无功补偿、调压要求有时难以相互协调。4.谐波电流增大时,滤波器负担随之加重,有可能造成滤波器过负荷。5.电容器参数随介质老化容易发生变化,因此出现失谐现象。6.有效材料消耗多,体积变大。因此,为解决上述问题,学术界普遍将研究的方向转移到有源电力滤波器(APF)上来,它是一种能动态抑制谐波和补偿无功功率的新型电力电子装置,能对频率和大小变化的谐波和无功功率进行补偿,可弥补无源滤波器的不足,获得比无源滤波器更好补偿特性,是一种比较理想的补偿谐波装置,也是目前电力电子技术领域研究的热点课题之一。负载电流检测控制跟踪驱动及逆变器主电路触发信号图1有源电力滤波器(APF)系统结构框图图1为有源电力滤波器系统原理框图。其中,电流检测环节通过低通滤波器滤除基波频率将剩余频率作为谐波给定,以此值为参考,经过跟踪控制和驱动环节即可实现在变换器交流侧输出幅值和相位连续可调的电压gu。由于网侧电压su和逆变器输出电压gu之间存在幅值和相位差,其差值施加在连接电抗上即可产生用以补偿负载谐波电流,使网侧电流为平滑正弦。谐波电流检测环节至关重要,其准确性和实时性直接关系到APF能否实现对负载侧谐波的实时准确补偿。在APF中,目的是补偿电流中除去基波有功电流外所有无功电流(广义无功电流)。即qi、pi和qi。于是我们可以得到pi-qi法计算无功电流的原理框图如图2所示。低通滤波器PLL图2基于pi-qi方式的无功电流检测原理框图图中电流传感器实时检测的三相电流ai、bi、ci经过3/2变换得到两相静止坐标系下电流i、i,再通过旋转变换得到瞬时电流pi、qi,旋转中使用的同步旋转角度由PLL锁相环提供。pi、qi中的交流分量通过低通滤波器(巴特沃斯滤波器)滤除,保留直流分量pi、qi,再通过相应逆变换即可得到三相电流中需要保留的分量,而补偿量由检测电流与保留的分量做差得到。图中为了补偿无功,断开无功电流pi通道,相应逆变换得到为三相有功电流的基波分量afi、bfi、cfi,做差后得到三相广义无功电流ahi、bhi、chi,即可作为谐波电流的给定。图中abcC变换为三相静止坐标系到两相静止坐标系的变换,变换矩阵为常数,不涉及时变量。同理,其逆变换abcC也不涉及时变量。谐波检测环节能够影响到检测环节的因素只有锁相环PLL的锁相精度和低通滤波器的性能,不考虑PLL锁相误差的前提下,滤波器的性能决定了谐波检测环节的实时性和精确性,所以对低通滤波器进行研究具有极大的意义。2数字低通滤波器介绍数字滤波器数字滤波是数字信号处理的重要环节,是由乘法器、加法器和单位延时器组成的一种运算过程,其功能是将输入的离散信号通过一定的运算处理后转变成另一组频谱结构不同的离散信号,以达到改变信号频谱的目的。随着微电子技术的发展,DSP的性能得到了飞跃的发展,极大地促进了数字技术的发展。2.1数字滤波器的分类与特点从通帯特性上可分为数字低通滤波器,数字高通滤波器,数字带通滤波器,数字带阻滤波器;从冲击响应上可分为无限冲击响应滤波器(IIR)和有限冲击响应滤波器(FIR).从滤波器维数上可分为一维数字滤波和二维数字滤波器数字滤波器与传统模拟滤波器比较而言,数字滤波器可通过芯片编程,通过数字滤波器滤波算法实现,信号的滤波,改变其频谱特性。相对而言,外信号对其干扰较小。便于实现数字化处理。IIR数字滤波器的系统函数可以写成封闭函数的形式。IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR数字滤波器时,我们根据FIR、IIR是常用的数字滤波器。特点是随着阶数的增加,滤波器过渡带越来越窄,也即矩形系数越来越小。FIR是线性相位的,无论多少阶,在通带内的信号群时延相等,也即无色散,对于PSK这类信号传输尤为重要,IIR通常是非线性的,但是目前也有准线性相位设计方法得到IIR数字滤波器的系数,其结果是使得通带内的相位波动维持在一个工程可接受的范围内。IIR比FIR最大的优点是达到同样的矩形系数所需的阶数少,往往5阶的IIR滤波器就可以比拟数十上百阶的FIR滤波器。但是另一方面,FIR滤波器的系数设计方法很多,最普遍的是加窗,种类繁多的窗函数可以得到各种你所需要的通带特性。FIR、IIR是常用的数字滤波器。特点是随着阶数的增加,滤波器过渡带越来越窄,也即矩形系数越来越小。FIR是线性相位的,无论多少阶,在通带内的信号群时延相等,也即无色散,对于PSK这类信号传输尤为重要,IIR通常是非线性的,但是目前也有准线性相位设计方法得到IIR数字滤波器的系数,其结果是使得通带内的相位波动维持在一个工程可接受的范围内。IIR比FIR最大的优点是达到同样的矩形系数所需的阶数少,往往5阶的IIR滤波器就可以比拟数十上百阶的FIR滤波器。但是另一方面,FIR滤波器的系数设计方法很多,最普遍的是加窗,种类繁多的窗函数可以得到各种你所需要的通带特性。2.2数字滤波器的一般设计工具和方法常用的数字滤波器设计工具软件有MATLAB,可通过编程实现,也可通过对内部滤波器设计与分析工具fdatool来实现滤波器的设计与分析。其他的滤波器设计工具软件有LABVIEW,DSP软件CCS,FPGA设计软件,SystemView,MeasurementStudio等等。数字滤波器的设计,从方法上讲,有先设计出模拟滤波器,然后再变换成数字滤波器;有直接设计成数字滤波器。模拟滤波器的设计有相当成熟的技术和方法。有完整的设计公式和图表可供查询。其一般步骤:(1)根据实际要求,按一定规则转换实际滤波器的性能指标;根据模拟滤波器的性能指标,设计模拟滤波器的阶数和传递函数;按一定的规则(冲击响应不变性,阶跃响应,双线性性变换等)把它变成数字滤波器。此方法适合于设计的幅频特性比较规则的滤波器,如,低通,高通,带通,带阻。(2)直接在频域内或者在时域内进行数字滤波器的设计。2.3Butterworth低通滤波器ButterWorth低通滤波器的传递函数可表示为如下形式:00/mmkkLPFkkkkHzbzaz其中,m为低通滤波器阶数。很容易将上式写成差分形式:0001()[()()]mmkkkkynbxnkaynka因此,ButterWorth很容易通过数字形式实现。大量研究表明,随着ButterWorth低通滤波器阶数m的增大,其稳态误差越小,而动态响应时间越长。3数字低通滤波器的设计与分析谐波检测环节处理信号为经过采样电路调理的电流采样信号,采样频率为Fs=1kHz,目标去除50Hz以上的谐波信号,滤波器类型,巴特沃斯。性能指标:截止频率50Hz,-3dB时。采用数字巴特沃思滤波器,增加条件,在200Hz,As=30db。采用matlab仿真,看他们的效果一采用直接数字滤波器设计,二采用先设计模拟滤波器后采用双线性变换方法设计数字滤波器观察他们的效果;Matlab设计滤波器还可通过另一种途径,采用fdatool方式来设计,这里不赘述。M文件编程,实现滤波器的设计。%IIR数字滤波器设计方法比较采用了两种不同的方法;%方法1,直接就数字滤波器系数;%方法2,采用直接求模拟滤波器,并用双线性变换计算数字滤波器系数二者得出的效果基本一致%设计butterworthdigitallowpassfilter%通帯fp=50hz,Rp=3db;%阻带fs=200hz,As=30db%滤波器采样频率Fs=1000hzfp=50;fs=200;Fs=1000;T=1/Fs;wp=fp/Fs*2*pi;ws=fs/Fs*2*pi;Rp=3;As=30;%方法1直接求数字滤波器系数[n3,wc3]=buttord(wp/pi,ws/pi,Rp,As)[bd3,ad3]=butter(n3,wc3)%得到直接型数字滤波器系数[H3,w3]=freqz(bd3,ad3);%直接型转换成并联型dbH3=20*log10(abs(H3)/max(abs(H3)));subplot(2,3,1),plot(w3/2/pi*Fs,dbH3,'k');title('方法1幅度响应(db)');axis([0,Fs/2,-40,5]);ylabel('db');%set(gca,'XTickMode','manual,'Xtick',[0,fp,fs,Fs/2]')%set(gca,'YTickMode','manual,'Ytick',[-50,-30,-3,0]');grid;set(gca,'Xtick',[0,fp,fs,Fs/2]);set(gca,'Ytick',[-50,-30,-3,0]);gridsubplot(2,3,2),plot(w3/2/pi*Fs,angle(H3)/pi*180,'k');title('相位响应');axis([0,Fs/2,-180,180]);ylabel('\phi');ylabel('\phi');xlabel('频率(hz)')set(gca,'Xtick',[0,fp,fs,Fs/2]);set(gca,'Ytick',[-180,-120,0,90,180]);gridsubplot(2,3,3),zplane(bd3,ad3)%画出零极点%转换为模拟滤波器指标Omgp=(2/T)*tan(wp/2);Omgs=(2/T)*tan(ws/2);[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s')%方法2直接求模拟滤波器系数[ba2,aa2]=butter(n,Omgc,'s')[bd2,ad2]=bilinear(ba2,aa2,Fs)[H2,w2]=freqz(bd2,ad2);dbH2=20*log10(abs(H2)/max(abs(H2)));subplot(2,3,4),plot(w2/2/pi*Fs,dbH2,'k');title('方法2幅度响应(db)');axis([0,Fs/2,-40,5]);ylabel('db');%set(gca,'XTickMode','manual,'Xtick',[0,fp,fs,Fs/2]')%set(gca,'YTickMode','manual,'Ytick',[-50,-30,-3,0]');grid;set(gca,'Xtick',[0,fp,fs,Fs/2]);set(gca,'Ytick',[-50,-30,-3,0]);gridsubplot(2,3,5),plot(w2/2/pi*Fs,angle(H2)/pi*180,'k');title('相位响应');axis([0,Fs/2,-180,180]);ylabel('\ph