单片机传感器测量系统温度误差补偿的解决方案

发布者:cwm6269310最新更新时间:2010-09-25 关键字:传感器  单片机  温度误差补偿 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

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

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

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

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

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

  从上式可知,只要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的二元一次方程组求解,这就需要解联立方程组,计算较复杂,列出的程序也较复杂,因此可以用另外一种型式:

  

 

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

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

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

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

 

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

  

 

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

  y =(u-U) tgα

  式中U是温度直线在坐标上的截距,可用线性插值由输入的T求得,α是温度直线与纵坐标轴u的夹角。按图5流程编制补偿程序,并作为子程序与监控程序一并使用,以便采集数据时按流程图自动温度补偿。

  

 

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

  

 

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

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

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

  

 

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

  4 结语

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

关键字:传感器  单片机  温度误差补偿 引用地址:单片机传感器测量系统温度误差补偿的解决方案

上一篇:基于单片机的电气控制线路接线故障诊断系统
下一篇:基于CH372芯片的USB通信系统软硬件设计

推荐阅读最新更新时间:2024-03-16 12:30

单片机矩阵键盘扫描驱动程序与电路分析
以4X4键盘为例,首先按照下图制作电路。 然后将HOR1-HOR4连接到单片机的输入引脚上去;LON1-LON4连接到单片机的 开漏 输出引脚上去,注意这4个引脚必须设置为 开漏 模式! 程序上首先将LON1所连接的IO输出低电平其余3个IO输出高电平,同时检测HOR1-HOR4的电平来获取K1-K4的按键状态;然后将LON2所连接的IO输出低电平其余3个IO输出高电平,同时检测HOR1-HOR4的电平来获取K5-K8的按键状态;依次类推。 但是这个电路是有BUG的,比如同时按下K1、K5和K6,当LON1为低电平的时HOR1检测到是低电平没有问题;因为K2没有被按下所以我们希望HOR2是高电平,但是由于K1、K5、K6同时按
[单片机]
变极距型电容传感器
图中极板1固定不动,极板2为可动电极(动片),当动片随被测量变化而移动时,使两极板间距变化,从而使电容量产生变化 ,其电容变化量ΔC为 C0—极距为时的初始电容量。 该类型电容式传感器存在着原理非线性,所以实际应用中,为了改善非线性、提高灵敏度和减小外界因素(如电源电压、环境温度)的影响,常常作成差动式结构或采用适当的测量电路来改善其非线性。
[模拟电子]
变极距型电容<font color='red'>传感器</font>
单片机定时中断的几种精确定时编程方法
简介:MCS-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个 机器周期 。无论是哪一种原因引起的误差,在精确定时的应用场合,必须考虑它们的影响,以确保精确的定时控制。根据定时中断的不同应用情况,应选择不 同的精确定时编程方法。 文中以定时器T1工作在定时方式1为例,晶振频率为12MHz 。 1 方法1 在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出到下一次中断时,需多长时间,由此来重装载和 启动定时器。例如定时周期为1ms,则通常定时器重装载值为-1000(0FC18H)。下面的
[单片机]
传感器交流电动机控制技术提高了运行效率
在家用电气市场领域,全球范围的节能和节水呼声非常高。政府法令和建议条款正在重新定义一个节能和合理高效使用能源的时代。为了满足政府的政策规定,以及降低系统成本,应用设计工程师正在使用高性能的数字信号控制器(DSC)。 基于数字信号控制技术的控制方案使用一个具有 MCU 功能的数字信号处理器,用于控制 电动机 的供电,这种方案能够非常容易的在单芯片上实现。此外,灵活的外围设备也可以令设计工程师非常方便地实现各种各样的功能。使用可调速电动机驱动器让设计工程师有机会设计更多非常复杂和精确的控制程序,并可以增强设备的性能,同时又能提高能效。 绝大多数家用电气中电动机所用的 电子 驱动器的控制是非常简单的,要么使用固定恒速电动机,要么就
[嵌入式]
利用单片机实现极简单的测温电路
   单片机 在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制,但那些温度检测与控制电路通常较复杂,成本也高,本文提供了一种低成本的利用单片机多余I/O口实现的温度检测电路,该电路非常简单,且易于实现,并且适用于几乎所有类型的单片机。其电路如下图所示:   图中:   P1.0、P1.1和P1.2是单片机的3个I/O脚;   RK为100k的精密电阻;     RT 为100K- 精度 为1%的热敏电阻;   R1为100Ω的普通电阻;   C1为0.1μ的瓷介电容。   其工作原理为:   1.先将P1.0、P1.1、P1.2都设为低电平输出,使C1放电至放完。   2.
[单片机]
51单片机实现在串口接收中断里即时解析数据头的特殊程序框架
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200712 ---- @ModifiedTime: 20200712 ----
[单片机]
51<font color='red'>单片机</font>实现在串口接收中断里即时解析数据头的特殊程序框架
51单片机入门教程(2)——实现流水灯
一、搭建流水灯电路 在Proteus中搭建流水灯电路如图 二、流水灯程序 我们可以把流水灯看作依次点亮若干个灯。 程序如下: #include reg52.h sbit led1 = P2^0; sbit led2 = P2^1; sbit led3 = P2^2; sbit led4 = P2^3; sbit led5 = P2^4; sbit led6 = P2^5; sbit led7 = P2^6; sbit led8 = P2^7; void main() { //点亮第一个灯 led1 = 1; led2 = 0; led3 = 0; led4 = 0; led5 = 0; l
[单片机]
51<font color='red'>单片机</font>入门教程(2)——实现流水灯
芯圣电子HC89S003A系列MCU简述
HC89S003A系列是芯圣兼容STM8S系列Flash单片机,内置增强型8051内核,拥有16K的Flash内存以及256Bytes+768Bytes的RAM;HC89S003A系列拥有丰富的外设资源,包括5个16位的定时/计数器、3组12位带死区控制以及1路8位的PWM、16+2路12位的ADC、1个SPI、2个UART、1个IIC以及独立的CRC模块;HC89S003A系列还支持2.0~5.5V的工作电压与-40℃~+105℃的工作温度。 以下为该系列目前在售的型号及对应参数: 此外,HC89S003A系列支持引脚全映射,使其在硬件兼容方面有着得天独厚的优势,可以适用于绝大多数的应用领域,例如消防安防,LED驱动电源
[单片机]
芯圣电子HC89S003A系列<font color='red'>MCU</font>简述
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved