一种加窗插值FFT谐波检测算法的制作方法

文档序号:11110996

本发明涉及一种谐波检测算法。



背景技术:

电网中非线性元件造成的大量谐波严重影响电网中的电能质量。为了有效的消除这些污染,必须对谐波进行准确的检测分析。

现有的谐波检测方案主要有以下四种:(1)使用模拟带通或带阻滤波器,输入的信号经放大电路后经过各次谐波滤波器,各次滤波器的中心频率是工频的整数倍,其优点是原理结构简单,输出阻抗低,易于控制、实现,其缺点是中心频率易受到外界因素的影响,不稳定,精度低;(2)基于小波变换的谐波检测,在信号的不同部位得到最佳的时域分辨率和频域分辨率,有效的从信号中提取有用的信息,能够解决傅里叶变换不能解决的一些问题,小波对突发性信号非常的敏感,所以可以用来检测动态谐波,而傅里叶变换通常用来检测稳态的谐波;(3)瞬时无功功率理论的谐波检测,在只检测无功电流时,可以完全无延时的得出检测结果,但是在检测谐波电流时,由于谐波电流的构成和滤波器不同,这时造成的延时也不会超过一个电源周波,所以它的实时性很好,但是它的硬件多,成本高;(4)基于傅里叶变换的谐波检测,该种谐波检测的方法是当今使用最广的一种方法,因为它计算精度较高,原理简单,易于接受,但是傅里叶变换的谐波检测需要一定时间才能完成,速度较慢,因为它的计算量大,为了克服这点,必须综合考虑计算量和硬件的配合,由于采样时肯定是对某段有限长信号进行截断采样,所以这样必然会带来频谱泄漏,如果是同步采样,则通过傅里叶变换就能直接得到谐波的幅值,频率,相位,但往往由于AD采样的延时、硬件设备的反应时间等,同步采样是很难做到,这样就会造成栅栏效应,影响谐波分析的结果,特别是相位受到的影响会很大。

上述四种方案,方案(1)不仅检测的精度低,而且只能对少量谐波进行检测,如果要实现多次谐波分量的检测则硬件电路将变得很复杂,其实现性很困难,所以随着电力系统中对谐波检测要求的提高,方案1已经很少采用。方案(2)中的小波变换算法并不能完全取代傅里叶变换,小波变换在稳态谐波检测方面不具备理论优势,并且在谐波检测的应用方面还处于初级阶段,加上小波的窗口能量不集中,容易造成频谱混叠。方案(3)在实现谐波总量实时检测方面比较方便,而对于各次谐波的检测则不能达到,不能满足要求。方案(4)的算法原理简单,但会引起频谱泄漏和栅栏效应。



技术实现要素:

本发明提出一种加窗插值FFT谐波检测算法,其所要解决的技术问题是:减小傅里叶变换谐波检测种的误差,提高检测效果。

本发明技术方案如下:

一种加窗插值FFT谐波检测算法,步骤为:

设单一频率信号x(t)的频率为f0,幅值为A,初相位为θ,则用fs的采样频率对它进行采样,则得到如下离散信号:

xn=Asin(2πf0n/fs)+θ);

为上述离散信号进行加窗检测,设所加窗的时域为ω(n),其连续频谱为W(2πf),则加窗后该离散信号连续傅立叶变换为:

忽略负频点-f0处频峰的旁瓣影响,则在正频点f0附近的连续频谱为:

对上式进行离散抽样,得到离散傅立叶变换表达式:

上式中离散频率间隔为Δf=fs/N,N为采样点数;

设距离峰值点最近的两根谱线为第k1和第k2条谱线,显然这两条谱线是峰值点附近最大的和次最大的谱线,并且一条在k0的左侧,一条在k0的右侧;在离散频谱中找到这两条谱线,从而可确定k1和k2

令第k1和第k2条谱线的幅值分别是y1=|X(k1Δf)|,y2=|X(k2Δf)|;设f0=(k1m)Δf,|λm|≤0.5,λm为不同步度;k1通过寻找谱峰实现,为了确定不同步度λm,令k1与k2谱线值之比为:

由上式计算出同步偏差λm,修正后的频率、幅值和相位的校正公式分别为:

频率校正公式:f0=(k1m)Δf;

幅值校正公式:A=2|X(ki)|/|W(2π·|λm|)/N)|;

相位校正公式:θ=arg|X(ki)|+π/2-λmπ;

幅值校正公式和相位校正公式中的i选1或2。

相对于现有技术,本方法在傅里叶变换的基础上,利用幅值最大的一条谱线进行计算,能够适当弥补短范围泄漏造成的峰值点测量不准缺陷,减少检测误差,提高检测效果。

具体实施方式

下面结合详细说明本发明的技术方案:

一种加窗插值FFT谐波检测算法,步骤为:

设单一频率信号x(t)的频率为f0,幅值为A,初相位为θ,则用fs的采样频率对它进行采样,则得到如下离散信号:

xn=Asin(2πf0n/fs)+θ);

为上述离散信号进行加窗检测,设所加窗的时域为ω(n),其连续频谱为W(2πf),则加窗后该离散信号连续傅立叶变换为:

忽略负频点-f0处频峰的旁瓣影响,则在正频点f0附近的连续频谱为:

对上式进行离散抽样,得到离散傅立叶变换表达式:

上式中离散频率间隔为Δf=fs/N,N为采样点数;由于非同步采样存在同步偏差,峰值频率f0=k0Δf很难正好位于离散谱线频点上,而是位于离散谱线频点之间,也就是说,k0一般不是整数;

设距离峰值点最近的两根谱线为第k1和第k2条谱线,显然这两条谱线是峰值点附近最大的和次最大的谱线,并且一条在k0的左侧,一条在k0的右侧;在离散频谱中找到这两条谱线,从而可确定k1和k2

令第k1和第k2条谱线的幅值分别是y1=|X(k1Δf)|,y2=|X(k2Δf)|;设f0=(k1m)Δf,|λm|≤0.5,λm为不同步度;k1通过寻找谱峰实现,为了确定不同步度λm,令k1与k2谱线值之比为:

由上式计算出同步偏差λm,修正后的频率、幅值和相位的校正公式分别为:

频率校正公式:f0=(k1m)Δf;

幅值校正公式:A=2|X(ki)|/|W(2π·|λm|)/N)|;

相位校正公式:θ=arg|X(ki)|+π/2-λmπ;

幅值校正公式和相位校正公式中的i选1或2。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1