计算机控制技术课程设计实验报告继电器水温控制系统.doc

上传人:文库蛋蛋多 文档编号:2931499 上传时间:2023-03-03 格式:DOC 页数:21 大小:360KB
返回 下载 相关 举报
计算机控制技术课程设计实验报告继电器水温控制系统.doc_第1页
第1页 / 共21页
计算机控制技术课程设计实验报告继电器水温控制系统.doc_第2页
第2页 / 共21页
计算机控制技术课程设计实验报告继电器水温控制系统.doc_第3页
第3页 / 共21页
计算机控制技术课程设计实验报告继电器水温控制系统.doc_第4页
第4页 / 共21页
计算机控制技术课程设计实验报告继电器水温控制系统.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《计算机控制技术课程设计实验报告继电器水温控制系统.doc》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计实验报告继电器水温控制系统.doc(21页珍藏版)》请在三一办公上搜索。

1、计算机控制技术课程设计实验报告题 目: 继电器水温控制系统 院 (系): 电子工程与自动化学院 专 业: 自动化 学 号: 姓 名: 指导教师: 实验日期: 2011 年 9 月 16 日摘 要 在工农业生产和日常生活中,对温度的检测和控制有着非常重要的意义和实际应用。而计算机控制系统的应用发展,使得科学研究、工农业生产、工艺时间的效率大大的提高本设计是一个基于AT89C52单片机的继电器自动水温控制系统,该系统具有实时显示、温度测量、温度设定功能并能根据设定值对环境温度进行调节实现控温的目的,控制算法基于数字PID算法。温度测量范围从0100 ,温度控制范围为2090,测量的精度为1,超调量

2、小于5%,实验结果表明,本系统能较好地控制水温,满足我们的要求。关键词: 继电器;AT89C52; 水温控制系统;PIDAbstract In the industry and agriculture production or the daily life, the temperature examination and control has a very vital significance and the practical application. And with the develop- ment of computer control system, the efficienc

3、y of scientific research、the industry and the agriculture production has get a big enhancement.This design is a relay automatic water temperature control system based on AT89C52. It has the real time display, the temperature survey、hypothesis and can carry on the adjustme- nt according to the settin

4、g value. The control algorithm based on the digital PID algorithm. The temperature survey scope from 0+100 , the temperature control scope for 2090, the survey precision for 1, is smaller than over 5%. The experimental result indicated that this system can control the water temperature well, satisfi

5、es our request.Key words: relay;AT89C52; emperature control system; PID目 录引言11 课程设计概述11.1 课程设计题目11.2 设计要求:11.3 主要设备和芯片12 总体设计及方案论证:12.1 总体设计框图12.2 方案论证22.2.1控制电路的方案选择22.2.2测温电路方案的选择22.2.3软件算法方案选择23 硬件设计33.1 最小系统部分33.2 温度采集电路43.3 键盘、显示电路43.4 继电器执行控制电路53.5 串口与PC机通信电路64 软件设计与实现74.1 软件流程图74.2 控制算法PID115

6、 系统调试115.1 最小系统部分调试115.2 串口与上位机通信部分调试115.3 继电器部分调试115.4 测温部分调试126 PID参数整定127 测试数据及结果分析138 结论13谢 辞14参考文献15附 录16引言随着人们生活水平的提高,对生活环境的要求也越来越高,家用电器越来越趋向于自动控制控制乃至于智能控制,针对目前家庭的实际需要,自动水温控制系统比较方便实用,本文就通过51系列单片机来实现一种自动控制水温控制系统的设计。该系统能实时反映当前温度信息,通过液晶屏直观的显示给用户,用户可通过键盘自行设定温度,系统通过PID调节能使温度保持在预设定值。1 课程设计概述1.1 课程设计

7、题目继电器水温控制系统。1.2 设计要求:用热敏元件设计测温电路;功率元件继电器进行交流电的功率调整;控制范围4090;控制精度1%;系统超调量5;通过键盘进行温度设置;实际温度可以实时显示。1.3 主要设备和芯片5V电源1台数字示波器1台普通万用表 1个继电器1个DS18B20测温元件;1个AT89S52芯片,1片MAX232芯片,1片LCD1602液晶显示器;1个2 总体设计及方案论证:2.1 总体设计框图对题目进行深入的分析和思考,可将整个系统分为以下几个部分:测温电路、控制电路、功率电路和加热装置。系统框图如图1所示。图1 系统框图2.2 方案论证2.2.1控制电路的方案选择方案一:采

