版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西理工学院课程设计实验报告课程:计算机控制系统课程设计题目:水温控制系统设计院系:电气工程系班级:自控xx班学号:xxxxx姓名:xxx指导老师:xx时间:前言在日常生活中通过水温控制来给人们带来舒适的,方便的生活.例如刚在外工作回家的男人一定会很疲倦了,如果能够洗个热水澡,那真是非常好的事情了.这样能够让一天的疲惫随着温热的流水带走了,家庭主妇要为家人煮一个热喷喷的汤水.煮好以后就这样放着也会变凉的,如何保持水温的恒定呢?这就需要需要水温控制系统了.水温控制在工业及日常生活中应用广泛,分类较多,不同水温控制系统的控制方法也不尽相同,其中以PID控制法最为常见。单片机控制局部采用AT89C52单片机为核心,采用软件编程,实现用PID算法来控制PWM波的产生,进而控制电炉的加热来实现温度控制。然而,单纯的PID算法无法适应不同的温度环境,在某个特定场合运行性能非常良好的温度控制器,到了新环境往往无法很好胜任,甚至使系统变得不稳定,需要重新改变PID调节参数值以取得佳性能。本文首先用PID算法来控制PWM波的产生,进而控制电炉的加热来实现温度控制。然后在模型参考自适应算法的根底上,用单片机实现了自适应控制,弥补了传统PID控制结构在特定场合下性能下降的缺乏,设计了一套实用的温度测控系统,使它在不同时间常数下均可以到达技术指标。此外还有效减少了输出继电器的开关次数,适用于环境参数经常变化的小型水温控制系统。目录1.概述.测试方法与测试结果7.1系统测试仪器DH1718E-5双路跟踪稳压稳流电源TektronixTDS1002数字示波器伟福E6000/L仿真器GDM-8145多功能数字表数字万用表7.2测试方法〔1〕在电炉子中放入1升清水,电炉子和控制系统相连,给系统上电,系统进入准备工作状态。〔2〕分别设定温度为40℃、45℃、50℃、60℃、70℃、75℃〔3〕观察水温变化的动态情况,并记温度稳定的时间。填写表1-2。7.3测试结果〔1〕给定温度与实测温度的数据比照方表1-1表1-1误差分析表设定温度〔℃〕实测温度〔℃〕绝对误差〔℃〕相对误差〔%〕设定温度〔℃〕实测温度〔℃〕绝对误差〔℃〕相对误差〔%〕135.3℃35.3℃00%46060.5℃0.5℃0.83%240.2℃40.1℃-0.10.24%57473.4℃-0.4℃0.60%34545.3℃0.3℃0.66%68181.2℃0.2℃0.25%从表1-1中的数据可知,系统的误差根本稳定在正负0.3℃能很好的满足系统的设计要求。〔2〕温度稳定和时间的关系设定温度为50℃,每隔30s记录实测温度如表1表1-2温度稳定速度关系表〔设定温度50℃测量时间〔分〕0.5分1分1.5分2.0分2.5分3.5分4.0分实测温度℃35.5℃37.℃40.3℃43.5℃48.1℃50.3℃51.1℃测量时间〔分〕4.5分5.0分5.5分6.0分6.5分实测温度℃50.6℃49.8℃50.5℃50.2℃50.1℃从表1-2中的数据可知,系统运行5分钟时系统根本到达稳定。由微机逐点采样所的曲线图如图1-8所示图1-8温度变化图8.设计总结通过一个学期的努力,我成功的完成了此次设计,在设计的过程中我们学会了很多知识的同时也锻炼了自己的各方面能力。在设计的初期我也遇到了很多的困难,但通过自己的努力和老师的指导克服了种种困难。并在实现根本要求的同时扩展了很多功能,比方和微机的通信等等。虽然此次设计比拟成功,比方说温度精度方面还好,但是电路还存在着很多缺乏之处,希望在今后我还能将其完善。附录一液晶驱动显示程序/****************延时函数*************/voiddelay(uintm){intx,y; for(x=1;x<=m;x++) {for(y=1;y<=125;y++); }}/**********检查忙碌信号子程序*****//*********************************/voidcheck_busy(void){lcd_rs=0;//存放器选择输入端,为1表示数据存放器,为0表示指令存放器 lcd_rw=1; //读写操作控制端,当为1时表示读,为0时表示写 lcd_en=1; //使能输入端,当为1时读写允许,为0时读写禁止 _nop_(); _nop_();while(P0&0x80) //当P0口的最高位为1时,说明lcd忙碌,反之空闲 { lcd_en=0; _nop_(); _nop_(); lcd_en=1; _nop_(); _nop_(); } lcd_en=0; //禁止使能}/**********写指令到指令存放器子程序*****/voidwrite_inst(ucharw_date1){ check_busy(); //查忙碌信号 lcd_en=0; lcd_rs=0; lcd_rw=0; lcd_en=1; P0=w_date1; lcd_en=0; delay(2); //延时大概2毫秒}/**********写数据到数据存放器子程序*****//***************************************/voidwrite_date(ucharw_date2){ check_busy(); lcd_en=0; lcd_rs=1; lcd_rw=0; lcd_en=1; P0=w_date2; lcd_en=0; delay(2);}/*********启动与清屏LCD_1602子程序*****//***************************************/voidinitial(void){ write_inst(0x38); //数据长度为8位,两行,为5*7点阵字符write_inst(0x0c); //显示屏显示,无光标,不闪烁 write_inst(0x06); //光标右移一位,AC加1 write_inst(0x01); //清屏LCD_1602}/*********字符串显示子程序***********//************************************/voiddisplay(void){ucharii,jj,kk; write_inst(0x80); //设定在显示屏上的位置for(ii=1;ii<=16;ii++){write_date(table_0[a_0]); //显示字符串 a_0++; } _nop_();write_inst(0xc0); //设定在显示屏上的位置for(jj=1;jj<=16;jj++){write_date(table_1[b_0]); //显示字符串 b_0++; } _nop_(); write_inst(0x40); //将CGRAM的地址写入指令存放器for(kk=1;kk<=8;kk++) //依次显示构成字符的8个字节 { write_date(table_2[c_0]); c_0++; } write_inst(0xce); //确定用户自定义字符在显示屏上的位置 write_date(0x00); //采用一条写数据指令将所要字符显示出来 _nop_(); }附录二DS18B20初始化程序voidds18b20_reset(void){uintr;dq=1;_nop_();//1usdq=0; r=66;while(r>0) r--;//当总线停留在低电平超过480us,总线上所以器件都将被复位,这里//延时约530us总线停留在低电平超过480μs,总线上的所有器件都将被复位。_nop_();dq=1;r=5;//产生复位脉冲后,微处理器释放总线,让总线处于空闲状态,原因查//18b20中文资料while(r>0) //释放总线后,以便从机18b20通过拉低总线来指示其是否在线,r--;//存在检测高电平时间:15~60us,所以延时42us,进行1-wirepresence//detect〔单线存在检测〕 _nop_();_nop_();_nop_();if(dq==0)flag=1;//说明ds18b20在线elseflag=0;//说明ds18b20不在线 r=17; while(r>0)//存在检测低电平时间:60~240us,所以延时约140us r--;_nop_();_nop_();_nop_();dq=1;//再次拉高总线,让总线处于空闲状态}/*************************************************DS18B20的读时间隙子程序:DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换。***************************************************/bitds18b20_read_bit(void)//读一位{ uintr; bit_bit;dq=0;//单片机〔微处理器〕将总线拉低 _nop_();//读时隙起始于微处理器将总线拉低至少1us _nop_();dq=1;//拉低总线后接着释放总线,让从机18b20能够接管总线,输出有效数据 _nop_();_nop_();//小延时一下,读取18b20上的数据,因为从ds18b20上输出的数据 //在读"时间隙"下降沿出现1_bit=dq;//主机读从机18b20输出的数据,这些数据在读时隙的下降沿出现//15us内有效 r=9;//所有读"时间隙"必须60~120us,这里74us while(r>0) r--; return(_bit);//返回有效数据}uchards18b20_read_byte(void)//读一字节{ucharvalue=0,x,y;//x表示循环次数,每次接收到的18b20数据送往j的最低位 for(x=0;x<8;x++) { y=ds18b20_read_bit(); value=(y<<7)|(value>>1);//这一步的说明在一个word文档里面 } returnvalue;//返回一个字节的数据}/*************************************************DS1820的写时间隙子程序:DS1820的数据读写是通过时间隙处理位和命令字来确认信息交换。***************************************************/voidds18b20_write_byte(uchardate)//写一个字节{ uintw;uintr;bit_bit1;//一定不要忘了,_bit1是一位for(w=1;w<=8;w++){_bit1=date&0x01;date=date>>1;if(_bit1)//写1 { dq=0; _nop_(); _nop_();//看时序图,至少延时1us,才产生写"时间隙" dq=1;//写时间隙开始后的15μs内允许数据线拉到高电平 r=8;//所有写时间隙必须最少持续60us,现在延时66us while(r>0) r--; } else//写0 { dq=0; r=8;//主机要生成一个写0时间隙,必须把数据线拉到低电平并保持至少60μs,这里66us while(r>0) r--; dq=1; _nop_(); _nop_(); } } }/******************************************************************读温度转换子程序*****************************/uintget_temp(){ uintr;dq=1;ds18b20_reset(); if(flag==1){ds18b20_write_byte(0xcc); ds18b20_write_byte(0x44); r=94; //大概延时754uswhile(r>0) r--; ds18b20_reset(); ds18b20_write_byte(0xcc); ds18b20_write_byte(0xbe); temp_l=ds18b20_read_byte(); temp_h=ds18b20_read_byte(); temp=temp_h; temp=temp<<8; temp=temp|temp_l; //将16位数据存于temp中 flag=0; } returntemp;}/******************************************************************处理转换后温度值子程序*****************************/voiddeal_temp(void){ucharfu_hao; temp_hh=temp_h;fu_hao=temp_hh&0x80; if (fu_hao==0x00) {flag11=1; temp_abc=temp*0.0625; //得真实的正温度值 } else if(fu_hao==0x80) {flag11=0; temp_abc=(~temp+1)*0.0625; //得真实的负温度值的绝对值 } else; }/******************************************************************温度显示子程序*****************************/voiddisplay_temp(void){ floatb_1; uintc_1;uchara_1,a_2,a_3,a_4; b_1=temp_abc*100+5; c_1=b_1/10; shiji_1=c_1; if (flag11==1) //用flag11来区分温度正负,当为1时是正,当为0时是负{ a_1=c_1%10; //十分位 a_2=c_1%100/10; // 个位 a_3=c_1%1000/100; //十位 a_4=c_1/1000; //百位 flag11=0; } else { a_1=c_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新疆喀什第二中学高三上学期9月月考语文试题及答案
- 2024年广东省深圳市龙岗区中考英语二模试卷
- 上海市市辖区(2024年-2025年小学五年级语文)统编版专题练习((上下)学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版随堂测试((上下)学期)试卷及答案
- 郴州文物百咏作者:湖南省郴州市五岭大道陈友训
- 浙江省台州市台州十校2024-2025学年高一上学期11月期中联考数学试题含答案
- 2024届安徽省马鞍山市重点中学青浦高中高三下开学考数学试题
- 机电设备安装与调试技术教案
- 公立医院公益目标评估指标调查表
- 广东省广州市四校2024-2025学年九年级上学期11月期中化学试题(含答案)
- 部编版高中语文必修下册整本书阅读《红楼梦》课件
- GB/T 4358-1995重要用途碳素弹簧钢丝
- GB/T 16935.3-2005低压系统内设备的绝缘配合第3部分:利用涂层、罐封和模压进行防污保护
- GB/T 15773-2008水土保持综合治理验收规范
- GB/T 13738.1-2017红茶第1部分:红碎茶
- GB/T 11618-1999铜管接头
- 《企业年金年金方案》模板
- 第8讲外部性与公共产品课件
- 安全教育游戏活动总结3篇
- 特发性餐后低血糖症滋养性低血糖课件
- 六年级下册科学课件- 3.2 月相变化|教科版 (共19张PPT)
评论
0/150
提交评论