基于FPGA的积分误差补偿方法与流程

文档序号:11197677阅读:785来源:国知局
基于FPGA的积分误差补偿方法与流程

本发明涉及积分器技术领域,具体地说是涉及一种适用于长时间工作过程中的基于fpga的积分误差补偿方法。



背景技术:

在电力系统的众多环节,例如发电、变电、输配电以及用户端,电流的检测对电能质量的监控非常重要,特别是一些大电流直流供电场合,实现对三相桥式全控整流器中大电流的检测可监测设备运行状态,提前发现故障,及时采取措施减小损失。

电流检测设备通常包括电流互感器、霍尔电流传感器、基于rogowski线圈的电流检测系统。rogowski线圈是20世纪初由俄国科学家rogowski提出的大电流检测方法,这是一种均匀缠绕在非磁性空芯骨架上的环形线圈。当电流穿过rogowski线圈中心,电流产生的环形磁场垂直穿过罗柯线圈截面。电流的改变会引起磁场强度的变化,罗柯线圈的每层绕线均会产生感应电压,输出电压与绕线层数成正比。得到的rogowski线圈的输出信号与电流的变化率成正比。采用积分电路对输出电压进行积分还原,即可还原被测电流的波形。rogowski线圈具备结构简单、实时性好、无磁饱和等多个优点,而且安全可靠,不存在低压侧开路产生高压的危险,广泛应用于电阻焊等电流波形变化较快以及电炉、短路测试等高频、高幅的电流检测场合。

在直流大电流检测中积分器是不可或缺的设备,但是由于构成模拟积分器的器件存在非理想性,导致积分器存在由输入失调电压、输入失调电流、输入偏置电流等引起的积分漂移,对信号检测造成误差。在实际应用中,随着积分时间的增加漂移量逐渐增大。同时,也会引起积分器的非线性输出,积分器将无法正常工作,随之电流检测设备也会无法正常工作。

目前,国内外普遍采用固定漂移补偿来进行积分误差补偿。但是,在积分器长时间工作时采用固定漂移补偿就会出现过补偿或补偿不足等情况,积分误差仍然存在而且可能更大。



技术实现要素:

针对现有技术的不足,本发明提供了一种应用于长时间工作过程中的基于fpga的积分误差补偿方法,采用两路积分器交替工作,以消除模拟积分器误差,使积分电路长时间稳定工作。

本发明解决技术问题,所采用的技术方案如下:

本发明基于fpga的积分误差补偿方法的特点是:设置积分电路是由积分器a和积分器b构成,所述积分器a和积分器b在任意周期中按如下方式交替工作:

上半周期,积分器a对信号积分,并利用在上一周期中所获得的积分器a的误差函数对其进行积分误差实时补偿,同时,积分器b对地积分,获得积分器b的误差函数;

下半周期,积分器b对信号积分,并利用在上半周期中所获得的积分器b的误差函数对其进行积分误差实时补偿,同时,积分器a对地积分,获得积分器a的误差函数。

本发明基于fpga的积分误差补偿方法的特点也在于按如下步骤获得误差函数:

步骤1:在时长为q的积分时段内,将积分器对地积分,以δt为采样间隔,获得积分器的数字量输出信号(ti,vi)作为采样数据,其中,ti为采样时刻,vi为对应于采样时刻的积分器输出电压,i=0、1、2、3、……、n,n为采样点个数;

步骤2:以v=at+b作为线性拟合的函数模型,采用最小二乘法对步骤1获得的采样数据进行线性拟合得到a和b,从而确定误差函数v;包括:

以此确定误差函数v。

本发明基于fpga的积分误差补偿方法的特点也在于:设t为一个工作周期,m为正整数,控制所述积分器a和积分器b的交替工作过程为:

锁存积分电路mt时刻输出信号v(mt);

在[mt-τ,(m+0.5)t+τ]的时段内,由积分器a对信号积分,得到积分器a的信号积分值vao(t),利用在[(m-0.5)t+τ+p,(m-0.5)t+τ+p+q]的时段内获得的积分器a的误差函数对于信号积分值vao(t)进行误差补偿,获得积分器a经积分误差补偿后的输出值va(t);

在[mt,(m+0.5)t]的时段m1内将积分电路mt时刻输出信号v(mt)与输出值va(t)相加获得积分电路输出信号v(t);

在[mt+τ,mt+τ+p]的时间段内对积分器b进行积分电容泄放;

