赵从杰 潘文林
(1.云南民族大学电气信息工程学院 昆明 650500)
(2.云南民族大学数学与计算机科学学院 昆明 650500)
随着新的可再生分布式发电技术的涌入,用电设备越来越复杂,电网谐波污染越来越严重。快速有效的检测出电网中各次谐波电压电流是设计滤波器的前提[1]。目前,谐波检测方法可以分为时域分析法和频域分析法两大类[2]。频域分析主要是基于无功功率设计低通滤波器,但是所得到的是所有谐波的总和,对于电力系统分析并不适用;时域分析主要有离散傅里叶算法(DFT),小波变换,神经网络和现代谱估计等[3]。傅里叶变换在谐波检测中虽然得到了广泛的应用,但是在信号处理采样过程中,谐波信号被截断可能导致谐波频谱漏失的问题[4~6];小波变换利用其局部化分析的优势在电网谐波检测领域得到了广泛关注,但是基波的选取没有规范导致算法具有不确定性,并且分层的细化会加大计算量[7~8];神经网络在检测电网谐波方面更具灵活性和精准性,但是训练样本的选择还是其发展的瓶颈[9~10];现代谱估计法具有高精度但是矩阵计算量过大[11]。
近几十年来,现代电力系统分析和仿真的计算需求一直在稳步增长[6]。随着智能电网的出现,对计算吞吐量的需求也随之增加。由于大量注入可再生能源、分布式能源储存和发电以及新技术,用于执行这些任务的模型变得越来越复杂和计算密集[5]。智能电网中可再生能源的整合引入了随机发电,这就需要更复杂的算法来确保系统安全。智能电网中先进计量基础设施(AMI)的部署为电力系统控制中心提供了大量实时数据,因此需要更高效的软件算法和更快的硬件平台。对实时分析和仿真的需求不断增加,这就要求找到更快、更有效和更有效的计算方法,GPU 计算解决了这个问题。本文提出了一种基于CUDA 的电网谐波分析仪,GPU作为并行计算机实现谐波仿真和分析,利用优化窗插值FFT算法实现谐波检测,优化窗采用基于遗传算法的组合预选函数。
利用FFT 分析电网谐波时可能由于周期被分端导致一定的检测误差,加窗和插值都可以有效的提高检测精度。本文利用遗传算法优化组合余弦函数的参数得到一个五阶窗函数,然后利用该函数实现四谱线插值FFT算法实现电网谐波分析。
组合余弦窗函数的旁瓣特性是衡量fft 检测电网谐波改善情况的表征值,组合余弦窗函数的表达式如下:
其中M表示窗函数项数,N表示窗函数长度,n=0,1…N,bm为窗函数输入量,满足:
本文利用遗传算法对旁瓣峰值电压和旁瓣渐近衰减率进行参数优化,优化过程如下:
1)窗函数输入量约束条件优化:
2)以旁瓣峰值电压ν和旁瓣渐近衰减率λ为优化目标建立目标优化函数:
其中,α和β分别为旁瓣峰值电压和旁瓣渐近衰减率的权重,且α+β=1,θ为惩罚因子。α、β的参数设置规则如表1。
表1 α、β 的参数设置规则
惩罚因子θ一般为1,当出现ν>0,λ<0 时,θ为0。
3)遗传算法参数设置
遗传算法参数设置如表2。
表2 遗传算法参数设置表
频率为f0的信号被采样频率fs均匀采样后得到:
其中,C为信号幅值,φ0为初始相位。
x(n)经过加窗后得到xω(n)=x(n)ω(n),经过傅里叶变换后得到:
幅值优化后:
频率优化后:
初始相位优化后:
其中,kp表示最大谱线的FFT点数,yp为其对应的幅值,yp+1为次最大线谱FFT 点数对应的幅值,yp-1和yp+2分别为其两侧的幅值。
CUDA 是一个通用的并行计算平台和编程模型,其编程模型允许开发透明地扩展其并行性的软件,以利用不断增加的处理器核数,允许相同的程序在任何CUDA GPU 上运行。这是通过使用CUDA C/C++编程语言来实现的。
CUDA 的计算单元本质是一个流处理器,执行各个GPU 线程,流处理器被分为多个处理器,这些处理器共享内存和寄存器。CUDA 接口本质上是一个C代码,可以在PGU上运行。它提供了一种混合方法来执行并行计算,其中代码段可以在CPU或GPU 上执行。在设备上执行但从主机调用的模块称为内核。设备上运行的并行内核实现编码,由许多线程并行执行。
图1 CUDA结构框图
CUDA 程序处理有两个单独的内存空间,一个在主机上,一个在设备上。启用CUDA 的设备包括不同的存储器类型,必须对其进行有效编程,以便有效利用硬件[13]。数据传输不仅可以在主机和设备内存之间进行,而且可以在设备上的不同内存之间进行。因此,建议最大程度地减少主机与设备之间的数据传输,以实现最佳整体性能。
固态传输可在主机和设备之间提供最大的带宽,能实现大于5GBps的传输速率[15]。尽管内存复制和内核按顺序执行,但是最先进的GPU 可以将设备上的内核执行与主机和设备之间的数据传输重叠执行。顺序传输主机和设备之间沿任一方向的数据传输通常以阻塞传输方式执行,仅在数据传输完成后,控制权才返回给主机线程。相反,异步传输是一种非阻塞方式。如图2 所示为顺序执行和异步执行示意图。
图2 顺序执行和异步执行示意图
为了验证本文提出的检测方法正确性进行了仿真验证,搭建信号Xi(t),包括基波和谐波,采样频率为3.2kHz,采样数为1024,基波频率为50Hz。如图3 所示为基波的检测波形图,图4 为各次谐波的检测波形图,图5~7为各次谐波的检测相对误差。
图3 基波检测图
图4 各次谐波波形检测图
图5 各次谐波幅值检测相对误差
图6 各次谐波频率检测相对误差
图7 各次谐波相位检测相对误差
根据仿真结果可以看出经过组合余弦窗函数插值后的FFT转换的谐波检测误差更小,谐波检测更精准。利用GPU 计算遗传算法迭代效率更快,实现插值速度更快。
本文针对智能电网的谐波检测和分析展开研究,在分析了现在比较常用的谐波检测方法的优缺点后提出了一种基于组合余弦窗函数插值FFT 变换的谐波检测方法,通过仿真验证该方法可以有效降低因为采样过程处理截断谐波周期导致的检测误差。组合余弦窗函数参数通过遗传算法进行优化,但是计算量大的时候可能会导致计算时间过长,对实时监控电网谐波产生时滞,因此利用CUDA 系统并行计算,通过实验验证,利用GPU 并行计算速度更快,计算精度更高。