电冰箱检测线温度传感器校验平台设计
2011-06-05彭海军鲁照权郑国俊
彭海军, 朱 敏, 鲁照权, 郑国俊, 余 波
(合肥工业大学 电气与自动化工程学院,安徽 合肥 230009)
电冰箱出厂前,需要让其试运行几十分钟甚至数小时,同时检测冷藏室、冷冻室、压缩机进气口、出气口和环境温度、压缩机功率等参数,以判断电冰箱是否合格[1]。一条电冰箱检测线少则使用数百只温度传感器,多则使用数千只温度传感器。为了准确测量温度,曾经采用热电阻、AD590等模拟式温度传感器。由于模拟式温度传感器均需要检测转换电路与AD转换器,使得电冰箱检测线的制造与维护成本很高。DS18B20的问世给电冰箱检测线数千点温度检测提供了极其方便的途径。DS18B20直接输出相应温度的数字量,无须转换电路与AD转换器,使用极其方便,已被电冰箱生产厂家广泛采用。
DS18B20采用“1-Wire”接口,测量温度范围为-55~+125℃,最高温度分辨率为0.062 5℃,在-10~+85℃范围内,测量精度为±0.5℃。
电冰箱冷冻室的温度会低于-20℃,压缩机排气口温度可高达60℃左右,为了保证检测线上数千只温度传感器测量偏差不大于±0.5℃,必须对DS18B20至少在-30~+60℃温度范围内进行校验筛选。为此,本文设计了一个DS18B20温度传感器校验平台。
1 系统设计
温度传感器校验平台的系统框图如图1所示。系统以P89LPC935单片机为核心,Pt100测温电路为校验平台提供标准温度值。DS18B20为待测温度传感器,本系统一次可以检测16只。继电器接口用来控制酒精槽制冷、制热工作,为传感器模拟-30~+60℃范围的工作温度。显示采用七段数码管,显示标准温度、待测温度传感器的测量值、两者偏差等数据。串口通信用于上位机显示界面设计。通过按键实现系统的开始、停止、模式选择等功能。
图1 系统硬件设计框图
DS18B20是单总线、数字式温度传感器,它有严格的通信协议来保证各位数据传输的正确性和完整性,它的操作协议主要包括:初始化时序、读时序和写时序。DS18B20测得的温度值存储在高速暂存RAM的前2个字节中。P89LPC935通过连续2次读操作,可以获得温度值。首先读取的是低位字节TL,接着是高位字节TH。DS18B20默认是12位温度分辨率,前5位是符号位,用S表示。若温度值为正,则S为0;若温度值为负,则S为1,这时需要先对TH和TL求补。将2个字节合并,t′=(TH&0x07)×256+TL,t=0.062 5t′,t即为DS18B20测得温度值[2]。
P89LPC935与DS18B20的接口如图2所示。本系统需要一次校验16只DS18B20,因单片机引脚有限,故采用16选1模拟电子开关CD4067进行温度检测通道切换。A、B、C、D为通道选择端,INT为控制端。当INT=1时,关闭所有通道。
图2 单片机与DS18B20接口电路
2 标准温度值获取
标准温度值是系统的参考温度,各个待校验的DS18B20测得的温度值都需要和标准值进行比较,以决定是否合格,因此,标准温度值的获取至关重要。Pt100铂电阻具有精度高、稳定性好、性能可靠等特点。
在0~650℃范围内,有
在-200~0℃范围内,有
Rt=R0[1+At+Bt2+C(t-100)t3]。其中,R0=100Ω,为t=0℃ 时电阻值;A=3.968 47 × 10-3;B=- 5.847 × 10-7;C=-4.22×10-12。
Pt100是电阻式温度传感器,温度变化引起电阻变化。将电阻的变化转换成电压信号,经放大后,再将模拟电压信号转换成数字信号,由单片机换算成相应的温度。Pt100测温电路采用恒流三线制接法,如图3所示。
LM334为恒流源,外加二极管和电阻,就可以为Pt100提供恒定的电流,调节电位器R3,即可改变电流大小。当温度改变时,Pt100电阻改变,引起电压变化。MC1403为基准电压源,提供2.5V精密电压,经电位器分压后送入运放作为调零信号。前端测得电压值经过运放OP07放大,送入A/D转换器,转换成数字信号后换算成温度值,即可以实现温度的测量[3-5]。
图3 Pt100恒流三线制测温原理图
在Pt100测温过程中,由于各种原因,测量结果和真实值之间总会存在一定的差异,即测量误差,使得测量结果不能客观地反映实际温度。根据测量误差的性质,可以将误差分为系统误差、随机误差和粗大误差。由于Pt100测得的温度为标准温度值,因此,必须将它的误差减少到最小,这就需要选择合适的误差分析和消除方法。
为消除系统误差,采用恒流三线制温度转换电路,在测温前必须调整好电路的零点和增益。零点包括运放的零点和温度的零点。调运放的零点是指将J-Pt100的1号脚与B点短接时调节运放的调零电位器R5,使运放的输出为零;调温度的零点是指用标准电阻箱替代Pt100,将其阻值打在100Ω上,调节R3,使A点电压为0.3V,即恒流源为3mA,再调节R5,使B点电压也为0.3V,此时温度显示值为零;再将标准电阻箱打在123.24Ω上,调节电位器R10,使C点电压为P89LPC935内部AD参考电压3.3V,温度显示值为60 ℃[6]。
由于Pt100的电阻与温度之间并不是完全的线性关系,本文采用线性插值算法对非线性进行补偿。在-30~60℃温度范围内,将Pt100的温度与电阻之间的曲线分成3段,每段为线性关系,如(1)~(3)式所示。
当-30℃≤t≤0℃时,
当0℃<t≤30℃时,
当30℃<t≤60℃时,
随机误差主要是由对测量值影响微小但却互不相关的大量因素共同造成的,这些因素主要有温度波动、噪声干扰、电磁场微变、空气扰动等。采用算术平均值法来消除随机误差[7-8]。
为消除粗大误差,通常是采用去极值法,但是它有一个很大的缺点,就是当测量数据中含有粗大误差的个数多于2个时,就不再有效了。基于统计理论的粗大误差判定准则主要有3σ准则、格罗布斯准则、罗曼诺夫斯基准则和狄克松准则。本系统测量次数取15次,采用格罗布斯准则可以获得较好的判定效果。先将测量数据按从小到大排序,格罗布斯临界系数G(n,α)值为G0,分别计算出平均值、标准差σ、G1和Gn,其中
若G1≥Gn且G1≥G0,则x1含有粗大误差,应予以剔除;若Gn≥G1且Gn≥G0,则xn含有粗大误差,应予以剔除;若G1<G0且Gn<G0,则不存在粗大误差。
图4 应用格罗布斯准则消除粗大误差软件流程
3 实验结果
在相同条件下,Pt100测温取15次,测量数据见表1所列。
当利用去极值法消除粗大误差时,在表1中,去掉9.88和12.71这2个值,再求剩下13个数据的算术平均值以消除随机误差,可得=10.21,此值即为Pt100温度测量结果。
当利用格罗布斯准则消除粗大误差时,首先可以判定表1中第6个测量值x6=12.71含有粗大误差,应予以剔除。对剩下的14个数据,可以判定第7个测量值x7=12.71含有粗大误差,应予以剔除。对剩下的13个数据,可以判定这组数据已不含粗大误差。再用算术平均值法消除随机误差,即=9.99,此值就为Pt100测量结果。
表1 Pt100温度测量数据
在相同测量条件下,当利用格罗布斯准则消除粗大误差时,得到的Pt100测量结果为9.99℃,而利用去极值法时,得到的测量结果为10.21℃,此时实际温度为10℃,由此可以得出,采用格罗布斯准则消除粗大误差,与去极值法相比,更接近真值。
为方便使用,采用Visual C++6.0设计上位机显示界面,用来显示标准温度值、各个待校验DS18B20的温度值以及和标准温度的差值、最终校验结果等[10-11]。上位机显示界面和校验结果如图5所示。
图5 上位机显示界面设计
4 结束语
在-30~+60℃温度范围内,为了保证电冰箱检测线上数千只温度传感器DS18B20的测量偏差均不大于±0.5℃,本文以P89LPC935为核心设计了DS18B20温度传感器校验平台,用Visual C++6.0设计了上位机校验结果显示界面,采用Pt100热电阻作为标准温度传感器;为消除系统误差,设计了恒流三线制温度转换电路,并采用线性插值算法对非线性进行补偿;采用算术平均值法消除随机误差;分别采用格罗布斯准则和去极值法来消除粗大误差,通过比较可得采用格罗布斯准则消除粗大误差,要比去极值法更接近真值。实验结果表明该校验平台设计合理、判断准确、使用方便,经筛选后的传感器完全符合用户的要求。
[1]曹国安,万王杰,张 玺.电冰箱生产中的价值流分析及其改善[J].合肥工业大学学报:自然科学版,2010,33(10):1471-1475.
[2]雷建龙.数字温度传感器DS18B20读出数据错误分析[J].电子器件,2007,30(6):2183-2185.
[3]张志勇,辛长宇,朱玉龙,等.Pt100温度传感器非线性的补偿 方 法 与 电 路 实 现 [J].电 子 器 件,2007,30(6):2189-2191.
[4]王 龙.基于铂电阻Pt100的高精度温度测控系统设计[J].吉首大学学报:自然科学版,2009,30(3):70-73.
[5]Tong A.Improving the accuracy of temperature measurements[J].Sensor Review,2009,21(3):193-198.
[6]潘 雄,付宗堂,范晓明.一种处理系统误差的新方法[J].仪器仪表学报,2007,28(4):630-634.
[7]费业泰.误差理论与数据处理[M].北京:机械工业出版社,2005:12-24.
[8]Tao Chongde,Wang Guanglin,Shao Dongxiang.New method on rigidity measurement of precision elastic elements[J].Journal of Harbin Institute of Technology:New Series,1995,12(1):34-36.
[9]隋文涛,张 丹.测试数据中粗大误差的判定技术及其软件实现[J].电测及仪表,2006,43(11):61-63.
[10]龚建伟,熊光明.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社,2007:44-85.
[11]王中训,徐 超,王德法.基于VC++6.0的多串口通信方法[J].计算机应用,2008,28(6):254-256.