在[mt+τ+p,mt+τ+p+q]的时段内由积分器b对地积分,获得积分器b的误差函数;在[mt+τ+p+q,mt+τ+p+q+p]的时间段内对积分器b进行电容泄放;

锁存积分电路(m+0.5)t时刻输出信号v((m+0.5)t);

在[(m+0.5)t-τ,(m+1)t+τ]的时段内,由积分器b对信号积分,得到积分器b的信号积分值vbo(t),利用在[mt+τ+p,mt+τ+p+q]的时段内获得的积分器b的误差函数对于信号积分值vbo(t)进行误差补偿,获得积分器b经积分误差补偿后的输出值vb(t);

在[(m+0.5)t,(m+1)t]的时段m2内将积分电路(m+0.5)t时刻输出信号v((m+0.5)t)与输出值vb(t)相加获得积分电路输出信号v(t);

在[(m+0.5)t+τ,(m+0.5)t+τ+p]的时间段内对积分器a进行积分电容泄放;

在[(m+0.5)t+τ+p,(m+0.5)t+τ+p+q]的时段内由积分器a对地积分,获得积分器a的误差函数;在[(m+0.5)t+τ+p+q,(m+0.5)t+τ+p+q+p]的时间段内对积分器a进行电容泄放;

完成在[mt-τ,(m+1)t+τ]的时段内的积分器a和积分器b的交替工作,

其中,t=2(2τ+2p+q)。

与现有技术相比,本发明的有益效果体现在:

1、积分器在对信号积分时无法同时获得积分时段内的积分误差,本发明采用最为临近的时段内的积分误差对积分器进行误差补偿,即在两个相邻的半周期之间,利用在前的半周期中的误差函数补偿在后的半周期的积分器对信号积分的误差,可以有效提高积分器的精度;

2、本发明为实时积分误差补偿方法,动态地消除了积分器本身的等效输入偏移量、温度漂移及地噪声等带来的误差,有效避免积分电路长时间积分时误差的累积;

3、本发明通过适当设置交替工作周期,使得每路积分器对信号积分时误差维持在较小的范围内,采用两路积分器交替工作,当一路积分器工作时,另一路积分器进行积分电容泄放,误差不会长时间累积,保证了积分电路能够长时间稳定工作。

附图说明

图1为本发明基于fpga的积分误差补偿方法的工作时序图;

图2为实现本发明基于fpga的积分误差补偿方法的积分电路示意图。

具体实施方式

本实施例中,基于fpga的积分误差补偿方法是:设置积分电路是由积分器a和积分器b构成,积分器a和积分器b在任意周期中按如下方式交替工作:

上半周期,积分器a对信号积分,并利用在上一周期中所获得的积分器a的误差函数对其进行积分误差实时补偿,同时,积分器b对地积分,获得积分器b的误差函数。

下半周期,积分器b对信号积分,并利用在上半周期中所获得的积分器b的误差函数对其进行积分误差实时补偿,同时,积分器a对地积分,获得积分器a的误差函数。

误差函数按如下步骤获得:

步骤1:在时长为q的积分时段内,将积分器对地积分,以δt为采样间隔,获得积分器的数字量输出信号(ti,vi)作为采样数据,其中,ti为采样时刻,vi为对应于采样时刻的积分器输出电压,i=0、1、2、3、……、n,n为采样点个数。

步骤2:以v=at+b作为线性拟合的函数模型,采用最小二乘法对步骤1获得的采样数据进行线性拟合得到a和b,从而确定误差函数v;包括:

参见图1,本实施例中,设t为一个工作周期,m为正整数,积分器a和积分器b的交替工作过程为:

锁存积分电路mt时刻输出信号v(mt)。

在[mt-τ,(m+0.5)t+τ]的时段内,由积分器a对信号积分,得到积分器a的信号积分值vao(t),利用在[(m-0.5)t+τ+p,(m-0.5)t+τ+p+q]的时段内获得的积分器a的误差函数对于信号积分值vao(t)进行误差补偿,获得积分器a经积分误差补偿后的输出值va(t)。

在[mt,(m+0.5)t]的时段m1内将积分电路mt时刻输出信号v(mt)与输出值va(t)相加获得积分电路输出信号v(t)。

在[mt+τ,mt+τ+p]的时间段内对积分器b进行积分电容泄放。

在[mt+τ+p,mt+τ+p+q]的时段内由积分器b对地积分,获得积分器b的误差函数;在[mt+τ+p+q,mt+τ+p+q+p]的时间段内对积分器b进行电容泄放。

