基于PID的简单水温控制系统设计.doc_第1页
基于PID的简单水温控制系统设计.doc_第2页
基于PID的简单水温控制系统设计.doc_第3页
基于PID的简单水温控制系统设计.doc_第4页
基于PID的简单水温控制系统设计.doc_第5页
已阅读5页,还剩7页未读, 继续免费阅读

下载本文档

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

文档简介

基于PID的简单水温控制系统设计摘要:在工农业生产和日常生活中,对温度的检测与控制始终有着非常重要的实际意义和广泛的实际应用。为了加深计算机控制理论的理解,故设计一个温度控制系统,该系统主要由温度信号采集与转换模块(传感器DS18B20)、主机控制模块(单片机STC89C52)、温度控制模块(双向晶闸管BTA06)、液晶显示模块(液晶LM1602)等四部分组成,控制算法为PID算法。系统可实现稳态误差小于1,最大超调小于1,并且调节时间较短,恒定效果好。关键词:传感器DS18B20,单片机STC89C52,PID算法,液晶LM1602,双向晶闸管BTA061 选题背景在现代工业生产和日常生活当中,对温度的检测、实现自动恒温控制有着非常重要实际意义和广泛的应用,例如大型火力发电站锅炉的温度控制、石油炼油厂油温的控制等。一般的温度控制系统其主要构成部分有以下几部分:被控对象、温度信号采集与转换模块、显示模块、执行模块、主机控制模块、按键等。关系如图1.1: 图1.1 温度检测装备的组成结构在此,我选择了温度测量及其恒温控制作为计算机控制课程设计课题。在该控制系统中,控制算法不但结合经典的PID控制算法的优势;还增加了死区控制,平均滤波、限幅消抖、抗积分饱和等措施抑制非正常情况的发生;此外,控制算法还采用了二维PID算法的优点,加快了系统的动态响应速度。经过实际测试,采取的措施能够很好地抑制非正常情况的发生,系统的响应速度、稳态误差、超调量都取得了较为满意的结果。2 方案设计及其论证2.1 温度信号的采集及AD转换2.1.1方案一采用模拟类温度传感器,比如LM45、AD590、铂电阻等。增加适当的放大电路和AD转换电路以后,就可以将温度信号送入单片机。然而,这种设计需要用到A/D转换电路,且温度传感器的接线较为麻烦,制作成本较高。2.1.2 方案二采用数字类温度传感器,比如DS18B20。DS18B20为数字式温度传感器,直接将温度信号转换为数字量,可编程的分辨率为912位,采用独特的单总线接口,只需要一条总线就可以实现与单片机通信,简化了硬件电路设计,降低了设计成本。 将上述两种方案比较,方案二硬件电路设计得到简化并且设计成本降低,故采用方案二。2.2 主机控制模块2.2.1方案一采用快速单片机,比如STC12C5A32S2、ATmega16、W77E58等。以ATmega16为例,ATmega16单片机是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达1 MIPS/MHz,在相同晶振频率的情况下,速度比普通快812倍。从性能上来说,该单片机是一款功能非常强大的单片机,然而其价格较高(15元/片),采用该单片机会使设计成本增加。2.2.2 方案二采用普通单片机STC89C52。STC89C52单片机片内有8KB的EPROM和256B的RAM,程序通过串口下载,十分方便。在晶振频率为12MHz的情况下,单指令仅需1us,完全能满足系统设计要求。另外,该单片机价格便宜,仅5.8元/片。将上述两种方案比较,方案一虽然性能上优于方案二,但其设计成本较高,而且本系统不需要太快的运行速度,故采用方案二。2.3 显示模块2.3.1方案一采用7段式数码管。目前,市场上有大量的七段式LED数码管,价格也较为便宜,单个的数码管仅0.8元,4位的数码仅2.6元;不过采用数码管作为显示时,需要增加驱动电路,驱动电路的成本在8元左右,另外,数码管只能显示一些简单字符以及数字,而在本设计中,需要显示较多信息,比如:实时温度、PID参数、设定温度等,采用数码管会大大增加程序的复杂度,并且还会对单片机的功能提出更高要求,其性价比较低。2.3.2 方案二采用LM1602液晶显示。LM1602液晶的市场价格在15元左右,可以与单片机直接连接,不需要增加额外的驱动电路,它可以显示所有的ASCII字符。另外可以同时显示32个字符,电路设计简单、软件复杂度低、性价比高。将上述两种方案比较,方案一中LED数码管虽然价格便宜,但需设计驱动电路,而且本设计需要显示较多系统运行参数,故又增加编码复杂度,同时对单片机性能要求提高,性价比低,方案二LM1602液晶显示有电路设计简单,编码复杂度低的优点,故采用方案二。2.4 温度控制模块2.4.1 方案一采用固态继电器。固态继电器有三部分组成:输入电路,隔离(耦合)和输出电路。固态继电器可以与逻辑电路兼容,耐振耐机械冲击,安装位置无限制,具有良好的防潮防霉防腐蚀性能,在防爆和防止臭氧污染方面的性能也极佳,输入功率小,灵敏度高,控制功率小,电磁兼容性好,噪声低和工作频率高等特点。然而,其价格较高,电压AC220V、最大电流5A的固态继电器在25元左右,采用固态继电器会使得设计成本大大增加。 2.4.2 方案二采用双向晶闸管。市场上双向晶闸管的种类很多,如双向晶闸管BTA06,每片仅3.5元,可以使设计成本大大降低,配备以驱动电路后,总体设计成本也不超过9元;另外,采用双向晶闸管BTA06的硬件设计也较为简单。 将上述两种方案比较,方案一中固态继电器虽然性能优于方案二中的双向晶闸管,但考虑固态继电器成本远高于双向晶闸管,故采用方案二。2.5 单片机控制方式2.5.1 方案一P控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。同时,由于水的温度调节,可以等效于“纯滞后一阶惯性”,理论可推导其易产生振荡。2.5.2 方案二PI控制是在比例控制的基础上加上积分作用,在积分控制中,控制器的输出与输入误差信号的积分成正比关系,采用比例积分控制方式,只要有足够长的响应时间,理论上可以做到稳态无静差。2.5.3 方案三PID控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的,也就是在比例积分控制方式下,加入微分控制,在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。将上述三种方案进行比较,由于本设计要求无静差,被控对象惯性较大,为了加快调节速度,采用方案三即PID算法作为控制算法。3 系统概要设计 该系统能够实现测量-25125的温度并予以显示,精度为0.625,准确度0.5。能够实现在099.9设定任一温度保持恒定。按键可以设定恒温温度,液晶能够实时显示温度、设定温度、偏差、占空比等基本量。控制程序能够完成恒温功能,并且获得较好的超调量、调节时间、稳态误差、响应速度等量。系统的主要部件有7部分,分别是:温度传感器DS18B20、STC89C52单片机、LM1602液晶、BTA06晶闸管(含光隔电路)、电炉、按键、电源模块、串口通讯模块。整个系统的结构如下:图3.1 温度控制系统组成结构系框图4系统硬件设计 本设计将该电路分为四个模块:温度信号采集与转换模块(传感器DS18B20)、主机控制模块(单片机STC89C52)、温度控制模块(双向晶闸管BTA06)、液晶显示模块(LM1602液晶)。4.1温度信号采集与转换 图4.1 温度信号采集与转换原理图如图4.1,0.1uF电容的C19用于滤除高频噪声,6.8K上拉电阻用于增加数据总线的驱动能力,DQ连接单片机的P22口,组成单总线通信系统,用于单片机和DS18B20数据通信。4.2控制晶闸管导通模块图4.2是控制晶闸管导通的原理图,MOC3022是光隔器件,单片机的P20端口和MOC3022的2脚相连接。当P20为低电平是光隔右侧的4、6引脚导通,进而控制晶闸管导通。R13一般取2K左右。图4.2 控制晶闸管导通模块原理图4.3液晶显示模块图4.3 液晶显示模块原理图4.4总系统原理图图4.4 系统总体原理图5 系统软件设计软件流程图如下:图5.1 软件流程图6 设计体会及今后的改进意见通过本次设计,提高了对计算机控制系统相关理论的理解,大大提升了运用理论解决现实问题的能力,本课题“简单温度控制系统”的设计与实现,从先前查相关背景资料准备到逐一突破的经验表现在以下几个面:首先,对课题牵涉到的一些器件必须加以认识和熟练运用。其次, 要设计某一个东西,首先要明白它是干什么的,勾画出自己的设计思路。然后将这个问题进行分块,根据系统的指标和功能框图,明确各部分任务,进行各单元电路的设计、参数计算和器件选择。当完成电路图的设计后,如果有条件的话可以用某些仿真软件进行仿真,避免在后续进行硬件焊接出现错误后难以改正。最后,在设计过程中遇到一些问题能够独立思考从而用所学知识得以解决,真正学会了学以致用,从中增强了对计算机控制这门课程的学习兴趣,对PID参数的调节也有了较为深入的了解。实验仍存在不足,比如在调节PID参数时,刚开始没有明确的方向,软件设计不很合理等,我会以这次设计为契机,进一步加强自己的学习能力,提升自己的专业知识水平。参考文献1杨刚,周群. 电子系统设计与实践M. 北京:电子工业出版社, 2005.2张毅刚. 单片机原理及应用M. 哈尔滨:哈尔滨工业大学,2004.3阎石. 数字电路基础M. 北京:高等教育出版社,2006.4刘金琨. 先进PID控制及其MATLAB仿真M. 北京:中国电力出版社,2003.5康华光. 电子技术基础(模拟部分)M. 武汉:高等教育出版社,2006.6王建华,黄河清. 计算机控制技术M. 北京:高等教育出版社,2003.7林敏,丁金华,田涛. 计算机控制技术及工程应用M. 北京:国防工业出版社,2008.附 录 PID算法程序void auto_adjust(int NextPoint)Error = setPoint - NextPoint; / 偏差 if(Error 100)open_duty =60;/全开通elseSumError += Error; / 积分dError = Error - LastError; / 当前微分 LastError = Error;real_error = Proportion*Error+ Integral * SumError+ Derivative * dError;open_duty = (int)(real_error+0.5); void timer0() interrupt 1 /每隔50ms进入中断一次TH0=0x3C;TL0=0xB0;num_counter+;if(num_counter(Sample_time*20)num_counter=0;kaitong = num_counter=open_duty ? 0:1;键盘程序void key_change()static char key_num,bai=5,shi,ge;bit bai_ok = 0,shi_ok = 0,goback_to_PID = 0;key_num = keyscan();switch(key_num)case 1: /进入温度设定界面TR0=0;/关闭定时器kaitong=1;setPosition(1,0);prints(SV: D:0.033);setPosition(2,0);prints(P :0.55 I:0.01);setPosition(1,3);inttostrr(setPoint,buffer);prints(buffer);goback_to_PID=0;while(!goback_to_PID)if(!bai_ok)key_num = keyscan();switch(key_num) case 2:/温度的十位加一bai+;if(bai=10)bai=0;bai_ok=0;break;case 3:goback_to_PID=1,bai_ok=1;break;/退出手动调整case 4:bai_ok=1;shi_ok=1;break;/左移循环调节温度的个位case 5: /温度的十位减一 bai-;if(bai=255)bai=9;bai_ok=0;break; case 6:bai_ok=1;break;/右移调节温度的个位default:bai_ok=0;break;else if(!shi_ok)key_num = keyscan();switch(key_num) case 2:/设定温度的个位shi+;if(shi=10)shi=0;shi_ok=0; break;case 3:goback_to_PID=1,shi_ok=1;break;case 4:bai_ok=0;break;case 5: shi-;if(shi=255)shi=9;shi_ok=0;break; case 6:shi_ok=1;break;default:shi_ok=0;break; else key_num = keyscan();switch(key_num) case 2:/设定温度的小数位ge+;if(ge=10)ge=0;bre

温馨提示

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

评论

0/150

提交评论