8、用运放等模拟电路搭建一个控制器,用模拟方式实现PID控制,对于纯粹的水温控制,这是足够的。但是附加显示、温度设定等功能,还要附加许多电路,稍显麻烦。同样,使用逻辑电路也可实现控制功能,但总体的电路设计和制作比较烦琐。方案二:采用FPGA实现控制功能。使用FPGA时,电路设计比较简单,通过相应的编程设计,可以很容易地实现控制和显示、键盘等功能,是一种可选的方案。但与单片机相比,价格较高,显然大材小用。方案三:采用单片机最小系统同时完成控制、显示、键盘等功能,电路设计和制作比较简单,成本也低,是一种非常好的方案。 综上所述本设计采用方案三作为控制电路。2.2.2测温电路方案的选择方案一:采用热敏电

9、阻作为测温元件。热敏电阻精度高,需要配合电桥使用,要实现精度测量需要配上精密较高的电阻。此外还需要制作相应的调理电路。方案二:半导体温度传感器作为测温元件,半导体温度传感器应用也很广泛,它的精度、可靠性都不错,价格也适中,使用比较简单,是一个较好的选择。综上所述本设计采用方案二作为测温电路。2.2.3软件算法方案选择方案一:采用模糊控制算法,对于一个典型的模糊控制系统,考虑它的输入信号有偏差和偏差变化率两种,输出信号为控制信号。根据测试经验,可选取三角型隶属函数,分为正大、正中、正小、正零、零、负零、负小、负中、负大,9个档次。然后根据控制规则列出规则基表。这种控制方法能够较精确的实现设计要求

10、,但是考虑到单片机的存储量,和实时性,不采取这种尚未完全推广的控制方法。方案二:采用经典PID控制算法和根据实验数据分区间控制的算法,对于温度系统来说,被控对象没有精确的数学模型。热得快加热使得水温具有有热惯性,而且检测的实时数据是检测点附近的实时温度并不能完全体现1升水的实际温度,所以经典PID控制算法不能满足设计要求,还必须根据实验数据进行调整。这种控制算法基本能够满足设计要求,且通用性较强。本设计采用方案二作为控制算法。3 硬件设计整个系统以单片机AT89S51为核心部件,在51最小系统外围添加了温度检测、键盘输入、液晶显示部分以及继电器构成的执行部件。3.1 最小系统部分设计选择的单片

11、机芯片是AT89S51。AT89S51具有如下特点:4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。P3.4作为继电器控制端口;P3.5作温度检测元件输入端口;P1口键盘扫描端口;P0口作LCD液晶显示数据输入端口P3口作为上位通信串口输入端。图2 最小系统部分3.2 温度采集电路DS18B20温度传感器简介:DS18B20为单线数字温度传感器,支持“一线总线”接口,大大提高了系统的抗干扰性,

12、应用于温控控制、工业系统、消费品、温度计或任何热感测系统。DS18B20具有以下特性:1、 零待机功耗;2、 无需外部器件;3、 可通过数据线供电;4、 温度以9位数字量读出;5、 独特的单线接口仅需一个端口引脚进行通讯;6、 测温范围-55+125,在-10+85内,精度为0.5。 测温电路设计:电路采用温度传感器DS18B20,可直接输出数字量,单线器件和单片机的接口只需一根信号线,所以本设计的硬件电路十分简单,容易实现。能达到0.5C的固有分辨率,使用读取温度暂存寄存器的方法能达到0.2C以上的精度。 18B20连接电路图如图3所示图3 温度采集电路3.3 键盘、显示电路在键盘输入方面,

13、选用常用的44扫描键盘,分别用作PID模式选择、温度设定值输入、确定或取消设置。在显示方面,选用了常用的显示容量为162个字符的液晶显示模块LCD1602。通过相应的软件编程,可以实现比较美观和丰富的显示界面。模块连接电路图如图4所示。 图4 键盘、显示电路3.4 继电器执行控制电路通过给I/O端口高低电位来控制继电器的通断,继而控制热得快加热的占空比(平均功率),以达到控制水温的目的。电路设计如下图5 继电器控制电路其中,三极管NPN9014为控制开关作用,当输入高电平,NPN饱和导通,继电器线圈通电,触电吸合,使220V电源接通。反之,当输入低电平,NPN截止,继电器线圈断电,触点断开。电

14、阻R19为限流电阻,主要起限流作用,降低晶体管T1的功耗。电阻Rxl使晶体管有效截止。D1为续流二极管(本设计采用IN4007),其作用是保护NPN,当继电器吸合, D1截止,不影响电路工作。继电器释放时,由于继电器线圈存在电感,这时NPN已经截止,所以会在线圈的两端产生较高的感应电压。此电压的极性为上负下正,正端接在NPN的集电极上,当感应电压与Vcc之和大于NPN三极管的集电极反向电压时,NPN可能损坏,加入二极管,继电器线圈产生的感应电流从二极管流过,使三极管NPN得到保护。3.5 串口与PC机通信电路随着计算机技术的快速发展和广泛应用,上位机和下位机的主从工作方式为工业控制以及自动控制

15、系统 所采用。由于PC机分析能力强,处理速度更快及单片机使用灵活方便等特点,所以一般将PC机作为上位机,单片机作为下位机,二者通过RS-232接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据经行处理或显示。51单片机有一个全双工的串行通讯口,利用其RXD和TXD与外界进行通信。单片机串口有3条引线:TXD发送数据、RXD接收数据、GND信号地。因此在通信距离较短时可采用零MODEM方式,简单三线连结构。PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而51单片机的串行通信是由TXDRXD来进行全双工通信的,它们的电平是TIL

16、电平;为了PC机与51单片机之间能可靠地进行串行通信,需要电平转换芯片,这里采用MAX232芯片进行转换。该部分电路作为拓展应用,电路如图6所示。图6 串口与PC机通信电路综上所述,本着简单、实用的原则,最后选用了一个比较典型的硬件方案:测温电本路选用DS18B20集成数组测温电路;控制芯片采用常见的AT89S51,显示方式采用162字符液晶显示器1602键盘采用4X4按键4 软件设计与实现4.1 软件流程图本设计实现对1L左右水的温度的测量并用液晶显示,使待测水温的静态误差在1C范围以内。温度设定范围为20100C,最小区分度为1C,标定温差1C。同时当水温达到设定值时在环境温度降低时温度控

17、制的静态误差1C。主程序流程图如图10所示,实现对范围、温度值的设定,执行、显示实时温度。控制算法流程图如图12、图13所示,实现对温度的控制图4-1 系统主程序流程图图4-2 温度采集与控制子程序图4-3 PID算法子程序图4-3 加热控制量自校正子程序4.2 控制算法PID由于该系统为闭环控制系统,故可采用PID控制算法。在计算机控制系统中,PID控制规律的实现必须用数值毕竟的方法,当采样周期相当短时,用求和代替积分,用后向差分代替微分,使模拟PID离散化为差分方程。由于该系统需要采取PWM的脉宽周期作为控制量,故采取数字PID增量型控制算法。数字PID增量型控制算式:式中,为比列系数;=

18、为积分系数;本设计中,控制参量为热得快的加热时间5 系统调试首先对硬件初步检查:检查原理图与PCB图是否一致;原理图与器件的引脚是否一致;用万用表检查是否有虚焊,引脚短路现象。确定无误再进行各模块调试,软件的调试和硬件调试配合进行。5.1 最小系统部分调试最小系统包括晶振和复位电路,按键电路,液晶显示电路等。给整个系统上电,指示灯LED点亮,说明整个系统供电正常;用万用表测量AT89S51的各个供电管脚也正常,能正常复位。再给单片机写入各个模块的调试程序,调试程序包括按键处理、液晶显示部分。5.2 串口与上位机通信部分调试通过串口给单片机下载简单的检测程序,若能下载,则表示通信部分正常工作。5

19、.3 继电器部分调试首先进行初步检测:系统上电后,用杜邦线将继电器输入端口接入5V高电平,再断开,再接入5V高电平,如此往复,听到继电器发出滴答声。电路基本正常。接着给单片机写入调试程序,调试过程中,发现继电器不能工作,推断原因为端口电流太小,后尝试把NPN三极管改为PNP三极管,还是不能工作,该端口加个1K上拉电阻,继电器依然不工作,后来换回原来的NPN三极管,继电器部分可以正常工作。5.4 测温部分调试调入18B20测温及显示程序,观看液晶显示部分能否实时显示正确温度,一般就直接测室温的温度,看其是否准确即可。后来把包好的18B20放到水中测温的时候,由于包得不够好,导致几个都无法测正确的

20、温度。所以测温传感器放到水中前务必包好。6 PID参数整定总结PID参数整定方法:1、 加温很迅速就达到目标值,但是温度过冲很大: 比例系数太大,致使在为达到设定温度前加温比例过高; 微分系数过小,致使对对象反应不敏感;2、 加温经常达不到目标值,小于目标值的时间越多; 比例系数过小,加温比例不够 积分系数过小,对恒温偏差补偿不足;3、 基本上能够在控制目标上,但上下偏差偏大,经常波动; 微分系数过小,对即时变化反应不够快,反映措施不力; 积分系数过大,使微分反应被淹没钝化; 设定的基本定时周期过短,加热没有来得及传到测温点;4、 受工作环境影响较大,在稍有变化时就会引起温度的波动: 微分系数

