基于MATLAB的温度采集系统设计

时间:2022-05-27 12:01:42

基于MATLAB的温度采集系统设计

摘 要:介绍了一种利用温度传感器结合MATLAB数据处理实现温度数据采集的装置。利用数据采集板对室内温度进行采集,接着利用该采集板能直接支持Simulink进行硬件在线仿真的特点,在Simulink中进行建模仿真,同时可以将仿真后的温度数据在PC界面上以曲线的方式显示,并对室内加热装置进行调控。

关键词:MATLAB;Simulink;USB数据采集板;温度传感器

DOI:10.16640/ki.37-1222/t.2017.07.005

0 引言

在控制系统的通信有许多方法和应用平台,具有不同的特点。其中,MATLAB以其强大的数据处理能力和丰富的功能模块,在信号处理、自动控制等领域广泛应用。它用简单的命令代替复杂的代码,编程语言简单易学,对研究和开发帮助很大。它的Simulink可以提供一个动态系统建模、仿真和综合分析的集成环境,线性系统、非线性系统、数字控制及数字信号处理的建模仿真中应用十分广泛。

本文讨论的控制室内温度的问题,通过预测控制方法可以有效地调节控制环境温度,从而达到需要的设定值或者实现预测控制的目的 [1]。

1 采集温度数据的方案

1.1 数据采集板的原理及组成

采集模块采用单片机作为CPU,利用其外设资源进行端口的输出/输入和A/D转换,利用USB通信芯片与计算机进行数据交互[2]。

数据采集卡如图1所示,其组成介绍如下:

(1)USB传输:使用PHILIP公司D12芯片;

(2)CPU:ATmega16(AVR)单片机;

(3)4路A/D:具有10位分辨率,输入电压范围0~4.096V,输入阻抗为可调47kΩ;

(4)2路D/A:具有10位分辨率,电压输出范围为0~4.096V;

(5)4路输入输出:LED两路,按键两路;

(6)工作电压:利用USB的5V电源,无需外接。

为提高抗干扰性,该采集卡设计了一阶低通滤波器。设置信号3分贝,截止频率为4kHz,也可以在此基础上进行修改实现截止频率的设定。

为了适应跟多温度范围,AD的通道中有两个通道决定运放放大倍数的电阻采用的是可调电阻,从而实现放大倍数的调节。也可以通过计算选择合适的电阻固定放大倍数。

1.2 温度传感器的选择

DS18B20具有精度高、体积小、成本低、抗干扰性强等优点,是一种常用温度传感器[3]。它的测温原理如图2所示,晶振温度系数高,晶振的振荡率随着温度的变化明显变化,反之则不明显。将高温度系数的晶振产生的脉冲信号计入计数器2。将低温度系数的晶振产生的脉冲信号输入计数器1,使其进行减计数。在温度寄存器和计数器1内预置一个与-55℃相对应的基数,当计数器1内的数值减到0时,将温度寄存器内的数值加1,然后重新赋予计数器1-55℃的基数值,并继续计数,直到计数器2内的数值减到0为止,停止累加温度寄存器内的值。此时,温度寄存器中的数值就是传感器测得的温度。使用斜率累加器对测温过程中产生的一些非线性误差进行补偿和修正,并把它的输出用来修正计数器1的预置值。

DS18B20共有64位只读寄存器ROM,随机存储器RAM用于传感器内部的数据存取和计算,当传感器掉电时数据会丢失。其随机存储器RAM中含有9字节,每个字节8位。其中,第1个和第2个字节是转换后的温度值,第3、4、5字节是用户只读存储器EEPROM的镜像,第6、7、8这三个字节是计数寄存器,它们也是数据的内部转换和计算的暂存单元,可以使用户获得的温度分辨率增大,第9个字节为前8个字节的CRC码。

另外,非常重要的一点是DS18B20具有独特的一线接口,仅一条口线就可以使处理器和传感器之间实现双向通信,这大大简化了分布式温度传感器的应用,并且不需要外部元件。

2 温度数据采集过程

室内温度采集的硬件设备和电路的连接主要部分示意图如图 4 所示。

图4为温度采集卡的主要电路连接图,本设计用USB接口实现采集卡和电脑的数据交互,将温度转换成电压数据传输给电脑软件。在Simulink中建立对应的模型[4-5],然后在 MATLAB 中的Simulink 里打开 usbAD.mdl 文件如图5所示。

图6为AD模块的参数设置,第一个参数要根据实物连接进行选择;第二个参数为采样时间;第三个参数是采样时间微调,目的是保证硬件的采样时间与Simulink相一致,通常设为0.008[6-7]。

运行模型 usbAD.mdl,对温度传感器进行适当的温度改变,点击模型中的 scope1,可得到响应的数据变化如图 7所示。

3 结语

本文设计了一个利用DS18B20温度传感器对室内温度进行采集,通过USB进行数据传输,利用MATLAB技术进行数据处理的室内温度采集装置。本文中的数据采集板是多路输入输出的,在本文中只用到了单路输入输出,在今后的研究中可以在此基础上对多路温度采集系统进行研究。

另外,本文还有许多值得深入研究的方向,如在图形和数据显示方面,可以设计 MFC 界面,把 MATLAB 与VC 相通信,通过按钮实现在需要的时候将数据和图形进行详细显示,进而实现更加深入的数据的分析及处理。

参考文献:

[1]孙文杰.Matlab电路仿真实验常用建模方法[J].实验室研究与探索,2016(07):80-84.

[2]汤锴杰,栗灿,王迪,张琴.基于DS18B20的数字式温度采集报警系统设计[J].传感器与微系统,2014(03):99-102.

[3]王荣.基于USB接口的温度采集系统研究[D].第四军医大学,2007.

[4]徐国政,陈勇.基于Matlab的数据采集系统设计[J].应用术,2003,30(04):1-3.

[5]王海华.Matlab/Simulink仿真在“通信原理”教学中的应用研究[J].湖北理工学院学报,2015(03):67-70.

[6]丹,宫蕾.基于MATLAB的数据采集模块在自动控制原理实验中的应用[J].重庆工商大学学报,2010,27(01):1-4.

[7]瞿婷婷,周静,卫佳骏,吴清,谢新勤,曹波,夏春明.基于Simulink/S-Function模块的数据采集板卡硬件驱动开发[J].自动化技术与应用,2016(05):41-45.

作者简介:孙菁(1974-),女,工程师,主要研究方向:检测技术、自动控制。

上一篇:浅谈民用无人机市场营销策略 下一篇:浅谈对食品安全中快速检测技术的认识