一种同步跟踪的谐波测量装置及方法转让专利

申请号 : CN202210881377.7

文献号 : CN115267327B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许晓东白洪超

申请人 : 青岛艾诺智能仪器有限公司

摘要 :

本发明属于谐波测量技术领域,具体涉及一种同步跟踪的谐波测量装置及方法,谐波测量装置包括:主控单元、同步采样跟踪单元和模拟信号采样单元,主控单元中设置有第一双口RAM模块和FFT计算模块,同步采样跟踪单元中设置有第二双口RAM模块、时钟模块A、时钟模块B、数据转存模块、频率跟踪模块、ADC计算模块、频率计算模块和ADC控制器,时钟模块A和时钟模块B根据输入的CNV调节参量K对时钟进行任意倍数分频,得到目标频率时钟,输入ADC控制器控制ADC采样频率;FFT计算模块对读取的ADC采样数据进行傅里叶变换并进行谐波数据处理。本发明精度高、易计算,低成本、易扩展,模块化程度高。

权利要求 :

1.一种同步跟踪的谐波测量装置,包括:主控单元、同步采样跟踪单元和模拟采样单元,所述的主控单元采用MCU,所述的同步采样跟踪单元采用FPGA,所述的模拟采样单元为若干个测量卡;其特征在于,主控单元中设置有第一双口RAM模块和FFT计算模块,同步采样跟踪单元中设置有第二双口RAM模块、时钟模块A、时钟模块B、数据转存模块、频率跟踪模块、ADC计算模块、频率计算模块和ADC控制器,频率计算模块和ADC控制器分别与测量卡进行数据交互;频率计算模块从测量卡读取信号过零点信息,计算当前频率;ADC控制器接收跟踪处理后的时钟信号,并转化为CNV控制ADC转换速度,通过SPI总线与ADC进行数据传输;

频率跟踪模块实时同步跟踪频率计算模块所得频率,结合当前谐波倍频数换算并控制时钟模块A和时钟模块B的时钟输出;时钟模块A和时钟模块B两组时钟模块交替使用,当一组正在使用时,另一组进行配置、初始化新的时钟,当频率更改时快速切换并输出控制信号,时钟模块A和时钟模块B根据输入的CNV调节参量K对时钟进行任意倍数分频,得到目标频率时钟,输入ADC控制器控制ADC转换频率;ADC控制器向ADC计算模块传输数据,ADC计算模块除处理原始波点外同时计算均方根值和峰值,ADC计算模块将数据发送至数据转存模块,第二双口RAM模块通过FSMC数据总线与MCU建立连接进行通信,通过寻址进行RAM区数据读取,进行ADC采样数据传输;第一双口RAM模块通过第二双口RAM模块读取数据转存模块中的数据,FFT计算模块对读取的ADC采样数据进行傅里叶变换并进行谐波数据处理。

2.一种同步跟踪的谐波测量方法,其特征在于,应用如权利要求1所述的一种同步跟踪的谐波测量装置,包括以下步骤:

①捕获模拟信号采样单元中过零点信息,同步采样跟踪单元通过频率计算模块计算得到被采集信号的频率;

②在同步采样跟踪单元中计算目标采样频率fn,fn=f×Ct,f为被采集信号频率,Ct为单周期进行采样的次数;

③在同步采样跟踪单元中计算FPGA最大采样频率fnmax,fnmax=fn×Pmax,Pmax为不高于采样能力的最大整数倍;

④计算CNV调节参量K值,使用K值控制时钟,K值根据被测频率及目标采样频率进行计算,K=fnmax÷f0,f0等于时钟模块的最大支持频率除以计数器的满值;

⑤根据K值切换ADC转换速度,接到K值的时钟模块A分频,生成目标CNV并输出给ADC控制器,ADC控制器根据该信号改变采样CNV,采样过程中,频率跟踪模块再次重新计算K值,并下发给时钟模块B,当本周期达到采样点数时,切换ADC控制器的时钟模块B,时钟模块A和时钟模块B交错使用,在采样频率发生变化时,ADC快速切换无相位延迟;

