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

2006-8-29 09:32 6598 9 10 分类: MCU/ 嵌入式

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

徐 军

(江苏省淮海工贸学校淮安223001)


1 引言


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


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



xsj062144_1.jpg
2 建立温度误差的数学模型

温度变化给传感器实际测量带来误差,表现在传感器的输入输出特性曲线上产生非线性变化。为解决这样问题,必须使问题简单化,找出它们间的关系,建立对应的数学模型。


传感器特性曲线y=f(x),如图2所示。



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

xsj062144_3.jpg
从上式可知,只要n取得足够大就可获得良好的精度。

若传感器的输入和输出之间的特性曲线的斜率变化很大,采用线性插值法,误差就很大,这时可采用二次曲线插值法,即通过曲线上3个点A(x0、y0),B(x1、y1),C(x2、y2)做一抛物线,用此曲线代替原来的曲线,如图3所示。曲线方程为一元二次方程,一般形式为:


y=K0+K1x+K2x2


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


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

以上是对传感器建立温度误差的数学模型,用此模型可实现传感器温度补偿。



xsj062144_5.jpg
3 实现温度误差补偿的方法

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



xsj062144_6.jpg
图中y为被测物理量,u为输出电压,利用最小二乘法曲线拟合求出截距u的多项式:

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

y =(u-U) tgα


式中U是温度直线在坐标上的截距,可用线性插值由输入的T求得,α是温度直线与纵坐标轴u的夹角。


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



xsj062144_8.jpg
对温度特性曲线斜率变化大的传感器,一般采用分段线性插值法,在不同温度T(i=1,2,…,K)下测出下列数值:

xsj062144_9.jpg
式中: yij—温度Ti时第j次输入传感器的被测物理量;

uij—温度Ti时第j次测得的传感器输出电压。


用拟合法求出各温度上的传感器静态输出输出特性的拟合多项式:


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

4 结语


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


 

本文摘自《现代电子技术》

文章评论1条评论)

登录后参与讨论

用户1631176 2006-10-27 16:51

谢谢

用户1053025 2006-10-27 16:44

祝好运~~~

用户60863 2006-9-30 11:13

谢谢了哈,刚好是我要找的资料,节省了不少时间,再次感谢!!!!
相关推荐阅读
用户40414 2007-03-12 16:10
基于L64724的卫星解码机顶盒设计
基于L64724的卫星解码机顶盒设计1 概述数字压缩技术的发展,为卫星数字视频广播提供了有力的技术支持。目前虽然尚未形成全球公认的标准,但欧洲DVB-S的提出,无疑是一种可资参考的方案。L64724正...
用户40414 2007-03-06 10:24
struct用法深入探索
1. struct的巨大作用  面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据...
用户40414 2006-09-29 11:18
google的另类用法
google的另类用法 在搜索框上输入:   "indexof/"inurl:lib   再按搜索你将进入许多图书馆,并且一定能下载自己喜欢的书籍。   在搜索框上输入:   "indexof/"cn...
用户40414 2006-08-31 16:42
做单片机开发,必须跳出芯片型号!
如题!很多人在谈单片机开发时,经常会将重点放在某一款芯片上,其实这是非常不理智的一种做法,芯片只是一种工具,方法才是根本。在做项目的时候,应该关注的是项目的功能和性能要求,然后采用反推法来分析要实现这...
用户40414 2006-08-29 09:57
城市智能安防系统新型终端监控器的研制
城市智能安防系统新型终端监控器的研制成都迅尔科技有限公司 金虹前言随着国民经济的迅速发展和城市规模的不断扩大,工商企业逐渐增多,新建居住小区不断涌现,流动人口迅速增加,这些既带来了经济的繁荣和人民生活...
用户40414 2006-08-29 09:44
模拟I2C总线多主通信研究与软件设计
作 者:■ 西安电子科技大学 郑旭阳 李兵兵 黄新平摘要:介绍模拟I2C总线的多主节点通信原理,并提出一种新的实现方法。这种采用延时接收比较来实现仲裁的方法,可使不具有I2C接口的普通微控制器(MCU...
我要评论
1
9
关闭 站长推荐上一条 /2 下一条