CN102288819B - 一种基于fpga的电力谐波分析仪 - Google Patents

一种基于fpga的电力谐波分析仪 Download PDF

Info

Publication number
CN102288819B
CN102288819B CN 201110236979 CN201110236979A CN102288819B CN 102288819 B CN102288819 B CN 102288819B CN 201110236979 CN201110236979 CN 201110236979 CN 201110236979 A CN201110236979 A CN 201110236979A CN 102288819 B CN102288819 B CN 102288819B
Authority
CN
China
Prior art keywords
data
module
fpga
circuit
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110236979
Other languages
English (en)
Other versions
CN102288819A (zh
Inventor
李晶皎
薛长江
陆振林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN 201110236979 priority Critical patent/CN102288819B/zh
Publication of CN102288819A publication Critical patent/CN102288819A/zh
Application granted granted Critical
Publication of CN102288819B publication Critical patent/CN102288819B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

一种基于FPGA的电力谐波分析仪,属于电力电子技术领域,该电力谐波分析仪包括传感器电路和AD采样电路以及设在FPGA中的数据采集模块、数据缓存模块、数据类型转换模块、加窗模块、FFT运算模块、运算结果存储和中断产生模块、NiosⅡ软核处理器模块、LTM显示模块。本发明前端的谐波采集和处理使用硬件实现,充分发挥了硬件加速的优势;利用FPGA中的NiosⅡ软核处理器对处理后的数据做进一步运算和控制,该过程在FPGA片内总线上完成,解决了数据的传输,充分发挥了硬件设计的高速性和NiosⅡ软核处理器控制的灵活性。

Description

一种基于FPGA的电力谐波分析仪
技术领域
本发明属于电力电子技术领域,特别涉及一种基于FPGA的电力谐波分析仪。
背景技术
电力系统的谐波分析在电能质量分析,电力系统控制中具有重要意义,谐波的快速准确的检测是谐波抑制和无功补偿的基础。
目前,国内外对于电力系统谐波检测的方法很多,国际国内针对电力系统谐波检测和谐波分析的方法主要有以下几种:
(1)模拟滤波器法
早期的谐波检测方法都是基于频域理论,即采用模拟滤波原理。模拟滤波器有两种,一是通过滤波器滤除基波电流分量,得到谐波电流分量;二是带通滤波器得出基波分量,再与被检测电流相减后得到谐波电流分量,其原理和电路结构简单,造价低,能滤除一些固有频率的谐波。但这种检测方法有其自身的缺点:误差大,实时性差,电网频率变化时尤其明显,对电路元件参数十分敏感,参数变化时检测效果明显变差,难以获得理想的幅频和相频特性。
(2)基于瞬时无功功率理论的谐波检测法
根据该理论,可以得到瞬时有功功率p和瞬时无功功率q,p和q中都含有直流分量和交流分量。由此可得被检测电流的基波分量,将基波分量与总电流相减即得相应的谐波电流。因为该方法忽略了零序分量,且对于不对称系统,瞬时无功的平均分量不等于三相的平均无功。所以该方法只适用于三相电压正弦对称情况下的三相电路谐波和基波无功电流的检测。
(3)基于神经网络的谐波检测法
随着电网谐波检测要求的速度、精度和实时性不断提高,谐波检测理论的不断深入,人工神经网络等新型的方法正在被运用到谐波检测中。
人工神经网络包括自适应线性人工神经网络,基于多层前馈的神经网络和基于多层反馈的神经网络。用人工神经网络实现谐波与无功电流检测不仅对周期性变化的电流具有很好的跟踪性能而且对各种非周期变化的电流也能进行快速跟踪,对高频随机干扰有良好的识别能力。但是神经网络工程实际还有很多问题,例如,没有规范的人工神经网络构造方法,需要大量的训练样本,如何确定需要的样本数没有规范方法,人工神经网络的精度对样本有很大的依赖性等。
(4)基于小波分析的谐波检测法
小波分析是一种新兴起的信号处理方法,是信号时域分析的重要工具,它克服了傅立叶分析在频域完全局部化而在时域完全无局部化的缺点,在频域和时域同时具有良好的局部性,对信号的奇异点(如突变点、不连续点)也非常敏感,因而能算出某一特定时间的频率分布,并将各种不同频率组成的频谱信号分解成不同频率的信号块,尤其适合非平稳突变信号的分析与处理。通过对含有谐波的电流信号进行正交小波分解,得到电流信号在各个频段的分解结果,可较准确地求出基波电流,进而求得谐波,从而实时地跟踪电力系统谐波的变化。虽然小波变换得到结果的解析度是好的,但处理时间和内存使用的要求很高。
(5)傅里叶变换法
傅里叶变换法是在电力系统谐波分析中应用非常广泛的一种方法。傅里叶变换方法具有完备、正交等许多优点,是一种经典的信号分析方法。傅里叶变换的实质是将分析信号分解为多个频率的正弦分量之和的形式。在实际分析时,需要用到计算机进行谐波分析。这就需要信号在时域和频域上是离散的,并且都是有限长。此时的傅里叶变换,称之为离散傅里叶变换(DFT)。为了提高运算速度,一般在进行谐波分析时主要是应用快速傅里叶变换算法(FFT)。实际分析的过程中,由于栅栏效应和泄漏现象的影响,FFT会产生很大的误差。这主要是因为将信号截断为有限长以及非同步采样。针对这两个问题,可以采取不同的措施来减小分析误差。通过加窗函数的方法来缓解泄漏现象,但是要选择合适的窗函数才会达到目的。通过插值算法来应对栅栏效应,这样可以分析出被漏掉的频率成份。加窗插值FFT中的窗函数已经发展到矩形窗(泄漏现象比较明显)、Hamming窗、Hanning窗、Blackman窗等。文献[25]中,为了限制泄漏的影响,经典的Hanning窗取代了矩形窗。虽然窗函数在一定程度上能够减少泄漏的影响,并且DFT的准确性已经有所改善,但是由于宽大的主瓣,窗函数也会模糊DFT的结果。然后运用插值算法,有效地较少栅栏效应。本发明依据傅里叶变换法来实现谐波的检测。
目前,在国内外的研究中,主要通过在三种硬件平台上来实现谐波的检测:
(1)以虚拟仪器为核心
这种方式是以通用的PC机为主要的开发平台,配合虚拟仪器软件,数据采集卡以及传感器电路实现。例如,美国国家仪器公司的虚拟仪器软件LabVIEW具有强大的模块节点和计算能力,网络功能。
厦门大学的陈栩等人提出了一种采用基于LabVIEW的电能质量监控系统的设计方法,它使用FFT算法作为谐波检测算法。这种实现方法灵活,摆脱了硬件上的束缚和干扰,充分利用了虚拟软件的功能,提高了测量的精度和系统开发的效率。但是这种谐波分析仪不能随身携带,并且需要一台专用的PC机开发平台,实现成本较高。
(2)以通用处理器为核心
这种方式采用通用的处理器(ARM,DSP等)作为控制核心和算法实现单元,并辅以外围的AD转换电路,信号调理电路等外围电路。现在有很多的电能监控设备或者谐波分析仪都采用具有很强控制功能的DSP或者DSP和ARM双CPU作为核心。这种方式既能很好满足检测算法中复杂运算的需求,也能够满足系统控制的需要,并且具有很好的网络功能,能够和本地的应用端网络连在一起。
上海交通大学的王丽颖等人使用DSP和ARM双CPU结构实现了电能质量监控系统。采用双CPU的工作模式,这种方式虽然可以很好的实现各种功能,DSP和ARM都存在开发周期长,系统可扩展性不高的缺点,并且这种双CPU结构电路的硬件电路复杂,价格昂贵,设备开发和调试十分困难,后期的升级和维护也十分不易。
(3)以FPGA为核心
这种方式采用FPGA来实现谐波检测算法,并且加上外围采集电路等实现。武汉理工大学的潘磊等人研究了一种基于FPGA的电力谐波检测系统。使用FPGA实现了FFT处理单元。FFT处理单元采用了FPGA内嵌的硬件乘法器和加法器做并行运算,实现了硬件的并行处理。但这种检测系统由于采用硬件实现逻辑,系统可重构性较弱,耦合性较高,对于需要添加新的功能模块或对某一模块进行修改时,系统的修改较大,同时需要对系统进行重建;另外,该系统的可读性较差,各模块间的数据流向以及数据通讯方式很难直观的被程序开发人员读取,为后续的维护造成了很大的困难。
山东大学的梁海霞等人研究了一种基于FPGA的谐波检测装置,提出利用SOPC技术解决方案,在FPGA中内嵌Nios II软核作为控制器,并实现了硬件的FFT算法。但该装置没有具体的系统实现,只是进行了功能的仿真,并且该装置的FFT的处理精度为128位,由于采用同步采样,在实际系统设计实现中,容易造成采样不准确的情况。
发明内容
本发明针对现有技术存在的问题,提供一种基于SOPC技术,应用FPGA平台的电力谐波分析仪,采用电流电压互感器作为前端传感器,使用高速的16位AD芯片设计采样电路采集电流电压信号,运用Verilog HDL硬件描述语言设计了采样电路AD7606的驱动程序,将采集到的电压电流信号进行缓存,然后进行前期的谐波算法预处理。结合SOPC Builder,在FPGA上嵌入Nios II软核作为系统控制单元,设计了一个显示IP核,将这个IP核挂载在NiosII软核处理器上,控制检测数据在液晶屏上的显示输出。完成系统构建,并编写C程序进行控制算法和显示控制,最后在友晶公司的DE2-70开发板上进行验证。
本发明的一种基于FPGA的电力谐波分析仪,包括有硬件部分和软件部分。
本发明的一种基于FPGA的电力谐波分析仪的硬件部分包括有传感器电路和AD采样电路。
传感器电路主要负责将电力系统中电流电压信号转换为-5V~+5V之间的电压信号,并完成信号的调理。AD采样电路主要负责将模拟的谐波信号转换为16位的数字信号,提供给FPGA做进一步的处理。
本发明的一种基于FPGA的电力谐波分析仪,主要包括以下几个模块:数据采集模块、数据缓存模块、数据类型转换模块、加窗模块、FFT运算模块、运算结果存储和中断产生模块、Nios II软核处理器模块、LTM显示模块。
本发明的数据采集模块主要负责驱动AD7606进行8路信号,1024点的同步采样,然后将数据读取到FPGA片内,提供给下一级的数据缓存模块。模块通过对输入时钟计数,控制AD7606进行采样速率为10.24K的等间隔采样。
本发明的数据缓存模块主要完成采样数据的存储,控制,以及输出。从ADC数据采样模块输出的采样数据是按照1到8路数据一次输出,系统需要将这8路数据分别存储在片内RAM中,当有输出触发信号时,按设定顺序依次输出1路采样数据。
本发明的数据类型转化模块主要负责将数据类型为有符号整型的采样数据转换为浮点类型数据,然后将转换为的浮点数据提供给加窗模块。
本发明的加窗模块主要负责将给每一路的采样数据加上1024宽度的Blackman窗。当有效信号到达时,该模块首先产生Blackman窗数据,然后将Blackman窗数据与采样数据相乘,并将计算结果提供给下一级的FFT运算模块。
本发明的FFT运算模块主要实现1024点的浮点FFT运算。该模块主要负责将加窗后的数据进行FFT运算,它决定了本发明整个系统的实时性。
本发明的运算结果存储和中断产生模块主要负责缓存FFT运算结果,并通知Nios II软核处理器系统读取运算结果。这个模块产生缓存的控制信号,数据存储地址,以及时序控制等,存储完成后产生1个时钟的高电平,作为中断信号,与Nios II软核处理器系统交互。
本发明的Nios II软核处理器模块主要完成总体的核心控制,各个模块的协调作用,负责读取FFT运算结果,然后在软件中对采样数据进行插值运算,计算出谐波的相关参量,调用LTM显示IP核,将谐波参量显示在LTM液晶屏上。当收到FFT运算模块完成计算,并完成运算结果的缓存后,产生一个中断信号,通知Nios II软核处理器系统读取运算结果。当完成1路谐波计算后,该模块发出命令,读取下一路数据。直到完成所有电压电流采样数据后,再发出命令开始下一轮的采样。
针对现有技术存在的问题,本发明的一种基于FPGA的电力谐波分析仪,前端的谐波采集和处理使用硬件实现,充分发挥了硬件加速的优势;利用FPGA中的Nios II软核处理器对处理后的数据做进一步运算和控制,该过程在FPGA片内总线上完成,解决了数据传输的瓶颈,充分发挥了硬件设计的高速性和Nios II软核处理器控制的灵活性。在100MHz时钟下,前端的处理模块可以在77us内完成一次1024点浮点FFT运算,Nios II软核处理器能在78ms完成1路谐波信号的插值和谐波参数计算,在实际应用中,系统能够满足实时检测的需求。本系统的AD采用两片AD模块级联的方式,具有16位采集精度,具有较高的精度。对系统进行的相关分析和测试表明,系统运行稳定,检测精度较高,处理速度快。
附图说明
图1本发明的系统总体构成示意图;
图2本发明的系统总体流程图;
图3本发明实施例使用的Nios II软核处理器模块结构框图;
图4本发明实施例使用的电压采集电路图;
图5本发明实施例使用的电流采集电路图;
图6本发明实施例使用的单片AD7606-4电路原理图;
图7本发明实施例使用的REF5025的电路原理图;
图8本发明实施例使用的数据采集模块图;
图9本发明实施例使用的数据采集模块设计流程图;
图10是本发明实施例使用的AD采样驱动单元状态机流程图;
图11本发明实施例使用的数据采集模块的时序仿真图;
图12本发明实施例使用的数据缓存模块图;
图13本发明实施例的写数据时序仿真图;
图14本发明实施例使用的数据类型转换模块图;
图15本发明实施例使用的数据类型转换模块时序仿真图;
图16本发明实施例使用的加窗模块结构图;
图17本发明实施例使用的控制单元状态机流程图;
图18本发明实施例使用的复数逻辑单元ALU1结构图;
图19本发明实施例使用的复数逻辑单元ALU2结构图;
图20本发明实施例使用的运算结果存储模块图;
图21本发明实施例使用的运算结果存储模块的时序图;
图22本发明实施例使用的SOPC Builder的配置界面图;
图23本发明实施例的总体控制单元的流程图;
图24对本发明实施例FFT运算单元进行测试的单频正弦信号频谱图;
图25对本发明实施例FFT运算单元进行测试的单频正弦信号仿真误差图;
图26对本发明实施例FFT运算单元进行测试的双频正弦信号频谱图;
图27对本发明实施例FFT运算单元进行测试的双频正弦信号电路仿真误差图;
图28对本发明实施例FFT运算单元进行测试的三角信号频谱图;
图29对本发明实施例FFT运算单元进行测试的三角信号电路仿真误差图;
图30对本发明实施例系统实时行进行测试的一路谐波计算所需时间图。
具体实施方式
下面结合附图对本发明内容作进一步描述。
本发明实施例是在Altera公司的FPGA开发板DE2-70上实现的。开发板预留了两个扩展接口。在本系统中,这两个扩展接口分别用于显示模块LTM和AD7606的采集电路连接。DE2-70开发板上的FPGA芯片是Altera公司Cyclone II系列EP2C70F896C6N。本系统总体构成示意图如图1所示。系统的总体流程图如图2所示。本系统中的Nios II软核处理器模块结构框图如图3所示。
本发明的基于FPGA的电力谐波分析仪中的传感器电路,主要包括电压和电流信号采集部分。在电压信号采集部分中,电压的输入范围为±1000V,将±1000V范围内的交流电压转换为±5V范围内的交流电压信号。在电流信号采集部分,电流的输入范围为±20A,将±20A范围内的交流电流转换为±5V范围内的交流电压信号。本发明采用电压互感器PT,电流互感器CT作为电压采集部分和电流采集部分的传感器。
本发明选用“兵字”高精度的电压互感器和电流互感器TV1013和TA1420。这两种传感器的精度都一样,工作频率范围20Hz~20kHz,使用运算放大器的情况下,互感器信号输出非线性度不大于0.1%,相位误差小于5’,满足系统的精度和测量范围的要求。
(1)电压信号采集电路
电压信号采集电路的输入为±1000V范围内的交流电压,具体的设计电路如图4所示。电压互感器TV1013的电流型电压互感器,最大输入电压为1000V,互感器线圈匝数比为1∶1,额定电流2mA。运算放大器采用了TI的OPA2227该放大器具有高精度、低噪声、低功耗、低偏置的优点,能够满足要求。
由电压互感器的原理可以知道,副边的电压输出为:Uout=Uin/R1*R2,因为电压互感器的额定电流为2mA,R1的阻值设定为500K,R2的阻值设定为2.5K,能够满足采样电路输入±1000V交流电时,输出±5V的交流电压信号。电压信号采集电路的输出将送到AD7606的模拟输入端。
(2)电流信号采集电路
电流信号采集电路的输入为±20A范围内的交流电流,具体的电路如图5所示。电流互感器互感器TA1420-04线圈匝数比为4000∶1,原边额定输入电流20A,次级的额定输出电流为5mA。信号调理电路中,放大器依然采用OPA2227。
通过电流互感器的参数可以知道,副边电压输出为:Uout=Iin/4000*R,电流互感器的额定输出电流为5mA,R的阻值设定为1K,能够满足采样电路输入±20A时,输出±5V的交流电压信号。同样地,将电流信号采集电路的输出送到AD7606的模拟输入端。
本发明的AD采样芯片选用了ADI公司的AD7606-4,具体的电路原理如图6所示。AD7606-4具有16位数据精度,4路同步采样输入,同时所有通道均能以高达200kSPS的吞吐速率采样,能够满足系统对精度和采样速度的要求。
AD7606-4片内资源非常丰富,可以最大限度简化采样系统外围电路的设计。它采用5V单电源供电,可以处理±10V或±5V范围内的双极性输入信号输入,片内箝位保护电路可以耐受最高达±16.5V的电压,模拟输入阻抗均为1MΩ。同时,片内还集成了二阶抗混叠滤波器,抗混叠滤波器的3dB截止频率为22KHz。因此,在AD采样电路之前省略抗混叠滤波器的设计。
因为AD7606只有4路采样通道,为了满足3相电采样的需求,系统使用两片AD7606-4并联,使系统可以实现多达8路信号的同步采样。在本发明中,选用±5V输入范围,片外参考电压方式。与FPGA的通信时,使用并行通信方式。发明中使用片外的基准电压REF5025作为AD7606的参考电压,REF5025具有低噪声、极低漂移、高精度的优点,能够使系统精度更加稳定。图7是REF5025的电路原理图,输入5V电压,输出2.5V的标准参考电压。
实施例的逻辑电路模块:
数据采集模块主要完成对芯片AD7606的驱动,并将采样数据读取到FPGA片内,提供给下一级的数据缓存模块。当数据采集模块收到Nios II软核处理器系统的启动采样信号时,数据采集模块开始启动新的一轮采样。在一轮采样中,数据采样模块将等间隔采样1024次,采样速率为10.24KHz。模块的时钟端iCLK输入为50MHz,计数器对时钟输入计数,从0计到4883时,即完成一次采样,并启动下一次采样。通过硬件自身计数实现的10.24KHz等间隔采样要比在处理器系统中使用计数器启动每次采用精确。数据采集模块的顶层设计文件如图8所示。
数据采集模块需要对两片AD7606-4进行驱动。ACONVSTA和ACONVSTB用于启动第一片AD7606采样,用于控制电压采样的4个通道;BCONVSTA和BCONVSTB用于启动第二片AD7606采样,用于控制电流采样的4个通道。在本系统中,iSwitch用于控制电流电压的相位偏移,也就是控制ACONVST和BCONVST之间的时间差。由于传感器精度的原因,经过传感器之后的电流电压信号存在系统性相位误差,在本模块中,可以精确控制同一次采样中电流电压通道的时间差,校正相位差。当iSwitch的输入为逻辑′0′时,电流电压通道同时采样,当iSwitch的输入为逻辑′1′,可以设计电流电压的采样通道采样的时间差,这个参数由传感器精度决定。每一轮采样的流程如图9所示。
在硬件电路的设计中已经知道AD7606的数据输出是三态的,两片AD7606公用一条数据总线。当AD7606完成数据转化后,CS_N和RD_N信号配合使用就可以将转换后的数据读取。当ACS_N为低电平,RD_N下降沿时,第一片AD7606返回一路转换数据,4个RD_N下降沿将返回第一片AD7606全部4个通道的采样数据;同样的,当BCS_N为低,RD_N下降沿时,第二片AD7606返回转换一路数据,4个RD_N下降沿将返回第二片AD7606全部4个通道的采样数据。oCLK,oWrite,oDATA是模块向数据缓存模块输出的信号和数据。在一次数据读取中,在开始输出数据时。oWrite变为高电平,当输出完8路数据后,oWrite变为低电平。在oCLK的上升沿,oDATA开始输出锁存数据。图10是AD采样驱动单元状态机流程图。图11是数据采样模块的时序图。
数据的缓存模块主要完成采样数据的存储,控制,以及输出,所以该模块由主要分为3个部分,分别是数据的存储部分、数据输出控制部分、数据输出读取部分。在数据缓存模块中,有8个长度为1024的双口RAM,用于存储采样电路8个通道中的数据。数据缓存模块顶层设计文件如图12所示。在系统中,数据采集模块的oWrite,oCLK,oDATA,分别与write_en,data_clk,data_in相连。
数据的存储部分是完成8路数据的存储。数据采样模块输出的采样数据按照1到8路通道依次输出,系统需要将这8路数据分别存储在对应的片内RAM中。系统需要为每一片双口RAM产生写使能信号,写地址。写地址是由一个1024进制计数器产生,计数器在每个write_en信号的下降沿加1。因为write_en信号表示一帧信号有效,也就是说数据采集模块在输出8路采样数据时,write_en信号为逻辑′1′,在未输出数据时为逻辑′0′。因此可以直接将这个计数器作为每片RAM的写地址。写使能信号由一个状态机和一个8进制计数器共同产生。在采样数据有效输出时,也就是write_en为逻辑′1′时,8进制计数器在每个data_clk信号的上升沿加′1′。状态机根据8进制计数器的大小,分别为每一片RAM产生写使能信号。当写完1024帧数据后,模块产生一个done_valid的有效脉冲,表示完成了一轮数据的存储。图13是写数据的时序图。
数据的读取部分是按照指定顺序读取采样数据。out_way用于控制数据输出方式,当out_way为′00′时,只输出A相的电压电流,即用于检测单相谐波;当out_way为′01′,用于检测三相三线制电路的谐波,当out_way为′10′时,用于检测三相四线制电路的谐波。当data_out_trigger有脉冲输入时,模块将开始输出1个通道的采样数据。在对单相电路进行谐波检测时,在第一个脉冲输入data_out_trigger,A相的1024个电压采样数据将开始从data_out输出,同时data_out_valid有效;在第二个脉冲输入data_out_trigger,A相的1024个电流采样数据将开始从data_out输出,同时data_out_valid有效。在对3相3线制电路和3相4线制电路进行检测时,数据的输出方式类推。在数据输出部分主要由两个状态机和一个1024进制的计数器实现。1个状态机产生读使能信号,1个状态机读取RAM的输出,并赋值给data_out。1024进制的计数器主要用于产生RAM的读取地址。
数据类型转化模块主要将有符号的16位整数转换成满足IEEE-754标准的浮点数。为了保证计算精度,系统在计算过程的数据类型采用单精度的浮点。所有AD7606转后的数据都是16位的有符号整数,在采样数据进行加窗之前,需要将采样数据转换成浮点数据。图14是数据转换模块的框图,该模块是调用软件开发工具Quartus II提供的模块实现,使用流水线结构,转换过程有6个时钟的延时。图15是数据类型转换模块时序仿真。
加窗模块主要实现在采样数据进行FFT运算之前,对采样数据加上Blackman窗。加窗模块的结构图如图16所示。加窗模块主要包括Blackman窗数据产生单元,流水线乘法单元。Blackman窗数据产生单元将产生长度为1024的Blackman窗数据。因为Blackman窗是对称的,所以Blackman窗的数据可以复用。系统采用复用方式,只将前513个点的数据存储在片内ROM中。片内ROM的地址是有一个是由一个计数器产生。在data_in_valid有效时,在每个时钟上升沿,计数器从0计到512,然后512到1,即完成了运算。
流水线乘法单元模块主要实现对应的Blackman窗数据与采样数据的乘法运算。这个单元主要调用了Quartus II提供的浮点数乘法模块实现,具有6级流水结构,运算结果对输入数据有6个时钟的延时。在本模块中,确保采样数据和Blackman窗数据的同步是关键。
FFT运算模块采用基-4方式,本发明的FFT模块采用浮点运算,需要占用较多的逻辑资源。由于FPGA片内资源的限制,FFT运算模块不能采用流水结构,蝶形运算单元、复数乘法器,以及旋转因子都采用复用形式。FFT运算模块的设计主要包括总体控制单元,蝶形运算单元和地址产生单元。
总体控制单元主要完成总体的时序控制。包括对五级蝶形运算单元,地址产生单元,输出模块的是时序控制。总体控制单元包括一个状态机,一个7进制计数器。状态机共有4个状态,配合7进制计数器,控制FFT运算模块的进程。这4个状态分别为ctrl_idle,stage,stage_idle,stage6。状态机的设计如图17所示。
ctrl_idle是空闲状态,stage状态控制蝶形运算的进行,stage_idle等待蝶形运算的完成,stage6状态用于控制最后FFT运算结果的输出。为了提高系统速度,电路的设计都是采用流水结构,蝶形运算中的乘法器,加法器都是采用流水线结构,计算结果相对计算输入有时间延时。在本设计中,蝶形单元加旋转因子一共延时35个时钟。本系统中stage_idle延时50个时钟,重现进入下一个状态。
当1024个采样数据在FFT中的存储后完成之后,控制单元状态机从空闲的ctrl_idle状态进入到控制状态stage,同时7进制计数器变为′1′,等待1024个时钟长度后,状态机进入stage_idle状态,等待第一级蝶形运算的完成。在stage状态中,同时产生1个1024脉冲宽度的使能控制信号。这个使能信号配合7进制计数器用于产生读写时能信号,并提供给地址产生模块用于产生读写地址,以及控制蝶形单元。在将跳出stage_idle状态时,判断7进制计数器的值,如果7进制计数器不等于5,则重新进入stage状态,开始进入下一级蝶形图运算,且计数器的值加1。如果计数器等于5,说明已经全部完成了5级蝶形运算,状态机进入stage6状态,开始输出FFT运算结果。状态机再次进行stage状态时,运行过程和第一级类似,不在此赘述。状态机进入stage6状态时,将产生一个1024个脉冲宽度dout_valid信号,用于控制地址产生单元产生FFT输出地址,以及读取使能信号。
蝶形运算单元,为了减少系统硬件资源的开销,本系统的蝶形单元采用流水结构。蝶形产生单元主要包括3个状态机,4个复数逻辑运算单元。通过状态机控制蝶形单元中的延时。蝶形运算单元的复数逻辑运算部分,蝶形运算可以写成如下形式:
X(K)=A+BWP+CW2P+DW3P
X(K+N/4)=A-jBWP-CW2P+jDW3P
X(K+2N/4)=A-jBWP+CW2P-jDW3P
X(K+3N/4)=A+jBWP-CW2P-jDW3P
将计算式分割为如下:
x′(n)=(x(n)+x(n+N/2))+(x(n+N/4)+x(n+3N/4))
x′(K+N/2)=(x(n)+x(n+N/2))-(x(n+N/4)+x(n+3N/4))
x′(K+N/4)=(x(n)-x(n+N/2))-j*(x(n+N/4)-x(n+3N/4))
x′(K+3N/4)=(x(n)-x(n+N/2))+j*(x(n+N/4)-x(n+3N/4))
令a(0)=x(n)+x(n+N/2),a(2)=x(n)-x(n+N/2),a(1)=x(n+N/4)+(n+3N/4),a(3)=x(n+N/4)-(n+3N/4)上面的等式可以变为:
x′(n)=b(0)=a(0)+a(1)
x′(n+N/2)=b(2)=a(0)-a(1)
x′(n+N/4)=b(1)=a(2)-ja(3)
x′(n+3N/4)=b(3)=a(2)+ja(3)
通过分析可以看出,蝶形单元最终可以分解为只有a+b,a-b,a+jb,a-jb四种计算。本文设计了两种复数逻辑运算单元用于实现上述4种运算。这两种复数逻辑运算单元为ALU1和ALU2,ALU1完成a+b和a-jb运算,ALU2完成a-b和a+jb运算。ALU1的结构设计如图18所示。
op用于控制ALU1的运算方式,当op=0时,c=a+b,或当op=1时,c=a-jb。ALU1中的浮点加法器具有8级流水结构,从数据输入到计算结果的输出有8个时钟的延时。
ALU2的结构设计如图19所示,op用于控制ALU1的运算方式,当op=1时,c=a+jb,或当op=0时c=a-b。和ALU1一样,ALU2中的浮点加法器也是具有8级流水结构,从数据输入到计算结果的输出有8个时钟的延时。
在蝶形单元内部,采用流水线结构。a(0),a(1),a(2),a(3)在第一级流水中实现,使用第1个状态机控制,b(0),b(1),b(2),b(3)在第二级流水中实现,使用第2个状态机控制,第3个状态机主要读取第二级状态机的运算结果。
表1是状态机1的工作流程。状态机中一共有4个工作状态,每个状态都需要读取输入蝶形单元的四个数。在第3个状态时,分别使用一个ALU1和ALU2,读取x(n)和x(n+N/2)计算a(0)和a(2)。同样的,在第四个状态中,计算出a(1)和a(3)。这个状态机主要控制将蝶形单元的4个输入数据送到ALU1和ALU2输入端口上。
表1状态机1工作流程
表2是状态机2的工作流程。第2个状态机主要读取第1个状态机中ALU11和ALU21的计算结果,也就是读取a(0),a(2),a(1),a(3)。状态机2同样有4个工作状态,在第1个状态读取a(0),a(2),在第2个状态读取a(1),a(3),并且分别再使用一个ALU1和ALU2,读取a(0)和a(1)计算b(0)和b(2)。同样的,在第四个状态中,计算出b(1)和b(3)。
表2状态机2工作流程
表3是状态机3的工作流程。第3个状态机主要读取ALU21和ALU22的计算结果,并将蝶形单元的运算结果依次输出。
Figure BDA0000084178880000113
表3状态机3工作流程
地址产生单元是FFT运算模块的重要组成部分。1024点的基-4FFT共有5级蝶形预算。地址产生单元需要为每一级蝶形单元产生读取地址和存储地址,并且产生旋转因子的读取地址。在该小节中,首先分析了基-4FFT地址产生的规律,然后分别设计了片内RAM的地址发生器,旋转因子的地址发生器。其中,RAM地址发生器包括五级地址发生器和输出RAM地址发生器。旋转因子包括4级地址发生器。
(1)FFT地址产生规律分析
由于在FFT运算过程中需要大量的RAM,ROM。所以如何正确的读取数据,存储数据便成为了一个非常重要的问题。为了能够设计出准确、快速的地址发生器,需要对基-4FFT数据存取的规律进行分析。
根据对基-4信号流程的分析,总结出以下几条规律:
1)蝶型组
在基-4的蝶形运算中,第一次迭代只有一个蝶型组,第二次迭代有四组。一般地,第m次迭代有4m-1个蝶型组,但各次迭代蝶型单元的数目是相同的,都有N/4个蝶型单元。因此,在各次迭代中,随着蝶型组数的增加,每个蝶型组内的蝶型单元的数目就相应减少。第一次迭代一个蝶型组包含256个蝶型单元,第二次迭代有四个蝶型组,每组包含64个蝶型单元。一般地,在第m次迭代中。每个蝶型组内包含N/4m个蝶型单元。
2)间距
在基-4的蝶形运算中,1个蝶型单元需要的四个输入节点,每个节点的间距为l=N/4m(m为迭代次数)。根据上面的规律,可以分析出4个节点的地址。例如,4个输入节点分别为A,B,C,D,对应的节点地址为a,b,c,d,则b=a+r,c=b+r,d=c+r。
3)跳跃
每次迭代开始,结点A的地址a总是从0开始。以后每计算完一个蝶型单元a顺序加1,自至一个蝶型组计算完毕,地址a产生将产生跳跃。在下一个蝶形组中,地址a的开始值为d+1,d为上一个蝶形组中最后一个节点的地址。
(2)RAM地址发生器的设计
在1024点基-4FFT运算中,一共有五级蝶形运算,每级蝶形运算都有自己的输入地址和输出地址。根据基-4FFT运算的规律,蝶形单元是同址运算,在同一级蝶形单元中,4个输入节点的地址同时也是蝶形运算单元的输出地址。因此,一共需要设计6组RAM地址发生器。5级蝶形运算需要5组地址,第6组地址是以自然顺序输出FFT运算结果的地址。
1)第一级RAM地址发生器
根据基-4蝶型预算特点,第一级迭代只有一个蝶型组,每个节点的间距地址为l=256。在这组蝶形运算中,开始节点的顺序加1,直到完成这组蝶形运算。(0,256,512,768),(1,257,513,769),……(255,511,767,1023)。
RAM_Addr_1={bit1bit 0bit 9bit8bit 7bit 6bit5bit 4bit3bit2}
2)第二级RAM地址发生器
1024点蝶形运算中,第二级迭代中共包含4个蝶型组,每个蝶型组包括1024/42=64个蝶型单元,在蝶型单元中,相邻节点的间距为l=1024/42=64。因此,第二级第一个蝶形组的读出地址应为:(0,64,128,192),(1,65,129,193),……,(63,127,191,255),第二个蝶形组地址为:(256,320,384,448),(257,321,385,449)……(319,383,447,511)。
根据上面的规律,可以得到第二级的地址为:
RAM_Addr_2={bit9bit8bit 1bit 0bit 7bit 6bit5bit 4bit3bit2}
3)其他各级RAM地址发生器
根据第一级与第二级地址发生器的设计方法,同理设计出第三级、第四级、级蝶形运算需要的输出地址发生器,各级地址位反序规律如下:
第三级RAM输出地址:
RAM_Addr_3={bit9bit8bit 7bit 6bit1bit 0bit5bit 4bit3bit2}
第四级RAM输出地址:
RAM_Addr_4={bit9bit8bit 7bit 6bit5bit 4bit1bit 0bit3bit2}
第五级RAM输出地址:
RAM_Addr_5={bit9bit8bit 7bit 6bit5bit 4bit3bit 2bit1bit0}
4)输出级RAM地址发生器设计
在基-4FFT运算中,输入数据以自然顺序输入,计算结果以倒序排列在片内RAM中。在将计算结果以自然顺序输出之前,需要生成输出地址。
输出级RAM地址:
RAM_Addr_Output={bit1bit 0bit3bit 2bit5bit 4bit 7bit 6bit 9bit8}
(3)旋转因子产生单元
在1024点的基-4FFT运算中,共有4级蝶形运算中需要旋转因子。在5级蝶形运算中,除了第一级,其余4级都需要旋转因子。设计中采用片内ROM存储旋转因子,为了节省存储空间,减少FPGA资源消耗,模块采用复用模式,即只存储一份旋转因子副本。然后根据所在的蝶形组,读取旋转因子。因此,旋转因子地址的产生也是本文的重点之一。在第二级蝶形运算中,共有4个蝶形组,这4个蝶形组用到的旋转因子分别为
Figure BDA0000084178880000131
Figure BDA0000084178880000132
Figure BDA0000084178880000134
Figure BDA0000084178880000135
对应的地址分别为:(0,0,0,0),(0,64,128,192),(0,128,256,384),(0,192,384,576)。在一个蝶形组中,使用相同的一组旋转因子。
第二级ROM地址发生器的地址按照Verilog语法可表示为:
ROM_Addr_2={2′b00,count[9:8],6′b 000000}*{count[1:0]}
第三级运算共有16个蝶型组,需要用到16组旋转因子,对应ROM地址发生器的地址按照Verilog语法可表示为:
ROM_Addr_3={2′b00,count[7:6],count[9:8],4′b0000}*{count[1:0]}
第四级蝶形运算共有64个蝶型组,需要用到64组旋转因子,根据前面两级ROM地址的讨论并结合基-4运算四进制反序规律,可以得到第四级ROM地址发生器的地址按照Verilog语法可表示为:
ROM_Addr_4={2′b00,count[5:4],count[7:6],count[9:8],2′b 00}*{count[1:0]}
第五级运算运算共有256个蝶型组,需要用到256组旋转因子,同理可得到第五级ROM地址发生器的地址按照Verilog语法可表示为:
ROM_Addr_5={2′b00,count[3:2],count[5:4],count[7:6],count[9:8]}*
{count[1:0]}
在具体实现上,上述的乘法较为简单,所有的乘法运算均可以通过组合加法的方式实现,也就是将count[1:0]分为0,1,2,3四种情况分别考虑,然后用加法实现,这样可以减小系统硬件资源的开销。
运算结果存储模块主要是控制FFT运算运算结果的存储,并将运算结果提供给Nios II软核处理器模块调用,做进一步的插值运算。该模块将产生两块片内RAM的地址信号以及触发写完成标志位。在这两块深度为1024的片内RAM中,一块用于存储FFT的实部运算结果,另外一块用于存储FFT的虚部运算结果。图20是运算结果存储模块的顶层设计图。图21是运算结果存储模块的时序图。
SOPC系统结构配置。使用硬件描述语言设计的硬体,能够高效地进行算法处理,但是硬体的控制作用较弱。本发明中使用SOPC的设计结构,即在FPGA同时再构建一个软核处理器系统。本设计中利用Altera提供的SOPC Builder工具,在系统中构建一个NiosII处理器为核心的处理器系统。后续的软件设计都是基于嵌入式系统进行的。后续的软件设计将完成FFT运算结果的读取,FFT运算的插值算法,谐波数据的计算等。
本发明采用Altera公司提供的SOPC Builder开发工具,进行嵌入式系统定制。因为SOPCBuilder系统都与QuartusII的工程相关联。因此,首先在Quartus II下建立一个工程,然后再根据本系统所需要的功能,设计和添加了本系统所需要用到的IP核。在本系统中主要添加Nios II软核处理器,片上存储器、片外存储器、串口调试模块、定时器等,以及用户自定义的LTM显示IP核和从片内RAM数据读取IP核。LTM显示IP主要完成LTM液晶显示屏的驱动,然后将主动发起读数据的指令,读取SDRAM上指定位置段的数据,并将数据显示在LTM液晶屏上。片内RAM数据读取IP主要完成FFT运算结果的读取工作。Nios II软核发起读指令,通过这个IP核读取FPGA内存储FFT运算结果的片内RAM,将这些数据读取到Nios II软核处理器系统中的数据存储区。图22是SOPC Builder的配置界面。
系统配置后的处理器主要模块及其功能如下所述。
(1)Nios II软核处理器,快速(Nios II/f)针对最佳性能优化,具有6级流水线,乘法器只需要1个周期,可设置指令缓冲和数据缓冲,并具有用户自定义指令256个,在FPGA中实现只占用1400LEs~1800LEs。系统中还加入了Nios II软核处理器提供自定义浮点指令,可以大幅提高Nios II浮点运算的速度。
(2)UART串口模块,用于与PC机的串口终端通信。SOPC Builder中提供UART的IP核,实现基于FPGA的嵌入式系统与外部器件之间的串行符号流通信,用户可以根据需要配置UART。
(3)On Chip RAM模块,片上存储器模块,可以提供片上高速缓存,系统配置40KB的片上RAM。
(4)JTAG-UART模块,用于FPGA与主机之间的串行符号流通信。NiosII处理器可以通过访问JTAG-UART接口的控制寄存器和数据寄存器来完成通信。
(5)锁相环PLL,锁相环控制器主要是根据系统需要,用系统所提供的振荡频率,变频来得到系统所需要的频率。本系统中通过50MHz的振荡频率来获得100MHz的系统频率。
(6)定时器,本设计利用SOPC Builder工具将1个Timer挂到Avalon总线上,作为系统时钟。
(7)系统ID,是一个简单的制度设备,它为每个NiosII系统提供一个位移的身份标志符。NiosII处理器系统上运行的软件会检查FPGA的NiosII系统是否是该软件编译时所指定的硬件系统,如果可执行程序中期望的ID与FPGA中的系统ID不想匹配,则软件无法正确执行。
(8)SSRAM控制器,在SOPC Builder中,提供了SSRAM控制器,在本系统中,作为数据存储区,在调试时,也存储存储程序。SSRAM的数据总线是三态的,NiosII CPU和SSRAM相接需要Avalon三态总线桥。
(9)Flash控制器,Flash控制器主要控制片外的Flash芯片的读写,由SOPC Builder提供。Flash的数据总线也是三态的,NiosII CPU和Flash相接需要Avalon三态总线桥。系统使用Flash来存储Nios II处理器系统的软件程序。
(10)SDRAM控制器,在SOPC Builder中,提供了SDRAM控制器。本系统中,SDRAM存储器作为LTM控制器的缓存。
(11)MEM read数据读取IP,这个IP主要实现一个接口功能,使Nios II处理器的总线能访问FPGA中片内RAM中的数据。系统使用MEM real和MEM image读取FFT运算结果的实部和虚步。
(12)LTM显示控制器,LTM首先完成对LTM显示器的配置,然后读取SDRAM中相应地址段中的数据,将这些数据显示在LTM显示器上。
(13)利用较多的PIO组件来完成系统功能的硬件构造,每个PIO最多可提供32个I/O端口。在Nios II软核的控制下,PIO从输入端口捕获数据并驱动数据到输出端口。
fft_done用来捕捉运算结果存储模块的发出的中断信号,AD_Trigger用来触发ADC采集及模块,开始新的一次采样。Frame_Trigger用来触发数据缓存模块1帧数据的输出。work_way用来选择系统运行。
本发明的软件部分使用C语言对Nios II编程。系统在软件上主要实现总体控制,双峰插值运算,相关参量的计算,以及相应的显示程序。
总体控制单元主要实现总体的调度作用,使用双峰插值算法计算谐波的频率,幅值,相位等,然后根据数据计算出谐波的畸变率,有功功率,无功功率,功率因数等。当系统收到FFT运算完成的中断标志后,系统进入总体控制单元。
总体控制单元首先读取FFT运算的结果。调用MEM_read IP核,分别读取FFT运算结果的实部和虚部,在完成FFT运算结果的读取后,判断是否完成所有通通道中的电流电压的谐波信号的读取,如果没有完成,则产生触发信号,触发下一路的电压或电流信号的采样数据进行FFT运算。如果完成了所有通道的读取,则启动AD,进行下一次的采样。这样就达到了Nios II软核和硬件模块的并行运算。接着根据读入的FFT运算结果,将其求模。
然后使用双峰插值算法求出谐波的相关参数,包括谐波的频率,幅值,以及相位。在通过双峰插值算法求解谐波参数的过程中,求出基波的相关参数,然后在根据基波的频率信息,求出其他谐波的相关参数。在完成谐波参数计算后,系统根据这些谐波的幅值,相位等信息计算出谐波的畸变率,有功功率,无功功率,功率因数。总体控制单元的流程图如图23所示。
谐波参数的显示。根据需求,将不同通道中的谐波参数,以及相关的参量显示在LTM液晶屏上。首先是确定需要显示那一路电流或电压的谐波参数。然后设置需要显示的字符内容。最后设置需要显示的浮点数。
本发明的一种基于FPGA的电力谐波分析仪经过以下对FFT运算单元测试和系统测试FFT运算单元测试:
为了验证FFT运算单元设计的正确性,需要对FFT运算结果进行验证。本文中,使用Visual Studio 2008产生测试数据,并将测试数据存储在数据文件中。然后再Modelsim中编写测试文件,读取这些测试数据进行仿真,并将仿真结果输出到一个数据文件中,最后使用Matlab对仿真输出文件进行频域的分析。
在输入时钟为100MHz情况下,从Modelsim的时序仿真计算出,FFT运算单元可以在77us的时间内完成从有效数据输入到1024个计算结果的输出。
单频正弦信号:
使用Visual Studio 2008产生一组测试用的单频正弦信号x(n):
x(n)=3sin(2π×100×n/3000)n=0:1023
并将x(n)以实数形式存储在数据文件中,作为testbench的激励信号,然后由仿真工具完成仿真。仿真完成后将电路输出写入文件。供Matlab调用和分析。图24是Matlab对单频信号计算的结果和电路仿真的结果图,图像中信号的幅值已经做了归一化处理。图25是电路仿真结果和Matlab计算结果之间的差异,仿真误差小于5×10-5
双频正弦信号仿真:
使用Visual Studio 2008产生一组测试用的双频正弦信号x(n):
x(n)=3×sin(2π×100×n/3000)+0.5sin(2π×300×n/3000)n=0:1023
具体的仿真过程也是和单频正弦信号一样。图26分别是Matlab对双频信号分析的结果和电路仿真的结果,图像中信号的幅值已经做了归一化处理。图27是电路仿真结果和Matlab计算结果之间的差异。仿真误差要小于1×10-4
三角信号仿真:
使用Visual Studio 2008产生一组测试用的三角信号x(n):
x ( n ) = n / 256 - 0.5 0 ≤ n ≤ 255 0.5 - ( n - 256 ) / 256 256 ≤ n ≤ 511 ( n - 512 ) / 256 - 0.5 512 ≤ n ≤ 767 0.5 - ( n - 768 ) / 256 768 ≤ n ≤ 1023
图28分别是Matlab对三角信号分析的结果和电路仿真的结果,图像中信号的幅值已经做了归一化处理。图29是电路仿真结果和Matlab计算结果之间的差异。仿真误差要小于3.5×10-7
系统测试:
(1)实时性测试:
本系统在SOPC Builder中添加Performance_counter模块,使得用户可以按照自己想法灵活的将所要测试的程序执行时间,通过JTAG_UART发送到控制台。图30是NiosII在100MHz时钟下,对1路谐波进行插值,和相关参数计算所消耗的时间。
测试表明,系统能在78ms内完成1路谐波的插值和相关参数的计算,能够使系统进行实时采样。
(2)系统准确度测试:
本发明选用信号发生器来模拟谐波的输入。实验的目的是测试算法的正确性,系统的精确度还需要标准谐波来进行测试。本文主要对信号的频率,幅值进行了相关的检测。这里主要测试了5组信号,每组信号测试了五次,这5组的实际频率分别是50.1,100.2,150.3,200.4,250.5Hz,信号的幅值都为4V,表4到表8是这5组信号的实际测量结果。
Figure BDA0000084178880000172
表4第1组测试频率和幅值的测量值及误差表
Figure BDA0000084178880000173
表5第2组测试频率和幅值的测量值及误差表
Figure BDA0000084178880000174
Figure BDA0000084178880000181
表6第3组测试频率和幅值的测量值及误差表
表7第4组测试频率和幅值的测量值及误差表
表8第5组测试频率和幅值的测量值及误差表
根据以上对本发明的一种基于FPGA的电力谐波分析仪所进行的测试,证明出:FFT运算单元具有很高的精度,与MATLAB计算结果相比,误差小于10-4,能够满足系统对精度要求。
在系统试验中,测量出的频率精度很高,频率的相对误差小于10-4,测量出的幅值的误差稍高,相对误差小于10-2。本文的测量还不够精确,引入误差的有很多地方:
(1)信号发生器不够精确,信号发生器产生的幅值和频率都有较小幅度的波动,在信号的源头就有一定的误差,在后续的试验中,找到高精度的谐波信号源进行测试。
(2)非同步采样带来的误差。这部分可以通过加窗插值来减小,但是不能够消除。
(3)FFT浮点运算单元带来的误差。由于电路在实际的应用中带来的误差,这部分误差也是不可以消除的。

