基于大林算法的温度控制系统设计.docx

上传人:李司机 文档编号:5771202 上传时间:2023-08-18 格式:DOCX 页数:40 大小:258.63KB
返回 下载 相关 举报
基于大林算法的温度控制系统设计.docx_第1页
第1页 / 共40页
基于大林算法的温度控制系统设计.docx_第2页
第2页 / 共40页
基于大林算法的温度控制系统设计.docx_第3页
第3页 / 共40页
基于大林算法的温度控制系统设计.docx_第4页
第4页 / 共40页
基于大林算法的温度控制系统设计.docx_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《基于大林算法的温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于大林算法的温度控制系统设计.docx(40页珍藏版)》请在三一办公上搜索。

1、本用工学黄/计算机限制技术课程设计2015/2016学年其次学期设计课题:基于大林算法的电路温度限制系统的设计专业:班级:_学号:姓名:一第一章课题简介11.l课题的目的11.1.1 本机实现的功能1扩展功能:11.2课题的任务与要求2其次章系统方案设计22.1 水温限制系统的总体介绍22.2 系统框图32.3 闭环系统的工作原理3第三章系统硬件设计43.1 系统原理图43.2 单片机最小系统设计5第四章大林限制算法设计74.1 大林限制算法原理:74.2 限制器的设计与公式推导过程84.3 采样周期的选择:9第五章水温限制系统的仿真105.2 Matlab仿真135.3 大林算法限制系统编程

2、设计:145.4 各模块子程序设计165.4.1 主程序设计165.4.2 读出温度子程序165.5.3 数码管显示模块185.5.4 温度处理程序19第六章小结与体会20第七章参考文献21第八章附录23第一章课题简介1.l课题的目的1.1.1 本机实现的功能(1)利用温度传感器采集到当前的温度,通过AT89S52单片机进行限制,最终通过LED数码管以串行口传送数据实现温度显示。(2)可以通过按键随意设定一个恒定的温度。(3)将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动限制。(4)当系统出现故障,超出限制温

3、度范围时,自动蜂鸣报警。1.1.2 扩展功能:(1)具有通信实力,可接收其他数据设备发来的吩咐,或将结果传送到其他数据设备。(2)采纳适当的限制方法实现当设定温度或环境温度突变时,减小系统的调整时间和超调量。(3)温度限制的静态误差。一升水由800W的电热设备加热,要求水温可以在肯定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。(1)温度测量范围:oooc,最小区分度不大于(2)限制精度在0.2。C以内,温度限制的静态误差小于(3)用十进制数码管显示实际水温。其次章系统方案设计2.1 水温限制系统的总体介绍本次设计采纳采样值和键盘设定值进行比较运算的方法来简洁精

4、确地限制温度。先通过键盘输入设定温度,保存在AT89S52单片机的指定单元中,再利用温度传感器DS18B20进行信号的采集,送入单片机中,保存在采样值单元。然后把采样值与设定值进行比较运算,得出限制量,从而调整继电器触发端的通断,来实现将水温限制在肯定的范围内。当水温超出单片机预存温度时,蜂鸣器进行报警。单片机限制系统是一个完整的智能化的集数据采集、显示、处理、限制于一体的系统。由传感器、LED显示单片机与执行机构限制部分等组成。2.2 系统框图DS18B20 温度传感器AT89S52单片机按键加热继电器指示灯 蜂鸣器LED显示2.3 闭环系统的工作原理本设计以AT89S52单片机系统进行温度

5、采集与限制。温度信号由模拟温度传感器DS18B20采集输入AT89S52,利用温度传感器采集到当前的温度,通过AT89S52单片机进行限制,最终通过LED数码管以串行口传送数据实现温度显示。可以通过按键随意设定一个恒定的温度。将水环境数据与所设置的数据进行比较,当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热,从而实现对水温的自动限制。当系统出现故障,超出限制温度范围时,自动蜂鸣报警。用单片机限制水温可以在肯定范围内设定,并能在环境温度改变时保持温度不变。第三章系统硬件设计3.1 系统原理图在温度测量限制系统中,实际温度值由PTloO恒流工作调理电路进行测量。为了克服

6、PTlOO线性度不好的缺点,在信号调理电路中加入负反馈非线性校正网络;调理电路的输出电压经ADC0808转换后送入单片机AT89S51;对采样数据进行滤波与标定处理后,由3位7段数码管显示。输入的设定值由4位独立按键电路进行设定,可分别对设定值的十位和个位进行加1、减1操作。设定值送入单片机后,由另外一组3位7段数码管显示。数码管的段码由74HCO5驱动,位码由三极管2N2222A驱动。系统采纳PID闭环限制方案。将预置初值与温度传感器反馈信号比较得到偏差进行PID运算处理得到限制量(u),通过此量来限制加热器的加热时间,从而限制加热功率。由于水本身具有很大的热惯性,所以必需对水温的改变趋势作

7、出预料,并且依据须要与时反方向抑制,以防止出现较大的超调量的波动。在PlD限制中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以该方案最终采纳PD算法,能够很好的限制超调,并且稳态误差也很小。3.2 单片机最小系统设计基本的AVR硬件线路,包括以下几部分:复位线路的设计AT89S52已经内置了上电复位设计。并且在熔丝位里,可以限制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简洁:干脆拉一只IOK的电阻到VCC即可(R6)。为了牢靠,再加上一只SluF的电容(CO)以消退干扰、杂波。D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0

8、.5V左右,另一作用是系统断电时,将Rl(IOK)电阻短路,让CO快速放电,让下一次来电时,能产生有效的复位。当AVR在工作时,按下SO开关时,复位脚变成低电平,触发AVR芯片复位。重要说明:实际应用时,假如你不须要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。即这部分不须要任何的外围零件。+5图3-2复位电路设计(2)晶振电路的设计Mega16已经内置RC振荡线路,可以产生IM、2M、4M、8M的振荡频率。不过,内置的终归是RC振荡,在一些要求较高的场合,比如要与RS232通信须要比较精确的波特率时,建议运用外部的品振线路。早期的90S系列,晶振两端均须要接22pF左右的电容。

9、Mega系列实际运用时,这两只小电容不接也能正常工作。不过为了线路的规范化,我们仍建议接上。重要说明:实际应用时,假如你不须要太高精度的频率,可以运用内部RC振荡。即这部分不须要任何的外围零件。7.73728Tla,XTALpci=pC222pF22pF图3-3晶振电路设计电源设计AVR单片机最常用的是5V与3.3V两种电压。本线路以转换成5V直流电压,电路须要变压器把220沟通电压转换成28V沟通电,再通过整流器,把沟通电转化成直流电,通过7809和7805三端正电源稳压电路转化成直流5V。电源如图3-4。图34电源电路设计图第四章大林限制算法设计4.1 大林限制算法原理:在很多工业过程中,

10、被控对象一般都有纯滞后特性,而且常常遇到纯滞后较大的对象。美国IBM公司的大林,在1968年提出了一种针对工业生产过程中,含有纯滞后对象的限制算法,具有较好的效果。假设带有纯滞后的一阶、二阶惯性环节的对象为:,KeTSGKS)=cTs+14 (s)=Kets( + l)(sl)式中,丁为纯滞后时间,乙、4为时间常数,K为放大系数。为简洁起见,设。=NT,N为正整数。大林算法的设计目标是设计合适的数字限制器,使整个闭环系统的传递函数为具有时间纯滞后的一阶惯性环节,而且要求闭环系统的纯滞后时间等于对象的纯滞后时间。4.2 限制器的设计与公式推导过程被控对象的传递函数:6(s) = W、/s+l()

