基于大林算法的温度控制系统设计(完整资料)_第1页
基于大林算法的温度控制系统设计(完整资料)_第2页
基于大林算法的温度控制系统设计(完整资料)_第3页
基于大林算法的温度控制系统设计(完整资料)_第4页
基于大林算法的温度控制系统设计(完整资料)_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于大林算法的温度控制系统

设计完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)

计算机控制技术课程设计2015/2016学年第二学期设计课题:基于大林算法的电路温度控制系统的设计专业:班级:___学号:—姓名:2016年5月目录第一章课题简介11。1课题的目的11.1.1本机实现的功能11。1。2扩展功能:1课题的任务及要求1第二章系统方案设计22。1水温控制系统的总体介绍22.2系统框图22。3闭环系统的工作原理2第三章系统硬件设计33。1系统原理图33。2单片机最小系统设计3第四章大林控制算法设计54。1大林控制算法原理:5控制器的设计及公式推导过程64。3采样周期的选择:7第五章水温控制系统的仿真75.1振铃现象75.2Matlab仿真95。2大林算法控制系统编程设计:10各模块子程序设计115.3。1主程序设计115。3.2读出温度子程序125。5。3数码管显示模块135.5。4温度处理程序14第六章小结与体会15第七章参考文献16第八章附录17第一章课题简介1.1课题的目的1。1。1本机实现的功能利用温度传感器采集到当前的温度,通过AT89S52单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示.可以通过按键任意设定一个恒定的温度。将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制。当系统出现故障,超出控制温度范围时,自动蜂鸣报警。1。1.2扩展功能:具有通信能力,可接收其他数据设备发来的命令,或将结果传送到其他数据设备。采用适当的控制方法实现当设定温度或环境温度突变时,减小系统的调节时间和超调量。温度控制的静态误差。1。2课题的任务及要求一升水由800W的电热设备加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。温度测量范围:10~100°C,最小区分度不大于1°C。控制精度在0.2C以内,温度控制的静态误差小于1C。用十进制数码管显示实际水温。第二章系统方案设计2.1水温控制系统的总体介绍本次设计采用采样值和键盘设定值进行比较运算的方法来简单精确地控制温度。先通过键盘输入设定温度,保存在AT89S52单片机的指定单元中,再利用温度传感器DS18B20进行信号的采集,送入单片机中,保存在采样值单元。然后把采样值与设定值进行比较运算,得出控制量,从而调节继电器触发端的通断,来实现将水温控制在一定的范围内。当水温超出单片机预存温度时,蜂鸣器进行报警。单片机控制系统是一个完整的智能化的集数据采集、显示、处理、控制于一体的系统。由传感器、LED显示单片机及执行机构控制部分等组成.2。2系统框图闭环系统的工作原理本设计以AT89S52单片机系统进行温度采集与控制.温度信号由模拟温度传感器DS18B20采集输入AT89S52,利用温度传感器采集到当前的温度,通过AT89S52单片机进行控制,最后通过LED数码管以串行口传送数据实现温度显示。可以通过按键任意设定一个恒定的温度。将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动控制。当系统出现故障,超出控制温度范围时,自动蜂鸣报警.用单片机控制水温可以在一定范围内设定,并能在环境温度变化时保持温度不变。第三章系统硬件设计3.1系统原理图在温度测量控制系统中,实际温度值由PT100恒流工作调理电路进行测量。为了克服PT100线性度不好的缺点,在信号调理电路中加入负反馈非线性校正网络;调理电路的输出电压经ADC0808转换后送入单片机AT89S51;对采样数据进行滤波及标定处理后,由3位7段数码管显示。输入的设定值由4位独立按键电路进行设定,可分别对设定值的十位和个位进行加1、减1操作•设定值送入单片机后,由另外一组3位7段数码管显示。数码管的段码由74HC05驱动,位码由三极管2N2222A驱动。系统采用PID闭环控制方案.将预置初值与温度传感器反馈信号比较得到偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量的波动。在PID控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小.图3-1系统原理图3。2单片机最小系统设计基本的AVR硬件线路,包括以下几部分:复位线路的设计AT89S52已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外

时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电

阻到VCC即可(R6)。为了可靠,再加上一只O.luF的电容(CO)以消除干扰、杂波。D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V左右,另一作用是系统断电时,将R1(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位.当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位.重要说明:实际应用时,如果你不需要复位按钮复位脚可以不接任何的零件,AVR芯片也能稳定工作•即这部分不需要任何的外围零件。图3—2复位电路设计晶振电路的设计Megal6已经内置RC振荡线路,可以产生IM、2M、4M、8M的振荡频率。不过,内置的毕竟是RC振荡,在一些要求较高的场合,比如要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路.早期的90S系列,晶振两端均需要接22pF左右的电容。Mega系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,我们仍建议接上。重要说明:实际应用时,如果你不需要太高精度的频率,可以使用内部RC振荡。即这部分不需要任何的外围零件。图3-3晶振电路设计(3)电源设计AVR单片机最常用的是5V与3。3V两种电压。本线路以转换成5V直流电压,电路需要变压器把220交流电压转换成28V交流电,再通过整流器,把交流电转化成直流电,通过7809和7805三端正电源稳压电路转化成直流5V.电源如图3-4。丄图3-4电源电路设计图第四章大林控制算法设计4。1大林控制算法原理:在许多工业过程中,被控对象一般都有纯滞后特性,而且经常遇到纯滞后较大的对象。美国IBM公司的大林,在1968年提出了一种针对工业生产过程中,含有纯滞后对象的控制算法,具有较好的效果。假设带有纯滞后的一阶、二阶惯性环节的对象为:G(G(s)CKe-tsTs+11G(s)二G(s)二c(Ts+1)(Ts+1)12式中,为纯滞后时间,、为时间常数,K为放大系数。为简单起见,设二NT,N为正整数。大林算法的设计目标是设计合适的数字控制器,使整个闭环系统的传递函数为具有时间纯滞后的一阶惯性环节,而且要求闭环系统的纯滞后时间等于对象的纯滞后时间.4.2控制器的设计及公式推导过程()10()10被控对象的传递函数:Gks丿二—Cs+1010s+10系统广义对象的脉冲传递函数为:G(z)=Z1-e-11010s+10系统广义对象的脉冲传递函数为:G(z)=Z1-e-110S+10z(n+1)Q—e-T/\1—e-T/\z-i)-=Z-31—e-1=0.632z-31—e-1z-11-0.368zt系统的闭环脉冲传递函数为:①C)=z数字控制器的脉冲传递函数为:D(z)1-e-1s1--e-2s4s+1=0.221z-3s1-0.779z-11①(z)0.221G(z)•1-①C)1-0.779z-1-0.291z-3采样周期T=1s,期望闭环传递函数的惯性时间常数:T=4sT设期望闭环传递函数为:①C)=二-e-2s4s+1系统的广义对象传递函数:gQ=弓-gc◎=f当输入为单位阶跃时,输出为:0.221z—3Y(z)二①(z)R(z)==0.221z-3-0.124z-4+0.284z-5+...(1-0.779z—1)(1-z-1)控制量的输出为:

0.350x(1-0.368z-i)(1-0.779z-i)(1-z-1)=0.350x(1-0.368z-i)(1-0.779z-i)(1-z-1)=0.350+0.i29z-i+...U(z)二=G(z)(1—0.779加)(1-z-i)0.632z-34。3采样周期的选择:在本实验中,定时中断间隔选取100ms,采样周期T要求既是采样中断间隔的整数倍,又要满足,而由被控对象的表达式可知,所以取N=1,=T,=1s,取T=1s。因为,yT因为,yT(k)=m(k)-m(k_N)=m(k)=m(k-1),因为采样周期T=1s,定时中断为1s,就是说1个定时中断后进行采样。第五章水温控制系统的仿真5.1振铃现象直接用上述控制算法构成闭环控制系统时,人们发现数字控制器输出U(z)会以1/2采样频率大幅度上下摆动。这种现象称为振铃现象。振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间的大小等都有关系。振铃现象中的振荡是衰减的,并且于由被控对象中惯性环节的低通特性,使得这种振荡对系统的输出几乎无任何影响,但是振铃现象却会增加执行机构的磨损。在交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳定性,所以,在系统设计中,应设法消除振铃现象。就是说1个定时中断后进行采样。第五章水温控制系统的仿真5.1振铃现象直接用上述控制算法构成闭环控制系统时,人们发现数字控制器输出U(z)会以1/2采样频率大幅度上下摆动。这种现象称为振铃现象。振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间的大小等都有关系。振铃现象中的振荡是衰减的,并且于由被控对象中惯性环节的低通特性,使得这种振荡对系统的输出几乎无任何影响,但是振铃现象却会增加执行机构的磨损。在交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳定性,所以,在系统设计中,应设法消除振铃现象。可引入振铃幅度RA来衡量振荡的强烈程度.振铃幅度RA的定义为:在单位阶跃信号的作用下,数字控制器D(z)的第0次输出与第1次输出之差值。设数字控制器D(z)可以表示为:1+bz-1+bz-2+…D(z)=kz-n12=kz-nQ(z)1+az-1+az-2d—125-1)其中Q(z)1+bz-1+bz-2d—121+az-1+az-2d—125-2)那么,数字控制器D(z)输出幅度的变化完全取决于Q(z),则在单位阶跃信号的作用下的输出为:Q(z)1-z-i1+bz-i+Q(z)1-z-i12(5-3)1+(a—1)z-1+(a—a)z-2+.…(5-3)121二1+(b—a+1)z-1+(b—a+a)z—2+—11221根据振铃的定义,可得:RA=1—(b—a+1)=a—b/r1111(5—4)上述表明,产生振铃现象的原因是数字控制器D(z)在z平面上位于z=—l附近有极点。当z=—1时,振铃现象最严重.在单位圆内离z=-1越远,振铃现象越弱。在单位圆内右半平面的极点会减弱振铃现象,而在单位圆内右半平面的零点会加剧振铃现象.由于振铃现象容易损坏系统的执行机构,因此,应设法消除振铃现象。大林提出了一个消除振铃的简单可行的方法,就是先找造成振铃现象的因子,然后令该因子中的z=1.这样就相当于取消了该因子产生振铃的可能性。根据终值定理,这样处理后不会影响输出的稳态值。本设计的被控对象是含有纯滞后的一阶惯性环节,大林算法求得的数字控制器为式:(1—e-T/t)(1—e-T/rz-1)D(z)一k(1—e—T/t1)[1—e—T/tz—1—(1—e—T/t)z—(N+1)](5-5)有可表示为式3—14所示:(1—e—T/t)(1—e—T/t1z—1)D(z)一k(1—e-T/t])[1+(1—e-t/t)(z-1+z-2+…+z—N)](1—z-1)(5—6)可能引起振铃现象的因子是式3—15所示:1+(1-e-T/t)(z-1+z-2+…+z-N)(5-7)其振铃的幅度为:RA一e-T/t1-e-T/t(5—8)根据r值的不同,有一下几种情况:(1)当r=0时,不存在振铃极点因子,此时不产生振铃现象(2)当r=1时,存在一个极点z=—(1-e-T/t)当T<=时,z~-l,存在严重的振铃。11当r=2时,存在极点Z=一2(1-e-T/t)土j2当工〈〈当工〈〈T时,z~—Z~1时,存在振铃现象。对于r=2时的振铃极点,令Z=1代入式中可得:(1一4e-t/tt)(1一4e-t/tiz-1)4(1一e-T/T1)(1一z-1)[1+(1一e-T/T)(z-1+z-2+z-r)]

