原创 用单片机软件实现传感器温度误差补偿

2009-8-13 18:44 1444 5 5 分类: MCU/ 嵌入式
摘  要:介绍了用单片机软件实现传感器温度误差补偿一种方法,在建立了传感器温度误差的数学模型基础上,给出了如何用软件实现温度补偿的流程和具体方法,对自动检测仪表中提高传感器的测量精度,提供一条行之有效的途径。

L ij&ZL$M,P0    关键词:传感器;温度误差;补偿;数学模型;流程
,R(\PZ(f0电子园51单片机学习网8S*yex+kU0W
1  引言电子园51单片机学习网4CVIv*X`

电子园51单片机学习网m1{1G7s8{ H,bK9L%q)|

对高精度传感器,温度误差已成为提高其性能的严重障碍,特别是在环境温度变化较大的应用场合更是如此。依靠传感器本身附加一些简单的硬件补偿措施是很困难的,目前对于一传感器测量系统已大量引入了单片机,实现自动检测和控制。因此用单片机自身的特点,利用软件来解决传感器温度误差难题是一条有效途径。电子园51单片机学习网VQH3|Roh0y3D


.LQE&U&T?0在一单片机传感器测量系统中,要解决传感器温度误差补偿问题,首先要测出传感器点的温度,该温度信号作为多路采样开关采集信号的一路送入单片机。测温元件通常是安装在传感器内靠近敏感元件的地方,用来测量传感器点的环境温度,测温元件的输出经放大及A/D转换送到单片机,单片机通过并行接口接收温度数据,并暂存温度数据。信号采样结束,单片机运行温度误差补偿程序,对传感器信号的温度误差进行补偿。对多个传感器,可用多个测温元件,常用的测温元件有半导体热敏电阻、AD950测温管、PN结二极管等。原理框图如图1。电子园51单片机学习网C4B*TuN*X$W

电子园51单片机学习网 T5@S5Dz|s+\

电子园51单片机学习网-V7X7U;c4|s


6136_200904062028541wWVs.jpg

I Q?9G c \y0 电子园51单片机学习网se*k;~;@9CX*W4y T

电子园51单片机学习网|p'_(i6T1C [


h/Uh7n8f02  建立温度误差的数学模型

gu\3V7q[8o0

P7f_`!W{9_4{ @0温度变化给传感器实际测量带来误差,表现在传感器的输入输出特性曲线上产生非线性变化。为解决这样问题,必须使问题简单化,找出它们间的关系,建立对应的数学模型。电子园51单片机学习网7Tl4Gx'c&D A)I


$E yr3fe/c(vgz(^H0传感器特性曲线y=f(x),如图2所示。电子园51单片机学习网#W$oh2x2XB-}(^

电子园51单片机学习网L DW T#K$B%`C



-h7YJ9d @~ \0

6136_20090406202854277xh.jpg电子园51单片机学习网v"YiK+n_k,d


~)]LoU5o#R0

"{D:Dnzf0 电子园51单片机学习网 Y ~{!^uF:@[W

    我们可以把该曲线按一定要求分成若干段,在此设分成n段,然后把相邻两段点之间的曲线用直线近似,这样可以利用线性方法求出输入值x所对应的输出值,这就是线性插值法。设输入值在(xi, xi+1)之间,则其对应的输出值y可由下式求得:

v%K8ok kx/V0 电子园51单片机学习网F8? J p:D q

6136_20090406202854321d1.jpg

.O$b1`-uD,Ou0

kG}Z/F)X)p0aP0从上式可知,只要n取得足够大就可获得良好的精度。

3X;Ch!R.U9l ]0{5W0

3LR{Hvy$z8t3Gx0若传感器的输入和输出之间的特性曲线的斜率变化很大,采用线性插值法,误差就很大,这时可采用二次曲线插值法,即通过曲线上3个点A(x0、y0),B(x1、y1),C(x2、y2)做一抛物线,用此曲线代替原来的曲线,如图3所示。曲线方程为一元二次方程,一般形式为:电子园51单片机学习网%V/??\p


[6I.yZ:D0y=K0+K1x+K2x2

i1xp0i;ml0

6b#o.R'xqdZ n0式中K0,K1,K2为待定系数,可用曲线y=f(x)的3个点A,B,C的二元一次方程组求解,这就需要解联立方程组,计算较复杂,列出的程序也较复杂,因此可以用另外一种型式:

pc4WT]d&a0 电子园51单片机学习网9TtV2J&Q0VdxC*~w

6136_200904062028544lkvZ.jpg电子园51单片机学习网Yn6@s;m8ZK3Y4@

电子园51单片机学习网]3C y,S(~+_~O1F

由此可见,利用3个已知点A,B,C的数值求出系数m0,m1,m2后,存放在相应的内存单元,然后根据某点的x值代入式(1)即可求出被测值y。

y?o`W0 电子园51单片机学习网~:w w&_Z/sw#]

以上是对传感器建立温度误差的数学模型,用此模型可实现传感器温度补偿。电子园51单片机学习网M9vD5TAl


:mi] z@syp0

8W\ }\_#z0

6136_200904062028545y9jy.jpg

.RgW(^%i6`%q7d|0 电子园51单片机学习网U/}%~9x1C

电子园51单片机学习网bJ U/L8t(_3j


xQ ](bD$^ t03  实现温度误差补偿的方法电子园51单片机学习网K4{ dg5nx.N3w


0{2['{ Dp V'Z0首先给定K个温度值(T0,T1,T2,…,TK-1),测出每个温度点上传感器静态特性曲线在u 轴上的截距(u0,u1,…,uK),每个温度点上传感器特性曲线的数据要精确,必要时应在恒温箱内进行,这需要较大的工作量,如图4所示。

5zqS N(v$nY,k EW^0

z,G dyj-fe0T"?0电子园51单片机学习网I9i)Y y)U\O$^r


6136_200904062028546XqGX.jpg电子园51单片机学习网/] Il9Di`

电子园51单片机学习网,y7c(R?!yB{y'I

4^ml0O)e-anl;g0

f"QRQL_J$Pf0Q0    图中y为被测物理量,u为输出电压,利用最小二乘法曲线拟合求出截距u的多项式:电子园51单片机学习网%D(C3C |F

电子园51单片机学习网"r_q N'X cj.B ~&e

6136_200904062028547bQnu.jpg

/d%_;{N*{S{0

#W-`0W#Y'Af,j-JVc0将b0,b1,b2,…,bK和计算上式的子程序送入内存,温度值T0,T1,…,TK-1和传感器对应的输出电压值u0,u1,…, uK-1按顺序分配方式存入内存,构成一个线性表,采集数据时,CPU按线性查找对应温度的电压值u,并按下式计算对应的被测物理量y:

lA+u&[m7M5k0 电子园51单片机学习网/C'm)O s7v!S

y =(u-U) tgα电子园51单片机学习网Aw9gUF3bR


/r j$wrBe ?9p0式中U是温度直线在坐标上的截距,可用线性插值由输入的T求得,α是温度直线与纵坐标轴u的夹角。电子园51单片机学习网X`#t {I5O9`.c

电子园51单片机学习网 cW+\-M&r1xGq*j

按图5流程编制补偿程序,并作为子程序与监控程序一并使用,以便采集数据时按流程图自动温度补偿。

9t0F]vXeq'r#M e0 电子园51单片机学习网~h"G)d;wu

 

(s ]-_]C0

6136_2009040620285483GNb.jpg

.N G,Pw3l"mR0

6136_200904062028549y9GO.jpg电子园51单片机学习网 [ tZ-B]?

电子园51单片机学习网 F k/p6p*N

电子园51单片机学习网#Ul4x't#a0m6V


h aC#u_ f]9J0

4{5z-N5R/d"]m0

D.|~l+y:f ? bO0    对温度特性曲线斜率变化大的传感器,一般采用分段线性插值法,在不同温度T(i=1,2,…,K)下测出下列数值:电子园51单片机学习网 M7IN+e5S A


n/s bD2tjAq06136_2009040620285410l919.jpg电子园51单片机学习网R&Z$dm#\f` b

电子园51单片机学习网 xb }bLTi

式中: yij—温度Ti时第j次输入传感器的被测物理量;电子园51单片机学习网F$K(QW%slw~u&[#@


ufOg-DKY0      uij—温度Ti时第j次测得的传感器输出电压。电子园51单片机学习网 A.QV)W:P?|j-A

电子园51单片机学习网/mw(^G0y W:i+Is4G

用拟合法求出各温度上的传感器静态输出输出特性的拟合多项式:电子园51单片机学习网 Mlf9^GC*h


hL8UI's V'H g06136_2009040620285411Jxhr.jpg电子园51单片机学习网oG ]"_zUOt;U


LsXrToN?0将b0,b1,b2,…,bk和以上多项式的计算程序写入内存,数据采集过程按图6流程图进行温度补偿,即由输入T和u查找和计算y值,采用的分段线性插值方法,只要K足够大,其误差就足够小。

{R`M9h}0 电子园51单片机学习网!Y+]"L%i9}/`t

4  结语电子园51单片机学习网5@Y{r ?8f| G


tNd#g$pSZa0用单片机的软件实现传感器温度误差补偿,是一种简便、有效的方法。它可以大大提高传感器的测量精度,降低测量系统电路的复杂程度,提高可靠性,降低成本。特别是如硅阻、应变片、电容式等传感器受温度影响大,使用该方法可以提高它们测量精度。目前单片机广泛使用在自动检测仪表中,使用该方法实现传感器温度误差补偿,是一条行之有效的途径。电子园51单片机学习网 ZH#o bCp8b


u Xe0g:^:{ pq0 电子园51单片机学习网5WU%e m.BQ H6uKUW

电子园51单片机学习网)K7Df DBw.I

参考文献电子园51单片机学习网{+[9]3aR1@


'ulkr,_01 张友德,等.单片微型机原理、应用与实现.上海:上海复旦大学出版社,1996

a \6seFL0ir0 电子园51单片机学习网8V p(SE2L`j3h

2 徐开先,等.实用新型传感器及其应用.辽宁科技出版社,1995

!Qi5d`*B3y @0
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条