完整版基于单片机的PID温度控制毕业设计.docx
《完整版基于单片机的PID温度控制毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版基于单片机的PID温度控制毕业设计.docx(34页珍藏版)》请在冰豆网上搜索。
完整版基于单片机的PID温度控制毕业设计
以下文档格式全部为word格式,下载后您可以任意修改编辑。
前言
温度是表征物体冷热程度的物理量。
在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。
因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。
单片机系统的开发应用给现代工业测控领域带来了一次新的技术革命,自动化、智能化均离不开单片机的应用。
将单片机控制方法运用到温度控制系统中,可以克服温度控制系统中存在的严重滞后现象,同时在提高采样频率的基础上可以很大程度的提高控制效果和控制精度。
现代自动控制越来越朝着智能化发展,在很多自动控制系统中都用到了工控机,小型机、甚至是巨型机处理机等,当然这些处理机有一个很大的特点,那就是很高的运行速度,很大的内存,大量的数据存储器。
但随之而来的是巨额的成本。
在很多的小型系统中,处理机的成本占了系统成本的比例高达20%,而对于这些小型的系统来说,配置一个如此高速的处理机没有任何必要,因为这些小系统追求经济效益,而不是最在乎系统的快速性,所以用成本低廉的单片机控制小型的,而又不是很复杂,不需要大量复杂运算的系统中是非常适合的。
随着电子技术以及应用需求的发展,单片机技术得到了迅速的发展,在高集成度,高速度,低功耗以及高性能方面取得了很大的进展。
现在完全可以运用单片机和电子温度传感器对某处进行温度检测,而且可以很容易地做到多点的温度检测,如果对此原理图稍加改进,还可以进行不同地点的实时温度检测和控制。
1绪论
1.1研究的目的和意义
温度是工业生产中主要被控参数之一,温度控制自然是生产的重要控制过程。
工业生产中温度很难控制,对于要求严格的的场合,温度过高或过低将严重影响工业生产的产质量及生产效率,降低生产效益。
这就需要设计一个良好温度控制器,随时向用户显示温度,而且能够较好控制。
单片机具有和普通计算机类似的强大数据处理能力,结合PID,程序控制可大大提高控制效力,提高生产效益[9]。
例如钢铁生产过程中,按照工艺条件的规定保持一定的温度才能保证产品质量和设备的安全。
对电气设备进行温度的监控,例如高压开关、变压器的出线套管等,判断可能存在的热缺陷,进而能及时发现、处理、预防重大事故的发生。
因此研究温度控制仪具有重要的意义[10]。
在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。
因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。
在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合[16]。
目前市场上热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能.即使热水器具有辅助加热功能。
也可能由于加热时间不能控制而产生过烧,从而浪费电能。
本文设计的热水器控制系统以51单片机为检测控制中心单元,具有温度设定与控制功能。
该控制器和以往显示仪相比具有性价比高、温度控制与显示精度高、使用方便和性能稳定等优点,提高了电能的使用效率,具有可观的经济效益和社会效益[18]。
1.2国内外发展状况
温度控制采用单片机设计的全数字仪表,是常规仪表的升级产品。
温度控制的发展引入单片机之后,有可能降低对某些硬件电路的要求,但这绝不是说可以忽略测试电路本身的重要性,尤其是直接获取被测信号的传感器部分,仍应给予充分的重视,有时提高整台仪器的性能的关键仍然在于测试电路,尤其是传感器的改进。
现在传感器也正在受着微电子技术的影响,不断发展变化。
传感器正朝着小型、固态、多功能和集成化的方向发展。
近年来,温度控制的发展尤为迅速。
国内外市场上已经出现了多种多样温度控制仪表,应用于社会的各个方面。
例如能够进行程序控温的智能多段温度控制仪,能够实现数字PID和各种复杂控制规律的智能式温度调节器等[11]。
水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。
但从对控制方法的分析来看,PID控制方法最适合本例采用。
另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。
因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求[7]。
传统的一位式模拟控制方案,选用模拟电路,用电位器设定值,反馈的温度值和设定值比较后,决定加热或不加热。
其特点是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统静态差大、不稳定。
系统受环境影响大,不能实现复杂的控制算法,不能用数码管显示,不能用键盘设定[13]。
传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。
这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且不能用数码管显示,对键盘进行设定[13]。
现在国内外一般采用经典的温度控制系统。
采用模拟温度传感器对加热杯的温度进行采样,通过放大电路变换为0~5V的电压信号,经过AD转换,保存在采样值单元;利用键盘输入设定温度,经温度标度转换转化成二进制数,保存在片内设定值单元;然后调显示子程序,多次显示设定温度和采样温度,再把采样值与设定值进行PID运算得出控制量,用其去调节可控硅触发端的通断,实现对电阻丝加热时间的控制,以此来调节水温使其基本保持恒定[2]。
采用单片机AT89C52设计温度实时测量及控制系统。
单片机AT89C52能够根据温度传感器DS18B20所采集的温度数据来控制加热器或致冷器的启停,从而把温度控制在设定的范围之内。
在温控开关被激活的情况下,当温度低于设定的下限时,单片机启动加热器加热,同时点亮绿色发光二极管,当温度高于设定的上限时,单片机启动致冷器降温,同时点亮红色发光二极管。
所有温度数据均通过液晶显示器LCM1602显示出来。
为了防止单片机掉电引起的数据丢失,温度上下限的设定值存储在AT24C02B中[8]。
采用一线制数字温度传感器DS18B20来作为温度传感器。
传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。
DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。
该器件将半导体温敏器件、AD转换器、存储器等做在一个很小的集成电路芯片上。
温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的[12]。
从硬件和软件两方面来讲述水温自动控制过程,在控制过程中主要应用AT89C52、ADC0809、LED显示器、LM324比较器,而主要是通过DS18B20数字温度传感器采集环境温度,以单片机为核心控制部件,并通过四位数码管显示实时温度的一种数字温度计。
软件方面采用汇编语言来进行程序设计,使指令的执行速度快,节省存储空间。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。
而系统的过程则是:
首先,通过设置按键,设定恒温运行时的温度值,并且用数码管显示这个温度值.然后,在运行过程中将采样的温度模拟量送入AD转换器中进行模拟-数字转换,再将转换后的数字量用数码管进行显示,最后用单片机来控制加热器,进行加热或停止加热,直到能在规定的温度下恒温加热[5]。
2系统总体设计
2.1系统设计任务与要求
该温度自动控制系统采用AT89C52单片机为主控芯片,传感器采用数字温度传感器DS18B20,实现对温度的检测和控制。
技术要求:
1、能够连续测量水的温度值,用十进制数码管来显示实际温度,最小单位为1℃。
2、能够设定水的温度值,设定范围是30℃~90℃,温度误差≤±0.5℃。
3、能够实现水温的自动控制,如果设定水温为80℃,则能使水温保持恒定在80℃的温度下运行。
4、用单片机AT89C52控制,通过按键来控制水温的设定值,数值采用数码管显示。
该温度自动控制系统由温度信号采样电路,键盘及显示电路,温度控制电路,报警电路,时钟信号电路等构成,并运用PID算法进行温度控制和调整。
根据设计任务,详细分析温度自动控制系统的设计需求,并进行软硬件的总体设计。
由键盘电路输入设定温度信号给单片机,温度信号采集电路采集现场温度信号给单片机,单片机根据输入与反馈信号的偏差进行PID计算,输出反馈量给温度控制电路,实现升温。
显示电路实现现场温度的实时监控。
设计人员需完成全部硬件和软件的设计,并利AltiumDesigner6.0仿真软件对设计结果进行验证。
2.2系统方案的选择
在这个系统中我们从性能及设计成本考虑,我们选择AT89C52芯片。
AT89C52的广泛使用,使单片机的价格大大下降。
在温度传感器的选择上我们采用温度芯片DS18B20测量温度。
该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。
该芯片直接向单片机传输数字信号,便于单片机处理及控制。
本制作的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。
采用温度芯片DS18B20测量温度,体现了作品芯片化的这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。
在这个过程中,我们通过单片机将传感器所测量出来的温度通过LCD1602可以显示出来。
这样就能实时显示温度情况。
本设计采用了PID控制。
在工程实际中,PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型,控制理论的其他技术也难以采用,系统控制器的结构和参须依靠经验和现场调试来确定时,应用PID控制技术最为方便。
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时问和微分时间的大小。
PID控制器参数整定的方法概括起来有两大类:
一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,直接且方法简单、易于掌握,在实际中被广泛应用。
3器件和模块的选用
3.1AT89C52单片机
AT89C52是一种低功耗、高性能8位微控制器,具有8K在系可编程Flash存储器。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使AT89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
AT89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位IO口线,看门狗定时器,2个数据指针,三个16位定时器计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
其主要工作特性为:
1、内含8KB的Flash存储器,擦写次数达1000次;
2、内含128字节的RAM;
3、具有32根可编程IO线;
4、具有2个16位可编程定时器;
5、具有6个中断源、5个中断矢量、2级优先权的中断结构;
6、具有1个全双工的可编程串行通信接口;
7、具有1个数据指针DPTR;
8、两种低功耗工作模式,即空闲模式和掉电模式;
9、具有可编程的3级程序锁定位;
10、工作电源电压为5±1.2V,典型值为5V;
11、最高工作频率为24MHz。
引脚排列如图3.1所示。
图3.1AT89C52引脚排列
3.2DS18B20传感器
DS18B20原理与特性:
采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。
首先来介绍一下DS18B20这块传感器的特性及其功能:
DSl8B20的管脚及特点DS18B20可编程温度传感器有3个管脚。
内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的外形及管脚排列如图3.2所示。
GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。
VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.0~5.5V。
本文使用外部电源供电。
主要特点有:
1.用户可自设定报警上下限温度值。
2.不需要外部组件,能测量-55~+125℃范围内的温度。
3.-10℃~+85℃范围内的测温准确度为±0.5℃。
图3.2DS18B20的外形及管脚图
4.通过编程可实现9~l2位的数字读数方式,可在至多750ms内将温度转换成12位的数字,测温分辨率可达0.0625℃。
5.独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。
6.测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
7.负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
DS18B20支持多点组网的功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
DS18B20内部功能模块如图3.3所示,
图3.3DS18B20原理图
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同DS18B20为9位~12位AD转换精度,而DS1820为9位AD转换,虽然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
如下3.4的测温原理图不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图3.4所示。
图3.4DS18B20的测温原理框图
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
则高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值时。
计数器1对低温度系数晶振产生脉冲信号,进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值。
在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。
这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。
测温电缆线采用屏蔽4芯双绞线,其中有一对接地线与信号线,另一组接VCC和地线。
3.3复位和时钟电路的设计
本系统中采用手动复位键复位相的方式。
系统时钟电路设计采用内部方式。
AT89C52内部有一个用于构成振荡器的高增益反相放大器。
这个放大器与作为反馈元件的片外晶体谐振器构成一个自激振荡器。
外接晶体谐振器以及电容构成并联谐振电路,接在放大器的反馈回路中。
本系统电路采用的晶体振荡器频率为11.0592MHz。
采用这种频率的晶体振荡器的原因是可以方便的获得标准的波特率。
复位电路和时钟电路如图3.5所示。
复位电路有上电自动复位和按钮手动复位两种。
上电复位是利用电容充电来实现的,上电瞬间RSTVPD端的电位与VCC相同,随着充电电流的减少,RSTVPD的电位逐渐下降,图3.5中的10K的电阻是施密特触发器输入端的一个下拉电阻,时间常数为10*10-6*10*103s=100ms,只要Vcc的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作[6]。
上电复位所需最短时间是震荡周期建立时间加上2个机器周期时间。
按钮复位采用电平复位方式,按下复位电钮时,电源对外接电容充电,使RSTVPD端为高电平,复位按钮松开后,电容通过内部下拉电阻放电,逐渐使RSTVPD端恢复低电平。
图3.5复位电路和时钟电路
3.4温度采集电路
数据采集电路如图3.6所示,1脚接地,2脚即为单总线数据口,3脚接电源。
温度传感器DS18B20采集被控对象的实时温度,提供给AT89C52的P3.5口作为数据输入。
图3.6数据采集电路
3.5显示电路的设计
数码管显示部分,采用与单片机相连接,将温度传感器采集到的信息迅速转化为可视温度,增加了可读性。
图3.7数码管显示电路图
3.6供电系统
供电部分采用TL431构成的恒压源,TL431是一个有良好的热稳定性能的三端可调分流基准源。
他的输出电压用两个电阻就可以任意的设置到从Verf(2.5V)到36V范围内的任何值。
该器件的典型动态阻抗为0.2Ω。
其稳压电路图如图3.8:
图3.8供电电路
4PID控制和参数整定
4.1PID调节器控制原理
PID控制器是一种线性控制器,一种它根据给定值rin(t)与实际输出值yout(t)构成控制偏差:
Error(t)=rin(t)-yout(t)
PID控制就是对偏差信号进行比例、积分、微分运算后,形成一种控制规律。
即,控制器的输出为:
(4.1)
或写成传递函数的形式:
(4.2)
式中,kp——比例系数;Ti——积分时间常数;Td——微分时间常数。
简单说来,PID控制器各校正环节的作用如下:
比例环节:
成比例地反映控制系统的偏差信号error(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差[10]。
比例控制:
Gc(s)=Kp
积分环节:
主要用于消除静差,提高系统的无差度。
积分作用的强尽弱取决于积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。
积分控制:
Gc(s)=KpTis
微分环节:
反偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。
微分控制:
Gc(s)=KpTds
4.2PID控制的分类
基本PID控制器的理想算式为
(4.3)
式中
u(t)——控制器(也称调节器)的输出;
e(t)——控制器的输入(常常是设定值与被控量之差,即e(t)=r(t)-c(t));
Kp——控制器的比例放大系数;
Ti——控制器的积分时间;
Td——控制器的微分时间。
设u(k)为第k次采样时刻控制器的输出值,可得离散的PID算式
(4.4)
,
由于计算机的输出u(k)直接控制执行机构(如阀门),u(k)的值与执行机构的位置(如阀门开度)一一对应,所以称式
(2)为位置式PID控制算法。
位置式PID控制算法的缺点:
当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。
增量式只需计算增量,算式中不需要累加,控制增量的确定仅与最近几次偏差采样值有关,当出现计算误差或精度不足时,对控制量计算的影响较小,且较容易通过加权处理获得比较好的控制效果。
4.3数字PID参数的整定
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:
一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
本设计采用PID归一整定法把对控制台三个参数(Kc、Ti、Td,)转换为一个参数KP,从而使问题明显简化。
以达到控制器的特性与被控过程的特性相匹配,满足某种反映控制系统质量的性能指标。
4.4PID计算程序
PID调节规律的基本输入输出关系可用微分方程表示为:
(4.5)
式中为调节器的输入误差信号,且
(4.6)
其中:
为给定值,为被控变量;
为调节器的输出控制信号;
为比例系数;
为积分时间常数;
微分时间常数。
计算机只能处理数字信号,若采样周期为T第n次采样的输入误差为,且,输出为,PID算法用的微分由差分代替,积分由代替,于是得到
(4.7)
写成递推形式为
△
=
=
=
=(4.8)
其中:
(4.9)
(4.10)
(4.11)
显然,PID计算△un只需要保留现时刻en以及以前的两个偏差量en-1和en-2。
初始化程序初值en-1=en-2=0通过采样并根据参数KP、KD、KI以及en、en-1和en-2计算△un。
根据输出控制增量△un,可求出本次控制输出为
+△=(4.12)
下面对PID运算加以说明:
所有的数都变成定点纯小数进行处理。
算式中的各项有正有负,以最高位作为符号位,最高位为0表示为正数,为1表示负数。
正负数都是补码表示,最后的计算以原码输出。
节16位进行计算,最后将运算结果取成高8位有效值输出。
输出控制量un的限幅处理。
为了便于实现对晶闸管的通断处理,PID的输出在0~250之间。
大于250或小于0的控制量都是没有意义的,因在算法上对进行限幅,即
=
(4.13)
图4.1PID计算程序的流程图
PID的计算公式采用位置式算法,计算公式为
+
=(4.14)
5软件设计
系统的软件主要由主程序模块、数据采集模块、数据处理模块、控制算法模块等组成。
主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理,其中最重要的是数字滤波程序:
控制算法模块完成控制系统的PID运算并且输出控制量。
5.1主程序模块
主程序模块要做的主要工作是上电后对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、串口初始化等。
然后等待温度设定,若温度已经设定好了,判断系统运行键是否按下,若系统运行,则依次调用各个相关模块,循环控制直到系统停止运行。
设计模块图如下图5.1所示。
图5.1设计模块图
主程序模块的程序流程图如图5.2所示。
5.2数据采集和显示模块
数据采集模块的任务是负责温度信号的采集以及将采集到的数字量提供给单片机。
AT89C52通过控制DS18B20读取实时温度,然后,通过P0口送到LCD1602进行显示。
显示程序设计框图如图5.3所示。
N
Y
图5.3显示程序设计框图6仿真与实物展示
6.1AltiumDesigner6.0软件简介
2005年年底,Protel软件的原厂商Al