Claims (4)

1.一种基于FPGA的电力谐波分析仪,其特征在于包括传感器电路和AD采样电路,还包括设在FPGA中的数据采集模块、数据缓存模块、数据类型转换模块、加窗模块、FFT运算模块、运算结果存储和中断产生模块、Nios II软核处理器模块、LTM显示模块,传感器电路将电力系统中电流电压信号转换为-5V~+5V之间的电压信号,并完成信号的调理;AD采样电路将模拟的谐波信号转换为16位的数字信号,提供给FPGA做进一步的处理;数据采集模块驱动AD采样电路进行采样,并将数据读取到FPGA内,提供给数据缓存模块;数据缓存模块完成采样数据的存储、控制及输出;数据类型转换模块将数据类型为有符号整型的采样数据转换为浮点类型数据,然后将转换后的浮点类型数据提供给加窗模块;加窗模块将给每一路的采样数据加上1024宽度的Blackman窗,当有效信号到达时,该模块首先产生Blackman窗数据,然后将Blackman窗数据与采样数据相乘,并将计算结果提供给下一级的FFT运算模块;FFT运算模块将加窗后的数据进行1024点的浮点FFT运算;运算结果存储和中断产生模块缓存FFT运算结果,并通知Nios II软核处理器模块读取运算结果,该模块产生缓存的控制信号、数据存储地址,以及时序控制,完成存储后产生1个时钟的高电平,作为中断信号,与Nios II软核处理器模块交互;Nios II软核处理器模块实现总体的核心控制及各个模块的协调,读取FFT运算结果,对采样数据进行插值运算,计算出谐波的相关参量,调用LTM显示IP核,将谐波参量显示在LTM液晶屏上,所述数据采集模块驱动AD采样电路进行采样是该数据采集模块驱动AD7606进行8路信号,1024点的同步采样,然后将数据读取到FPGA内,提供给下一级的数据缓存模块,模块通过对输入时钟计数,控制AD7606进行采样速率为10.24KHz的等间隔采样。
2.如权利要求1所述的基于FPGA的电力谐波分析仪,其特征在于所述传感器电路包括电压信号采集电路和电流信号采集电路,电压信号的采集电路的传感器选用TV1013,运算放大器选用TI的OPA2227,电压信号采集电路的输出端连接采样电路的模拟输入端;电流信号采集电路的传感器选用电流互感器TA1420,放大器选用OPA2227,电流信号采集电路的输出端连接采样电路的模拟输入端。
3.如权利要求1所述的基于FPGA的电力谐波分析仪,其特征在于所述AD采样电路采用两片AD7606-4并联,片外参考电压方式,使用片外的基准电压REF5025作为AD7606的参考电压,采样电路AD7606与FPGA使用并行通信方式。
4.如权利要求1所述的基于FPGA的电力谐波分析仪,其特征在于所述数据缓存模块完成采样数据的存储、控制及输出,是从AD采集电路输出的采样数据按照1到8路数据一次输出,系统需要将这8路数据分别存储在片内RAM中,当有输出触发信号时,按设定顺序依次输出1路采样数据。
CN 201110236979 2011-08-18 2011-08-18 一种基于fpga的电力谐波分析仪 Expired - Fee Related CN102288819B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110236979 CN102288819B (zh) 2011-08-18 2011-08-18 一种基于fpga的电力谐波分析仪

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110236979 CN102288819B (zh) 2011-08-18 2011-08-18 一种基于fpga的电力谐波分析仪