(1—e-t/t)(1—e-t/\z-i)=4(1—e-t/t1)(3—2e-t/t)(1—z-1)此时就求得的消除振铃的数字控制器D(z)表达式为D(z)(1—e—t/t)(1—e—t/t1zD(z)4(1—e-t/t1)(3—2e-t/t)(1—z-1)(1-0)(1-e—1Z—1)4(1—0)(3—2e-1)(1—z-1)5.2Matlab仿真Matlab仿真图Matlab仿真图(无振铃现象)5。2大林算法控制系统编程设计:根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。本部分详细介绍了基于AT89S52单片机的多路温度采集控制系统的软件设计。艮据系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,数据处理子程序、显示子程序、执行子程序。采用KeiluVision3集成编译环境和C语言来进行系统软件的设计.本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。采集到当前的温度,通过LED数码管实现温度显示。通过按键任意设定一个恒定的温度将水环境数据与所设置的数据进行比较.当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热。当系统出现故障,超出控制温度范围时,自动蜂鸣报警并对温度进行实时显示•采用C语言编写代码,鉴于篇幅限制及DS18B20的应用已经规范和成熟,本文仅就主程序流程图和显示子程序流程图及其代码进行说明。通过定时器TOP3。4口的定时来实现,在此不再赘述有关DS18B20的读写程序,编程时序分析等请见附录三。功能主程序流程图主程序通过调用温度采集子程序完成温度数据采集,然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和判断温度数据。主程序(见附录二)调用四个子程序,分别是温度采集程序、数码管显示程序、温度处理程序和数据存储程序。温度采集程序:对温度芯片送过来的数据进行处理,进行判断和显示.数码管显示程序:向数码的显示送数,控制系统的显示部分.温度处理程序:对采集到的温度和设置的上、下限进行比较,做出判断,向继电器输出关断或闭合指令。数据存储程序:对键盘的设置的数据进行存储.

超过设定1°c是否否低于设定1C是报警报警显示当前温度超过设定1°c是否否低于设定1C是报警报警显示当前温度判断当前温度值设定温度值图1系统总流程图5。3各模块子程序设计5。3。1主程序设计主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图2所示。通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两个单元中,然后通过调用显示子程序显示出来。

图2主程序流程图5。3。2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个命令对时序的要求特别严格,所以必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高位在后低位在前,共有12位数,小数4位,整数7位,还有一位符号位。DS18B20的数据读写是通过时序处理位来确认信息交换的。当总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令[BEh]或读电源模式指令[B4H]后必须立刻开始读时序,DS18B20可以提供请求信息。所有读时序必须最少60us,包括两个读周期间至少lus的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持lus,然后总线被释放在总线控制器发出读时序后,DS18B20通过拉高或拉低总线上来传输1或0。当传输逻辑0结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。5。5.3数码管显示模块图3读出温度子程序本系统采用八位共阳极数码管,用模拟串口的动态显示数据。其流程图如图4所示:5。5.4温度处理程序基于单片机水温控制系统通过DS18B20温度传感器采集到的温度和设置的温度上、下限进行比较得出结果。如果低于下限温度或是高于上限温度,则报警器进行进行报警。第六章小结与体会这次的课程设计分配到两个人一组完成,虽然只有短短的两周时间,但是通过这些天的学习使我收获巨大,让我更加深刻的复习了课本知识,使得自己在专业技能和动手能力方面有了很大的提高,为以后自己进入社会打下了一个良好的基础。在这次的课程设计过程中,我与周航一组,我很感谢老师对我的指导及同学的帮助,我主要负责软件的仿真,周航负责硬件系统的设计。在大林控制算法的设计中,遇到了许多的难题,对于原理概念十分模糊,一些公式也忘了如何去使用,拿出了以前的课本对遗忘的知识进行了回顾,在同学的帮助下,与周航的讨论中一步一步的完成了控制器的设计和大林算法公式的推导.使得我能够顺利的完成此次的课程设计,通过完成这次的课程设计,使我深刻的体会到了团队的重要性,这次的课程设计很,但两人一组的团队的合作使课程设计简单了许多,每个人都有明确的分工,这样,再加上自己的努力终能取得成功.感谢此次的课程设计让我收获良多!第七章参考文献于海生主编,微型计算机控制技术[M],北京:清华大学出版社,2009李小坚,赵山林,冯晓军,龙怀冰.ProtelDXP电路设计与制版实用教程(第2版).北京:人民邮电出版社。2009全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(第一届—第五届).北京:北京理工大学出版社。2004张琳娜,刘武发。传感检测技术及应用。北京:中国计量出版社。1999沈德金,陈粤初MCS—51系列单片机接口电路与应用程序实例•北京:北京航空航天大学出版社。1990周立功等。增强型80C51单片机速成与实战。北京:北京航空航天大学出版社。2003。7马忠梅等。单片机的C语言应用程序设计•北京:北京航空航天大学出版社社。1998.10胡汉才.单片机原理及接口技术.北京:清华大学出版社社。1996李志全等.智能仪表设计原理及应用。北京:国防工业出版社。1998.6何立民.MCS-51系列单片机应用系统设计。北京:北京航空航天大学出版社.1990。1第八章附录附录一:系统程序#include<reg52。h〉〃52系列头文件#include〈stdio.h〉#defineucharunsignedchar#defineuintunsignedintsbitds=P3A4;//定义蜂鸣器//定义整型的温度数据//定义蜂鸣器//定义整型的温度数据sbitbeep=P1A4;sbitled=P1A1;sbitjdq=P1A0;uinttemp,t,w;ucharflag;uinthigh;sbitled1=P1A0;//定义温度的上限值//控制发光二极管//定义浮点型的温度数据uintlow;uinthigh;sbitled1=P1A0;//定义温度的上限值//控制发光二极管//定义浮点型的温度数据uintlow;//定义温度下限值是温度乘以10后的结果sbitled2=P1A1;//控制发光二极管sbits3=P3A7;ucharflag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6};//共阳数码管段码表ucharcodetable1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};〃带小数点的编码voiddelay(ucharz)//延时函数{uchara,b;for(a=z;a>0;a—-)for(b=100;b>0;b——);}voidinit(){EA=1;ET1=1TR1=1{{{{TMOD=0x10;TH1=(65536—4000)/256TL1=(65536-4000)%256;flag=0;high=100;jdq=1;}voiddidi(){beep=0;led=0;delay(500);beep=1;led=1;delay(500);}voiddsreset(void){uinti;ds=0;i=103;while(i>0)i-—;ds=1;i=4;while(i>0)i-—;}bittempreadbit(void){uinti;bitdat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i〉0)i--;return(dat);}uchartempread(void){uinti,j,dat;dat=0;for(i=1;i〈=8;i++)//DS18b20复位,初始化函数//延时最短480us//等待16—60us,收到低电平//读1位数据函数〃i++起到延时作用//读1字节的数据函数j=tempreadbit();个约60-240us则复位成功{{{{dat=(j<〈7)|(dat〉>1);〃读出的数据最低位在最前面,这样刚好一个字节在dat里}return(dat);}voidtempwritebyte(uchardat)//向DS18B20写一个字节的数据函数{uinti;ucharj;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb)//写1{ds=0;i++;i++;ds=1;i=8;while(i〉0)i—-;}else//写0{ds=0;i=8;while(i>0)i—-;ds=1;i++;i++;}}}voidtempchange(void)//DS18B20开始获取温度并转换{dsreset();delay(1);tempwritebyte(0xcc);//写跳过读ROM指令tempwritebyte(0x44);//写温度转换指令}uintget_temp()//读取寄存器中存储的温度数据uchara,b;dsreset();////温度在寄存器中为12位,分辨率为0.0625//乘以10表示小数点后面只取一位//temp是整型delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=256*b+a;f_temp=temp*O。0625;temp=f_temp*10+0.5;returntemp;}voidkeyscan(){if(s1==0){P2=0xff;delay(5);if(s1==0){while(!s1);s1num++;if(s1num==1){flag=1;}//写跳过读ROM指令//写温度转换指令//读低8位//读高8位if(s1num==2){s1num=0;flag=0;}}}if(s1num==1){flag=1;if(s2==0){delay(5);if(s2==0){while(!s2);high+=10;if(high==1000)high=100;}if(s3==0){delay(5);if(s3==0){while(!s3);high—=10;if(high==0)high=100;}}}}voidmain()//主函数{init();while(1){tempchange();//温度转换函数if(temp〈high-10){jdq=0;didi();}if((temp〉=high—10)&&(temp<=high)){jdq=0;beep=1;}if((temp>high)&&(temp<=high+10)){jdq=1;beep=1;}if(temp〉high+10){jdq=1;didi();}}}voidtime1()interrupt3{TH1=(65536—4000)/256;TL1=(65536-4000)%256;t++;keyscan();if(flag==0){if(t==4)t=0;switch(t){case1:P0=table[get_temp()/100];P2=0xfd;breakcase2:P0=table1[get_temp()%100/10];P2=0xfb;break;case3:P0=table[get_temp()%10];P2=0xf7;break}}if(flag==1){if(t==4)t=0;switch(t){case0:P0=0xff;P2=0xfe;break;case1:P0=0xff;P2=0xfd;break;case2:P0=table[high/100];P2=0xfb;break;case3:P0=table[high%100/10];P2=0xf7;break;}}}班级班级:姓名:学号:班级班级:姓名:学号:1。简要叙述系统的工作原理。2。简述复位电路设计原理。系统如何产生报警?4。简述大林算法的原理。采样周期如何确立?合卒辔FtHefeiUniversity基于大林算法的电加热炉温度控制系统设计课程名称计算机控制技术课程设计任课教师丁健班级10级自动化1班姓名学号日期2013/06/20论文基于大林算法的电加热炉温度控制系统设计设计设计型导师丁健题目类型姓名2010级自动化专业《计算机控制技术》课程设计任务书

电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值•在本控制对象电阻加热炉功率为8KW,有220V交流电源供电,采用双向可控硅进行控制。本设计针对一个温区进行控制,要求控制温度范围50~350°C,保温阶段温度控制精度为±1°C。选择合适的传感器,计算机输出信号经转换后e~Ts通过双向可控硅控制器控制加热电阻两端的电压,其对象温控数学模型为:G(s)-一-Ts+1d其中:时间常数=350秒,放大系数=50,滞后时间t=10秒,控制算法选用大林算法。条件1.PC机一台,教学实验箱一台;3人:明确课题功能.:把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。:存储器资源分配:编制程序,根据流程图来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止.计划设计进程一、总体方案设计二、控制系统的建模和数字控制器设计三、硬件的设计和实现1、选择计算机字长(选用51内核的单片机)2、设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);3、设计输入信号接口电路;4、设计DA转换和电流驱动接口电路;5、其它相关电路的设计或方案(电源、通信等)。四、软件设计1、分配系统资源,编写系统初始化和主程序模块框图;2、编写AD转换和温度检测子程序框图;3、编写控制程序和DA转换控制子程序模块框图;4、其它程序模块(显示与键盘等处理程序)框图。五、编写课程设计说明书,绘制完整的系统电路图(A3幅面).任务分工:针对本次设计课题,我们明确了各自的分工,顾胜池主要负责软件程序的编写、连接和调试,黄安福主要负责各个模块硬件的仿真和调试和部分模块程序的编写,柴文峰负责报告的整理。摘要电加热炉在化工、冶金等行业应用广泛,因此温度控制在工业生产和科学研究中具有重要意义。其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等方面具有重要的现实意义.常规的温度控制方法以设定温度为临界点,超出设定允许范围即进行温度调控:低于设定值就加热,反之就停止或降温。这种方法实现简单、成本低,但控制效果不理想,控制温度精度不高、容易引起震荡,达到稳定点的时间也长,因此,只能用在精度要求不高的场合。电加热炉是典型的工业过程控制对象,在我国应用广泛。电加热炉的温度控制具有升温单向性,大惯性,大滞后,时变性等特点。其升温、保温是依靠电阻丝加热,降温则是依靠环境自然冷却。当其温度一旦超调就无法用控制手段使其降温,因而很难用数学方法建立精确的模型和确定参数,应用传统的控制理论和方法难以达到理想的控制效果。本设计采用大林算法进行温度控制,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节相串联来实现温度的较为精确的控制。关键词:单片机;a/d、d/a;达林算法;传感器;炉温控制目录一、绪论错误!未定义书签。1。1系统设计背景错误!未定义书签。1。2技术综述错误!未定义书签。二、系统总体设计错误!未定义书签。2、1系统概述错误!未定义书签。2、2系统的结构框图错误!未定义书签。三、硬件设计错误!未定义书签。3、1微处理器80C51错误!未定义书签。3、2温度传感器错误!未定义书签。3、3驱动电路错误!未定义书签。3、4键盘模块错误!未定义书签。3、5LED显示模块错误!未定义书签。四、软件设计错误!未定义书签。4、1系统软件设计错误!未定义书签。4、2大林算法的系统设计错误!未定义书签4、3程序控制流程图错误!未定义书签。五、调试运行错误!未定义书签。六、课程设计总结错误!未定义书签。参考文献错误!未定义书签。附录一系统原理图错误!未定义书签。附录二程序错误!未定义书签。绪论1.1系统设计背景近年来,加热炉温度控制系统是比较常见和典型的过程控制系统,温度是工业生产过程中重要的被控参数之一,冶金、机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理均需要对温度进行控制。因此,在工业生产和家居生活过程中常需对温度进行检测和监控。由于许多实践现场对温度的影响是多方面的,使得温度的控制比较复杂,传统的加热炉电气控制系统普遍采用继电器控制技术,由于采用固定接线的硬件实现逻辑控制,使控制系统的体积增大,耗电多,效率不高且易出故障,不能保证正常的工业生产.随着计算机控制技术的发展,传统继电器控制技术必然被基于计算机技术而产生的计算机控制技术所取代。1.2技术综述自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。二、系统总体设计2、1系统概述本设计在硬件部分选择了单片机的AT80C51芯片为核心控制部分,输出为K型热电偶传感器,检测温度后传回单片机系统,最后经过温度控制系统,从而加热电阻,来达到控制电加热炉的目的。2、2系统的结构框图电加热炉控制系统的硬件结构框图如图2。1

