电力产品中谐波计算算法应用与比较

    在当前很多的电力产品中,带谐波(2~n次谐波电压电流含有率、有效值、总畸变率)计算功能的电力产品越来越多,系统因设计不同而采取不同算法。

    本文针对ARM9应用计算谐波,介绍笔者采用过的几种谐波算法。(以下提到的算法均不是笔者自创的)。

 

    笔者采用过三种谐波算法,性能和特点大有差异。

 

    1.三角函数算法:

    三角函数算法是一种相对较简单,也较于容易理解的算法。计算原理如下所示:

   

     从上面的公式中可以看出,算法需要大量计算三角函数,如果谐波次数越高,计算量则越大。而三角函数如果采用库函数的话,计算量是相当大的,这对于ARM9来说也是相当吃力的。当然可以采用查表方法,但这是牺牲空间换取时间,而且如果要求精度稍高点,则浪费空间越大。

    笔者先接触谐波计算的时候,就是采用的这种算法,就19次谐波计算,CPU使用率达到了40%左右。

 

    2.FFT算法:

    针对三角函数算法在性能上稍有不足,笔者通过网上搜索,找到了两种比较高效谐波算法。

    一种是任意点的混合基FFT算法:mix_fft:

    mix_fft是一种任意点的谐波算法,所以对于采样点不是2n的应用是十分方便,而且最重要的是速度很快,对于目前市场上的ARM9来说,足够了。

    mix_fft是个好用的FFT算法,但它不是开源的,所以应用时需要注意点。

    另一种是ooura_fft:

    ooura_fft是一种非常复杂但却是最高效的FFT算法,其速率在相同硬件条件下比mix_fft还快,特别是谐波采样点说越高的时候。ooura_fft只能计算2n的谐波采样点。故应用时也要注意这点。

 

    对于上面两种FFT算法,都是用C语言写的,所以在其它应用场合也适用。使用的时候非常简单,只需要调用一个函数即可。如mix_fft算法应用如下:

     

    其中,HarOriginalData存储谐波电压电流的采样数据。

   

    上述是笔者接触到的用来计算谐波的几种算法,可能还有其它更好的算法。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值