Publications (2)

Publication Number Publication Date
CN102288819A CN102288819A (zh) 2011-12-21
CN102288819B true CN102288819B (zh) 2013-07-10

Family

ID=45335400

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110236979 Expired - Fee Related CN102288819B (zh) 2011-08-18 2011-08-18 一种基于fpga的电力谐波分析仪

Country Status (1)

Country Link
CN (1) CN102288819B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102565584A (zh) * 2012-01-04 2012-07-11 天津市电力公司 基于fpga的电能质量多指标数据处理模块
CN103326360B (zh) * 2012-03-19 2015-10-21 利思电气(上海)有限公司 一种用于高电压系统的实时动态有源谐波补偿装置
CN102708916A (zh) * 2012-04-16 2012-10-03 东莞市泰斗微电子科技有限公司 一种地址跳转输出装置和方法
CN103297055A (zh) * 2013-03-19 2013-09-11 中国科学院声学研究所 一种采用fpga实现多路串行adc同步的装置
CN103487651A (zh) * 2013-09-24 2014-01-01 国家电网公司 一种基于fpga+dsp的apf控制器的采样数据处理方法
CN103592513B (zh) * 2013-11-20 2016-06-08 北京富根电气有限公司 电力信号谐波分析方法和装置
CN103617720B (zh) * 2013-11-29 2016-08-24 广东电网公司电力科学研究院 一种具备多路控制多功能表计装置
CN104006865A (zh) * 2014-06-11 2014-08-27 中国科学院电子学研究所 雷达液位测量数据处理系统
CN104820153A (zh) * 2015-05-21 2015-08-05 艾德克斯电子(南京)有限公司 一种多机系统及其同步测量方法
CN105449861B (zh) * 2015-12-14 2017-12-01 国网山西省电力公司大同供电公司 基于iec61850的绝缘在线同步无线监测网关装置
CN105572554B (zh) * 2015-12-29 2018-05-08 国网山西省电力公司大同供电公司 无线传感网在线绝缘检测频率自适应测量方法
CN106208094A (zh) * 2016-07-07 2016-12-07 安徽众升电力科技有限公司 一种无功补偿装置信号采集装置
CN105974197A (zh) * 2016-07-07 2016-09-28 武汉晟泉科技有限公司 一种新型谐波分析仪
CN106026129A (zh) * 2016-07-07 2016-10-12 安徽众升电力科技有限公司 一种无功补偿装置电流采集装置
CN106771539A (zh) * 2016-12-22 2017-05-31 南京因泰莱电器股份有限公司 一种基于fpga的高速ad采集的设计方法
CN106950885A (zh) * 2017-04-19 2017-07-14 成都理工大学 一种信号的时域和频域分析系统
CN107505506A (zh) * 2017-08-08 2017-12-22 武汉理工大学 基于fpga和dsp的电力推进船舶谐波监测系统
CN107644003A (zh) * 2017-09-29 2018-01-30 北京智芯微电子科技有限公司 一种主控芯片的运算协处理模块
CN108594841A (zh) * 2017-12-30 2018-09-28 东莞北京航空航天大学研究院 无人机飞行控制系统及方法
CN109001532A (zh) * 2018-05-08 2018-12-14 浙江万里学院 基于fpga的模拟信号fft实现方法及其电路
CN109076553B (zh) 2018-06-27 2023-12-12 北京小米移动软件有限公司 下行带宽部分调整方法、电子设备和计算机可读存储介质
CN109709397B (zh) * 2018-12-14 2021-02-05 陕西科技大学 一种加连续Hanning窗的电网谐波非同步压缩感知检测方法
CN109765479B (zh) * 2019-01-28 2021-10-01 合肥京东方视讯科技有限公司 一种电路板缺件检测装置和方法
CN111257637B (zh) * 2020-02-21 2022-05-20 深圳市中电电力技术股份有限公司 超高次谐波测量方法、系统
CN111929607A (zh) * 2020-07-29 2020-11-13 湖北民族大学 一种利用fpga实现多相电源相位及功率因数实时检测的ip核
CN112526208B (zh) * 2020-12-23 2023-05-16 武汉第二船舶设计研究所(中国船舶重工集团公司第七一九研究所) 一种基于高耦合度迭代模型的电能质量测量系统及方法
CN112765536B (zh) * 2021-01-26 2023-09-19 中国科学院半导体研究所 一种可配置的fft架构系统
CN113625048A (zh) * 2021-08-19 2021-11-09 杭州万高科技股份有限公司 一种智能电表芯片及智能电表

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201298058Y (zh) * 2008-10-30 2009-08-26 武汉大学 基于fpga的高集成度程控滤波器分析装置
CN102128982A (zh) * 2010-12-23 2011-07-20 东莞市创锐电子技术有限公司 一种基于加窗插值fft基频跟踪技术的谐波分析方法
CN201935967U (zh) * 2010-12-10 2011-08-17 南京灿能电气自动化有限公司 基于fpga的高速电能质量处理单元

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101614760A (zh) * 2008-06-26 2009-12-30 西门子公司 一种电力监测设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201298058Y (zh) * 2008-10-30 2009-08-26 武汉大学 基于fpga的高集成度程控滤波器分析装置
CN201935967U (zh) * 2010-12-10 2011-08-17 南京灿能电气自动化有限公司 基于fpga的高速电能质量处理单元
CN102128982A (zh) * 2010-12-23 2011-07-20 东莞市创锐电子技术有限公司 一种基于加窗插值fft基频跟踪技术的谐波分析方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘丰.基于FPGA+ARM的高速电路谐波检测仪的研制.《中国优秀硕士学位论文全文数据库》.2009,全文.
基于FPGA+ARM的高速电路谐波检测仪的研制;刘丰;《中国优秀硕士学位论文全文数据库》;20090115;全文 *
基于FPGA的电力系统谐波检测装置的研制;梁海霞;《中国优秀硕士学位论文全文数据库》;20090515;论文正文第19-47页 *
梁海霞.基于FPGA的电力系统谐波检测装置的研制.《中国优秀硕士学位论文全文数据库》.2009,19-47.

Also Published As

Publication number Publication date
CN102288819A (zh) 2011-12-21

Similar Documents

Publication Publication Date Title
CN102288819B (zh) 一种基于fpga的电力谐波分析仪
CN103308804B (zh) 基于快速k-s变换电能质量扰动信号时频参数提取方法
CN201035054Y (zh) 基于双cpu模式的便携式电能质量监测分析仪
CN108257044A (zh) 一种基于稳态电流模型的非侵入式负荷分解方法
CN102508031B (zh) 一种基于傅里叶级数的局部放电脉冲相角测量方法
CN102435844A (zh) 一种频率无关的正弦信号相量计算方法
CN102323477A (zh) 一种电网间谐波测量方法及测量仪
CN105319447B (zh) 一种介质损耗角正切值测试方法及测试仪
CN102998523A (zh) 一种用于电能计量的谐波功率计算方法
CN203133168U (zh) 电力谐波检测仪
CN101441231A (zh) 一种谐波电能计量误差分析装置
CN103199514A (zh) 一种消除铁磁谐振的方法
CN107064744A (zh) 一种谐波源定位方法
CN101833036A (zh) 一种交流电的瞬时相位测量方法
Feng et al. On tide‐induced Lagrangian residual current and residual transport: 2. Residual transport with application in south San Francisco Bay, California
CN105353330A (zh) 一种基于虚拟仪器技术的电子式电流互感器在线校验系统及其算法
CN101329374A (zh) 一种差分滤波器加全周复小波幅值计算方法
CN110133564A (zh) 一种电流传感器相位特性的同步测试方法及装置
CN102095929A (zh) 一种快速测量交流电信号频率的方法
CN103018546B (zh) 指定频率的电功率计量方法
CN107066670A (zh) 一种基于fpga的有源配电网实时仿真器模数接口设计方法
CN103412171A (zh) 一种基于极端学习机的电网谐波电压信号检测方法
CN202102051U (zh) 一种电网间谐波测量仪
CN106990286A (zh) 基于欧拉方法的四象限谐波电能计量装置及方法
Bucci et al. Development of a low cost power meter based on a digital signal controller

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130710

Termination date: 20140818

EXPY Termination of patent right or utility model