图2。1系统的总体结构框图加热炉温度控制实现过程是:首先温度传感器将加热炉的温度传回单片机,然后AT80C51芯片将给定的温度值与反馈回来的温度值进行比较并经过最小拍无纹波算法运算处理后,传给温度控制系统,判断加热器材输出端导通与否从而使加热炉开始加热或停止加热。既加热炉温度控制得到实现•其中单片机的80C51系统为加热炉温度控制系统的核心部分起着重要作用。三、硬件设计3、1微处理器80C51本系统设计的单片机采用80C51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。图3.1单片机芯片引脚图3、2温度传感器在温度传感器部分,选择了K型热电偶传感器。K型热电偶的测温原理热电传感器是利用转换元件的参数随温度变化的特性,将温度和与温度有关的参数的变化转换为电量变化输出的装置。两种不同的导体或半导体组成的闭合回路就构成了热电偶,热电偶两端为两个热电极,温度高的接点为热端、测量端或自由端;温度低的接点为冷端、参考端或自由端•测量时,将工作端置于被测温度场中,自由端恒定在某一温度•热电偶是基于热电效应工作的,热电效应产生的热电势是由接触电势和温差电势两部分组成的。MAX6675单片热电偶数字转换器。其工作原理如下:K型热电偶产生的热电势,经过低噪声电压放大器A1和电压跟随器A2放大、缓冲后,得到热电势信号U1,再经过S4送至ADC。对于K型热电偶,电压变化率为(41uV/°C),电压可由如下公式来近似热电偶的特性。U1=(41uV/C)X(T—T0)上式中,U1为热电偶输出电压(mV),T是测量点温度;TO是周围温度。在将温度电压值转换为相应的温度值之前,对热电偶的冷端温度进行补偿,冷端温度即是MAX6675周围温度与0C实际参考值之间的差值。通过冷端温度补偿二极管,产生补偿电压U2经S4输入ADC转换器.U2=(41uV/C)XT0在数字控制器的控制下,ADC首先将U1、U2转换成数字量,即获得输出电压U0的数据,该数据就代表测量点的实际温度值T。这就是MAX6675进行冷端温度补偿和测量温度的原理如图3-2所示。

