微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于单片机和DS18B20的温度采集和分析系统

基于单片机和DS18B20的温度采集和分析系统

时间:10-18 来源:互联网 点击:

理结果表存储处理结果。

d.jpg

Matlab分析模块的主要步骤为:从Excel表中获取时间;利用datenum()函数将三维的时分秒转换成一维的实数;利用polyfit()函数拟合时间温度的一阶函数式;利用polyv al()函数计算已知各点拟合曲线的温度值;利用plot画出原始各点和拟合曲线。

PC端可是化程序主要使用Visual C++6.0编写而成,通过串口与单片机进行数据交换,并于数据库和Matlab进行通信,完成测温事件的建立、采样参数的设置以及数据的存储与分析。

PC端可视化程序使用到了Microsoft CommunicationsControl控件(MSComm控件)实现了串口通信和数据接收,利用微软提供的一种面向对象、与语言无关的数据访问应用编程接口 ADO组件实现与SQL Server数据库的通信,通过Matlab引擎调用Matlab的m文件,实现数据的分析,Matlab引擎是一组Matlab提供的接口函数(ICngine API函数),其采用客户机/服务器计算模式,此时C++作为客户端出现,负责用户接口和提出数据请求,Matlab则属于服务器端,向客户端提供数据服务。通过以上接口及MFC函数库完成PC端的可视化程序设计。

4 系统测试及应用

系统测试采用额定功率为1 500 W的电热壶烧水进行实验测试。利用系统对1 200 ml的自来水在电热壶中的温度进行采样,获得相关数据并进行分析,从而得到温度与时间的函数式,然后用该函数式来计算到达某一温度阈值的所需时间,完成应用。

由于电热壶的功率恒定且过大,故加热时因各种原因散失的温度可忽略不计,故水所吸收的热量在单位时间内是恒定的,通过比热容公式Q=Cm△T(其中Q为热量的变化,C为比热容,m为质量,△T为温度变化)及Q=p△t(p为功率,△t为所用时间)可得

e.jpg

由于水的比热容为4.2×103J/(kg·℃),电热壶功率为1 500 W,水的质量约为1.2kg,代入数据可得△T=0.297△t。

可见水温与时间应该是线性的,其系数约为0.297,即T=at+T0,其中a=0.297,T0为初始温度。

通过以上分析,可得式(2),该公式用于应用部分计算水到达某一温度剩余时间的函数式

t=(T-T1)÷a (2)

其中,t为所需的时间;T1为阈值温度;T为当前温度;a为分析所得函数的一次项系数。

系统测试结果如图6与图7所示,由图6可知,温度与时间呈较好的线性,与上述分析结果一致,由图7可知,拟合曲线的系数为0.264.53,与理论值的相对误差为-10.9%,这可能与电热壶的老化等因素有关。但由实验结果可知,系统可较好地对温度进行采样、存储和分析。

f.jpg

图8为针对系统分析的数据进行的一个应用测试,通过式(2)可知电热壶水温至100℃还需要的时间,从图8中可看出,当前水温为23℃,距水烧开还需380 s。

g.jpg

5 结束语

经过实验测试,本系统可完成温度的采集、存储和分析功能。通过该系统,可测得某一时段内固定时间间隔的温度值,并可将其存储于PC端的数据库中,当测得规定时间内的数据后,通过系统的分析模块,可对所测的温度数据进行一定程度的分析,获得温度变化的走势曲线图,在热功率恒定的条件下,通过Q=Cm△t函数可获得温度与时间的一次函数,从而对其他时段相同环境下的数据进行提前分析。同时,该系统功能较强,操作简便,系统较稳定,有一定的实际应用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top