基本数据处理算法内容提要消除系统误差的算法、非线性校正工程量的标度变换。诸如频谱估计、相关分析、复杂滤波等算法,阅读数字信号处理方面的文献。第四章智能仪器的基本数据处理算法第二节消除系统误差的软件算法系统误差:是指在相同条件下,多次测量同一量时其大小和符号保持不变或按一定规律变化的误差。恒定系统误差:校验仪表时标准表存在的固有误差、仪表的基准误差等;变化系统误差:仪表的零点和放大倍数的漂移、温度变化而引入的误差等;非线性系统误差:传感器及检测电路(如电桥)被测量与输出量之间的非线性关系。常用有效的测量校准方法,这些方法可消除或消弱系统误差对测量结果的影响。一、仪器零位误差和增益误差的校正方法由于传感器、测量电路、放大器等不可避免地存在温度漂移和时间漂移,所以会给仪器引入零位误差和增益误差。需要输入增加一个多路开关电路。开关的状态由计算机控制。1.零位误差的校正方法在每一个测量周期或中断正常的测量过程中,把输入接地(即使输入为零),此时整个测量输入通道的输出即为零位输出(一般其值不为零)N0;再把输入接基准电压Vr测得数据Nr,并将N0和Nr存于内存;然后输入接Vx,测得Nx,则测量结果可用下式计算出来。)(NoxNNoNrVrxV2.增益误差的自动校正方法其基本思想是测量基准参数,建立误差校正模型,确定并存储校正模型参数。在正式测量时,根据测量结果和校正模型求取校正值,从而消除误差。需要校正时,先将开关接地,所测数据为X0,然后把开关接到Vr,所测数据为X1,存储X0和X1,得到校正方程:Y=A1X+A0A1=Vr/(X1X0)A0=VrX0/(X0X1)这种校正方法测得信号与放大器的漂移和增益变化无关,降低了对电路器件的要求,达到与Vr等同的测量精度。但增加了测量时间。二、系统非线性校正传感器的输出电信号与被测量之间的关系呈非线性;仪器采用的测量电路是非线性的。模型方法来校正系统误差的最典型应用是非线性校正。模型方法来校正系统误差的最典型应用是非线性校正。1.校正函数法如果确切知道传感器或检测电路的非线性特性的解析式y=f(x),则就有可能利用基于此解析式的校正函数(反函数)来进行非线性校正。例:某测温热敏电阻的阻值与温度之间的关系为RT为热敏电阻在温度为T的阻值;)T(feRRT/C25TT/)Rln(RlnC25T)R(F)]R/(Rln[(/TTC25T)]Rk/(Nln[/)k/N(FTzC25α和β为常数,当温度在0~50℃之间分别约为1.44×10-6和4016K。2、建模方法之一:代数插值法代数插值:设有n+1组离散点:(x0,y0),(x1,y1),…,(xn,yn),x∈[a,b]和未知函数f(x),就是用n次多项式去逼近f(x),使Pn(x)在节点xi处满足011n1nnnnaxaxaxa)x(Pn,,1,0iy)x(f)x(Piiin系数an,…,a1,a0应满足方程组n01n11nn1nnnn101111n11nn1n001011n01nn0nyaxaxaxayaxaxaxayaxaxaxa要用已知的(xi,yi)(i=0,1,…,n)去求解方程组,即可求得ai(i=0,1,…,n),从而得到Pn(x)。此即为求出插值多项式的最基本的方法。对于每一个信号的测量数值xi就可近似地实时计算出被测量yi=f(xi)≈Pn(xi)。最常用的多项式插值有:线性插值和抛物线(二次)插值。(1).线性插值:从一组数据(xi,yi)中选取两个有代表性的点(x0,y0)和(x1,y1),然后根据插值原理,求出插值方程01101001011axayxxxxyxxxx)x(P010001011,xayaxxyyayxVi=|P1(Xi)-f(Xi)|,i=1,2,…,n–1若在x的全部取值区间[a,b]上始终有Vi<ε(ε为允许的校正误差),则直线方程P1(x)=a1x+a0就是理想的校正方程。线性插值举例0~490℃的镍铬—镍铝热电偶分度表如表4.1。若允许的校正误差小于3℃,分析能否用直线方程进行非线性校正。取A(0,0)和B(20.12,490)两点,按式(4.23)可求得a1=24.245,a0=0,即P1(x)=24.245x,此即为直线校正方程。显然两端点的误差为0。通过计算可知最大校正误差在x=11.38mV时,此时P1(x)=275.91。误差为4.09℃。另外,在240~360℃范围内校正误差均大3℃。即用直线方程进行非线性校正不能满足准确度要求。(2)抛物线插值(二阶插值):在一组数据中选取(x0,y0),(x1,y1),(x2,y2)三点,相应的插值方程2120210121012002010212))(())(())(())(())(())(()(yxxxxxxxxyxxxxxxxxyxxxxxxxxxPyxf(x)P(X)x0y0y1y2x2x1现仍以表4.1所列数据说明抛物线插值的个体作用。节点选择(0,0),(10.15,250)和(20.21,490)三点xxxxxxxP02.25038.0490)15.1021.20(21.20)15.10(250)21.2015.10(15.10)21.20()(22可以验证,用此方程进行非线性较正,每点误差均不大于3℃,最大误差发生在130℃处,误差值为2.277℃提高插值多项式的次数可以提高校正准确度。考虑到实时计算这一情况,多项式的次数一般不宜取得过高,当多项式的次数在允计的范围内仍不能满足校正精度要求时,可采用提高校正精度的另一种方法—(3)分段插值法:这种方法是将曲线y=f(x)按分成N段,每段用一个插值多项式Pni(x)来进行非线性校正(i=1,2,…N)。等距节点分段插值和不等距节点分段插值两类。①等距节点分段插值适用于非线性特性曲率变化不大的场合。分段数N及插值多项式的次数n均取决于非线性程度和仪器的精度要求。非线性越严重或精度越高,则N取大些或n取大些,然后存入仪器的程序存储器中。实时测量时只要先用程序判断输入x(即传感器输出数据)位于折线的哪一段,然后取出与该段对应的多项式系数并按此段的插值多项式计算Pni(x),就可求得到被测物理量的近似值。②.不等距节点分段插值对于曲率变化大的非线性特性,若采用等距节点的方法进行插值,要使最大误差满足精度要求,分段数N就会变得很大(因为一般取n≤2)。这将使多项式的系数组数相应增加。此时更宜采且非等距节点分段插值法。即在线性好的部分,节点间距离取大些,反之则取小些,从而使误差达到均匀分布。在表4.1中所列的数据中取三点(0,0),(10.15,250),(20.21,490),并用经过这三点的两个直线方程来近似代替整个表格。通过计算得:21.20x15.1085.7x86.2315.10x0x63.24)x(P1可以验证,用这两个插值多项式对表4.1中所列的数据进行非线性校正时,第一段的最大误差发生在130℃处,误差值为1.278℃,第二段最大误差发生在340℃处,误差1.212℃。显然与整个范围内使用抛物线插值法相比,最大误差减小约1℃。因此,分段插值可以在大范围内用较低的插值多项式(通常不高于二阶)来达到很高的校正精度。3.建模方法之二:曲线拟合法曲线拟合,就是通过实验获得有限对测试数据(xi,yi),利用这些数据来求取近似函数y=f(x)。式中x为输出量,y为被测物理量。与插值不同的是,曲线拟合并不要求y=f(x)的曲线通过所有离散点(xi,yi),只要求y=f(x)反映这些离散点的一般趋势,不出现局部波动。最小二乘法连续函数拟合自变量x与因变量y之间的单值非线性关系可以自变量x的高次多项式来逼近对于n个实验数据对(xi,yi)(i=1,2,…,n),则可得如下n个方程mm10xaxaaynmnmn10nV)xaxaa(y1m1m1101V)xaxaa(y2m2m2102V)xaxaa(yn1i2m0jjijin1i2im10min]xay[V)a,,a,a(02211nikinjjijixxayakimiiiim10m2i1mimi1mi2iimiiyxyxyaaaxxxxxxxxn解即为aj(j=0,…,m)的最佳估计值拟合多项式的次数越高,拟合结果的精度也就越高,但计算量相应地也增加。若取m=1,则被拟合的曲线为直线方程y=a0+a1xn个实验数据对(xi,yi)(i=1,2,…,n),)yxxyx(1an1iiin1in1iiin1i2i0)yxyxn(1an1iin1iin1iii12n1iin1i2i)x(xn分段直线拟合分段n次曲线拟合三、系统误差的标准数据校正法当难以进行恰当的理论分析时,未必能建立合适的误差校正模型。但此时可以通过实验,即用实际的校正手段来求得校正数据,然后把校正数据以表格形式存人内存。实时测量中,通过查表来求得修正的测量结果。实测值介于两个校正点之间时,若仅是直接查表,则只能按其最接近查找,这显然会引入一定的误差。可进行如下误差估计,设两校正点间的校正曲线为一直线段,其斜率S=△X/△Y(注意,校正时Y是自变量,X是函数值),并设最大斜率为Sm,可能的最大误差为△Xm=Sm△Y,设Y的量程为Ym,校正时取等间隔的N个校正点,则△Xm=SmY/N点数越多,字长越长,则精度越高,但是点数增多和字节变长都将大幅度增加存储器容量。四、传感器温度误差的校正方法在高精度仪器仪表中,传感器的温度误差已成为提高仪器性能的严重障碍,对于环境温度变化较大的应用场合更是如此。仅依靠传感器本身附加的一些简单的电路或其他装置来实现完善的传感器温度误差校正是困难且不便的。但只要能建立起较精确的温度误差模型,就可能实现完善的校正。温度本身就是一个需要检测的量,或在传感器内靠近敏感元件处附加一个测温元件(PN二极管、热敏电阻)等。它们的某些特性随温度而变化,经测温电路、ADC后可转换为与温度有关的数字量,设为θ。温度误差数学模型的建立,可采用前面已介绍的代数插值法或曲线拟合法等。可采用如下较简单的温度误差校正模型:10ca)a1(yyy为未经温度校正的测量值;yc为经温度校正的测量值;Δθ为实际工作环境与标准温度之差;a0和a1为温度变化系数(a1用于校正由于温度变化引起的传感器零位漂移,a0用于校正由于温度变化引起的传感器标度的变化)。第三节标度变换仪器采集的数据并不等于原来带有量纲的参数值,它仅仅对应于参数的大小,必须把它转换成带有量纲的数值后才能显示、打印输出和应用,这种转换就是工程量变换,又称标度变换。例:测量机械压力时,当压力变化为0--100N时,压力传感器输出的电压为0--10mV,放大为0--5V后进行A/D转换,得到00H--FFH的数字量(假设也采用8位ADC)。一、线性标度变换若被测量的变换范围为A0~AmA0对应的数字量为N0,Am对应的数字量为Nm,Ax对应的数字量为Nx;实际测量值为Ax;假设包括传感器在内的整个数据采集系统是线性的,则标度变换公式为:)NN/()NN)(AA(AA0m0x0m0x00mmxxA)AA)(N/N(AA0对应的数字量N0为零某智能温度测量仪采用8位ADC,测量范围为10~100℃,仪器采样并经滤波和非线性校正后(即温度与数字量之间的关系已为线性)的数字量为28H。此时,式(4.32)中的A0=