3、3驱动电路图3.3驱动电路3、4键盘模块在本次设计当中,输入设备采用矩阵键盘:图3—4键盘模块电路当“设定”键按下时触发键盘中断服务程序由程序程控扫描法确定那个键按下并执行相应的动作。程控扫描的任务是:(1)首先判断是否有键按下。方法:使所有的行输出均为低电平,然后从端口A读入列值。如果没有键按下,则读人值为FFH.如果有链按下.贝9不为FFH.去除键抖动。方法:延时10—20ms,再一次判断有无键按下,如果此时仍有键按下,则认为键盘上确实有键处于稳定闭合期。若有键闭合,则求出闭合键的键值.方法:对键盘逐行扫描。程序中需等闭合键释放后才对其进行处理。3、5LED显示模块图3-5LMO16L液晶模块LM016L液晶模块采用HD44780控制器。HD44780具有简单而功能较强的指令集,可以实现字符移动、闪烁等功能.LM016L与单片机MCU(MicrocontrollerUnit)通讯可采用8位或者4位并行传输两种方式。HD44780控制器由两个8位寄存器、指令寄存器(IR)和数据寄存器(DR)、忙标志(BF)、显示数据RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)、地址计数器(AC).IR用于寄存指令码,只能写入不能读出;DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据.BF为1时,液晶模块处于内部处理模式,不响应外部操作指令和接受数据。DDRAM用来存储显示的字符,能存储80个字符码。CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种,8位字符编码和字符的应关系。四、软件设计4、1系统软件设计控制系统的软件主要包括:温度的采样和处理、控制计算、控制输出、中断、显示、调节参数修改、温度设定及修改。其中控制算法采用最小拍无纹波控制算法,以达到更好的控制效果。考虑到电加热炉是一个非线性、时变和分布参数系统,所以本文采用一种新型的智能控制算法•它充分吸取数学和自动控制理论成果,与定性知识相结合,做到取长补短,在实时控制中取得较好的成果。其中,系统的软件流程图如图*调叫键扫描子稈序丿调用Q转换于程序.JL调用温度控制子程序“谢尼显示予程序-1「辘值复匣「4.1系统软件流程图4、2大林算法的系统设计大林算法中D(z)的基本形式设被控对象为带有纯滞后的一阶惯性环节惯性环节,其传递函数分别为其中t1为被控对象的时间常数册为被控对象的纯延迟时间,为了简化,设其为采

样周期的整数倍,即N为正整数。由于大林算法的设计目标是使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即一®5①&)=t站十1,其中"NT由于一般控制对象均与一个零阶保持器相串联所以相应的整个闭环系统的脉冲传递函数是(2-3)于是数字控制器的脉冲传递函数为如="=亠占(1一严)G(zHl—①⑵]彳刃(2一4)D(z)可由计算机程序实现.由上式可知,它与被控对象有关。下面对一阶纯滞后环节进行讨论。由式(2-1)由式(2-1)的传递函数可知,其脉冲传-Z应十1)皿吒[丄_二^-Kz~naZ--1_11-z-1_S环+1=后』[丄r-——t—]--Kz~naZ--1_11-z-11-异1-厂'怙T卡17)尹[宀-宀戸]1—产—将此式代入(2-4),可得(1・严尹)(1-严)—疋〔1—八山〕[1—尹役(1—旷"育曲]“匚、(2一5)式中:T一一采样周期350秒:——被控对象的时间常数50;闭环系统的时间常数10秒。4、3程序控制流程图1、程序流程基本思路:控制过程:手动输入一个温度设定值,需要调用键盘扫描子程序,再由传感器检测现场的温度值,调用A/D转换子程序,将模拟信号转换为数字信号送单片机处理调用温度控制子程序来实现温度控制,调用显示子程序将处理后的结果送LCD显示。在使用键盘时,要考虑键盘的去抖问题,消抖处理有硬件和软件两种方法:硬件消抖是利用加抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动•我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。2、A/D转换程序流程图如图4-3所示A/D言占呆送显不至+J图4—3A/D转换程序流程图3、温度控制流程图如图4—4所示图4-4温度控制流程图五、调试运行通过Proteus仿真和程序调试,基本完成了设计任务:温度传感器将加热炉的温度传回单片机,然后AT80C51芯片将给定的温度值与反馈回来的温度值进行比较并经过算法处理后,传给温度控制系统,判断加热器材输出端导通与否从而使加热炉开始加热或停止加热,使加热炉温度控制得到实现:LCD1六、课程设计总结两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督•学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。"千里之行始于足下”通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次模具设计,本人在多方面都有所提高•通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次基于达林算法的加热炉温度控制系统设计从而培养和提高学生独立工作能力,巩固与达林算法设计等课程所学的内容,掌握基于达林算法的设计的方法和步骤,掌握达林算法设计的基本的模型,怎样确定设计方案,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补.在此感谢我们的丁健老师。,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次模具设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。参考文献梅丽凤,单片机原理及接口技术,北京:清华大学出版社,2004:19—48,81—93周继明,江世明.传感技术与应用[M],长沙:中南大学出版社,2005:45-56张毅刚,单片机原理及应用,北京:高等教育出版社,2003:126-135顾兴源,计算机控制系统,北京:冶金工业出版社,1981:25-40张连华,单片机应用系统设计方法,北京:科学之友,2010,07:27—28楼然苗,51系列单片机设计实例,北京:北京航空航天出版社,2003.3—35李生明,单片机LED显示接口技术,长江职工大学学报,2003,(4):18—24袁强,基于单片机89C51和89C2051点阵LED图文显示,工程地质计算机应用2006附录一系统原理图F?P1RESPACKSICD1山心8LD2U119152QKZ□1'

03

书W□7MALIKTFLIRST.D..5.6.7D.D.D.D.D.do.DppFFPPPPADDLED-丫HOLDLED-GRS1^eeeP5.ALE山Tzrr対空PIHH円円円円PI012345678DC51U4-t6vA£:□■jPS.DyRM]F3.1.TKDP3怎丽币P3.3/lMfiP3.4HDP3.5/HP3.Ei/WHP3.T?RDP2D/^P2.1//9pa.awt]FZ.3TAI1FZ.^A12P2.S/A10P2.^A1斗P2.7/A15TC1TCKie17D1叫•~LED-BLUEAD匚iGUDHOLD1LI11_12_12釘H228D5T-5CK50T-h65S>附录二程序inc1udeVreg52.h>include<string.h>inc1udeVstdio°h〉^defineucharunsignedchar#defineuintunsignedintsbitrs=P3"3;sbitrw=P3A6;sbiten=P3"7;uchardis2[]={"nowT:”};uchardis3[]={”setT:"};ucharflag=O;uchartemp;sbitS0=P3A1;sbitCS=P3^4;sbitSCK=P3A5;sbitADD=P0入5;sbitSUB=P0A6;sbitHOLD=P0八7;ucharADH,ADL;inti,z,j;voiddelay(uchara){uchari,j;for(i=0;i<a;i++)for(j=0;jV110;j++);}voidwdata(uchardat)//写数据{P1=dat;rs=1;rw=0;en=0;delay(4);en=1;}voidwcom(ucharcom)〃写命令{P1=com;rs=0;rw=0;4en=0;delay(4);en=1;}//初始程序voidinit(void){uchari;。4wcom(0x38);wcom(0x0c);4wcom(0x06);wcom(Ox01);wcom(Ox80);whiIe(dis2[i]!='\0'){wdata(dis2[i]);bbi++;。}}voidgettemper(){binta,b,c,d,T;ADH=ADL=0;SCK=0;//bCS=0;SCK=1;bCS=0;bSCK=O;SCK=1;D11bfor(i=4;i>0;i-—)//D15D11{bSCK=0;bbADH=SO;bADH=ADH〈VI;SCK=1;}bfor(i=8;i〉0;i--)//D10〜3b{SCK=0;bbADL=SO;ADL=ADL〈〈1;bSCK=1;}SCK=0;bflag=SO;SCK=1;bSCK=0;//temp=ADH;//btemp〈V=8;//btemp=temp|ADL;//bT=1023.75大temp/4095;T=ADH*256+ADL;a=T/1O0O;b=(T/100)%10;bc=(T/10)%10;d=T%10;。wcom(0x86);。wdata(a+0x30);wdata(b+0x30);wdata(c+0x30);wdata(d+0x30);wdata('');wdata(zCz);CS=1;}intgetkey(){uchartemp;intc;P2=0x0f;temp=P2;temp=temp&0x0f;〃屏蔽高4位,取列值if(temp==0x0e)c=0;elseif(temp==0x0d)c=1;elseif(temp==0x0b)c=2;elseif(temp==0x07)oc=3;P2=0xf0;〃给P2的高4位高电平,求行值temp=P2;temp=temp&0xf0;//屏蔽低4位if(temp==0xe0)c=c+0;elseif(temp==0xd0)c=c+4;elseif(temp==0xb0)c=c+8;returnc;〃最后返回行加列的值}voidmain(){ointkey;init();wcom(0x80+0x40);owhile(dis3[i]!='\0'){owdata(dis3[i]);oi++;

