PID温控系统技术报告11教学文案_第1页
PID温控系统技术报告11教学文案_第2页
PID温控系统技术报告11教学文案_第3页
PID温控系统技术报告11教学文案_第4页
PID温控系统技术报告11教学文案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、Good is good, but better carries it.精益求精,善益求善。PID温控系统技术报告11“电气创新杯”电子制作竞赛温度测控系统技术报告参赛队员:指导老师:目录目录TOCo1-3hzuHYPERLINKl_Toc206934594摘要PAGEREF_Toc206934594h-第一章、作品完成功能HYPERLINKl_Toc206934609第二章、系统方案论证2.1温度采集模块2.2信号处理模块2.3升温模块2.4降温模块HYPERLINKl_Toc206934619第三章、硬件结构设计及实现3.1硬件总体设计3.2温度采集3.3人机交互3.4温度控制HYPERL

2、INKl_Toc206934625第四章、软件结构设计及实现HYPERLINKl_Toc206934628第五章、作品测试数据PAGEREF_Toc206934628h-第六章、不足及今后改进方向HYPERLINKl_Toc206934632附录摘要自动化控制无论是在日常生活还是在工业制造中,都发挥了重要作用。自动化控制让生活更方便精彩,让工业制造更易控制管理,我们在一个充满自动化的时代。在享受了自动化控制带来的便利的同时,我们希望能够尽自己的努力为自动化控制做出自己的贡献,我们希望能够为他人带来方便。跟据电气创新杯提供的平台及我们所学的知识我们选择设计一个温度测控系统。温度控制在生活以及工业

3、制造中都发挥着必不可少的作用,工业需要温度测控系统来监控温度,生活中也离不开温度测控系统为我们及时提供温度信息。虽然只是一个简单的温度控制,却包含了许多知识的运用,在这个系统中我们能够了解各个芯片的使用,学会软硬件结合,锻炼我们的综合能力,实现理论联系实际。我们希望我们的作品实现温度测量与显示,在低于某一设定温度时能够自动加热,达到某已设定温度自动停止加热,实现自动化控制。因此想通过这个项目,深刻了解DS18B20芯片、L298芯片及12864芯片的使用,学会运用PID调节,体会自动控制带来的便利。我们作品通过温度采集传感器18B20,经单片机处理后,控制温度在某一设定范围内。第一章、作品完成

4、功能我们设计的温度测控系统是通过温度采集传感器18B20,经单片机处理后,控制温度在某一设定范围内。主要实现以下功能:(1)能够设定被加热的金属散热器表面目标温度(环境温度向上增0-100);(2)控制金属散热器表面温度(控制误差1%);(3)动态响应速度30sec;(4)动态显示当前设定温度、实测温度。(5)建立一个稳定的PID调节框架(6)按键调节温度设置第二章、系统方案论证温度测控系统可以分为以下几个模块来论证:温度采集、信号处理、升温、降温。2.1、温度采集:本设计为基于单片机8051设计的实时温度采集模块,采用一个单片机作为核心的最小系统。方案一:采用可编程逻辑器件CPLD作为主控器

5、,对热敏元件采集到的温度点信号已经A/D转换过的数字信号进行处理与计算,然后通过八段数字码管显示出来,因为CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的核心。而本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。所以,从实用及经济的角度上考验,决定放弃此方案。方案二:采用8051单片机作为主控器进行对采集到的信号处理再输送给八段数码管显示。8051单片机是一个低功耗,字长为8位的单片微型计算机,由中央处理器、片内128BRAM、片内4KBPOM、两个16位

6、的定时计数器、四个8位的I/O口(P0,P1,P2,P3),一个全双工的串行口、五个中断源以及时钟等组成。它具有体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好。综上分析,我们采用方案二。2.2、信号处理模块方案一、信号处理系统,包括键盘、信号处理单元及接收适配器单元。其中键盘包括:键矩阵;控制部件,它输出与操作的键相应的交换数据;数据传输部件;及电源。接收适配器单元内有数据接收部件,可接收经电缆传送来的交换数据;储存部件则存储被数据接收部件的交换数据;而传输接收控制部件用于将交换数据转换成数据码并传输给信号处理单元进行处理。方案二、信号处理系统包括:键盘;信号处理单