21、过小,对即时变化反应不够快,不能及时反映; 设定的基本时周期过长,不能及时得到修到;一般的生产过程都具有较大的时间常数,而数字PID控制系统的采样周期则是要小得多,所以数字调节器的参数整定,完全可以按照模拟调节器的各种参数整定方法进行分析和综合。但是,数字控制器和模拟调节器相比,除了比例系数KP、积分时间TI和微分时间TD外,还有一个重要的参数就是采样周期T需要很好的选择。合理的选择采样周期T,也是数字控制系统的关键问题之一。由香农采样定理可知,当采样频率的上限为Fs2Fmax时,系统可真实地恢复到原来的连续信号。从理论上讲,采样频率越高,失真越小,但是从控制器本身而言,大都是依靠偏差信号E(

22、k)进行调节计算。当采样周期太小时,偏差信号E(k)也会过小,此时计算机将会失去调节作用。采样周期T过长又会引起误差。因此,采样周期T必须综合考虑。对于本次的温度控制系统的设计来说,影响其重要的因素就是滞后了。到图书馆查书得知:采样周期T与纯之后时间t基本相等,这样控制的效果才比较好。又由于那热的快控制,18B20离热的快的距离不一样,滞后的时间也不一样。所以我们设计了可以设定采样周期的程序,这样随时都可以调节其采样周期的长短,以达到比较好的控制效果。在温度控制中,我们不仅要看它的超调量,还要看它掉下来的时候的那个波。为了能够使散热快点,所以我们设定的温度都比较高。这样调参数的时候可以省不少的

23、时间,控制的效果也比较明显的看到。下面是我们在调节PID参数时,所记录的一些数据。为了减小纯滞后的时间,我们将18B20放在热得快的附近,传导热量也是比较快的。如果控制效果不好的话,我们可以修改采样周期,再另行调节PID参数,以达到较好的效果。7 测试数据及结果分析测量仪器:水银温度计,500W热得快,环境温度C。测量结果:如下表所示。设定温度(C)40607090超调温度(C)40.56170.8无变化范围(C)39.840.559.361.069.070.889.089.5由以上测量可见,系统性能基本上达到了所要求的指标。静态测温的精度主要有DS18B20决定。DS18B20的精度比较高,

24、这里采取了读取温度寄存器办法,测温精度能够达到0.2C,可以达到比较好的精度。在控温指标中,影响系统性能的因素非常多。最关键的是加热系统本身的物理性质及控制算法。由于传感器必须加上防水设施,因此温度传感器难免会有迟滞,热得快本身的延迟,水对流传热等因素也会造成测温的延时,这些都会直接影响系统的控制性能。控制算法方面,需反复试验比较,在上升时间和超调量之间作权衡,选出较好的PID系数。整个系统的设计思想是提高静态控温精度,减小调节时间和超调量。整个系统综合有如下几个特点:1、通过DS18B20集成温度传感器减少了A/D转换电路,简化了电路结构。2、在电路设计中充分考虑了系统的可靠性和安全性。通过

25、精心调试达到基本功能指标,动态性能也达到较好的要求。8 结论通过这次的程设计,使我对计算机控制有了更深刻理解,对实际经验的不足导致在设计过程中出现了不少的问题。调试过程中得到了老师的耐心指导,在此表示衷心感谢。同时,也感受到了团队协作的重要性!谢 辞在这次计算机控制课设的设计的过程中,得到了指导老师与同学的很多帮助。非常感谢我的老师耐心地给我分析不懂的问题,给我提出的宝贵的意见。也感谢给予我帮助,并协助我调试系统的同学们。没有你们,这个继电器水温控制系统不会这么顺利地实现。谢谢你们!最后,谨向百忙之中抽出宝贵时间审阅论文的老师表示由衷的谢意!参考文献1 潘新民 编著 微型计算机控制技术 电子工

26、业出版社 20102 何有才 编著 常用传感器应用电路的设计与实践 科学出版社 20073 童诗白 主编 模拟电子技术基础(第四版) 高等教育出版社 20064 胡寿松 主编 自动控制原理(第五版) 科学出版社,20025 例说51单片机附 录PCB图键盘:系统部分核心程序:(1)PID三种算法程序:sbit pid_out=P10; /PID输出,控制继电器unsigned char get_t_flag;int pid_p=10; / 比例常数 Proportional Const int pid_i=1; / 积分常数 Integral Const int pid_d=10; / 微分常