锁存积分电路(m+0.5)t时刻输出信号v((m+0.5)t)。

在[(m+0.5)t-τ,(m+1)t+τ]的时段内,由积分器b对信号积分,得到积分器b的信号积分值vbo(t),利用在[mt+τ+p,mt+τ+p+q]的时段内获得的积分器b的误差函数对于信号积分值vbo(t)进行误差补偿,获得积分器b经积分误差补偿后的输出值vb(t)。

在[(m+0.5)t,(m+1)t]的时段m2内将积分电路(m+0.5)t时刻输出信号v((m+0.5)t)与输出值vb(t)相加获得积分电路输出信号v(t)。

在[(m+0.5)t+τ,(m+0.5)t+τ+p]的时间段内对积分器a进行积分电容泄放。

在[(m+0.5)t+τ+p,(m+0.5)t+τ+p+q]的时段内由积分器a对地积分,获得积分器a的误差函数;在[(m+0.5)t+τ+p+q,(m+0.5)t+τ+p+q+p]的时间段内对积分器a进行电容泄放。

完成[mt-τ,(m+1)t+τ]时段内积分器a和积分器b的交替工作,t=2(2τ+2p+q)。

具体实施中,在积分电路开始对信号积分之前,按步骤1和步骤2的方法获得积分器a和积分器b的误差函数作为初始误差函数。在[0,0.5t+τ]时段内,积分器a对信号积分,得到积分器a的信号积分值vao(t),利用初始误差函数对信号积分值vao(t)进行误差补偿,获得积分器a经积分误差补偿后的输出值va(t)。

在[0,p]的时间段内对积分器b进行积分电容泄放。

在[p,p+q]的时段内由积分器b对地积分,获得积分器b的误差函数。

在[p+q,p+q+p]的时间段内对积分器b进行电容泄放。

锁存0.5t时刻积分器a经积分误差补偿后的输出值va(0.5t)。

在[0.5t-τ,t+τ]的时段内,由积分器b对信号积分,得到积分器b的信号积分值vbo(t),利用在[p,p+q]的时段内获得的积分器b的误差函数对于信号积分值vbo(t)进行误差补偿,获得积分器b经积分误差补偿后的输出值vb(t)。

在[0.5t,t]的时段内将积分器a在0.5t经积分误差补偿后的输出值v(0.5t)与输出值vb(t)相加获得积分电路输出信号v(t)。

在[0.5t+τ,0.5t+τ+p]的时间段内对积分器a进行积分电容泄放。

在[0.5t+τ+p,0.5t+τ+p+q]的时段内由积分器a对地积分,获得积分器a的误差函数。

在[0.5t+τ+p+q,0.5t+τ+p+q+p]的时间段内对积分器a进行电容泄放。

完成在[0,t+τ]的时段内的积分器a和积分器b的交替工作。

参见图2,本实施例中用于实现上述基于fpga的积分误差补偿方法的积分电路包括模拟积分电路模块、adc模块、fpga模块和dac模块。

模拟积分电路模块包括积分器a和积分器b,各积分器分别包含有运算放大器、电容、电阻以及双掷电子开关,用于实现积分、切换输入信号以及对电容放电的功能;针对积分器a,在其运算放大器的负、正输入端分别连接有电阻ra1和ra2,ra1的另一端连接双掷电子开关ka1,ra2的另一端接地;双掷电子开关ka1的两个端子分别连接输入信号和地;ra1和运算放大器负输入端的连接处分别与积分电容器ca、泄放电阻ra3相连,积分电容器ca的另一端连接双掷电子开关ka2,ka2的端子1连接运算放大器的输出端、端子2连接泄放电阻ra3的另一端。针对积分器b,运算放大器的负、正输入端分别连接电阻rb1和rb2,rb1的另一端连接双掷电子开关kb1,rb2的另一端接地;双掷电子开关kb1的两个端子分别连接输入信号和地;rb1和运算放大器负输入端的连接处分别与积分电容器cb、泄放电阻rb3相连,积分电容器cb的另一端连接双掷电子开关kb2,kb2的端子1连接运算放大器的输出端、端子2连接泄放电阻rb3的另一端。

fpga模块包括八个功能单元:逻辑控制单元、adc控制器、误差函数求解存储单元a、误差函数求解存储单元b、误差补偿单元a、误差补偿单元b、累加保持单元和dac控制器。