。while(1)。{gettemper();。P2=OxOf;if((P2&0xOf)!=0x0f)//延时后在判断一次,去除抖动影响bbbbif{bbbbif{key=getkey();//求键盘值wcom(0x80+0x46);wdata(key+Ox30);wdata(1+0x30);wdata(4+0x30);wdata('');wdata('C');if(100*key+14V514){SUB=0;ADD=1;bHOLD=1;}(100*key+14>514){ADD=0;SUB=1;bbbHOLD=1;b}if(100*key+14==514){bbHOLD=0;bbSUB=1;bADD=1;}bbb摘要本设计是一种温度控制系统,温度控制在工业生产和科学研究中具有重要意义.其控制系统属于一阶纯滞后环节,具有大惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行炉温控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等具有重要的现实意义。PID控制法最为常见,控制输出采用PWM波触发可控硅来控制加热通断。使系统具有较高的测量精度和控制精度。单片机控制部分采用AT89S51单片机为核心,采用Kei丨软件进行编程,同时采用分块的模式,对整个系统的硬件设计进行分析,分别给出了系统的总体框图、温度检测调理电路、A/D转换接口电路,按键输入电路以及显示电路,并对相应电路进行相关的阐述软件采用PID算法进行了建模和编程,在Proteus环境中进行了仿真。关键词:PID;单片机;温度扌空制;Keil;ProteusAbstractThisdesignisakindoftemperaturecontrolsystem,Thetemperaturecontro丨inindustriaIproductionandscientificresearchisofgreatsignificance.Belongstopurefirst-orderlaglink,thecontrolsystemhasthecharacteristicsofbiginertia,pureIagandnonlinear,thetraditionalcontrolovershootandadjustmenttimeisong,lowcontroIprecision.Bysinglechipmicrocomputertemperaturecontrol,hassimplecircuitdesign,highaccuracyandgoodcontroIeffect,toimprovetheproductionefficiency,promotetheprogressofscienceandtechnologyhasimportantpracticalsignificance。PIDcontrolisthemostcommon,thecontroloutputPWMwavetriggeringthyristorisusedtocontroltheheatingonandoff。Makethesystemhashighaccuracyofmeasurementandcontrolprecision.Single—chipmicrocomputercontrolpartadoptssinglechipmicrocomputerAT89S51asthecore,UsingKeilsoftwareprogramming,Usingblockpatternatthesametime,analyzesthehardwaredesignofthewholesystem,respectively,oftheoveralIsystemblockdiagramisgiven,thetemperaturedetectioncircuit,A/Dconversioninterfacecircuit,keyinputcircuitanddisplaycircuit,andthecorrespondingcircuitarerelatedinthispaper,thesoftware,thePIDalgorithmisusedformodelingandprogrammingintheProteussimulationenvironment.Keywords:PID;Singlechipmicrocomputer;Thetemperaturecontrol;Keil;Proteus目录错误!未定义书签。错误!未定义书签。2设计方案错误!未定义书签。3系统硬件仿真电路33。1温度测量调理电路错误!未定义书签。A/D转换电路错误!未定义书签。按键输入电路错误!未定义书签。数码管显示电路错误!未定义书签。温度控制电路错误!未定义书签。4程序设计91程序整体设计94.2子程序设计错误!未定义书签。错误!未定义书签4.3源程序设计错误!未定义书签。95软件调试与运行结果41结论42致谢43参考文献441绪论现代工业生产过程中,用于热处理的加热炉,需要消耗大量的电能,而且温度控制是纯滞后的一阶大惯性环节。现有企业多采用常规仪表加接触器的断续控制,随着科技进步和生产的发展,这类设备对温度的控制要求越来越高,除控温精度外,对温度上升速度及下降速度也提出了可控要求,显而易见常规控制难于满足这些工艺要求。随着微电子技术的发展,采用功能强、体积小、价格低的智能化温度控制装置控制加热炉已成为现实.采用单片机来对温度进行控制不仅具有控制方便、简单灵活性等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量,比过去单纯采用电子线路进行PID调节的控制效果要好的多。微机控制系统的快速计算、灵活多样的逻辑判断和高效的信息加工能力使自动控制进入了更高一级的领域,提高了生产过程的自动化程度,减少了人工干预,并不断地完善和满足工农业生产和国防科技日益增长的需要。微机控制系统由于具有成本低、体积小、功耗小、可靠性高和使用灵活等特点,因而广泛的应用于工农业生产、交通运输、国防建设和空间技术等各个领域。其控制对象已从单一的工厂流程扩展到企业生产过程的管理和控制。随着微机和单片机的推广使用,实现信息自动化与过程控制相结合的分级分布式计算机控制,使计算机控制技术的水平发展到一个崭新的阶段。现在,许多常规的控制仪表和调节器已经为计算机所取代。计算机不断地监视整个生产过程,对生产中的各个参数进行采样,迅速进行复杂的数据处理,打印和显示工艺过程的统计数字和参数,并发出各种控制命令。温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。2设计方案在温度测量控制系统中,实际温度值由PT100恒流工作调理电路进行测量。为了克服PT100线性度不好的缺点,在信号调理电路中加入负反馈非线性校正网络;调理电路的输出电压经ADC0808转换后送入单片机AT89S51;对采样数据进行滤波及标定处理后,由3位7段数码管显示。输入的设定值由4位独立按键电路进行设定,可分别对设定值的十位和个位进行加1、减1操作。设定值送入单片机后,由另外一组3位7段数码管显示。数码管的段码由74HC05驱动,位码由三极管2N2222A驱动。为了使两组数码管实时显示,对两组数码管进行动态扫描。整体的电路原理框图如图11所示。图1一1整体电路原理框图系统采用PID闭环控制方案。如图1—2所示,将预置初值与温度传感器反馈信号比较得到偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量的波动。在PID控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小。图12系统控制方案3系统硬件仿真电路3.1温度测量调理电路15RS.0H3.0R2.003®57k1PT100QPH7CA3o^otc■+15□P07CR1.0RS.0H3.0R2.003®57k1PT100QPH7CA3o^otc■+15□P07CR1.0图3—1温度测量调理电路本系统采用恒流工作调理电路,铂电阻选用标称值为100Q的PT1OO作为温度传感器。A1、A2、A3采用低漂移运放OP07C,由于有电流经PT100传感器,所以当温度为0°C时,在PT100传感器上有电压降,这个电压为PT100传感器的偏置电压,是运放A1输出电压的一部分,使恒流工作调理电路的输出实际不为零。所以需要对这个偏置电压调零,R3为调零电阻,其作用为当温度为0C时,将恒流工作调理电路的输出调到零.又因为PT100的电阻特性为非线性,PT100在0到100C变化范围内非线性误差为0。4%(0.4C),由于本系统无小数显示,0.4°C的误差本身不会对A/D量化和数码管显示造成影响,但由于软件编制中,对标度变化程序中的变换系数做了近似处理,使得非线性误差接近0.79%(0.79°C),就有可能对A/D量化和数码管显示造成影响,所以加进了线性化电路,运放A3及电阻R1、R4和R6—同构成了负反馈非线性校正网络。R5用于调整运放A2的增益。电路的调整方法如下(用普通电阻代替PT100进行调整):接入相当于0°C的100Q的电阻,用于R3调零。接入相当于50C的119.70Q的电阻,用于R5调整增益。接入相当于100C的139.10Q的电阻,用于R1或R4调整线性。反复调整多次,在0到100C温度范围内适宜为止.以温度值为横坐标,电压值为纵坐标,由表3-1分析非线性误差可知:在50°C时,存在最大偏差为0。005°C,故非线性校正后非线性误差变为0.1%(0.1°C),A/D量化及数码管显示不会产生误操作。表3—1显示对照表理想温度值010203040506070809010010107。111。11121131。13对应电阻值1003.9985。7119.73.927.435.2139.10.501。01.502。02。3.003。504.9实际输出电压0。002204204505124.0014.49896显示温度值0102030405060708090100注释1;温度单位/°C;电阻值单位/Q;电压单位/V。3.2A/D转换电路本系统采用5V的电压源,用PT100电阻传感器组成的信号调理电路作为信号的输入装置,当PT100传感器置于温度场时,调理电路将根据PT100的阻值输出相应的电压值•将该输出电压送到ADC0808的模拟量输入通道IN0,经ADC0808进行模数转换,将标准的模拟信号转换为等价的数字信号•本设计选用IN0作为模拟量输入通道,则将ADC0808的A、B、C三条地址线均置为低电平。转换启动信号START接到AT89S51的P2.0口,转换结束状态信号EOC接P3.7口,输出允许信号OE接P3.6口,地址锁存允许信号ALE接P3.3口,由于ADC0808内部没有时钟电路,所以用AT89S51的ALE经二分频接ADC0808的CLK端,VREF—接地,VREF+接+5V电压°ADC0808的转换结果输出到AT89S51的P0.0到P0.7口,作为AT89S51的输入信号.A/D转换接口电路如图3—2所示。15J.S3_31心=3£3+TTTrssTSTS7~Sj.::-:7T«L1XT.«1ZP.^TFTHAL£申pana.>wipn.ii'Hi«ipq^hhzpna'Hi-3pns'Hi-spn.&'.AMpn.TWi-7FznvcPZ.IiWP22i'A<]PSi'AHPZ.WAEP^fi'AGP3.&'A1+PS.TrAtf"5"£嘗FinEpppMKSTAJU[;=-IJ2in>CLOCK&T«KTB:<CIMDUZflNDjnJZ3L"55715J.S3_31心=3£3+TTTrssTSTS7~Sj.::-:7T«L1XT.«1ZP.^TFTHAL£申pana.>wipn.ii'Hi«ipq^hhzpna'Hi-3pns'Hi-spn.&'.AMpn.TWi-7FznvcPZ.IiWP22i'A<]PSi'AHPZ.WAEP^fi'AGP3.&'A1+PS.TrAtf"5"£嘗FinEpppMKSTAJU[;=-IJ2in>CLOCK&T«KTB:<CIMDUZflNDjnJZ3L"557冲口再口P3.1iT;-;HF3jnrn]F33TTT口耐P35T1口颐{pi.rnor1口

JZ1731313ZLLEEppp.H.-U呂FAQUTi:CUT!QUTf0UTSQimQUT7QUTBWYVY<<<zi1?7s卫7suuuuuUUUQQQQoQQQIM2IM3IHtIH5I肪IN7AE«D>.aACPC?.L£:Z3zz—Il-<1侶0E[:?VF.EF(+)0EVH.EFH17图3-2A/D转换接口电路3・3按键输入电路本系统采用4个按键搭建键盘电路,如图3-3所示。第一个按键用来判断是转入控制处理程序运行,还是转入键盘处理子程序运行;若未按下则转入控制处理子程序运行,按下则转入键盘处理子程序运行;若第一个按键按下,则第二个按键开始起作用,用第二个按键来判断是十位进行加减操作。若第二个按键未按下,转十位进行加减操作,否则转个位进行加减操作;第三个按键为减一操作,第四个按键为加一操作。为了方便按键操作,将个位和十位的设定值均设置为5,如果加一操作结果等于11,给加一单元重新赋值5,如果减一操作结果等于OFFH,给减一单元重新赋值5。这样考虑最坏情况,即用键盘设置离初始设定值最远的值,第三个按键最多按5次,第四个按键最多按5次.从而大大减少了按键次数,且更方便地给出设定值。第一个键和第二个键的加入,也充分考虑了总程序的整体调度。

>X7AL1X7AL2RSTF'O.O/ADOF0.VAD1P0.27AD2P0.3/AD3P0.-4ZAD4P0.SZAD5POLADSP0.77AD738总432FSENALEEAF2.0/A8P2.1/A9F2.2^10P2.3XAHF'2.4.iA12P2.5XA12P2.6XA14P2.7XA152122232^>X7AL1X7AL2RSTF'O.O/ADOF0.VAD1P0.27AD2P0.3/AD3P0.-4ZAD4P0.SZAD5POLADSP0.77AD738总432FSENALEEAF2.0/A8P2.1/A9F2.2^10P2.3XAHF'2.4.iA12P2.5XA12P2.6XA14P2.7XA152122232^25262728£>STARpOP21&■F22OF23K4K2QZ.Ifl白F'1.0Fd.dF'1.2F'1.3P1.4F'1.5P1.6F'1.7F3.0/RADP2^/TXDF3.2/INTUF3.3/INT-1PS.A-'TUP3.5TT1PM血丽P3.7.W□

rt—■1213303132LEpppAmAEo--图3—3按键输入电路3。4数码管显示电路显示电路采用两个4位LED显示数码管,共阴极接法。第一个数码管显示A/D转换数据采集的采样值,选用3位显示采样值,显示范围为0到100;第二个数码管显示由键盘输入的设定值,用于显示对系统的温度设定,也选用3位显示设定值,显示范围为0到100.由于LED显示电路较多选用动态扫描方式,为了实现LED显示器的动态扫描,除了要给显示器提供段的输入外,还要对显示器的位进行控制,即段控和位控。所以需要用P1口输出8条段控线;位控线由挑选的P2。1、P2。2、P2。3、P3。0、P3.1和P3.2输出,其中P2.1、P2.2和P2。3用于驱动键盘输入的设定值和数码管位控线,其余用于驱动显示A/D转换数码管的数据码位控线,位控线的数目等于数码管显示的位数。P1接口最多可连接8个LED显示器。为提高显示亮度,通常加74HC05进行段控输出驱动,与7段数码管的段码驱动输入端相连,由于位控的驱动电流较大,8段全亮需40到60mA,所以用三极管9012提高驱动能力,其集电极接到7段数码管的位码驱动

输入端,三极管的发射极接地,将AT89S51的P3.0、P3°l、P3.2分别与一个2kQ的电阻连接到三极管的基极,用于驱动采样值显示数码管,将AT89S51的P2.0、P2。1和P2。2口分别与一个2kQ的电阻连接到三极管的基极,用于驱动设定值显示数码管。显示电路如图3—4所示。DPUd1234.«fiBCDEFCDP4234□5J-hJ-J-J-Ji!--■TEir■nr1qs-TE-iT--■in:r.::iTH■XTM耆RATPdPi.iF-iJPi」Fl*p』p』F-i.Tt-PM」IKdttl1FtJMJP6.DPUd1234.«fiBCDEFCDP4234□5J-hJ-J-J-Ji!--■TEir■nr1qs-TE-iT--■in:r.::iTH■XTM耆RATPdPi.iF-iJPi」Fl*p』p』F-i.Tt-PM」IKdttl1FtJMJP6.・・4j.Ff-JM-D卜Ft.TrtTFJ-^-d肚超皿曲6P?JAlI覲沁2JPJjM-i・PZTM-Ii4ILe-Td^s-i-TTnT-Q2-•IT示Q3R1」TDiTlR2-■IF■:T-.R3-■HkT--图3—4显示电路3。5温度控制电路系统的电阻丝和风扇均采用如图3—5所示的电路形式•此电路采用晶体管驱动固态继电器•当P3.4为低电平,继电器RL1吸合;当P3。4或P3。5为高电平时,继电器RL1释放。采用这种控制逻辑可以使继电器在上电复位或单片机复位时不吸合。继电器由晶体管2N2222A驱动,它可以提供所需的驱动电流。FF:-40FF:-40图3-5继电器控制电路PT100温度测控系统的完整电路如图3-6所示。1—U图3—6温度测控系统电路图4程序设计4・1程序整体设计程序的控制思想:设置目标温度后,系统采样水温,并通过预设温度、当前温度、历史偏差等进行PID运算产生f输出参数,通过该参数控制加热时间,从而调节加热器out的平均功率,实现系统的PID控制。整体功能通过主程序和中断服务程序配合实现。主程序流程:系统首先初始化I/O、定时器,之后进入主循环,进行温度采样和相关处理.在系统运行过程中通过按键重新设置目标温度值。\PT100温度测控系统的主程序流程图如图4-1所示。图4-1温度测控系统主程序4・2子程序设计PID控制的实现(1)PID简介。PID(ProportionalIntegra丨Derivative)控制是控制工程中技术成熟、应用广泛的一种控制策略,经过长期的工程实践,已形成了一套完整的控制算法和典型的结构。它不仅适用于数学模型已知的控制系统,而且对于大多数数学模型难以确定的工业过程也可以应用,在众多工业过程控制中取得了满意的应用效果。(2)PID工作原理。由于来自外界的各种扰动不断产生,要想达到现场控制对象值保持恒定的目的控制作用就必须不断地进行.若扰动出现使得现场控制对象(以下简称被控参数)发生变化,现场检测元件就会将这种变化采集后经变送器送到PID控制器的输入端,并与其给定值(以下简称SP值)进行比较得到偏差值(以下简称e值),调节器按此偏差并以预先设定的整定参数控制规律发出控制信号,去改变调节器的开度,使调节器的开度增加或减小,从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论