11、采样周期T=Is,期望闭环传递函数的惯性时间常数:=4s设期望闭环传递函数为:(s) =4s+l-2s e系统的广义对象传递函数:以S)=E4=SWv7sv7ss+10系统广义对象的脉冲传递函数为:rfXl-el101Z(A)(l-ef3l-e-10.632z37ss+10l-e-rzz1l-e1z,1-0.368z1系统的闭环脉冲传递函数为:(Z)=ZEJ7e%;,|_S4s+lJ1-0.779z1数字限制器的脉冲传递函数为:(z)=*r2=;六,G(Z)1-(Z)1-0.779z1-0.29Iz当输入为单位阶跃时,输出为:QQlr73Y(z)=(z)R(z)=H=O.221Z3-0.124

12、ZM+O.284z5+.(1-0.779z1)(1-ZT)限制量的输出为:0. 350 (1-0. 368z 1) (10. 779Zl)(I-ZT)=0. 350+0. 129z1+.,一、K(z)O.221z31-0.368z1一两一(l-0.779z|)(1-z*0.632z-4.3 采样周期的选择:在本试验中,定时中断间隔选取WOms,采样周期T要求既是采样中断间隔的整数倍,又要满意,而由被控对象的表达式可知,所以取N=I,=T,=ls,T=Iso因为,yr(k)=m(k)-m(k-iV)=m(k)=m(k-l),因为采样周期T=Is,定时中断为1s,就是说1个定时中断后进行采样。第五

13、章水温限制系统的仿真5.1振铃现象干脆用上述限制算法构成闭环限制系统时,人们发觉数字限制器输出U(Z)会以1/2采样频率大幅度上下摇摆。这种现象称为振铃现象。振铃现象与被控对象的特性、闭环时间常数、采样周期、纯滞后时间的大小等都有关系。振铃现象中的振荡是衰减的,并且于由被控对象中惯性环节的低通特性,使得这种振荡对系统的输出几乎无任何影响,但是振铃现象却会增加执行机构的磨损。在交互作用的多参数限制系统中,振铃现象还有可能影响到系统的稳定性,所以,在系统设计中,应设法消退振铃现象。可引入振铃幅度RA来衡量振荡的剧烈程度。振铃幅度RA的定义为:在单位阶跃信号的作用下,数字限制器D(z)的第。次输出与

14、第1次输出之差值。设数字限制器D(Z)可以表示为:D=kz弋+的丁3;W.1+4Z+4,Z,其中2(z) =+仇Z 1 + b?z 2 +1 + alzl + a2z2 +(5-2)那么,数字限制器D(Z)输出幅度的改变完全取决于Q(z),则在单位阶跃信号的作用下的输出为:Q(Z)_+叱+2+I-ZTl+(q-l)z-1+(%-al)z2+(5-3)=1Sq+l)z1(%a,+a)z2+依据振铃的定义,可得:RA=1一(4al+1)=a1-b(5-4)上述表明,产生振铃现象的缘由是数字限制器D(Z)在Z平面上位于z=-l旁边有极点。当Z=-I时,振铃现象最严峻。在单位圆内离Z=-I越远,振铃现

15、象越弱。在单位圆内右半平面的极点会减弱振铃现象,而在单位圆内右半平面的零点会加剧振铃现象。由于振铃现象简洁损坏系统的执行机构,因此,应设法消退振铃现象。大林提出了一个消退振铃的简洁可行的方法,就是先找造成振铃现象的因子,然后令该因子中的z=l.这样就相当于取消了该因子产生振铃的可能性。依据终值定理,这样处理后,不会影响输出的稳态值。本设计的被控对象是含有纯滞后的一阶惯性环节,大林算法求得的数字限制器为式:D()=(/)(1一7“k(li-s*_(1_er)ZS(5-5)有可表示为式3-14所示:、(-e-f)O-ez-i)IJ(Z)=-:-Z(I-e,)1+(1-)(z,+z2+z-N)(l-

16、ZT)(5-6)可能引起振铃现象的因子是式3-15所示:l+(l-erzr)(z,z2+z-7V)(5-7)其振铃的幅度为:RA=e,-e-,(5-8)依据r值的不同,有一下几种状况:(1)当r=0时,不存在振铃极点因子,此时不产生振铃现象(2)当r=l时,存在一个极点Z=-(I-夕”);=r1时,z-l,存在严峻的振铃。当r=2时,存在极点Z=-(l-D(1-/)一(1一D当vT时,z-,Z-I时,存在振铃现象。对于r=2时的振铃极点,令Z=I代入式中可得:N、(1-4/-)(1-4-zT)4(1-enr)(1-z-1)1+(1-erzr)(z1+z2+z-r)l(1-e-r7r)(1-e-

17、r7rz-l)=4(1-e,(3-e-,r)(1-z-l)此时就求得的消退振铃的数字限制器D(Z)表达式为小、(1-/)(1一e%Z-I)(Z)4(1-产1)(3-2ef)(1-Z-1)(1-0)(1-e1z1)4(1-0)(3-2e-l)(1-z-1)5.2Matlab仿真MatIab仿真图(无振铃现象)5.2 大林算法限制系统编程设计:依据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后依据实时性的要求,合理地支配监控软件和各执行模块之间地调度关系。本部分具体介绍了基于AT89S52单片机的多路温度采集限制系统的软件设计。依据系统功能,可以将系统设计分为若干个子程序进行设计,如温

18、度采集子程序,数据处理子程序、显示子程序、执行子程序。采纳KeiluVision3集成编译环境和C语言来进行系统软件的设计。本章从设计思路、软件系统框图动身,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满意任务需求的程序。采集到当前的温度,通过LED数码管实现温度显示。通过按键随意设定一个恒定的温度将水环境数据与所设置的数据进行比较。当水温低于设定值时,开启加热设备,进行加热;当水温高于设定温度时,停止加热。当系统出现故障,超出限制温度范围时,自动蜂鸣报警并对温度进行实时显示。采纳C语言编写代码,鉴于篇幅限制与DS18B20的应用已经规范和成熟,本文仅就主程序流程图和显示子程

19、序流程图与其代码进行说明。通过定时器ToP3.4的定时来实现,在此不再赘述。有关DS18B20的读写程序,编程时序分析等请见附录三。功能主程序流程图主程序通过调用温度采集子程序完成温度数据采集,然后调用温度转换子程序转换读取温度数据,调用显示子程序进行温度显示和推断温度数据。主程序(见附录二)调用四个子程序,分别是温度采集程序、数码管显示程序、温度处理程序和数据存储程序。温度采集程序:对温度芯片送过来的数据进行处理,进行推断和显示。数码管显示程序:向数码的显示送数,限制系统的显示部分。温度处理程序:对采集到的温度和设置的上、下限进行比较,做出推断,向继电器输出关断或闭合指令。数据存储程序:对键

20、盘的设置的数据进行存储。图1系统总流程图5.3 各模块子程序设计主程序设计主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每Is进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图2所示。通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两个单元中,然后通过调用显示子程序显示出来。图2主程序流程图读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。DS18B20的各个吩咐对时序的要求特殊严格,所以必需依据所要求的时序才能达到预期的目的,同时,要留意读进来的是

21、高位在后低位在前,共有12位数,小数4位,整数7位,还有一位符号位。DS18B20的数据读写是通过时序处理位来确认信息交换的。当总线限制器发起读时序时,DS18B20仅被用来传输数据给限制器。因此,总线限制器在发出读暂存器指令旧Eh或读电源模式指令B4H后必需立即起先读时序,DS18B20可以供应恳求信息。全部读时序必需最少60us,包括两个读周期间至少IUS的复原时间。当总线限制器把数据线从高电平拉到低电平常,读时序起先,数据线必需至少保持Ius,然后总线被释放在总线限制器发出读时序后,DS18B20通过拉高或拉低总线上来传输1或Oo当传输逻辑O结束后,总线将被释放,通过上拉电阻回到上升沿状

22、态。从DS18B20输出的数据在读时序的下降沿出现后15US内有效。因此,总线限制器在读时序起先后必需停止把I/O脚驱动为低电平15us,以读取I/O脚状态。图3读出温度子程序数码管显示模块本系统采纳八位共阳极数码管,用模拟串口的动态显示数据。其流程图如图4所示:图4数码管显示流程图温度处理程序基于单片机水温限制系统通过DS18B20温度传感器采集到的温度和设置的温度上、下限进行比较得出结果。假如低于下限温度或是高于上限温度,则报警器进行进行报警。第六章小结与体会这次的课程设计安排到两个人一组完成,虽然只有短短的两周时间,但是通过这些天的学习使我收获巨大,让我更加深刻的复习了课本学问,使得自己

23、在专业技能和动手实力方面有了很大的提高,为以后自己进入社会打下了一个良好的基础。在这次的课程设计过程中,我与周航一组,我很感谢老师对我的指导与同学的帮助,我主要负责软件的仿真,周航负责硬件系统的设计。在大林限制算法的设计中,遇到了很多的难题,对于原理概念非常模糊,一些公式也忘了如何去运用,拿出了以前的课本对遗忘的学问进行了回顾,在同学的帮助下,与周航的探讨中一步一步的完成了限制器的设计和大林算法公式的推导。使得我能够顺当的完成此次的课程设计,通过完成这次的课程设计,使我深刻的体会到了团队的重要性,这次的课程设计很,但两人一组的团队的合作使课程设计简洁了很多,每个人都有明确的分工,这样,再加上自

24、己的努力终能取得胜利。感谢此次的课程设计让我收获良多!第七章参考文献于海生主编,微型计算机限制技术M,北京:清华高校出版社,2009李小坚,赵山林,冯晓军,龙怀冰.ProtelDXP电路设计与制版好用教程(第2版).北京:人民邮电出版社.2。09全国高校生电子设计竞赛组委会,全国高校生电子设计竞赛获奖作品选编(第一届-第五届).北京:北京理工高校出版社2004张琳娜,刘武发.传感检测技术与应用.北京:中国计量出版t.l999沈德金,陈粤初.MCS-51系列单片机接口电路与应用程序实例.北京:北京航空航天高校出版社1990周立功等.增加型80C51单片机速成与实战.北京:北京航空航天高校出版社2

25、003.7马忠梅等.单片机的C语言应用程序设计,北京:北京航空航天高校出版社社.1998.10胡汉才.单片机原理与接口技术.北京:清华高校出版社社.19969李志全等.智能仪表设计原理与应用.北京:国防工业出版社.1998.610何立民.MCS-51系列单片机应用系统设计.北京:北京航空航天高校出版社.1990.1第八章附录附录一:系统程序#include/52系列头文件#include#defineucharunsignedchar#defineuintunsignedintsbitds=P34;sbitdula=P26;sbitbeep=Pl4;sbitled=Pll;sbitjdq=Pl

26、O;uinttemp,t,w;ucharflag;floatf_temp;uintlow;uinthigh;sbitledl=PlO;sbitled2=Pll;sbitsl=P35;sbits2=P36;定义蜂鸣器/定义整型的温度数据定义浮点型的温度数据/定义温度下限值是温度乘以10后的结果/定义温度的上限值/限制发光二极管/限制发光二极管sbits3=P37;ucharflagl,flag2,flag3,flag4,slnum,qian,bai,shi,ge;ucharcodetable=OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,0x

27、c6;共阳数码管段码表ucharcodetable1=(0x40,0x79,0x24,0x30,Ox19,OXl2,0x02,0x78,0x00,0x10;带小数点的编码voiddelay(ucharz)延时函数(uchara,b;for(a=z;a0;a)for(b=1OO;bO;b);)voidinit()(EA=I;ET1=1;TR1=1;TMOD=OxIO;THl=(65536-4000)256;TLl=(65536-4000)%256;flag=O;high=1OO;jdq=l;)voiddidi()(beep=O;led=O;delay(500);beep=l;led=l;dela

28、y(500);)voiddsreset(void)/DS18b20复位,初始化函数uinti;ds=O;i=103;延时最短480USwhile(i0)i;ds=l;等待16-60us,收到低电平一个约60-240us则复位胜利i=4;while(iO)i;)bittempreadbit(void)(uinti;bitdat;ds=O;i+;ds=l;i+;i+;dat=ds;i=8;while(iO)i-;return(dat);)uchartempread(void)(uinti,j,dat;dat=O;for(i=l;i=8;i+)j=tempreadbit();dat=(jl);读1位

29、数据函数i+起到延时作用读1字节的数据函数读出的数据最低位在最前面,这样刚好一个字节在dat里return(dat);)voidtempwritebyte(uchardat)/向DS18B20写一个字节的数据函数uinti;ucharj;bittestb;for(j=l;jl;if(testb)/写1(ds=O;i+;i+;ds=l;i=8;while(iO)i-;else/写Ods=O;i=8;while(iO)i;ds=l;i+;i+;)voidtempchange(void)(dsreset();delay(l);tempwritebyte(Oxcc);tempwritebyte(0x4

30、4);)/DS18B20起先获得温度并转换写跳过读ROM指令写温度转换指令读取寄存器中存储的温度数据uintget_temp()uchara,b;dsreset();delay(l);tempwritebyte(Oxcc);写跳过读ROM指令tempwritebyte(Oxbe);写温度转换指令a=tempread();读低8位b=tempread();读高8位temp=256*b+a;f_temp=temp*0.0625;温度在寄存器中为12位,辨别率为0.0625temp=f_temp*10+0.5;乘以10表示小数点后面只取一位returntemp;/temp是整型voidkeyscan

31、()(if(sl=O)P2=0xff;delay(5);if(sl=O)(while(!sl);slnum+;if(sInum=I)11ag=l;if(slnum=2)slnum=O;flag=O;if(sInum=I)flag=l;if(s2=0)delay(5);if(s2=0)while(!s2);high+=10;if(high=1000)high=100;delay(5);if(s3=0)while(!s3);high-=10;if(high=O)high=100;voidmain()主函数(i11it();while(l)(tempchange();/温度转换函数if(temp=h

32、igh-l0)&(temphigh)&(temphigh+10)(jdq=l;didi();)voidtime1()interrupt3THl=(65536-4000)256;TLl=(65536-4000)%256;t+;keyscan();if(ag=O)if(t=4)t=O;switch(t)(case1:PO=tableget_temp()/1OO;P2=0xfd;break;case2:PO=table1get-temp()%1OO/10;P2=0xfb;break;case3:P0=tableget_temp()%10;P2=0xf7;break;)if(ag=l)if(t=4)t=0;switch(t)(caseOrPO=Oxff;P2=0xfe;break;caseIrPO=Oxff;P2=0xfd;break;case2:P0=tablehigh/100;P2=0xfb;break;case3:P0=tablehigh%100/10;P2=0xf7;break;班级:姓名:学号:1 .简要叙述系统的工作原理。2 .简述复位电路设计原理。3 .系统如何产生报警?4 .简述大林算法的原理。5 .采样周期如何确立?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号