27、数 Derivative Const int old_e; /上次偏差int now_e; /本次偏差int sum_e; / 偏差和int d_e; /偏差差,微分int now_t,now_ts; /实际温度int old_t;int get_t_count=0;int out_count=0;int heat_time;/* !标准PID算法!*/ int normal_PID(int set_t) /读取PID参数和计算 now_ts=ReadTemperature()%10000/10;if(now_ts200)now_t=now_ts;/获取温度now_e=set_t*10 - n

28、ow_t; /当前偏差sum_e+=now_e; /积分项求和d_e=now_e-old_e; /微分项求差 old_t=now_t; /保存上次温度值old_e=now_e; /保存上次偏差值if(now_t(set_t*10) pid_i=20;else pid_i=1;return(pid_p*now_e+pid_i*sum_e+pid_d*d_e)/100; /比例项 /积分项 / 微分项 /* !变速积分PID算法!*/ int speed_change_PID(int set_t) now_t=ReadTemperature()%10000/10;now_e=set_t*10 -

29、now_t; sum_e+=now_e; /积分项求和d_e=now_e-old_e;/微分项求差 old_t=now_t; /保存上次温度值old_e=now_e; /保存上次偏差值pid_p=300;pid_i=(set_t*10-200)-now_e); /得到0e的值,40度时,0200/-对应pid_i随偏差的减小而增大-/return (pid_p*now_e+pid_i*sum_e/10+pid_d*d_e)/100; /比例项 /积分项 / 微分项 /* !开关控制+PID算法!*/ int switch_and_PID(int set_t) now_t=ReadTempera

30、ture()%10000/10;/获取温度now_e=set_t*10 - now_t; /当前偏差if(now_e=30) /偏差300) out_count=0; /pid最大值300if(out_countheat_time) pid_out=0; /加热else pid_out=1; /不加热if(heat_time=0) pid_out=1; /不加热TH0=60536/256; TL0=60536%256; /定时中断初值,中断一次5ms/* !PID初始化!*/ void PIDBEGIN() TMOD=0x01; TH0=60536/256; TL0=60536%256; /定

31、时5ms EA=1; ET0=1; TR0=1; /开定时中断0 (2)部分主程序void main() /主程序 initLCD(); /液晶初始化PIDBEGIN(); /PID初始化Delay1ms(10);init_set();set_ts=set_t*10;while(1) if(get_t_flag=1) /2s采样1次 get_t_flag=0; now_ts=ReadTemperature()%10000/10; if(now_ts200) now_t=now_ts;/获取温度 if( (now_tset_ts)& (now_t-set_ts)4) ) heat_time=0;

32、 if( (now_t5) ) heat_time=0; if( (now_t10) ) heat_time=20; if( (now_t30) ) heat_time=100; if( (now_t50) ) heat_time=130; if( (now_t80) ) heat_time=180; if( (now_t100) ) heat_time=250; if(heat_time300)heat_time=300; if(heat_timeset_ts)&(now_t-set_ts)4) & (now_tset_ts)&(set_ts-now_t)5) ) if(pid_mode_f

33、lag=1) heat_time=normal_PID(set_t); /标准PID算法 if(pid_mode_flag=2) heat_time=speed_change_PID(set_t); /变速积分PID算法 if(pid_mode_flag=3) heat_time=switch_and_PID(set_t); /开关控制+PID算法 lcdplay(); /* !设置PID模式 程序!*/ void init_set() unsigned char pid_enter_flag0=0,pid_enter_flag1=0;unsigned char t_flag2=0,t_ent

34、er_flag=0;unsigned char t_value2=0;/ 保存键盘的数/*设置PID模式*/setPosition(0,0);Write_String(Set pid mode:);while(pid_mode_flag=0)|(pid_enter_flag1=0)k=KEYSCAN();if(k!=0xff)switch(k) case 12:setPosition(1,0); Write_String(normal_PID: ); pid_enter_flag0=1; pid_mode_flag=1; /PID模式标志 break; case 13:setPosition(1,0);Write_String(speed_change_PID); pid_enter_flag0=1; pid_mode_flag=2; /PID模式标志 break; case 14:setPosition(1,0);Write_String(switch_and_PID ); pid_enter_flag0=1; pid_mode_flag=3; /PID模式标志 break; case 15:if(pid_enter_flag0=1) pid_enter_flag1=1;/跳出循环标志位 break;

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号