⑥根据最大采样频率fnmax控制CNV信号进行ADC转换,得到整周期数组S(i),Sf(i)=S(Pmax×i),分别取Sf(0)=S(0),Sf(1)=S(3),Sf(2)=S(6),Sf(i)=S(Pmax×i),……,i指第n个数,得到新数组Sf(i),0≤i≤Ct,得到原始采样点,满足FFT运算条件;

⑦将Sf(i)送入主控单元中,运用FFT模块进行FFT快速傅里叶变换,得到谐波数据。

说明书 :

一种同步跟踪的谐波测量装置及方法

技术领域

[0001] 本发明属于谐波测量技术领域,具体涉及一种同步跟踪的谐波测量装置及方法。

背景技术

[0002] 在电力系统的测量中,对交流电压(或电流)的谐波测量是一个十分重要的测量项目,尤其是针对目前正热的新能源领域汽车电子、光伏等行业,谐波测量逐步成为国标要求中的产品出厂检测项,生产测量中对模块化扩展与测量精度提出了更高的要求。
[0003] 目前,应用最多的谐波测量方法有两种,一种为加窗插值法,一种为硬件锁相环倍频采样法。
[0004] 加窗插值法的优点是:对硬件要求比较低,可在低采样率时通过插值保证足够计算点数,有效防止谐波测量时点数不够带来的栅栏效应而引起的频率泄露误差。加窗插值法的缺点是:虽然可以通过Hanning窗等滤波算法修正误差,但由于是模拟插值,插值相位终究有误差,测量精度会受到影响,此种方式测量精度普遍不高且特殊频率下会出现误差偏大的风险。
[0005] 硬件锁相法是通过硬件锁相电路对基波进行倍频,其优点是:准确度较高,随时跟踪基波频率进行倍频采样,响应快。硬件锁相法的缺点是:受硬件制约,对锁相环倍频的稳定性与准确度要求较高,若想与加窗插值法达到相同基波频率的谐波测量能力,电路复杂且成本高,且每次扩展均需要扩展硬件,若进行多路不同步谐波测量,则需要有多路独立锁相环电路,硬件冗余严重。其次,由于谐波测量往往伴随其它数据测量,硬件锁相环倍频直接产生采样频率,控制采样速度,导致采样率低于正常采样,影响其它数值精度,包括有效值Rms、谐波分量Hrms等。
[0006] 所以,如何获得更精准的谐波测量,更标准的模块和更便捷的扩展,是本发明要解决的问题。

发明内容

[0007] 为了解决现有技术中存在的技术问题,本发明提供一种同步跟踪的谐波测量方法。本发明所采用的技术方案如下:
[0008] 一种同步跟踪的谐波测量装置,包括:主控单元、同步采样跟踪单元和模拟采样单元,所述的主控单元采用MCU,所述的同步采样跟踪单元采用FPGA,所述的模拟采样单元为若干个测量卡;主控单元中设置有第一双口RAM模块和FFT计算模块,同步采样跟踪单元中设置有第二双口RAM模块、时钟模块A、时钟模块B、数据转存模块、频率跟踪模块、ADC计算模块、频率计算模块和ADC控制器,频率计算模块和ADC控制器分别与测量卡进行数据交互;频率计算模块从测量卡读取信号过零点信息,计算当前频率;ADC控制器接收跟踪处理后的时钟信号,并转化为CNV控制ADC采样速度,通过SPI总线与ADC进行数据传输;频率跟踪模块实时同步跟踪频率计算模块所得频率,结合当前谐波倍频数换算并控制时钟模块A和时钟模块B的时钟输出;时钟模块A和时钟模块B根据输入的CNV调节参量K对时钟进行任意倍数分频,得到目标频率时钟,输入ADC控制器控制ADC采样频率;ADC控制器向ADC计算模块传输数据,ADC计算模块除处理原始波点外同时计算均方根值和峰值,ADC计算模块将数据发送至数据转存模块,第二双口RAM模块通过FSMC数据总线与MCU建立连接进行通信,通过寻址进行RAM区数据读取,进行ADC采样数据传输;第一双口RAM模块通过第二双口RAM模块读取数据转存模块中的数据,FFT计算模块对读取的ADC采样数据进行傅里叶变换并进行谐波数据处理。
[0009] 一种同步跟踪的谐波测量方法,应用前述的一种同步跟踪的谐波测量装置,包括以下步骤:
[0010] ①捕获模拟信号采样单元中过零点信息,同步采样跟踪单元通过频率计算模块计算得到被采集信号的频率;
[0011] ②在同步采样跟踪单元中计算目标采样频率fn,fn=f×Ct,f为被采集信号频率,Ct为单周期进行采样的次数;
[0012] ③在同步采样跟踪单元中计算FPGA最大采样频率fnmax,fnmax=fn×Pmax,Pmax为不高于采样能力的最大整数倍;
[0013] ④计算CNV调节参量K值,使用K值控制时钟,K值根据被测频率及目标采样频率进行计算,K=fnmax÷f0,f0等于时钟模块的最大支持频率除以计数器的满值;
[0014] ⑤根据K值切换ADC转换速度,接到K值的时钟模块A分频,生成目标CNV并输出给ADC控制器,ADC控制器根据该信号改变采样CNV,采样过程中,频率跟踪模块再次重新计算K值,并下发给时钟模块B,当本周期达到采样点数时,切换ADC控制器的时钟模块B,时钟模块A和时钟模块B交错使用,在采样频率发生变化时,ADC快速切换无相位延迟;
[0015] ⑥根据最大采样频率fnmax控制CNV信号进行ADC转换,得到整周期数组S(i),Sf(i)=S(Pmax×i),分别取Sf(0)=S(0),Sf(1)=S(3),Sf(2)=S(6),Sf(i)=S(Pmax×i),……,i指第n个数,得到新数组Sf(i),0≤i≤Ct,得到原始采样点,满足FFT运算条件;
[0016] ⑦将Sf(i)送入主控单元中,运用FFT模块进行FFT快速傅里叶变换,得到谐波数据。
[0017] 本发明的有益效果:
[0018] 1、精度高、易计算:保证数据基于基波频率整数倍采样,可使用FFT快速傅里叶变换进行计算,方便快捷,准确度高,保证了测量精度。
[0019] 2、低成本、易扩展:多路谐波测量不需额外增加硬件,增加FPGA软核节省成本与空间,解决现有产品难以升级的问题。
[0020] 3、模块化程度高,系统架构清晰,可扩展性强,保持高采样率,测量精度不会受锁相环带来的降频影响。

附图说明

[0021] 图1是本发明实施例的原理拓扑图;
[0022] 图2是本发明实施例的测量步骤流程图。

具体实施方式