7、元;及接收适配器单元,其中,所说的键盘和接收适配器单元有选择地利用电缆互相连接,其中所说的信号处理单元与该接收适配器单元相连,其中所说的键盘包括:一个有许多键的键操作部件;一个用于输出被操作键相应的交换数据的控制部件;一个可通过电缆输出交换数据的数据传输部件;及一内部电源,其中所说的接收适配器单元包括:一数据接收部件,可接收由电缆传输过来的交换数据;一存储部件,可贮存被数据接收部件或光数据接收部件所接收的交换数据;以及一传输接收控制部件,可把从贮存部件读出的交换数据转换成交换码,以便把交换码传送给信号处理单元及对此信号处理单元提供的信号进行处理。我们设计的温度测控系统要求不是很高,选择方案一。

8、2.3、升温模块方案一、在升温模块中水泥电阻作为加热元件,通过L298芯片控制加热器,对水泥电阻加热,并用DS18B20芯片来测量温度。这种方法简单易行,容易控制,精确度达到基本要求、价格低廉。方案二、升温模块采用金属管状电热元件,镀锌外罩上有若干个小孔,加热时此加热器直接将热量散发出来,具有散热面积大、热负荷小的特点(此加热器不受电源电压的波动限制影响)。但是价格昂贵,需要定期维护,我们的温度测控系统中不需要这么高要求。综上分析,我们选择方案一。2.4、降温模块方案一、在降温模块中采用风扇来降温。具有操作简单,方便易行,成本低,实时性高等优点。风扇的散热速度能够满足我们温控系统的基本要求。方

9、案二、采用水来降温。具有稳定性高等优点。但是操作不方便,设计要求高,价格不合理,不易采用。综上分析,我们采用方案一。三、硬件的结够设计及实现3.1总体硬件设计硬件设计分为以下几个部分:(1)温度测量模块:温度测控系统采用DS18B20芯片来测量温度。(2)键盘输入模块:采用4*4键盘来输入要控制的温度。(3)L298驱动模块:通过L298芯片控制加热器,使其加热。(4)显示模块:采用1602显示器来显示设置的温度,以及加热过程中温度的变化。(5)加热模块:采用水泥电阻用来加热,作为被测系统。总体电路如下:3.2温度采集采用89C52单片机作为主控器进行对采集到的信号处理再输送给八段数码管显示。

10、89C52单片机是一个低功耗,字长为8位的单片微型计算机,由中央处理器、片内128BRAM、片内4KBPOM、两个16位的定时计数器、四个8位的I/O口(P0,P1,P2,P3),一个全双工的串行口、五个中断源以及时钟等组成。它具有体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好。89C52原理图如下3.3人机交互(键盘显示)通过键盘显示器实现人机交互。通过键盘键入需要达到的温度,通过单片机控制水泥电阻加热。通过显示器我们可以观察温度的变化情况。3.4温度控制(298电路)通过L298芯片控制加热器,使其加热。L298组成驱动电路,用开驱动加热模块,使加热器加热。原理

11、图如下:四、软件设计结构及实现总体软件结构设计流程图如下具体程序见附录五、作品测试数据温度测量误差范围:-1度-+1度响应时间:2到3分钟六、不足及今后改进方向6.1、作品不足之处:(1)响应时间较长,动态响应时间难以确定;(2)存在误差,稳定性较长,系统无法自我校正。6.2、改进方向:(1)能显示动态响应时间;(2)能够实现系统自校正、自调零;(3)改变被加热金属散热器的热容量(在原加热器上再叠加另一块散热器),仍然能达到上述要求。附录源程序代码主程序/*/*/#includeunsignedchara44=0 x37,0 x38,0 x39,a,0 x34,0 x35,0 x36,b,0

12、x31,0 x32,0 x33,c,e,0 x30,f,d;unsignedcharx=0,y=0,flag;signedlongintin_tt=0,ary4=1,10,100,1000,re_tt,last;signedintwucha3=0,0,0;floatp,d,number;unsignedintcount1=0,count2=0;signedinthigh=50,low=50;unsignedintth2=0,tl2=0,aa2=0;sbitpwm=P15;sbitLCD_RS=P10;sbitLCD_RW=P11;sbitLCD_E=P12;voiddelay_nms(char

13、n);voidfigure();voidinit_timer0();voidp_d();unsignedintReadTemperature(void);voidscankey();voidread_dispkey(unsignedcharvalue);voidinit_wucha();voidnew_wucha();voidread_displaytt();voidset_addr(unsignedcharx,y);voidlcd_init(void);voiddisplay_char(unsignedchars);voiddisplay_string(unsignedcharl,unsig

14、nedcharh,unsignedchar*n);voiddisplay_high()unsignedintflag=0;set_addr(4,1);flag=high/10+0 x30;display_char(flag);flag=high%10+0 x30;display_char(flag);voidmain()pwm=0;figure();aa0=tl0;aa1=tl1;lcd_init();read_dispkey(2);init_wucha();init_timer0();while(1)if(count1=50)count1=0;count2=1;read_displaytt(

15、);new_wucha();p_d();display_high();figure();if(count2)count2=0;if(pwm)aa0=tl0;aa1=tl1;elseaa0=th0;aa1=th1;voidtimer0()interrupt1using1count1+;pwm=pwm;if(pwm)count2+;TH0=aa1;TL0=aa0;voidinit_timer0()pwm=0;TF0=0;TMOD=0X01;TH0=tl1;TL0=tl0;TR0=1;ET0=1;EA=1;voidfigure()unsignedintflag;low=100-high;flag=6

