太阳能热水器温度采集系统与实验研究
摘要:介绍了太阳能热水器温度采集系统的硬件、软件设计和实验研究。铂电阻的阻值随温度的变化转换成电压的变化,调理电路对电压信号进行放大、变换,输出0~5 V的标准信号,送下位机后进行A/D转换,再通过串行通信上传给上位机进行存储、显示。系统采用对分查找的算法,得到不同温度区间上的标度变换算法。铂电阻温度的对比实验结果表明该系统的测量精度优于±1℃,系统工作稳定、可靠。
关键词:太阳能热水器;PT1000;温度采集;最小二乘法
太阳能热水器以其安全、经济、适用、无污染等特点逐渐被城乡居民所接受,而其温度采集系统又是设计的关键。常用的温度传感器包括:热电偶、热敏电阻、集成式温度传感器,热电阻等。由于铂电阻在氧化介质和高温下的物理化学性能极其稳定,而且太阳能热水器置于室外,工作环境恶劣,所以本设计采用铂电阻作为太阳能热水器的温度传感器。
1 系统工作原理
由于太阳能热水器的工作环境限制,将下位机(PIC16F877)置于集热现场,主要实现温度采集功能,温差循环控制功能,即控制循环泵、上水阀、辅助电加热器、伴热带的启停,并与上位机(PIC16F877)进行485通信,将采集的温度水位信息送到上位机去显示。
系统的整体框图如图1所示。
温度采集处理电路的主要功能是将铂电阻传感器采集的温度信号,经桥式信号检测电路转换为电压信号,再经弱信号仪表放大器MCP602进行两级放大,及非线性A/D转换,转换成能够识别的数字量,暂存在单片机的存储器中。
2.1 温度采集电路设计
温度采集电路是将单片机的RA2、RA3、RA4连接多路选择芯片CD4051的地址位A、B、C端口,由单片机设定采集哪一路温度信息,将RA0设定为模拟通道。
2.2 放大倍数的计算
本设计放大电路选用MCP602作为放大器,由其构成的放大电路图如图2所示。其中:VREF=0 V,R1=300 kΩ,R2=10 kΩ,这是一个简单的2级放大电路,通过调节可变电阻RG可以改变其放大倍数,便于以后的调试。两级放大后的输出电压VOUT:
通过电桥电路采集来的信号比较微弱,需要进行适当的放大,才能转换成单片机所能识别的0 V到5 V的信号。为此,要合理地设定可变电阻RG的值来选择合适的放大倍数。选择过程如下:
当RG=20 kΩ,放大倍数约为61倍。在温度T=99℃时,PT1000的阻值为R=1381.26Ω,则得到VOUT=2.806 V。尽管VOUT在界限0~5 V之内,但灵敏度较小,故将RG调整到10 kΩ。
当RG=10 kΩ,放大倍数为91倍。在温度T=99℃时,PT1000的阻值为R=1381.26Ω时:VOUT=4.186 V。此时,在0~99℃温度范围内电桥的输出是0~4.186 V,VOUT在0~5 V范围内,符合设计要求。因此设计中选择尺RG=10 kΩ,放大倍数为91倍。
2.3 温度测量中的误差分析及解决办法
当用铂电阻传感器进行温度测量时,存在一定的误差。它的误差主要有4个来源:铂电阻自身的非线性;铂电阻电桥输出的非线性;铂电阻的引线电阻;测温电路本身带来的影响。
1)铂电阻的非线性
对于铂电阻PT1000,在0~650℃温度范围内其阻值与温度的关系为:
式中,Rt-温度为t℃时的电阻值;R0-温度为0℃时的电阻值;A=3.908x10-3℃-1;B=-5.802x10-7℃-2。
由式(1)可知,铂电阻阻值与温度并不是线性关系,而是一个上凸的曲线,如图3所示。若只计线性项,上式变为:
此时,铂电阻阻值与温度是线性关系。在100℃时,若只记线性值Rt*=1 390.8 Ω,而R1=1 385.0Ω,绝对值误差为5.8Ω,相对误差为4.2%,回代到式(2)中,温度误差超过1.4℃。显然铂电阻的非线性给测量带来了误差。
2)铂电阻电桥输出的非线性
铂电阻典型应用电路如图4所示。图中R3为铂电阻的阻值,(其中为铂电阻在0℃时的阻值),R1=R2=39 kΩ。
则输出电压△U等于:
3)铂电阻的引线电阻
因为测温电路是不平衡电桥。铂电阻作为电桥的一个桥臂电阻,其连接导线(从铂电阻到控制单元)也作为桥臂电阻的一部分,这一部分电阻是未知的且随环境温度变化,造成测量误差。但由于铂电阻PT1000的阻值较大,所以这个因素可以忽略。
4)测温电路本身的影响
由于电源电压的抖动、外界于扰,AD通道的互相干扰等都会造成温度测量的不确定性,因此必须通过合理的电路设计才能消除这些因素的影响。
考虑到铂电阻阻值和温度的非线性以及电桥电路本身的非线性,本文提出两种方案,下面分别加以介绍。
方案1:查表法
由铂电阻的电阻-温度分度表查出每一度对应的电阻值Ri,带入式(3)中可以得到电桥对应的输出电压△U(i),再根据式(4)就可以得到对应的A/D转换值AD(i)。
式中,K为MCP602的放大倍数。本文选择91。UREF为单片机内部A/D转换的参考电压,等于5 V。
将计算得到的A/D转换值是按照温度大小做成表格存放在单片机的存储器中。当测量温度时,先读取A/D转换值,然后采用对分查找的算法用单片机的A/D转换结果AD(t)与EEPROM中存放的表格值AD(i)作比较,每次取表格的中间值AD(m),如果AD(t)>AD(m),则下次比较时取表格的后半部的中间值做比较,如果AD(t)AD(m),则下次比较时取表格的前半部的中间值做比较,直到AD(n)≤AD(t)≤AD(n+1)时停止,得到了温度的整数部分M(t)=n。接着采用线性插值法计算温度的小数部分,由AD(t)-N(t)除以AD(n+1)-AD(n)的值得到小数部分。由于本设计对温度要求不高,因此不用计算小数部分,可以将此方法用于其他应用领域中。
方案2:最小二乘法
由于铂电阻阻值和温度的非线性以及电桥电路本身的非线性,使得温度和电桥输出电压之间的关系变得很复杂,而且也没有一个相应的函数来描述它们之间的关系,下面就介绍最小二乘法,利用最小二乘参数估计理论来建立温度传感器的数学模型。
对太阳能热水器的水箱温度在标定点进行温度实测(可用标准电阻箱或电位器来模拟铂电阻在各个标定点实测),得到几组数据,即(V1,T1),…(Vi,Ti),…(Vn,Tn)。其中输入量为电桥输出电压Vi,输出量为温度Ti。
设有一个m次多项式:
根据最小二乘法原理,使得在所有给定标定点,多项式T(Vi)的值与实测输出值Ti的偏差平方和达到最小值,即
由此可以建立m+1个方程组,求解出a0,a1,…,am未知量,确定出多项式T(Vi)的表达式。
求解方程组用矩阵分析方法,得到参数向量为
求解采用计算机递推法求解,先设m=1,将测量值带入矩阵公式中计算A。逐点计算误差△i=Ti-T(Vi),看是否超差,如果超差则升阶,令m=2,重新计算A,直到不超差为止,此时多项式模型即为传感器数学模型。
此方法的优点是能够实现所建立的数学模型整体优化,适合非线性较大的传感器模型的建立。但应用于本文时需要拟合出高阶的数学模型,其运算量较大。另外,在以主频为4MHz的单片机上做运算,其速度较慢(多次加、乘运算),所以本文采用方案1。
3 系统软件实现
温度采集处理的软件流程如图5所示,其中包括了启动温度电路、寄存器的配置、转换数据读出、查找得温度等部分。首先进行A/D初始化设置,将点电源电压VCC作为比较电压,同时设定RA0作为模拟输入通道,开启入水口温度采样通道之后,启动A/D转换。当A/D转换允许位GO/DONE=1时,将得到的采样值送入到折半查找程序中,得出其温度的整数部分M(t),从而求出温度t的数值。计算完毕后返回。
- MAX5481在夫兰克一赫兹实验仪中的应用(12-01)
- 可重构虚拟仪器测试技术教学平台(04-12)
- 基于虚拟仪器的锁相放大器远程实验系统设计(09-17)
- 基于虚拟仪器LabVIEW的网络虚拟实验室系统设计(10-04)
- 基于网络的虚拟实验平台的设计与实现(02-27)
- DDS-11A型实验室电导率仪使用方法(02-06)