[0023] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
[0024] 如图1所示,是本发明实施例的原理拓扑图,图1中的箭头表示数据传输。本发明使用模拟同步跟踪采样技术,灵活控制采样频率,达到保证精度的同时实现快速谐波测量的目的,系统总共分为三部分:
[0025] 模块一:主控单元MCU。主控单元MCU中设置有第一双口RAM模块(M1)和FFT计算模块(M2),第一双口RAM模块(M1)和FFT计算模块(M2)均为软件功能模块,第一双口RAM模块(M1)通过FSMC总线与模块二中的第二双口RAM模块(F1)进行数据交互。
[0026] FFT计算模块(M2)主要用来进行数据处理,将M1采集到的ADC采样数据进行傅里叶变换并进行谐波数据处理。
[0027] 这里使用arm官方库函数进行计算:
[0028] (1)傅里叶变换使用函数arm_cfft_f32(&arm_cfft_f32_len1024,fft_inputbuf,0,1)来对输入数据进行傅里叶变换。它的输入参数含义如下:
[0029] arm_cfft_f32_len1024为傅里叶变换结构体,1024是要运算的点数。在进行其他点数的计算时,比如说32个点的FFT,就可以用arm_cfft_sR_f32_len32。fft_inputbuf为傅里叶变换需要处理的数据的首地址,第三个参数0是正变换,1是反变换,第四个参数默认为1。
[0030] 经过傅里叶变换后的结果仍然为复数,虚部和实部的比可以计算出频率点的相位,这个在这里不进行考虑,直接对复数取模。
[0031] (2)Arm_cfft_radix4_f32进行傅里叶变换,得到变换后的数据实部与虚部。
[0032] (3)arm_cmplx_mag_f32(fft_inputbuf,fft_outputbuf,FFT_LENGTH)用于计算模值,执行取模操作,后可求出幅值、相位等参数。
[0033] 其中,ft_inputbuf源数据,形式为复数,fft_outputbuf取完模后的数据,形式为实数,FFT_LENGTH是取模的点数。
[0034] 内部计算公式为:
[0035]
[0036] 模块二:同步采样跟踪单元(FPGA)。以FPGA作为硬件支撑,在其中设置软件功能模块,包括:第二双口RAM模块(F1)、时钟模块A[100M](F2)、时钟模块B[100M](F3)、数据转存模块(F4)、频率跟踪模块(F5)、ADC计算模块(F6)、频率计算模块(F7)和ADC控制器(F8)。
[0037] 频率计算模块(F7)和ADC控制器(F8)分别与若干个测量卡进行数据交互,频率计算模块(F7)从测量卡读取信号过零点信息,计算当前频率;ADC控制器(F8)接收跟踪处理后的时钟信号,并转化为CNV(Convst ADC开始转换信号)控制ADC采样速度,通过SPI总线与ADC进行数据传输。
[0038] 频率跟踪模块(F5):实时同步跟踪频率计算模块(F7)所得频率,结合当前谐波倍频数换算并控制时钟模块A和B(F2、F3)的时钟输出。
[0039] 第二双口RAM模块(F1)通过FSMC数据总线与MCU建立连接进行通信,通过寻址进行RAM区数据读取,这里主要进行ADC采样数据传输。
[0040] 时钟模块A[100M](F2)和时钟模块B[100M](F3)根据输入的CNV调节参量K对时钟进行任意倍数分频,得到目标频率时钟,输入ADC控制器(F8)从而控制ADC采样频率。F2、F3两组时钟模块交替使用,当一组正在使用时,另一组进行配置、初始化新的时钟,当频率更改时快速切换并输出控制信号,避免了由于时钟初始化引入的延时,此处100M为最大支持100MHz频率的时钟。
[0041] ADC控制器(F8)向ADC计算模块(F6)传输数据,ADC计算模块(F6)除处理原始波点外还需计算均方根值和峰值等相关数据。ADC计算模块(F6)将数据发送至数据转存模块(F4),数据转存模块(F4)是RAM缓存区,转存ADC计算模块(F6)数据,等待MCU读取。
[0042] 模块三:模拟采样单元,包括n个测量卡。
[0043] 测量卡是现有的产品,测量卡主要构成有采样电阻、运放与ADC电路,主要功能是对接入的信号进行采样,读回的数据共有两部分,一部分通过FPGA中的ADC控制器(F8)SPI总线将数据读出,读回的为固定个数采样点的AD字。另一部分由频率计算模块(F7)读回,读回的是过零点信号,通过过零点的周期数与过零点计时进行频率值计算。
[0044] 由于使用FFT(快速傅里叶变换,Fast Fourier Transform)进行谐波计算,需要保证采样个数为谐波周期的整数倍,而要精准跟踪被测频率,并及时控制模拟部分ADC的转换,需要本发明中各个模块紧密配合。
[0045] 如图2所示,是本发明实施例的测量步骤流程图。一种同步跟踪的谐波测量方法,应用前述的一种同步跟踪的谐波测量装置,包括以下步骤:
[0046] ①捕获模拟信号采样单元中过零点信息,同步采样跟踪单元(F5)通过频率计算模块(F7)计算得到被采集信号的频率。
[0047] ②在同步采样跟踪单元(F5)中计算目标采样频率fn。
[0048] 例如:被采集信号频率f为50Hz的信号,计算100次谐波,单周期进行Ct次采样,为保证谐波数据准确度这里Ct选择1024次,所以目标采样频率应为:
[0049] fn=f×Ct=50×1024=51.2kHz。
[0050] ③在同步采样跟踪单元(F5)中计算FPGA最大采样频率。
[0051] 例:若模拟系统最大采样能力为200kHz,若直接用51.2kHz采样会损失谐波数据精度,本发明可将采样频率增加至不高于采样能力的fn最大整数倍频率,故当fn低于200kHz时,fn最大整数倍频率fnmax为:
[0052] fnmax=fn×Pmax(最大整数倍)=51.2*3=153.6kHz。
[0053] 优于单纯锁相所提供的频率。
[0054] ④计算CNV调节参量K值,这里使用K值来控制时钟,K值则是根据被测频率及目标采样频率进行计算。
[0055] 通过控制时钟模块(F2)和(F3)给ADC控制器(F8)发送时钟信号,保证ADC转换快速进行,很好的利用了FPGA的实时性与并发性,保证信号采样同步。FPGA中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存且FPGA是单时钟周期信息处理,所有操作基本瞬时完成,结合以上两点保证了FPGA的实时性与同步性,所以通过FPGA控制可保障的采样与数据处理同步性。
[0056] 本发明使用100M时钟模块,使用32位计数器进行计时,满值为232=4294967296,即计数频率为:
[0057] f0=100000000(100MHz)÷232=0.02328306Hz,将计算好的fnmax带入可得到K值,系数K=fnmax÷f0=153600÷0.02328306=6597071。
[0058] ⑤根据K值切换ADC转换速度。
[0059] 首先,采样过程中,计算K值K=fnmax÷f0,其中的f0是稳定不变的,fnmax是随信号变化的,和被测信号f有关,切换时钟发生器为时钟模块A(F2),并下发K值至时钟模块A(F2),接到K值的时钟模块A分频,生成目标CNV并输出给ADC控制器(F8),ADC控制器(F8)此时根据该信号改变采样CNV,采样过程中,频率跟踪模块(F5)再次重新计算K值,并下发给时钟模块B(F3),当本周期达到采样点数时,切换ADC控制器(F8)的时钟模块B(F3)。采样CNV是指Convst ADC开始转换信号,是一个脉冲信号,连接ADC的CONVST引脚,控制ADC转换速度,在使用时钟模块B(F3)采样过程中,频率跟踪模块(F5)再次重新计算K值,等待时钟切换,这样AB时钟交错使用方式,保证在采样频率发生变化时,ADC可快速切换,无相位延迟。
[0060] ⑥得到原始采样点:
[0061] 根据最大采样频率fnmax控制CNV信号进行ADC转换,可得到整周期数组S(i),此时,单周期得到的点数为Pmax×Ct=3×1024=3072,分别取Sf[0]=S[0],Sf[1]=S[3],Sf[2]=S[6],Sf[i]=S[Pmax×i],……(i指第n个数),得到新数组Sf[i](0≤i≤1024),该数组为整周期50Hz 1024次采样,满足FFT运算条件。本发明实施例中,采样信号进行FFT变换只需要使用51.2kHz采样率单周期进行1024次采样即可,但是,为了保证均方根等值计算精度,本发明加大了采样频率,所以使用153.6k进行采样即3倍的采样频率,最后得到3072个采样点,所以,在进行FFT计算前,需要从3072个采样点中均匀筛选出1024个采样点进行FFT运算。
[0062] ⑦谐波数据计算:
[0063] 最后将Sf(i)送入MCU中运用FFT模块(M2)进行FFT快速傅里叶变换,可得到谐波数据。