一种数字万用表的非线性误差补偿方法与流程

文档序号:11947036阅读:577来源:国知局
一种数字万用表的非线性误差补偿方法与流程
本发明属于数字万用表
技术领域
,更为具体地讲,涉及一种数字万用表的非线性误差补偿方法。
背景技术
:数字万用表在制造过程中,由于各种器件存在误差,难以保证测量结果的准确度。在数字万用表的几大测量功能中,在测量电路中都需要应用到放大器和数模转换电路,各测量信号通过放大器放大后送入数模转换电路进行采集量化以及后续处理。放大器误差主要为偏置误差、增益误差、非线性误差、温度引起的偏置及增益的漂移误差。数模转换电路误差主要为ADC(Analog-to-DigitalConverter,模数转换器)积分非线性、增益误差、偏置误差,增益误差漂移、偏置误差漂移。可见非线性误差是数字万用表中一种较为重要的误差。目前业内在解决数字万用表的非线性误差的主要手段是选用线性性能较好的器件,但是这样也相应地提高了数字万用表的成本,并且器件的线性性能也会随着使用而逐渐降低,非线性误差逐渐提高,难以长久地保障数字万用表测量结果的准确度。技术实现要素:本发明的目的在于克服现有技术的不足,提供一种数字万用表的非线性误差补偿方法,对数字万用表中放大器和ADC带来的非线性误差进行补偿,降低ADC采集量化的测量值的线性度,提高数字万用表的线性性能。为实现上述发明目的,本发明数字万用表的非线性误差补偿方法包括以下步骤:S1:将放大器输入端输入的参考值范围[-V,V]划分为五个区间:[-V,-v2]、[-v2,-v1]、[-v1,v1]、[v1,v2]、[v2,V],其中0<v1<v2<V,V=Vs/K,K表示放大器的放大倍数,Vs表示ADC采集量化电压绝对值的上限;S2:采集[0,v1]、[v1,v2]、[v2,V]三个区间的数据,对于每个区间,向放大器输入端输入若干个参考值y,根据参考值y放大后对应的实际值z=Ky和ADC采集量化的测量值x计算得到该区间的非线性绝对误差δi,其中i=1,2,3,δ1、δ2、δ3分别表示区间[0,v1]、[v1,v2]、[v2,V]的非线性绝对误差;计算该区间非线性绝对误差与该区间允许非线性绝对误差的比值表示向上取整,则设置该区间的分段数Ni≥ni;将每个区间按照分段数平均分段,记整个采集电压范围[-V,V]的分段数为M;S3:对于步骤S2得到的M个分段,分别获取Q组数据,每组数据包括参考值和对应的测量值,Q组数据中应当有两组数据的参考值位于分段的端点,并且根据端点参考值对应的测量值得到该分段对应的测量值范围;S4:根据每个分段的拟合数据进行多项式拟合,得到各个分段中实际值与测量值之间的多项式公式,保存各个多项式公式及对应的测量值范围;S5:在数字万用表实际测量时,对于ADC采集量化的测量值x,根据各分段对应的测量值范围判断测量值x所对应的分段,选择对应分段的多项式公式,根据测量值x计算得到校正值。本发明数字万用表的非线性误差补偿方法,将放大器输入端输入的参考值范围划分为五个区间,然后再根据区间内非线性绝对误差与该区间允许非线性绝对误差的比值来设置区间的分段数,将每个区间按照分段数平均分段;对于每个分段,分别获取若干组数据,每组数据包括参考值和对应的测量值,其中应当有两组数据的参考值位于分段的端点,并且根据对应的测量值得到该分段对应的测量值范围;根据拟合数据对每个分段进行多项式拟合得到多项式公式;在实际测量时,根据测量值对应的测量值范围选择对应多项式公式,计算得到校正值。采用本发明可以对数字万用表中放大器和ADC带来的非线性误差进行补偿,提高数字万用表的线性性能。附图说明图1是本发明数字万用表的非线性误差补偿方法的流程图;图2是测量值与对应的线性度直线误差曲线图。具体实施方式下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图1是本发明数字万用表的非线性误差补偿方法的流程图。如图1所示,本发明数字万用表的非线性误差补偿方法包括以下步骤:S101:参考值范围区间划分:将放大器输入端输入的参考值范围[-V,V]划分为五个区间:[-V,-v2]、[-v2,-v1]、[-v1,v1]、[v1,v2]、[v2,V],其中0<v1<v2<V,V=Vs/K,Vs表示ADC采集量化电压绝对值的上限,K表示放大器的放大倍数。v1和v2是根据实际需要来设置的,一般来说0附近和V附近的非线性误差较大,因此可以设置v1的取值范围为0<v1<V/4,v2的取值范围为3V/4<v1<V。本发明中采用多项式拟合来对放大器输入值到ADC采集量化的测量值之间的非线性误差进行补偿,一般来说,采用分段拟合的方法可以取得较为良好的效果。假设非线性误差是均匀分布在ADC采集范围内的,则均匀分10段拟合比以整个测量范围拟合的非线性误差补偿效果可以提高10倍,均匀分100段拟合比以整个测量范围拟合的非线性误差补偿效果可以提高100倍,但是实际情况是非线性误差并不是均匀分布的,在某些段线性度比较好,而在某些段很差,所以需要根据情况来划分。本实施例中采用放大器AD8421和数模转换器AD7760为例进行说明。本实施例中,通过对数字万用表各个测量电路的配置,使输入数模转换器AD7760的电压采集范围为[-2.5,2.5V],本实施例中设置放大器AD8421的放大倍数为1,即K=1,那么放大器输入端输入的参考值范围为[-2.5,2.5V]。参考值采用更高精度基准源产生,将参考值y输入放大器AD8421进行K倍放大,再由数模转换器AD7760采集得到测量值x。可见,测量值x对应的实际值z=Ky,由于本实施例中放大倍数K=1,那么实际值z等于参考值y。由于电压采集范围具有对称性,因此此处只对正区间,即[0,2.5v]进行数据采集。表1是本实施例中实际值与测量值对照表。序号实际值z测量值x序号实际值z测量值x10.000-0.00779121.3751.3491620.1250.11508131.5001.4725430.2500.23850141.6251.5958940.3750.36188151.7501.7192650.5000.48542161.8751.8425560.6250.60889172.001.9659170.7500.73226182.1252.0892880.8750.85574192.2502.2128691.0000.97905202.3752.33585101.1251.10229212.5002.459154111.2501.22583------表1根据表1采用最小二乘法拟合得到本实施例中实际值z与测量值x的线性度直线公式为:y=1.013194x+0.008133。图2是测量值与对应的线性度直线的误差曲线图。如图2所示,在电压测量范围内,[0,0.5]与[2,2.5]这两段非线性误差比较大,而[0.5,2]这段非线性误差较小,大致在允许误差范围内,根据这一特点,可以将[0,2.5]分为三个区间[0,0.5]、[0.5,2]、[2,2.5]。相应地根据放大倍数就可以得到参考值区间划分,由于本实施例中放大倍数K=1,那么参考值范围为[-2.5,2.5V],因此可以分为五个区间,即[-2.5,-2]、[-2,-0.5]、[-0.5,0.5]、[0.5,2]、[2,2.5]。S102:参考值区间分段:接下来需要对参考值区间进行分段,本发明中根据非线性绝对误差来计算每个区间的分段数。由于参考值区间具有对称性,为了操作简便,因此只需要采集[0,v1]、[v1,v2]、[v2,V]三个区间的数据,对于每个区间,向放大器输入端输入若干个参考值,根据参考值和ADC采集量化的测量值计算得到该区间的非线性绝对误差δi,其中i=1,2,3,δ1、δ2、δ3分别表示区间[0,v1]、[v1,v2]、[v2,V]的非线性绝对误差。计算该区间非线性绝对误差与该区间允许非线性绝对误差的比值表示向上取整,则设置该区间的分段数Ni≥ni。因此[-v1,v1]的分段数为2N1,[v1,v2]和[-v2,-v1]的分段数为N2,[v2,V]和[-V,-v2]的分段数为N3,将每个区间按照分段数平均分段,记整个采集电压范围[-V,V]的分段数为M。本实施例中,非线性绝对误差的计算方法为:首先拟合得到整个测量范围内实际值z与测量值x的线性度直线y=kx+b,其中k,b表示线性公式参数。然后获取各个实际值z与通过线性公式根据x计算得到的实际值z′的差值Δy,分别搜索各区间Δy中的最大值可见(z分别属于[0,v1]、[v1,v2]、[v2,V]区间)。非线性绝对误差那么可计算非线性相对误差在实际应用中,为了降低算法的复杂度,每个区间的分段数也不宜过多,为了兼顾性能和效率,分段数优选的取值范围为ni≤Ni≤2ni。本实施例中三个正区间分别为[0,0.5]、[0.5,2]、[2,2.5]。表2是本实施例中三个正区间的非线性相对误差数据。分段范围非线性相对误差非线性绝对误差允许非线性绝对误差[0,0.5]0.0107%0.000268V0.000030V[0.5,2]0.0049%0.000123V0.000043V[2,2.5]0.0106%0.000267V0.00013V表2假设非线性误差在这三段是均分分布的,则在[0,0.5]需要细分的段数为n1=0.000268/0.000030=8.93,在[0.5,2]需要细分的段数为n2=0.000123/0.000043=2.86,在[2,2.5]需要细分的段数为n3=0.000267/0.00013=2.05,由于实际非线性误差一般不是均分分布的,分段数要比计算的大,因此扩展到参考值范围[-2.5,2.5V],做如下分段:[-2.5,-2]和[2,2.5]各自均分为5段,[-2,-0.5]和[0.5,2]各自均分为5段,[-0.5,0.5]均分为20段,共40段。S103:拟合数据获取:对于步骤S102得到的M个分段,分别获取Q组数据,每组数据包括参考值和对应的测量值,Q的大小根据采用的多项式公式设置。显然获取得到的各个分段的拟合数据中各参考值应当位于分段范围以内。Q组数据中应当有两组数据的参考值位于分段的端点,并且根据端点参考值对应的测量值得到该分段对应的测量值范围。本实施例中多项式拟合采用三次多项式,确定三次多项需要四个点,但为了排除随机误差的干扰,一般会增加些冗余点,为保证取点得均匀性,本文再增加2个冗余点,共6个点,即每段需要6个数据点来拟合三次多项式。为了保证拟合出的曲线包含已测点的信息,相邻两段之间应当有一个共用点,即前一段的末尾端点是后一段的起始端点。这样就是一个超定问题,对于这类问题一般使用最小二乘法求解。由于每段有个重合的点,所以5段共需5×20+1个点,即201个点。由于增加了曲线过第六个点这一约束条件,这就是一个有约束条件的最小二乘法问题。S104:多项式拟合:根据每个分段的拟合数据进行多项式拟合,得到各个分段非线性补偿的多项式公式x′=f(x),x′表示校正值。由于本实施例中采用三次多项式,那么测量值x和校正值x′的三次多项式可以表示为:x′=z=a0+a1x+a2x2+a3x3(1)将放大倍数K=1,测量值x1,x2,x3,x4,x5,x6,实际值z1,z2,z3,z4,z5,z6代入式(1)可得以下方程组:z1=a0+a1x1+a2x12+a3x13z2=a0+a2x2+a2x22+a3x23z3=a0+a1x3+a2x32+a3x33z4=a0+a2x4+a2x42+a3x43z5=a0+a1x5+a2x52+a3x53z6=a0+a2x6+a2x62+a3x62---(2)]]>由于拟合得到的曲线要经过第六点,即z6=a0+a1x6+a2x62+a3x63必须满足,这样可以求得a0=z6-(a1x6+a2x62+a3x63)。将a0带入式(2)得:z1-z6=a1×(x1-x6)+a2×(x12-x62)+a3×(x13-x63)z2-z6=a1×(x2-x6)+a2×(x22-x62)+a3×(x23-x63)z3-z6=a1×(x3-x6)+a2×(x32-x62)+a3×(x33-x63)z4-z6=a1×(x4-x6)+a2×(x42-x62)+a3×(x43-x63)z5-z6=a1×(x5-x6)+a2×(x52-x62)+a3×(x53-x63)---(3)]]>设矩阵C=ATA,则正规方程组可以写为:CX=ATL(4)正规方程解得矩阵表达式为:X=C-1ATL(5)解出X,将a1、a2、a3代入a0=y6-(a1x6+a2x62+a3x63)解出a0,得到a0,a1,a2,a3,便可以得出x′=a0+a1x+a2x2+a3x3,每个分段的测量值x通过方程x′=a0+a1x+a2x2+a3x3即可以得到校正值x′,从而实现非线性误差补偿,得到放大器的实际输出。本实施例中以区间[-0.5,0.5]下的分段[0,0.05]为例来介绍非线性误差补偿的过程和效果评价。表3是本实施例中分段[0,0.05]下的测试数据。序号实际值z测量值x序号实际值z测量值x10-0.0077970.0300.0218720.005-0.0028680.0350.0267930.0100.0020790.0400.0317440.0150.00704100.0450.0366750.0200.01199110.050.0416160.0250.01692------表3采用6个数据点(-0.00779,0),(0.00207,0.010),(0.01199,0.020),(0.02187,0.030),(0.03174,0.040),(0.04161,0.050)求解x′=z=a0+a1x+a2x2+a3x3,即,z1=0,z2=0.010,z3=0.020,z4=0.030,z5=0.040,z6=0.050,x1=-0.00779,x2=0.00207,x3=0.01199,x4=0.02187,x5=0.03174,x6=0.04161,代入公式(5)可以计算得到:a0=0.007891、a1=1.011684,a2=-0.070467,a3=1.873319,即校正公式为:x′=0.007891+1.011684x-0.070467x2+1.873319x3(6)从两个端点的数据(0-0.00779)和(0.0500.04161)可以得到该分段对应的测量值范围为[-0.00779,0.04161]。S105:非线性误差补偿:在数字万用表实际测量时,对于ADC采集量化的测量值x,根据各分段对应的测量值范围判断测量值x在哪一段,选择对应分段的多项式公式,根据测量值x计算得到校正值x′,再进行后续处理,从而实现对ADC的测量值的非线性误差补偿。同样以分段[0,0.05]为例进行非线性误差补偿实验验证。表4是非线性误差补偿前后的数据。序号实际值z矫正后值x′序号实际值z矫正后值x′100.0000070.0300.0300020.0050.0050080.0350.0349830.0100.0099890.0400.0399940.0150.01501100.0450.0449950.0200.02001110.050.0500060.0250.0250012----表4对比表3和表4可以看出,采用非线性误差补偿后的校正值更接近于实际值。为了说明本发明的技术效果,采用最小二乘线性度作为非线性补偿前后的测量值和校正值的线性度的评价标准。表5是非线性补偿前后各个分段的线性度值。表5根据表5可知,采用本发明非线性误差补偿方法后,ADC采集量化得到的测量值线性度性能得到了明显提高,非线性误差得到了较大的抑制。尽管上面对本发明说明性的具体实施方式进行了描述,以便于本
技术领域
的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1