基本数据处理算法内容提要
? 消除系统误差的算法, 非线性校正
? 工程量的标度变换 。
? 诸如频谱估计, 相关分析, 复杂滤波等
算法, 阅读数字信号处理方面的文献 。
第四章 智能仪器的基本数据处理算法
第二节 消除系统误差的软件算法
?系统误差,是指在相同条件下, 多次测量同
一量时其大小和符号保持不变或按一定规律
变化的误差 。
? 恒定系统误差,校验仪表时标准表存在的固有
误差, 仪表的基准误差等;
? 变化系统误差,仪表的零点和放大倍数的漂移,
温度变化而引入的误差等;
? 非线性系统误差,传感器及检测电路 ( 如电桥 )
被测量与输出量之间的非线性关系 。
? 常用有效的测量校准方法, 这些方法可消除
或消弱系统误差对测量结果的影响 。
一、仪器零位误差和增益误差的校正方法
? 由于传感器、测量电路、放大器等不可避
免地存在温度漂移和时间漂移,所以会给
仪器引入零位误差和增益误差。
需要 输入增加一个多路开关电路。开关的状
态由计算机控制。
?1,零位误差的校正方法
在每一个测量周期或中断正常的测量过程中,
把输入接地 (即使输入为零 ),此时整个测量
输入通道的输出即为零位输出 (一般其值不
为零 )N0;再把输入接基准电压 Vr测得数据
Nr,并将 N0和 Nr存于内存;然后输入接 Vx,
测得 Nx,则测量结果可用下式计算出来 。
)( NoxNNoNr VrxV ???
2.增益误差的自动校正方法
? 其基本思想是 测量基准参数, 建立误差校正模型,
确定并存储校正模型参数 。 在正式测量时, 根据
测量结果和校正模型求取校正值, 从而消除误差 。
? 需要校正时, 先将开关接地, 所测数据为 X0,然
后把开关接到 Vr,所测数据为 X1,存储 X0和 X1,
得到校正方程,Y=A1X+A0
A1=Vr/( X1 X0)
A0=Vr X0/( X0 X1)
? 这种校正方法测得信号与 放大器的漂移和增益变
化无关,降低了对电路器件的要求,达到与 Vr等
同的测量精度。但增加了测量时间。
二、系统非线性校正
? 传感器的输出电信号与被测量之间的关系呈非
线性 ;仪器采用的测量电路是非线性的 。
模型方法来校正系统误差的最典型应用是非线性校正。
模型方法 来校正系统误差的最典型应用是
非线性校正。
1.校正函数法
如果确切知道传感器或检测电路的非线性特
性的解析式 y = f(x),则就有可能利用基于
此解析式的校正函数(反函数)来进行非线
性校正。
例:某测温热敏电阻的阻值与温度之间的
关系为
RT为热敏电阻在温度为 T的阻值;
)T(feRR T/C25T ???? ??
T/)Rln (Rln C25T ????? ?
)R(F)]R/(Rln [ (/T TC25T ????? ?
)]Rk/(Nln [/)k/N(FTz C25 ????????
α 和 β 为常数,当温度在 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处满足
01
1n
1n
n
nn axaxaxa)x(P ?????
?
? ?
n,,1,0iy)x(f)x(P iiin ????
系数 an,…, a1,a0应满足方程组
?
?
?
?
?
?
?
????
????
????
?
?
?
?
?
?
n0
1
n1
1n
n1n
n
nn
10
1
11
1n
11n
n
1n
00
1
01
1n
01n
n
0n
yaxaxaxa
yaxaxaxa
yaxaxaxa
?
?
?
?
要用 已知的( xi,yi) (i = 0,1,…,n)去求
解方程组,即可求得 ai(i = 0,1,…,n),从
而得到 Pn(x)。此即为求出插值多项式的最基本
的方法。 对于每一个信号的测量数值 xi就可近
似地实时计算出被测量 yi = f(xi)≈P n(xi)。
最常用的多项式插值有:
线性插值和抛物线(二次)插值。
? (1).线性插值:从一组数据( xi,yi)中选取
两个有代表性的点( x0,y0)和( x1,y1),然
后根据插值原理,求出插值方程
011
01
0
0
10
1
1 axayxx
xxy
xx
xx)x(P ??
?
??
?
??
0100
01
01
1,xayaxx
yy
a ??
?
?
?
y
x
Vi = | 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) 三点, 相应的插值方程
2
1202
10
1
2101
20
0
2010
21
2 ))((
))((
))((
))((
))((
))((
)( y
xxxx
xxxx
y
xxxx
xxxx
y
xxxx
xxxx
xP
??
??
?
??
??
?
??
??
?
y
x
f( x)
P( X)
x0
y0
y1
y2
x2x1
? 现仍以表 4.1所列数据说明抛物线插值的个
体作用。节点选择( 0,0),( 10.15,250)
和( 20.21,490)三点
xx
xxxx
xP
02.250 3 8.0
4 9 0
)15.1021.20(21.20
)15.10(
2 5 0
)21.2015.10(15.10
)21.20(
)(
2
2
???
?
?
?
??
?
?
?
可以验证,用此方程进行非线性较正,每点误
差均不大于 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.23
15.10x0x63.24
)x(P 1
可以验证,用这两个插值多项式对表 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个方程
m
m10 xaxaay ????
n
m
nmn10n V)xaxaa(y ????? ?
1
m
1m1101 V)xaxaa(y ????? ?
2
m
2m2102 V)xaxaa(y ????? ?
? ??
? ??
?????
n
1i
2
m
0j
j
iji
n
1i
2
im10 m in]xay[V)a,,a,a( ?
02
2
1 1
??
?
?
??
?
?
?
?
?
?
? ???
?
?
? ?
? ?
n
i
k
i
n
j
j
iji
xxay
a k
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
???
??
?
?
i
m
i
ii
i
m
1
0
m2
i
1m
i
m
i
1m
i
2
ii
m
ii
yx
yx
y
a
a
a
xxx
xxx
xxn
??
?
????
?
?
解即为 aj( j = 0,…, m)的最佳估计值
? 拟合多项式的次数越高,拟合结果的精度也就
越高,但计算量相应地也增加。 若取 m = 1,
则被拟合的曲线为直线方程 y = a0 + a1x
n个实验数据对( xi,yi)( i = 1,2,…, n),
)yxxyx(1a
n
1i
ii
n
1i
n
1i
ii
n
1i
2
i0 ?? ??
?? ??
?
?
?
)yxyxn(
1
a
n
1i
i
n
1i
i
n
1i
ii1 ???
???
?
?
?
2
n
1i
i
n
1i
2
i )x(xn ??
??
???
分段直线拟合
分段 n次曲线
拟合
三、系统误差的标准数据校正法
?当难以进行恰当的理论分析时,未必
能建立合适的误差校正模型。但此时
可以通过实验,即用实际的校正手段
来求得校正数据,然后把校正数据以
表格形式存人内存。实时测量中,通
过查表来求得修正的测量结果。
? 实测值介于两个校正点之间时,若仅是直
接查表,则只能按其最接近查找,这显然
会引入一定的误差。
? 可进行如下误差估计,设两校正点间的校
正曲线为一直线段,其斜率 S=△ X/△ Y(注
意,校正时 Y是自变量,X是函数值 ),并设
最大斜率为 Sm,可能的最大误差为
△ Xm=Sm△ Y,设 Y的量程为 Ym,校正时取等
间隔的 N个校正点,则△ Xm=SmY/N
点数越多,字长越长,则精度越高,但是点数
增多和字节变长都将大幅度增加存储器容量。
四、传感器温度误差的校正方法
在高精度仪器仪表中,传感器的温度误差已
成为提高仪器性能的严重障碍,对于环境温
度变化较大的应用场合更是如此。仅依靠传
感器本身附加的一些简单的电路或其他装置
来实现完善的传感器温度误差校正是困难且
不便的。但只要能建立起较精确的温度误差
模型,就可能实现完善的校正。
? 温度本身就是一个需要检测的量,或在传感器内
靠近敏感元件处附加一个测温元件 (PN二极管、
热敏电阻 )等。它们的某些特性随温度而变化,
经测温电路,ADC后可转换为与温度有关的数字
量,设为 θ 。
? 温度误差数学模型的建立,可采用前面已介绍的
代数插值法或曲线拟合法等。
? 可采用如下较简单的温度误差校正模型:
??????? 10c a)a1(yy
y为未经温度校正的测量值; yc为经温度校正的测量值;
Δθ 为实际工作环境与标准温度之差; a0和 a1为温度变化系
数( a1用于校正由于温度变化引起的传感器零位漂移,a0用
于校正由于温度变化引起的传感器标度的变化)。
第三节 标度变换
? 仪器采集的数据并不等于原来带有量纲的参
数值,它仅仅对应于参数的大小,必须把它
转换成带有量纲的数值后才能显示、打印输
出和应用,这种转换就是工程量变换,又称
标度变换。
? 例:测量机械压力时,当压力变化为 0--
100N时,压力传感器输出的电压为 0--10mV,
放大为 0--5V后进行 A/D转换,得到 00H--FFH
的数字量(假设也采用 8位 ADC)。
一、线性标度变换
? 若被测量的变换范围为 A0~ Am
A0对应的数字量为 N0,Am对应的数字量为 Nm,Ax
对应的数字量为 Nx;实际测量值为 Ax;
假设 包括传感器在内的整个数据采集系统是线
性的, 则标度变换公式为:
)NN/()NN)(AA(AA 0m0x0m0x ?????
00mmxx A)AA)(N/N(A ???
A0对应的数字量 N0为零
? 某智能温度测量仪采用 8位 ADC,测量范围为
10~ 100℃, 仪器采样并经滤波和非线性校正
后 ( 即温度与数字量之间的关系已为线性 ) 的
数字量为 28H。 此时, 式 ( 4.32) 中的 A0=10℃,
Am=100℃, Nm=FFH=255,Nx=28H=40。 则
C1.2410)101 0 0)(2 5 5/40(
))(/(
00
?
????
??? AAANNA
mmxx
应用实例:
二、非线性参数的标度变换
? 许多智能仪器所使用的传感器是非线性的。
此时,一般先进行非线性校正,然后再进行
标度变换。
实例:利用节流装置测量流量时,流量与节流
装置两边的差压之间有以下关系
PKG ??
00m0m0xx G)GG)](NN/()NN[(G ?????
思考题与习题
? 1,与硬件滤波器相比, 采用数字滤波器有何优点?
? 2,常用的数字滤波算法有哪些? 说明各种滤波算法的
特点和使用场合 。
? 3,各种常用的滤波算法能组合使用吗? 若能, 请举例
说明;若不能, 请说明理由 。
? 4,设检测信号是幅度较小的直流电压, 经过适当放大
和 A/D转换, 由于 50Hz工频干扰使测量数据呈现周期性
波动 。 设采样周期 Ts=1ms,采用算数平均滤波算法,
是否能够消除工频干扰? 平均点数 N如何选择?
? 5,采用 51系列单片机实现 4题, 请画出算法流程图,
编写汇编程序, 加以详细注释 。
? 6,在 4题中又增加了脉冲干扰, 设计复合滤波算法,
画出算法流程图, 编写汇编程序, 加以详细注释 。
? 7,中值数绝对偏差决策滤波器与中值滤波器有哪些
特点? 画算法流程图 。
? 8,什么是系统误差? 有哪几种类型? 简要说明系统
误差与随机误差根本区别 。
? 9,产生零位误差的原因有哪些? 产生增益误差的原
因有哪些? 简述校正方法 。
? 10,基准电压 Vr的精度和稳定性是否影响零位误差,
增益误差的校正效果?
1 11.系统非线性误差校正的思路与方法 。
2 12,通过测量获得一组反映被测值的离散
数据, 建立起一个反应被测量值变化的近
似数学模型 。 有哪些常用的建模方法?
13,什么是代数插值法? 简述线性插值和抛
物线插值是如何进行的 。
14,什么是线性拟合法? 如何利用最小二乘
法来实现多项式拟合 。
15,试建立标准数据校正表, 采用查表内插
方法实现系统误差校正, 画出流程图, 设
计程序 。
16.例说明什么是标度变换?