16、5536-high*100;th1=(flag&0 xff00)8;th0=flag&0 x00ff;flag=65536-low*100;tl1=(flag&0 xff00)8;tl0=flag&0 x00ff;voidp_d()if(wucha0300)high=99;low=1;elseif(wucha0-300)high=1;low=99;elseif(wucha0=-300)high=40+(in_tt-5500)/100+(4*wucha0)/30+(wucha0-wucha2)/5;if(high=100)high=99;if(high=0)high=1;low=100-high

17、;voiddelay_nms(charn)unsignedinti;while(n)for(i=0;i=1000;i+);n-;voidinit_wucha()ReadTemperature();delay_nms(1000);last=ReadTemperature();wucha3=in_tt-last;voidnew_wucha()wucha2=wucha1;wucha1=wucha0;wucha0=in_tt-re_tt;voidscankey()unsignedinti;flag=0;for(i=0;i=3;i+)P3=(0 x01i);if(P3!=(0 x01i)delay_nm

18、s(2);if(P3!=(0 x01i)switch(P3&0 xf0)case0 xf0:break;case0 xe0:x=i;y=0;flag=1;while(P3&0XF0)!=0XF0);break;case0 xd0:x=i;y=1;flag=1;while(P3&0XF0)!=0XF0);break;case0 xb0:x=i;y=2;flag=1;while(P3&0XF0)!=0XF0);break;case0 x70:x=i;y=3;flag=1;while(P3&0XF0)!=0XF0);break;voidread_dispkey(unsignedcharvalue)i

19、n_tt=0;set_addr(0,1);while(flag=0)scankey();flag=0;display_char(axy);in_tt=1000*(axy-0 x30);while(flag=0)scankey();flag=0;display_char(axy);in_tt+=100*(axy-0 x30);/in_tt*=10;voidread_displaytt()signedinta;unsignedcharflag=0;re_tt=0;set_addr(0,0);re_tt=ReadTemperature();a=last-re_tt;if(a=300)re_tt=la

20、st;elselast=re_tt;flag=re_tt/1000+0 x30;display_char(flag);flag=(re_tt%1000)/100+0 x30;display_char(flag);flag=(re_tt%100)/10+0 x30;display_char(flag);flag=re_tt%10+0 x30;display_char(flag);voidwrite_data(unsignedcharwdata)P2=wdata;LCD_RS=1;LCD_RW=0;LCD_E=0;delay_nms(1);/短暂延时,代替检测忙状态LCD_E=1;voidwrit

21、e_command(unsignedcharwdata)P2=wdata;LCD_RS=0;LCD_RW=0;LCD_E=0;delay_nms(1);/短暂延时,代替检测忙状态LCD_E=1;voidset_addr(unsignedcharx,y)if(y=1)x+=0 x40;x+=0 x80;write_command(x);voidlcd_init(void)P2=0;write_command(0 x38);delay_nms(1);write_command(0 x38);/显示模式设置write_command(0 x08);/关闭显示write_command(0 x01);

22、/显示清屏write_command(0 x06);/显示光标移动设置write_command(0 x0c);/显示开及光标移动设置voiddisplay_char(unsignedchars)write_data(s);二、18b20控制程序/*/*/*/*/*/*/#include/*18b20控制线设置*/sbitDQ=P13;/*/*延时子程序*/voidDelay_DS18B20(intnum)while(num-);/*初始化DS18B20*/voidInit_DS18B20(void)unsignedcharx=0;DQ=1;/DQ复位Delay_DS18B20(8);/稍做延时DQ=0;/单片机将DQ拉低Delay_DS18B20(80);/精确延时,大于480usDQ=1;/拉高总线Delay_DS18B20(14);x=DQ;/稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);/*读一个字节*/unsignedcharReadOneChar(void)unsignedchari=0;unsignedchardat=0;for(i=8;i0;i-)DQ=0;/给脉冲信号dat=1;DQ=1;/给脉冲信号if(DQ)dat|=0 x80;De

温馨提示

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

评论

0/150

提交评论