工作时,fpga模块的逻辑控制单元发出逻辑控制信号使双掷电子开关ka1、kb1接地、ka2、kb2接端子1,积分器a和积分器b均对地积分一段时间,时长为q,输出模拟电压至adc模块;fpga模块的adc控制器产生adc模块控制信号,使adc模块将模拟积分电路模块输出的模拟电压转换为数字量并送入fpga模块内;fpga中误差函数求解存储单元a求解并存储积分器a对地积分时的误差函数,误差函数求解存储单元b求解并存储积分器b对地积分时的误差函数,作为初始误差函数;fpga模块的逻辑控制单元再次发出逻辑控制信号使双掷电子开关ka2、kb2接端子2,积分电容ca、cb泄放。至此,完成初始设置。第一个交替工作周期开始时,无论是积分器a先开始对信号积分还是积分器b先开始对信号积分,都可以调用初始误差函数对其进行误差补偿。

fpga模块的逻辑控制单元发出逻辑控制信号,使双掷电子开关ka1接输入信号v(t)、ka2接端子1。积分器a开始对信号进行积分,得到积分器a的积分输出值vao(t),误差补偿单元a对其输出电压进行误差补偿,获得积分器a经积分误差补偿后的输出值va(t)。在mt时刻,fpga模块的逻辑控制单元发出逻辑控制信号,累加保持单元锁存积分电路mt时刻输出信号v(mt),在[mt,(m+0.5)t]的时段m1内将积分电路mt时刻输出信号v(mt)与输出值va(t)相加获得积分电路输出信号v(t)。

在[mt+τ,mt+τ+p]的时间段内,kb1接地、kb2接端子2,积分器b进行积分电容泄放;在[mt+τ+p,mt+τ+p+q]的时段内,kb2接端子1,积分器b对地积分,误差函数求解存储单元b求出该段时间的积分误差函数并存储;在[mt+τ+p+q,mt+τ+p+q+p]的时间段内,kb2接端子2,对积分器b进行电容泄放。

在[(m+0.5)t-τ,(m+1)t+τ]的时段内,fpga模块的逻辑控制单元发出逻辑控制信号,使双掷电子开关kb1接输入信号v(t)、kb2接端子1,积分器b开始对信号进行积分,得到积分器b的积分输出值vbo(t),误差补偿单元b利用[mt+τ+p,mt+τ+p+q]的时段内获得的积分器b的误差函数对于信号积分值vbo(t)进行误差补偿,获得积分器b经积分误差补偿后的输出值vb(t)。在(m+0.5)t时刻,fpga模块的逻辑控制单元发出逻辑控制信号,累加保持模块锁存积分电路(m+0.5)t时刻输出信号v((m+0.5)t),在[(m+0.5)t,(m+1)t]时段m2内将积分电路(m+0.5)t时刻输出信号v((m+0.5)t)与输出值vb(t)相加获得积分电路输出信号v(t)。

在[(m+0.5)t+τ,(m+0.5)t+τ+p]的时间段内,ka1接地、ka2接端子2,对积分器a进行积分电容泄放;在[(m+0.5)t+τ+p,(m+0.5)t+τ+p+q]的时段内,ka2接端子1,积分器a对地积分,误差函数求解存储单元a求出该段时间的积分误差并存储;在[(m+0.5)t+τ+p+q,(m+0.5)t+τ+p+q+p]的时间段内,ka2接端子2,积分器a进行电容泄放。完成在[mt-τ,(m+1)t+τ]的时段内的积分器a和积分器b的交替工作。

累加保持单元的输出经dac模块转换为模拟量输出。积分结束后,双掷电子开关ka2、kb2接端子2,积分电容ca、cb泄放。

考虑到电子开关ka1、ka2、kb1、kb2的动作时间在μs量级,积分准备时间τ确定在ms量级,这样,当一路积分在对信号积分时,另一路积分器提前进入积分准备状态,防止信号丢失。对积分电容的泄放,可以清除误差,防止误差的累积。泄放时间p与积分时间常数rc相关,p一般取3~5rc,而积分常数一般在ms量级,所以p的取值在ms量级。实现积分器交替工作的关键是选择合适的交替周期t,交替周期太长,会使每一路积分器的积分误差累积,不利于降低积分误差;交替周期太短,电子开关频繁动作,不利于积分器稳定工作,周期t一般取几秒到几十秒不等。积分器对地积分是为了获得误差函数,满足t=2(2τ+2p+q)即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1