于春鹏, 何 勰
(上海船舶运输科学研究所,上海 200135)
对于全电力推进船舶而言,船舶电网的电能质量直接影响船舶运行时的安全性和可靠性,对船舶电网中各台发电机和各主要供配电分段开关的运行参数进行实时监测和记录,是改善船舶电网的电能质量,保证用电设备安全稳定运行的基础,进而可全面分析船舶综合电力系统中的电能质量问题[1]。
对于复杂的船舶综合电力系而言,若所有发电机组控制器都具有电能质量分析功能,则电能质量分析的相关数据可通过机组控制器的网络进行传递,这会大幅降低船舶供配电系统的设计难度和监控系统组网的复杂度,无需专门增加检测设备和组建通信网络系统。因此,设计开发具有电能质量分析功能的船舶控制器具有重要的现实意义。
当前采用的电能质量分析方法主要有小波分析、傅里叶变换和瞬时无功功率等常规分析方法,同时还有引入神经网络和数学形态学等现代高级分析方法的电能质量分析方法。目前技术最成熟、应用最广泛的算法是傅里叶变换算法,其中:适用于数字处理的算法是离散傅里叶变换(Dicrete Fourier Transform,DFT)算法;适用于嵌入式系统的算法是快速傅里叶变换(Fast Fourier Transform,FFT)算法[2]。
FFT算法的基础是DFT算法,利用DFT算法中旋转因子的性质来简化计算过程,减少处理器的运算量。本文采用的是按时间抽取的基2-FFT算法。
设有限长离散序列为x(n),序列长度N=2m,m为正整数。按照n的奇偶性对序列x(n)进行抽取,可将其分为2个N/2长度的子序列,即
(1)
式(1)中:n=0,1,2,…,N/2-1。此时x(n)的DFT可表示为
(2)
(3)
将式(3)代入式(2)得
(4)
由此可计算出x1(n)和x2(n)的DFT为
(5)
(6)
式(5)和式(6)中:k=0,1,2,…,N/2-1。由式(2)可得x(n)的DFT为
(7)
旋转因子具有周期性和对称性,故
(8)
(9)
由式(8)和式(9)可得X(k)剩余部分的计算式为
(10)
由此,x(n)的DFT可表示为
(11)
综上,可按照n的奇偶性将一个长度为N的序列x(n)分解成2个子序列x1(n)和x2(n)。重复上述过程,继续按照奇偶性对子序列x1(n)和x2(n)进行抽取,最后将其分解成N个1点的DFT。这种运算也称作蝶形运算。
为简化描述,以N=8为例来展示x(n)的FFT蝶形运算过程(见图1)。
图1 8点FFT蝶形运算过程
本文采用的是1 024点FFT运算,原理与图1相同,可分解为1 024个蝶形运算过程,这也是FFT算法能在FPGA中实现的基础。
在分析电能质量时,只有在对连续的时序信号进行截断和采样处理之后才能进行FFT运算,其中截断就是对连续信号进行加窗函数处理。窗函数有很多种,如矩形窗函数、汉宁窗函数和二阶升余弦窗函数等。
电网频率存在波动,若不能实现理想的同步采样处理,在这种情况下进行DFT运算时就不能准确分析出原信号的频谱,从而出现频谱泄漏的现象。当出现频谱泄漏现象时,得到的频谱图与所加的窗函数直接相关。因此,在标准IEC 61000-4-30中,A类电能质量设备不能采用FFT加窗技术实现电能质量分析,只有尽量实现同步采样,才能弥补上述分析方法的不足[3]。
本文采用先进的同步采样AD转换器AD7771实现对电网频率波动0.01 Hz的追踪同步采样。
AD7771具有8路通道、24位同步采样数模转换器(Analog to Digital Converter,ADC),8路通道间可实现同步采样,每路通道可达到最大1.28×105次/s的采样率。AD7771采样通道拓扑结构见图2。
图2 AD7771采样通道拓扑结构
如图2所示,AD7771每路通道都有低通SINC滤波器。SINC滤波器通常具有使ADC内核输出数据的速率降低一定的整数值(与工作时钟速率相关)的功能,该功能称为抽取功能。通常,抽取限制为一定的整数值。
AD7771具有的SINC滤波器具有同步采样速率转换器(Sample Rate Convertor,SRC)的功能,可实现非整数值抽取,并可在运行过程中随时进行更改。HOST端只需根据电网频率的变化进行更改,对AD7771内的SINC滤波器的抽取系数(N)进行编程,从而实现对电网频率波动在0.01 Hz范围内的同步跟踪。
输出数据速率(vODR)的计算式可表示为
(12)
式(12)中:N为SINC滤波器的抽取系数;fMCLK为提供给AD7771的工作时钟频率;M为AD7771时钟分频系数,在不考虑功耗的情况下,M=4;fmod为AD7771的调制器的采样时钟。
(13)
本文采用FPGA进行1 024点的FFT运算,需在一个周期内对电量信号进行1 024次采样。当线路频率为50.00 Hz时,输出数据速率vODR为
vODR=51.2 kHz
(14)
本文中AD7771采用的工作时钟频率fMCLK=8 192 kHz,因此调制器的采样时钟为
(15)
由式(12)可知,抽取系数N为
(16)
若电网线路的频率变为50.01 Hz,则对于FPGA内的FFT算法而言,仍需在一个周期内完成1 024点采样,进而使算法达到对电网频率同步采样的要求。采用式(14)~式(16)重复计算,可得到50.01 Hz频率下新的抽取系数N=39.992。
AD7771的SRC可对非整数抽取系数进行响应,分别将整数部分和非整数部分写入对应的响应寄存器中,即可完成配置。
由于AD7771需依赖更新的抽取系数完成对电网频率的跟踪同步采样,而SRC在加载新抽取系数之后转换为新ODR时会出现延迟,这就使得SRC对新的抽取系数的响应延迟和采样的同步性有至关重要的影响。
FPGA通过检测AD7771的数据抽取完成指示引脚DRDY的状态来同步读取ADC的转换结构,因此SRC的响应延迟可利用从更新抽取系数到DRDY开始按照新的ODR速率输出结果的时间延迟来衡量。图3为AD7771新的数据输出延迟图。
图3 AD7771新的数据输出延迟图
以电网频率为50.00 Hz为例,由式(14)可知此时ODR输出频率(即DRDY输出的频率)为51.2 kHz,由图3可分析出新的数据输出会延迟3~4个DRDY脉冲,即总的延迟会小于78.125 μs,这对于FFT计算谐波产生的影响而言是可接受的。
船舶电站控制器的核心功能是实现对机组和整个电站的控制与监测,而本文中的电能质量分析功能是在船舶电站控制器的算力存在裕量的情况下附加的功能,因此整个电能质量分析算法不能影响船舶电站控制器的核心功能算法的应用。
由此,本文将FFT算法嵌入到FPGA中,利用FPGA的并行计算能力,使原本在MCU或DSP中需大量算力和时间才能完成的任务能在FPGA中用相对较短的时间完成,同时不会影响FPGA中其他功能模块的运行[4]。
由图1可知,蝶形运算单元为FFT算法的基础组成单元,因此在FPGA中首先实现蝶形运算单元是完成FFT运算的基础。本文依托的平台为上海船舶运输科学研究所的船舶电站控制器,该平台采用Altera公司的Cyclone II系列FPGA完成。图4为FPGA实现的蝶形运算单元。
FPGA读取AD7771的转换结果存储在FPGA的RAM单元中,同时旋转因子预置在FPGA的ROM中[5]。结合蝶形运算单元及相应的读取和运算时序逻辑实现的1 024点FFT算法见图5。
FPGA实现的FFT算法只有配合RAM、ROM和外设AD读取的内容才能实现,因此时序操作的准确性决定了FFT运算结果是否正确。图6为FPGA内FFT算法模块的时序仿真结果。
图4 FPGA实现的蝶形运算单元
图5 FPGA实现的1 024点FFT算法
图6 FPGA内FFT算法模块的时序仿真结果
通过FLUKE 6003A三相标准功率源的谐波功能对该设计进行验证。在基波频率为50.00 Hz的基础上叠加3次谐波和20次谐波,在基波频率为50.02 Hz的基础上叠加3次谐波和20次谐波,分别验证该设计的输出结果。图7和图8为利用MATLAB绘制的不同电网频率下FPGA的FFT计算结果。
图7 电网频率为50.00 Hz时FPGA的FFT计算结果
图8 电网频率为50.02 Hz时FPGA的FFT计算结果
由图7和图8可知,FPGA的FFT计算结果能准确地反映50.00 Hz和50.02 Hz的基波及所叠加的3次和20次谐波,因此可认为该设计的硬件和算法是准确的。后续还需进行工程化完善并经过专业检测机构的检测认证和实船应用验证,进一步验证该设计的可靠性。
本文根据全电力推进船舶电力系统的发展现状,提出采用同步采样的方式来规避传统加窗FFT算法在电能质量分析中应用时存在的不足,同时在FPGA中实现FFT算法,并进行验证,为在船舶电站控制器中加入电能质量分析功能提供了有效支撑,为未来实时、全面、长期对全船电力系统的电能质量状况进行监测和改善打下了基础。