基于单片机的恒温控制系统.docx
《基于单片机的恒温控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的恒温控制系统.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的恒温控制系统
摘要:
随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。
温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械等工业中,具有举足重轻的作用,因此,温度控制系统是典型的控制系统。
本文介绍了基于单片机AT89C51的温度控制系统的设计方案与软硬件实现,论述了一种以STC89C52单片机为主控制单元,以DS18B20为温度传感器的温度自动控制系统。
该控制系统可以根据设定的温度,通过PID算法调节和控制pwm波的输出,控制晶闸管导通时间从而控制水温的自动调节,系统设计了相关的硬件电路和相关应用程序。
硬件电路主要包括STC89C52单片机最小系统,DS18b20测温电路、键盘电路.LCD液晶显示电路,加热功率电路等。
系统程序主要包括主程序,温度处理子程序、按键处理程序、LCD显示程序等,pwm波输出程序。
给出了系统总体框架、程序流程图和Proteus仿真结果,并在硬件平台上实现了所设计的功能。
关
[关键词]单片机;温度控制系统;温度传感器;PID控制算法。
1.选题背景----------------------------------------------------------2
2.设计要求----------------------------------------------------------2
2.1设计任务-----------------------------------------------------2
2.2设计要求----------------------------------------------------2
3.方案论证比--------------------------------------------------------3
3.1温度检测电路方案选择-----------------------------------------3
3.2显示电路方案选择--------------------------------------------3
3.3加热方案选择------------------------------------------------3
3.4控制方法方案选择--------------------------------------------3
4.总体方案及工作原理----------------------------------------------4
5.系统硬件设计-----------------------------------------------------4
5.1温度传感器电路单元------------------------------------------5
5.2输入电压单元------------------------------------------------6
5.3液晶显示单元-------------------------------------------------6
5.4温度上下限模块单元------------------------------------------7
5.5主控制单元设计----------------------------------------------7
6.系统软件设计-----------------------------------------------------9
6.1PID控制程序算法--------------------------------------------9
6.2PWM脉宽调制技术--------------------------------------------12
6.3控制系统程序-----------------------------------------------13
7.设计结论及总结---------------------------------------------------19
参考文献资料-------------------------------------------------------21
1.选题背景
对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。
技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。
利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。
目前,单片微机已普遍地作用于生产过程的自动控制领域中。
单片机以其体积小、价格低廉、可用其构成计算机控制系统中的智能控制单元和可靠性高等特点,受到广大工程技术人员的重视。
温度是生产过程中最常见的物理量,许多生产过程是以温度作为其被控参数的。
因此,温度控制系统是典型的控制系统
2.课题设计要求:
2.1设计任务
设计并制作一个水温自动控制系统,控制对象为300W或400W电阻炉,容器为薄壁不锈钢可以加温的器皿。
2.2设计要求
2.2.1基本要求
(1)调温功能,水温可以在0~100℃范围内由人工设定,人工设定温度后系统自动控制加热或降温,最小区分度为0.1℃,所测温度和实际温度偏差≤1℃。
(2)恒温功能,在环境温度变化时(例如用电风扇降温,电压波动)实现自动控制,以保持容器内根据设定的温度保持基本不变。
(3)用LCD或LED显示:
水的设定温度、实际温度、工作时间等参数信息。
2.2.2发挥部分
(1)采用适当的控制方法,当设定温度突变(由70℃提高到90℃)时,减小系统的调节时间和超调量。
(2)采用适当的控制方法,当突加凉水扰动时,减小系统的调节时间和超调量。
(3)温度控制的静态误差≤0.5℃。
3.方案论证比较
3.1温度检测电路的方案选择:
方案一:
用普通半导体温度传感器作为敏感元件,再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。
但由于该方案所需元件较多,且电路较繁,调试起来较复杂,所以舍之不用。
方案二:
使用数字温度传感器DS18B20检测温度,内含AD转换器,因此线路连接十分简单,它无需其他外加电路,直接输出数字量,可直接与单片机通信,读取测温数据,电路十分简单,它能够达到0.5℃的固有分辨率,使用读取温度暂存寄存器的方法还能达到0.2℃以上精度,应用方便,这样的电路主要工作量就集中到了单片机软件编程上,故我们选用该方案。
3.2显示电路的方案选择:
方案一:
使用数码管显示,通过数码管显示被测温度和设定温度。
该方案程序简单,但硬件占用单片机I/O口较多,对于尽量节约端口,让线路简单来说不是好方法,而且显示也不够直观灵活,只能显示数字,不能显示汉字显示功能提示,故不适合本次设计应用。
方案二:
使用液晶屏lcd12864,可以显示字母,数字及汉字,而且一次可以显示4行,显示很直观,通过字幕显示模式、温度、曲线。
该方案程序较复杂,而且lcd12864的价格昂贵,对于节约成本的角度来说,我们选择放弃选择方案二。
方案三:
使用液晶屏1602显示,可以显示设定温度及测量温度,但显示时1602能显示两行能显示字符及数字,不能显示汉字及曲线,完全满足本次设计的要求,而且成本低廉,设计简单可靠,故选择方案三。
3.3加热方案的选择:
方案一:
使用电热炉进行加热,控制电炉的功率即可控制加热速度,当水温过高时,关掉电炉即可,但考虑到电炉成本较高,且精度不好控制,故不选用。
方案二:
固态继电器控制加热器工作,固态继电器使用非常简单,而且没有触点,无需外加光耦,自身就可以实现电气隔离,还可以频繁动作。
可以使用类似pwm的方式,通过控制固态继电器的开,断时间比来达到控制加热器功率的目的,适合功率不大精度不高,简易水温控制系统。
方式三:
是使用可控硅控制加热器的工作。
可控硅是一种半控器件,通过控制导通角的方式来控制,对每个周期的交流电进行控制,因为导通角连续可调,故控制精度较高,且元件便宜,易于制作,我们选择方案三。
3.4控制方法选择方案:
方案一:
采用普通的控制方法,即随着水温的变化调节温度,但局限性太小,由于水温变化快,且惯性大,不易控制精度,故采用普通控制方法显得力不从心。
方案二:
采用PWM控制加PID算法,通过采用PWM可以产生一个PWM波形,而PWM波形的占空比是通过PID算法调节,这样就可以调节加热棒的功率进而控制温度的变化,从而使精度提高,我们选择方案二。
4.总体方案及工作原理
温度传感器DS18B20从设备环境的不同位置采集温度,单片机AT89S51获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。
当采集的温度经处理后超过设定温度的上限时,,当采集的温度经处理后低于设定温度的下时,单片机通过控制晶闸管开启升温设备(加热器)。
系统总体的原理框图如下;
系统工作原理框图
5.系统硬件设计
对题目进行深入的分析和思考,可以将整个系统硬件总体分为以下几个方面:
5.1温度传感器电路单元
测温电路是使用DS18b20数字式温度传感器,它无需其他的外加电路,直接输出数字量,可直接与单片机通信,读取测温数据,电路十分简单。
它能够达到0.5
的固有分辨率,使用读取温度的暂存寄存器的方法还能达到0.2
以上的精度。
DS18B20温度传感器只有三根外引线:
单线数据传输总线端口DQ,外供电源线VDD,共用地线GND。
外部供电方式(VDD接+5V,且数据传输总线接4.7k的上拉电阻。
综上,在本系统中我采用温度芯片DS18B20测量温度。
该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
DS18B20接口电路DS18B20实物图
5.2输入电压单元
控制系统主控制部分电源需要用5V直流电源供电,其电路所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。
其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。
由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。
降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。
由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。
需通过低通滤波电路滤波,使输出电压平滑。
稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。
本电路使用集成稳压芯片7805解决了电源稳压问题。
5.3液晶显示单元
LCM1602是2行×16个字符的字符型LCD显示器,它由32个字符点阵块组成,每个字符点阵块由5×7或5×10个点阵组成,可以显示ASCII码表中的所有可视的字符。
它内置了字符产生器ROM(CharacterGeneratorROM,CGROM)、字符产生器RAM(CharacterGeneratorRAM,CGRAM)和显示数据RAM(DataDisplayRAM,DDRAM)。
CGROM中内置了192个常用字符的字模,CGRAM包含8个字节的RAM,可存放用户自定义的字符,DDRAM就是用来寄存待显示的字符代码。
P3.0、P3.1、P3.2接LCD1602的三个控制引脚,P4口作为LCD1602的数据接口。
通过对控制引脚的控制,从而实现温度显示的功能。
5.4温度上下限键盘设置模块
温度上下限设置模块包括四个按键:
(1)模式切换键:
进行模式之间的切换,模式包括设置温度上限模式、设置温度下限模式,每次按下该键就在这两种模式之间切换。
(2)温度上下限增加键:
增加温度上下限的值。
(3)温度上下限减少键:
减少温度上下限的值。
(4)温控开关键:
是温控与非温控之间的切换键。
它用于设置是否进行温度控制即是否让越界的温度值触发加热器的启动
5.5主控制单元设计:
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
由于系统控制方案简单,数据量也不大,考虑到电路的简单和成本等因素,因此在本设计中选用ATMEL公司的AT89S51单片机作为主控芯片。
主控模块采用单片机最小系统是由于AT89S51芯片内含有4kB的E2PROM,无需外扩存储器,电路简单可靠,其时钟频率为0~24MHz,并且价格低廉,批量价在10元以内。
其主要功能特性:
兼容MCS-51指令系统4k可反复擦写(>1000次)ISPFlashROM
32个双向I/O口4.5-5.5V工作电压2个16位可编程定时/计数器时钟频率0-33MHz
全双工UART串行中断口线128x8bit内部RAM
2个外部中断源低功耗空闲和省电模式
中断唤醒省电模式3级加密位
看门狗(WDT)电路软件设置空闲和省电功能
灵活的ISP字节和分页编程双数据寄存器指针
可以看出AT89S51提供以下标准功能:
4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。
同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。
AT89S51单片机引脚图
6.系统软件设计
6.1PID控制程序算法
6.1.1PID算法简介
PID控制算法是控制理论中应用很广泛的一种算法,对于一般控制系统来说,PID算法从某种意义来说具有通用性,对各种系统具有广泛的适用性,通过现场的参数调试,可以达到很好的控制效果。
对于我们这次水温控制系统的设计,我们同样也可以使用PID控制算法,具体算法如下:
e(i)=t测-t设
E=
(2)
算法中,u(i)为当时的功率输出。
T为采样时间,E为误差积累,KP为比例常数,Ti为积分常数,Td为微分常数。
根据实际系统,调节这三个常数,可以达到很好的效果。
大多数的温度控制系统可以看作一阶纯滞后环节,由于本系统纯滞后时间较小,故可采用PID(比例、积分、微分)控制算法实施控制。
6.1.2PID控制作用
PID是比例(P)、积分(I)和微分(D)3个控制作用的组合。
连续系统PID控制器的微分方程为:
y(t)=KPP[e(t)+
](4-1)
式中y(t)为控制器的输出;e(t)为控制器的输入;KP比例放大系数;TI为控制器的积分时间常数;TD为控制器的微分时间常数。
显然,KP越大,控制器的控制作用越强;只要e(t)不为0,积分项会因积分而使控制器的输出变化;只要e(t)有变化的趋势,控制器就会在微分作用下,在偏差出现且偏差不大时提前给输出一个较强的控制作用。
6.1.3PID算法的微机实现
由于微机控制系统是一种时间离散控制系统,故必须把微分方程离散化为差分方程,最终写出递推公式才能直接应用。
显然:
(4-2)
(4-3)
于是,
KP{e(n)+
+
[e(n)-e(n-1)]}(4-4)
式中Δt=T,为采样周期;e(t)为第n次采样的偏差值;e(n-1)为第(n-1)次采样时的偏差值;n为采样序列,n=0,1,2,…。
由式(4-4)可以看出:
计算一次Y(n),不仅需要的存储器空间大,而且计算量也很大,于是进一步写出递推公式:
由Y(n-1)=KP{e(n-1)+
+
[e(n-1)-e(n-2)]}(4-5)
由式(4)减去式(5)得:
ΔY(n)=Y(n)-Y(n-1)
=KP{[e(n)-e(n-1)]+
[e(n)-2e(n-1)+e(n-2)]}
=KP[e(n)-e(n-1)]+KIe(n)+KD[e(n)-2e(n-1)+e(n-2)](4-6)
或Y(n)=Y(n-1)+KP[e(n)-e(n-1)]+KIe(n)+KD[e(n)-2e(n-1)+e(n-2)](4-7)
式中KI=KP
,称为积分常数;KD=KP
,称为微分常数。
6.1.4数字PID控制的参数选择
一、数字PID参数的原则要求和整定方法
1、原则要求:
被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干下系统输出应能保持在给定值,操作变量不宜过大,在系统与环境参数发生变化控制应保持稳定。
显然,要同时满足上述各项要求是困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。
2、PID参数整定方法:
理论计算法――依赖被控对象准确的数学模型(一般较难做到)
工程整定法――不依赖被控对象准确的数学模型,直接在控制系统中进行现场整定(简单易行)
二、常用的简易工程整定法
1、扩充临界比例度法――适用于有自平衡特性的被控对象
整定数字调节器参数的步骤是:
(1)选择采样周期为被控对象纯滞后时间的十分之一以下。
(2)去掉积分作用和微分作用,逐渐增大比例度系数
直至系统对阶跃输入的响
应达到临界振荡状态(稳定边缘),记下此时的临界比例系数
及系统的临界振荡
周期
。
(3)选择控制度。
通常,当控制度为1.05时。
就可以认为DDC与模拟控制效果相当。
(4)根据选定的控制度,查表5-3-2求得T、KP、TI、TD的值。
2、扩充响应曲线法――适用于多容量自平衡系统
参数整定步骤如下:
(1)让系统处于手动操作状态,将被调量调节到给定值附近,并使之稳定下来,然后突然改变给定值,给对象一个阶跃输入信号。
(2)用记录仪表记录被调量在阶跃输入下的整个变化过程曲线,如图所示。
(3)在曲线最大斜率处作切线,求得滞后时间τ,被控对象时间常数Tτ以及它们的比值Tτ/τ。
(4)由求得的τ、Tτ及Tτ/τ查表5-3-3,即可求得数字调节器的有关参数KP、TI、TD及采样周期T。
3、归一参数整定法
令
,
,
。
则增量型PID控制的公式简化为
改变KP,观察控制效果,直到满意为止。
5.4数字PID控制的工程实现
6.2PWM脉宽调制技术
脉宽调制(PWM)基本原理:
控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。
也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。
按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。
例如,把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形。
这些脉冲宽度相等,都等于∏/n,但幅值不等,且脉冲顶部不是水平直线,而是曲线,各脉冲的幅值按正弦规律变化。
如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩形脉冲的中点和相应正弦等分的中点重合,且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列,这就是PWM波形。
可以看出,各脉冲宽度是按正弦规律变化的。
根据冲量相等效果相同的原理,PWM波形和正弦半波是等效的。
对于正弦的负半周,也可以用同样的方法得到PWM波形。
在PWM波形中,各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时,只要按同一比例系数改变各脉冲的宽度即可,因此在交-直-交变频器中,整流电路采用不可控的二极管电路即可,PWM逆变电路输出的脉冲电压就是直流侧电压的幅值。
根据上述原理,在给出了正弦波频率,幅值和半个周期内的脉冲数后,PWM波形各脉冲的宽度和间隔就可以准确计算出来。
按照计算结果控制电路中各开关器件的通断,就可以得到所需要的PWM波形。
6.3控制系统程序
6.3.1系统主函数:
#include//包含51单片机头文件
#include//包含数学计算头文件
#include"Delay.h"//包含用户头文件delay.h,作用:
延时
#include"LCD1602.h"//包含用户头文件LCD_1602.h,作用:
驱动1602液晶显示器显示
#include"DS18B20.h"//包含用户头文件ds18b20.h,作用:
驱动温度传感器测量当前温度
#include"KeyScan.h"//包含用户头文件Keyscan.h,作用:
键盘扫描,获取按键值
#defineucharunsignedchar//用uchar代替unsignedchar
#defineuintunsignedint//用uint代替unsignedint
sbitkaitong=P2^0;//定义电热杯开通关断引脚
intPrevError=0;//定义上上一次偏差值
intLastError=0;//定义上一次偏差值
intError=0;//定义当前偏差值
intPError,IError,DError;//中间变量
intLastValue;//上一次的输出值
intNowValue;//本次的输出值
intFull,Part;//加热占空比调节参数
intSetValue=600;//初始化温度值60度
floatProportion=0.5;//定义比例参数
floatIntegral=0.1;//定义积分参数
floatDerivative=1;