单片机温度控制Word格式文档下载.docx
- 文档编号:21746735
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:24
- 大小:921.72KB
单片机温度控制Word格式文档下载.docx
《单片机温度控制Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机温度控制Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
附录226
一引言
随着国民经济的发展,温度控制是工业生产过程中经常遇到的过程控制,人们需要对各种加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。
特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用,其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。
工业生产中温度控制具有单向性、时滞性、大惯性和时变性的特征,同时要实现温度控制的快速性和准确性,对于提高产品质量具有很重要的现实意义。
对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不同;
产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同。
因而,对温度的测控方法要多种多样。
随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。
利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。
然而现有的温度传感元件大多为模拟器件(热电耦)体积大、应用复杂、而且不容易实现数字化等缺点,阻碍了应用领域的扩展。
实现恒温控制的方法有很多,传统的有利用PLC自适应控制加热丝实现恒温控制,还有利用模拟PID调节的恒温控制,其算法需要查表转换。
而基于单片机的控制系统,为闭环系统,工作稳定性高,控制精度高,利用模糊控制算法[1]使超调量大大降低。
软件采用模块化结构,提高了通用性。
本设计的目的不仅仅使温度控制本身,主要提供了单片机外围电路及软件包括控制算法设计的思想,应该说,这种思想比控制系统本身更为重要。
因此本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机STC89C52作为主控芯片,液晶显示屏1602作为显示输出,实现了对温度的实时测量与恒定控制。
二系统方案论证
对于温度的检测通常是采用热敏电阻在通过A/D(模/数)转换得到数字信号,但由于信号的采集对整个系统的影响很大,如果采样精度不高,会使这个系统准确性下降。
2.1设计方案
对于温度控制的方法也有很多:
如单片机控制、PLC控制、模拟PID调节器和数字PID调节器等等。
而PID调节器的算法复杂,其成本也相对较高。
方案一:
利用单片机实现恒温控制
利用单片机实现温度恒定的控制,系统主要包括现场温度采集、实时温度显示、加热控制参数设置、加热电路控制输出、报警装置和系统核心STC89C52单片机作为微处理器。
温度采集电路以数字形式将现场温度传至单片机,单片机结合现场温度与用户设定的目标温度,按照已经编程固化的模糊控制算法计算出实时控制量。
以此控制量控制场效应管开通和关断,决定加热电路的工作状态,使温度逐步稳定于用户设定的目标值。
在温度达到设定的目标温度后,由于冷却温度降低,单片机通过检测到的温度与设置的目标温度比较,作出相应的控制开启加热片。
方案二:
利用PLC实现恒温控制
这用恒温控制,采用PLC控制实现电热丝加热全通、间断导通和全断加热的自控式方式,来达到温度的恒定。
智能型电偶温度表将置于被测对象中,热电偶的传感器信号与恒定温度的给定电压进行比较,生成温差,自适应恒温控制电路根据差值大小控制电路的断开。
2.2方案的论证
对于方案二,采用的PLC实现恒温控制,由于其PLC成本高,且PLC外围系统配置复杂,不利于我们的设计。
由于数字调节和运算量大,相反对于STC89C52单片机只要选择合适的参数对于温度的控制精度往往能达到比较好的效果。
对于方案一,采用单片机实现恒温控制,该方案成本低,可靠性高,抗干扰性强,对于系统动态性能与稳定性要求不是很高的场合时非常合适的。
采用高精度的温度传感器:
数字温度传感器DS18B20。
这种数字温度传感器是DALLAS公司生产的单总线。
在这种前提下,通过单片机对偏差进行模糊控制运算,对调节加热可达到控制温度恒定。
综合各方面的意见,本设计采用单片机来实现温度的控制。
三系统硬件电路设计
3.1电路总体原理框图
温度测量及加热系统控制的总体结构如图3-1所示。
体统主要包括现场温度采集、实时温度显示、加热控制参数设置、加热电路控制输出、报警装置和系统核心STC89C
52单片机作为微处理器。
图3-1恒温控制系统设计方案框图
温度采集电路以数字量形式将现场温度传至单片机。
单片机结合现场温度与功能要求设定的目标温度,按照已经编程固化的模糊控制算法计算出实时控制量。
以此控制量控制MOS管开通和关断,决定加热电路的工作状态,使水温逐步稳定于要求设定的目标值。
在水温到达设定的目标温度后,由于自然冷却而使其温度下降时,单片机通过采样回的温度与设置的目标温度比较,作出响应的控制,开启加热器。
系统运行过程中的各种状态均可由液晶显示器1602实时显示。
3.2单片机的选择
用STC89C52的单片机作为控制主机。
之所以选择89C52作为主机,是因为89C52作为51系列单片机的一种,其使用性能稳定,价格便宜,完全能够满足此次设计的需求。
而且89C52内部集成了程序存储器,可以装载用户程序,方便后续的课程设计需要,不像8031因为要外接程序存储器而是电路相对麻烦了。
其实物图如图3-2:
图3-2STC89C52实物图
3.3温度采集电路的设计
由于本设计是精确控制系统,并且有控制范围上的要求,所以在选择传感器上要着重考虑其精度和测试范围。
AD590和DS18B20都包含一个可以精确测量环境温度的片内温度传感器,但AD590是模拟传感器,需对温度模拟信号进行数字化处理,在调理和放大信号时,又会带来新的误差,影响精度,而DS18B20包含一个10位AD转换器,是一个以0.25的分辨力将温度数字化的数字式温度传感器,并且其测温理论范围为-55度到125度,因其精确度高,范围可选这两大特点,故本设计的传感器选为DS18B20。
温度采集电路模块如图3-3所示。
DS18B20内部结构主要有四个部分组成:
1)64为光刻ROM;
2)温度传感器;
3)非易失性温度报警触发器TH和TL;
4)配置寄存器。
其中DQ为数字信号输入/输出端;
GND为电源地;
VDD为外接供电电源输入端。
器件用如下方式从单线通讯线上汲取能量:
在信号线处于高电平期间把能量存储在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
DS18B20也可以用外部5V电源供电。
图3-3温度采集电路
DS18B20中的温度传感器可完成对温度的测量,用12位存储温值度,用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位,负温度S=1,正温度S=0。
如下图3-4为18B20的温度存储方式:
图3-418B20的温度存储方式
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测得的数值乘以0.0625即可得到实际温度。
例如:
0550H为+85℃,0191H为+25.0625℃,FC90H为-55℃
3.4键盘接口电路的设计
键盘采用对称排列和外部中断相结合的方法,图3-5中各按键的功能定义如下表3-1。
其中设置键RET与单片机的INT0脚相连,KEY1—KEY3接单片机P2口,REST键为硬件复位键,与R、C构成复位电路。
模块电路如下图3-5:
表3-1按键功能
按键键名功能
RESET复位键使系统复位
RET设置键使系统产生中断,进入设置状态
KEY1—KEY3数字键设置用户需要的温度
OK确定键设置温度后确定
图3-5按键模块接口电路
3.5显示接口电路的设计
显示电路采用字符型液晶显示模块,它是一种专门用于显示字母、数字、符号等点阵式的LCD[2],本设计采用的是SMC1602ALCM,其显示容量16×
2个字符。
模块电路如下图3-6:
图3-6显示接口电路的设计
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-7是1602的内部显示地址。
图3-71602的内部显示地址
3.6加热控制电路的设计
用于在闭环控制系统中对被控对象实施控制,被控对象为加热片,采用对加在电热片两端的电压进行通断的方法进行控制,以实现对水是否加热的调整,从而达到对水温控制的目的。
对加热片通断的控制采用MOSFET管控制,它的使用非常简单,只要在控制端TTL电平,即可实现对MOS管的开关,使用时完全可以用1.5K电阻接成电压跟随器的形式驱动。
当单片机的P1.5为高电平时,电阻驱动MOS管导通,接通加热片工作,当单片机的P1.5为低电平时MOS管不导通关断,加热片停止工作。
控制电路图如下图3-8:
图3-8加热控制电路
3.7电源及报警指示电路的设计
在本系统中我设计了越线报警装置,控制目标温度范围。
当设定的目标温度线达到时,需用声音的形式提醒使用者,此时报警器开始发出报警声。
在本系统中,当温度低于设置的最低目标温度或高于设置的最高目标温度时报警器为连续不断的滴答滴答叫声。
当单片机P1.7输出高电平时,三极管导通,报警器工作发出报警声。
P1.7为低电平时三极管关断,报警器不工作。
当温度低于设置的最低温度时,温度传感器检测到实时温度,发送信息给单片机,P0.4低电平有效,D4为加热片加热指示灯;
同理,当温度加热到高于设置的最高温度时,P0.6低电平有效,D5为降温指示灯。
D1为检测到电源和液晶显示器共同的显示灯,高电平有效;
D6为检测到DS18B20的指示灯,低电平有效;
指示灯电路如下图3-9所示:
图3-9电源指示灯和报警指示灯电路
3.8总电路的设计
恒温控制的总电路图如图3-10:
图3-10总电路图的设计
四软件系统的设计
系统的软件由三大模块组成:
主程序模块、功能实现模块和运算控制器模块。
4.1主程序模块
主程序主要完成加热控制系统各部件的初始化和实现各功能子程序的调用,以及实际测量中各个功能模块的协调在无外部中断申请时,单片机通过循环对外部温度进行实时显示。
把设置键作为外部中断0,以便能对数字按键进行相应处理。
主程序流程图如下图4-1:
图4-1主程序流程图
4.2功能实现模块
以用来执行对MOSFET及加热片的控制。
功能实现模块主要由温度比较处理子程序、键盘处理子程序、显示子程序、报警子程序等部分组成。
键盘显示及程序流程图如下图4-2:
图4-2键盘、液晶显示子程序流程图
4.3运算控制模块
该模块由标度转换[3]、模糊控制算法及其中用到的乘法子程序。
式中A为二进制的温度值,A0为DS18B20的数字信号线送来的温度数据。
单片机在处理标度转换时是通过把DS18B20的信号线送回的16位数据右移4位得到二进制的温度值。
其小数部分通过查小数表的形式获取。
4.3.2模糊控制算法
目前温度控制系统中的控制算法多为PID算法,但PID算法由于微分作用导致高频干扰大,易引起超调,参数调整也麻烦,同时考虑到水温控制系统本身有一个大滞后的特点,故本系统选用了目前国际上较流行的从能量控制的观点出发,引入模糊控制思想而提出的变参数控制算法控制。
控制系统在其特性或参数发生摄动时仍可使品质指标保持不变的性能。
鲁棒性是英文robustness一词的音译,也可意译为稳健性。
鲁棒性原是统计学中的一个专门术语,70年代初开始在控制理论的研究中流行起来,用以表征控制系统对特性或参数摄动的不敏感性。
在实际问题中,系统特性或参数的摄动常常是不可避免的。
产生摄动的原因主要有两个方面,一个是由于测量的不精确使特性或参数的实际值会偏离它的设定值(标称值),另一个是系统运行过程中受环境因素的影响而引起特性或参数的缓慢漂移。
因此,鲁棒性已成为控制理论中的一个重要的研究课题,也是一切类型的控制系统的设计中所必需考虑的一个基本问题。
对鲁棒性的研究主要限于线性定常控制系统,所涉及的领域包括稳定性、无静差性、适应控制等。
鲁棒性问题与控制系统的相对稳定性和不变性原理有着密切的联系,内模原理的建立则对鲁棒性问题的研究起了重要的推动作用。
模糊控制算法的基本原理可采用解析式描述为:
其中,e,c,k为经过量化和模糊化的控制变量,相应的论域分别为温差(当前温度和目标温度的差值),温差变化率及控制量(当前温度与上一个时刻温度的差值);
k为调整因子。
其基本思想是通过调整k的大小,可改变对差量和差量变化率的不同加权程度。
在实际系统中,系统在不同的状态下,对控制规则中的差量e和差量变化率c有不同的要求。
如差量较大时,控制系统的主要任务是减小温差,此时对差量加权应该大些;
当差量较小时,控制系统的主要任务是使系统尽快稳定,减小超调,此时要求在控制规则中差量变化率加权大些。
基于这个思想,我提出了模糊温度控制方法,在规定的时间内,根据不同的温差和目标温度来改变加热时间与休息时间的在控比,从而达到控制的目的。
算法通过软件实现,此算法使系统能自行控制加热程度,使系统具有无超调和恒温精度高,具有稳定性好,控制参数对系统的依赖性弱等优点。
4.3.3控制算法子程序
该系统为一温度控制系统,由于无法确定电炉的物理模型,因而无法建立其数学模型和传递函数。
加热片为一惯性系统,我们采用模糊控制的方法,通过多次温度测量模糊计算当用户设定目标温度时需提前关断加热片的温度,利用加热片自身的热惯性使温度上升到其设定温度。
每隔5℃我们进行一次温度测量,并当达到其温度差值时关断加热片记录下因加热片的热惯性而上升的温度值。
从而可以建立热惯性的温度差值表,在程序中利用查表法,查出相应设定温度对应的关断温度。
通过试验数据我们可以看出,当水温从0℃加热到50℃这段温度区域,其温度惯性曲线可近似成线性的直线,水温从50℃加热到100℃这段温度惯性曲线可近似成另一条线性的直线段。
通过对设置的目标温度与温控系统监测温度进行差值处理就可近似的求出单片机的提前关断温度。
五系统性能测试及分析
我们的温度控制系统是基于STC89C52单片机的设计方案,它能实现显示当前温度,并能根据用户的要求作出相应的控制。
此系统工作稳定性高,控制精度高,利用模糊控制算法使超调量大大降低。
5.1设计所达到的性能指标
五.1.1温控系统的控制精度
我们将温度计和温控系统探头放入同一容器中,选定若干不同的温度点,记录下标准温度计显示的温度和温控系统显示的温度进行比较。
通过设定不同的温度值,使加热器加热,待温度稳定时记录各温度点的温度计数据和温控系统的显示值。
其记录数据如下表5-1:
表5-1温度计读数和温控系统显示的温度
温度计读数和温控系统显示的温度(℃)
设定温度值
0.0
28.0
35.0
45.0
55.0
75.0
87.0
91.0
系统显示温度
0.5
27.7
34.4
45.1
54.1
74.9
86.1
91.2
差值
0.3
-0.6
0.1
-0.9
-0.1
0.2
五.1.2温度工作波形图
温度控制模块,温度加热上升与常数K存在的线性关系如表5-2:
e=目标温度与当前温度之差;
c=当前温度与上一时刻温度之差;
;
k为常数。
表5-2温度T与常数k对应的关系
温度T(℃)0~3030~4040~5050~6060~7070~8080~90
常数K0.38470.46860.52890.65850.76861.57671.8554
温度工作波形图如图5-1:
图5-1温度工作波形图
5.2结果分析论述
我的系统完全满足设计要求,静态误差方面可以达到0.18℃的误差,总体控制精度方面大约0.45℃,在读数正确方面与标准温度计的读数误差为1.5%,对一般的工业生产完全可以采用我们的设计。
该系统具有较小的超调值,超调值大约为0.83%左右。
虽然超调为不利结果,但另一方面却减小了系统的调节时间。
从其数据表可以看出该系统为稳定系统。
5.3设计方案评价
5.3.1优点
在硬件方面:
本设计方案采用了单总线型数字式的温度传感器,提高了温度的采集精度,节约了单片机的口线资源。
方案还使用场效应管作加热控制器件,使设计简单化,且可靠性强。
在控制精度方面,本设计在不能确定执行机构的数学模型的情况下,大胆的假设小心的求证,利用模糊控制的算法来提高控制精度。
在软件方面:
我们采用模块化编程,思路清晰,使程序简洁、可移植性强。
5.3.2缺点
本设计方案虽然采用了当前市场最先进的电子器件,使电路设计简单,但设计方案不是最佳。
本系统虽然具有较小的超调量,但加大了调节时间。
如果需要更高的控制精度,则我们的模糊控制将不适应,需要修改程序。
设计中加热控制方面存在遗憾,虽采用了场效应管控制加热,但不能使温度加热到限制温度时截止,需要更好的控制器件。
六______________________________________________________________________________________________________________结论
本次实验采用了C语言编程方式,实现了温度的测量与控制,完全达到了本次实验的要求,更重要的是该实验的测量误差小于1℃度,控制精度小于0.45℃度,已基本实现本实验扩展部分的要求。
它可以广泛用于温度测量精度要求比较高的场面,实现简单,成本低。
综上所示,本系统的方案具有实用推广价值。
本系统通过添加一个传感器,还有一个12V供电的加热片,使系统能够实时显示温度和快速加热。
若系统开始加热就使温度迅速上升,则说明杯中水不足,很有可能为干烧,为不安全加热,用户请注意,这属于该系统需要改进的地方。
附录1
源程序清单如下:
//ds18b20driveprogram
//for51mcuwithlcd1602display
#include"
reg52.h"
#include<
intrins.h>
/*******************************************************************/
#defineHIGH1//高电平
#defineLOW0//低电平
#defineTRUE1//真
#defineZERO0//假
#defineMSB0x80
//ds18b20part
#defineSkipRom0xcc
#defineConvertTemperature0x44
#defineReadScratchpad0xbe
sbitOne_Wire_Bus=P1^6;
voidOne_Wire_Delay(unsignedchardelay_time);
voidOne_Wire_Write_Byte(unsignedcharoww_dat);
unsignedcharOne_Wire_Read_Byte(void);
voidRead_18B20(void);
voidInitize_One_Wire_Bus(void);
voiddelay(void);
/********************************************************************/
dataunsignedcharGetScratchpad[2];
codeunsignedchardecimalH[16]={00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93};
codeunsignedchardecimalL[16]={00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75};
unsignedcharResultTemperatureH;
//经过处理后的温度整数部分
unsignedcharResultTemperatureLH,ResultTemperatureLL;
//经过处理后的温度的小数部分
dataunsignedcharResultSignal;
//温度为负数标志位
voidInitize_One_Wire_Bus(void)
{One_Wire_Bus=0;
One_Wire_Delay(80);
//Busmasterpullinglow488us
One_Wire_Bus=1;
One_Wire_Delay(25);
//Resisterpullup158us;
}
/*******************ds18b20**********************************/
voidOne_Wire_Delay(unsignedchardelay_time)
{
While(delay_time)delay_time--;
//Delaytimeus:
=(8+delay_time*6)us;
unsignedcharOne_Wire_Read_Byte(void)
{
bittemp_bit;
unsignedchari,result=0;
for(i=0;
i<
8;
i++)
One_Wire_Bus=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 控制