简易水温控制系统.doc_第1页
简易水温控制系统.doc_第2页
简易水温控制系统.doc_第3页
简易水温控制系统.doc_第4页
简易水温控制系统.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

一个简易水温控制系统的设计控制算法设计摘 要在工农业生产和日常生活中,对温度的检测与控制始终有着非常重要的实际意义和广泛的实际应用。为了加深计算机控制理论的理解,故设计一个温度控制系统,该系统主要由温度信号采集与转换模块、主机控制模块、温度控制模块、液晶显示模块四部分组成,控制算法为PID算法。系统可实现稳态误差小于1,最大超调小于1,并且调节时间较短,恒定效果好。温度控制系统的对象存在滞后,它对阶跃信号的响应会推迟一些时间,对自动控制产生不利的影响,因此对温度准确的测量和有效的控制是此类工业控制系统中的重要指标。温度是一个重要的物理量,也是工业生产过程中的主要工艺参数之一,物体的许多性质和特性都与温度有关,很多重要的过程只有在一定温度范围内才能有效的进行,因此,对温度的精确测量和可靠控制,在工业生产和科学研究中就具有很重要的意义。本文阐述了过程控制系统的概念,介绍了一个基于数字传感器DS18B20和单片机STC89C52的简单温度控制系统,以电热水壶为被控对象,通过实验的方法建立温度控制系统的数学模型,采用了PID算法进行系统的设计,达到了比较好的控制目的。该系统可通过液晶显示器LCD1602显示数据或字符,通过按键设定参数;通过DS18B20测温,实现电热杯水温控制;通过PL2303下载端口,实现单机和上位机的通讯。实验表明该系统能够实现对温度的控制,具有一定的控制精度。该系统测温电路简单、连接方便,可用于简单温度控制的场合。关键词:单片机;温度传感器;液晶显示器;PID算法AbstractIn industrial and agricultural production and daily life, the testing and control of temperature has always had very important practical significance and extensive practical application. In order to deepen the understanding of the computer control theory, the design of a temperature control system, the system is mainly composed of temperature signal acquisition and conversion module, host control module, temperature control module, liquid crystal display module four parts, the control algorithm for PID algorithm. System can realize the steady state error is less than 1 , the maximum overshoot less than 1 , and the adjustment time is shorter, constant effect is good. Lagged temperature control system of the object, its response to the step signal will delay some time, produce adverse effect to the automatic control, so effective for accurate temperature measurement and control is an important indicator in the industrial control system. Temperature is an important physical quantities, it is also one of the main process parameters in industrial production process, many properties of objects and features are related to temperature, a lot of important process can only be effective in a certain temperature range, thus, accurate measurement and reliable control of temperature, in the industrial production and scientific research has the very vital significance. This paper expounds the concept of process control system, introduced a digital sensor DS18B20 and single chip microcomputer based STC89C52 simple temperature control system, electric kettle for controlled object, and through the experiment the method to establish the mathematical model of temperature control system, using PID algorithm to the design of the system, to achieve the better control. Through DS18B20, the temperature control of the electric heat cup is achieved. Through the PL2303 download port, the communication between the single machine and the above machine is achieved. The experiment shows that the system can control the temperature, and has certain control accuracy. The system is simple and easy to connect, which can be used for simple temperature control.Key words: single chip microcomputer;the temperature sensor;Liquid crystal display;PID algorithm目录一设计任务与要求41.基本要求4二方案论证4三系统设计51.硬件设计52.软件设计10(1)算法10(2)控制系统模型分析11仿真结果图12四、实验结果12五、结论13六、心得体会13附录14参 考 文 献24一设计任务与要求1.基本要求1L水由1kW的电路加热,要求水温可以在一定范围内由人工设定,并能在环境温度变化时实现自动调整,以保持在设定的温度。2.主要性能指标(1).温度设定范围:10100,最小分辨率为1。(2).控制精度:温度控制的稳态误差0.2.(3).能够实时显示当前水温(4).具有通信能力,可通过RS-232串口输出当前温度值至上位机。(5).采用适当的控制方法,当设定温度或环境温度突变时减小系统的 调节时间和超调量。二方案论证由于水温控制系统的控制对象具有热储存能力大,惯性也较大的特点,水在容器内的流动或热量传递都存在一定的阻力,因而可以将被控对象归于具有纯滞后的一阶惯性环节。该系统可以采用以下几种控制方案:1.输出开关量控制对于惯性较大的过程可简单地采用输出开关量控制的方法。这种方法通过比较给定值与被控参数来控制输出的状态:通过控制加热回路的晶闸管的导通或关断来控制加热时间,控制过程简单易行,但容易引起反馈回路产生振荡。因此这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。2.PID控制设计PID控制算法(常规PID微分先行PID中间反馈PID等),对给定值与被控参数的偏差进行PID运算,输出控制量来控制加热回路。三系统设计1.硬件设计控制系统框图给定值-控制器电炉驱动电路温度传感器D/AA/D水温 图3-1 水温控制系统结构图系统硬件总体设计框图 4x4键盘AT89C51驱动电路电炉D/A温度传感器A/D图LCD1602液晶显示器3-2 水温控制系统硬件总体设计框图单元电路设计单片机最小系统温度传感器信号调理及A/D转换电路键盘接口电路LCD1602液晶显示电路驱动电路串口通信电路Y开始系统初始化是否有键入?输入键值,程序跳转到相应子程序选择控制算法子程序设定温度子程序运行子程序通信子程序N图3-3 水温控制系统主程序流程Y开始系统初始化是否有键入?输入键值,程序跳转到相应子程序选择控制算法子程序设定温度子程序运行子程序通信子程序N图3-4 水温控制系统运行子程序流程图2.软件设计(1)算法一个受控系统的被控过程一般是一个衰减振荡的过渡过程,该过程可用曲线描述如下:图3-图3-1-1 衰减震荡曲线5 衰减振荡曲线PID控制系统原理框图如下图所示:电热杯GC(S)R(S)C(S)-图3-6 PID控制系统原理框图系统由PID控制器和被控对象组成。PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值c(t)构成控制偏差:e(t)=r(t)-c(t)将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。PID控制算法设计其控制规律表达式为: (3-1)由上式可得PID控制器的传递函数为: (3-2)其中,Kp为比例增益,Ti为积分时间,Td为微分时间。(2)控制系统模型分析建立微分方程:M*C*dT/dt=W0*k(t)-*M*C*(T(s)-T0)将上式经拉普拉斯变换得:在假设室温为0的条件下,将上式经拉普拉斯变换推导出被控对象(即水温)的数学模型为:G(s)=T(s)/K(s)= W0/MC*s+-*MC= W0/MC/s/+1 (3-3)各项参数为:W0900(瓦)M-1.5(kg)C-4200(J/kg*C)-0.001所以,G(s)=0.14/1000s+1PID控制器的传递函数为:采用试凑法进行参数整定,控制器的参数按先比例、再积分、后微分的顺序进行,步骤 如下: 令PID调节器的Ti=,Td=0,使其成为纯比例调节器。比例度按经验数据设置,整定纯比例控制系统的比例度。 加入积分作用。在加积分作用之前,应将比例度加大为原来的1.2倍。将积分时间IT由大到小调整。 加入微分作用,这时可将比例度调到原来的数值或者更小一些。再将微分时间由小到达调整,直到过渡过程曲线达到满意为止。通过试凑法得到PID参数为:Kp=20000,Ti=30000,Td=5000.MATLAB仿真结果图3-7 PID控制框图图3-8仿真结果图四、实验结果实验中烧水高度为6.3cm,设定温度为83度。PID参数调节结果是P=70,I=4,D=0,超调量为3.5,上升时间为626s,稳态误差2,扰动加水0.5 cm,加水后温度降落9.87,恢复时间200S。电热水杯温度上升曲线如下图:五、结论本系统以AT89C51单片机为控制核心,利用DS18B20采集温度并配合PID控制算法提高了水温的控制精度,使用PID控制算法和移相触发可控硅调节方式实施自动控制系统,具有控制参数精度高、反映速度快和稳定性好的特点。六、心得体会在拿到一个课题时首先要做的事就是对课题的任务,要求和条件进行仔细的分析和研究,找出关键问题,根据关键问题提出实现的原理和方法,并画出原理框图。提出原理方案是一个关系到设计全局的问题,应广泛收集与查阅有关资料,广开思路,利用已有的各种理论知识,提出尽可能多的方案,以便做出更合理的选择。所提出的方案中,对关键部分的可行性,一般应通过实验加以确认。根据整个课题的技术要求,明确该功能框对单元电路的技术要求,必要时应详细拟定单元电路的性能指标,然后进行单元电路结构形式的选择或设计,但满足功能的单元电路可能不止一个,因此必须进行分析比较,择优选择。我通过实验课的综合练习,课程设计的实际操作,将课堂理论学习贯穿其中,全面系统的把单片机课程的知识联系在一起,做到融会贯通,使我真正感受到理论应用于实践的乐趣。这次设计是一次锻炼的好机会,使我在学习和巩固新、老知识的同时,训练了自己综合运用知识的能力、分析解决问题的能力,同时也提高了自己的工程实践能力。在设计过程中,我与同学们一同学习、一同讨论,大家集思广益,发扬了团队协作精神。在课程设计过程中,我发现了自己的不足,今后应加强学习,并且加强理论与实践的相结合,把所学的知识应用于实际当中。附录temp.c#include STC12C5A60S2.h#include #include void Delay1us(unsigned int y)for(y;y0;y-)_nop_();_nop_(); unsigned char Ds18b20Init()unsigned int i;DSPORT=0;Delay1us(600);DSPORT=1;i=0;while(DSPORT)i+;if(i5000)return 0;return 1;void Ds18b20WriteByte(unsigned char dat)unsigned int j;for(j=0;j=1;unsigned char Ds18b20ReadByte()unsigned char byte,bi;unsigned int j;for(j=8;j0;j-)DSPORT=0;Delay1us(1);DSPORT=1; Delay1us(6);bi=DSPORT; byte=(byte1)|(bi7); Delay1us(48);return byte;void Ds18b20ChangTemp()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc); Ds18b20WriteByte(0x44);Delay1ms(100);void Ds18b20ReadTempCom()Ds18b20Init(); Delay1ms(10);Ds18b20WriteByte(0xcc);Ds18b20WriteByte(0xbe);int Ds18b20ReadTemp()int temp=0;unsigned char tmh,tml;Ds18b20ChangTemp(); Ds18b20ReadTempCom();tml=Ds18b20ReadByte();tmh=Ds18b20ReadByte();temp=tmh;temp=8;temp|=tml;return temp;Main.c#include STC12C5A60S2.h#include #include #include void Delay1ms(unsigned int y)for(y;y0;y-)unsigned char i, j;_nop_();_nop_();i = 12;j = 168;dowhile (-j); while (-i);float Temp_Change(int temp) unsigned char datas =0, 0, 0, 0, 0, 0, 0, 0; float tp;if(temp 0) temp=temp-1; temp=temp; tp=temp; temp=tp*0.0625*100+0.5; else tp=temp; temp=tp*0.0625*100+0.5;tp=tp*0.0625*100+0.5; DisplayWD(2,8,temp); return tp; void main()LcdInit(); Ds18b20Init(); DisplayChar(0,1,); Delay1ms(1); DisplayChar(1,1,zhaoyang); Delay1ms(1); DisplayChar(0,5,JD:); Delay1ms(1); DisplayChar(1,5,WD:); Delay1ms(1); while(1) Delay1ms(1); LCD_dis_data4(1,8,Ds18b20ReadTemp(); Delay1ms(1); Temp_Change(Ds18b20ReadTemp(); kd.c#include STC12C5A60S2.h#include #include void LcdWriteCom(uchar CMD,uchar Attribc)if(Attribc)WaitForEnable();LCD1602_RS=0;LCD1602_RW=0;_nop_();LCD1602_DATAPINS=CMD;_nop_();LCD1602_E=1;_nop_();_nop_();LCD1602_E=0; void LcdWriteData(uchar dataW)WaitForEnable(); LCD1602_RS=1;LCD1602_RW=0;_nop_();LCD1602_DATAPINS=dataW;_nop_();LCD1602_E=1;_nop_();_nop_();LCD1602_E=0; void LcdInit() LcdWriteCom(0x32,1);LcdWriteCom(0x38,1);LcdWriteCom(0x08,1);LcdWriteCom(0x01,1);LcdWriteCom(0x06,1);LcdWriteCom(0x0c,1); Delay1ms(30);DisplayChar(0,0,Welcome To SUST);Delay1ms(1);DisplayChar(1,0,ML-2016.12.27);Delay1ms(1000);LcdWriteCom(0x01,1);Delay1ms(1);DisplayChar(0,0,Made In 2A314);Delay1ms(1);DisplayChar(1,0,ML-2016.12.27);Delay1ms(2000);LcdWriteCom(0x01,1);Delay1ms(300);void WaitForEnable(void)LCD1602_DATAPINS=0xff;LCD1602_RS=0;LCD1602_RW=1;_nop_();LCD1602_E=1;_nop_();_nop_();while(LCD1602_DATAPINS&0x80);LCD1602_E=0;void Delays(uchar i) while(i-);void DisplayChar(uchar Y,uchar X,uchar *s) Y&=1; X&=15; if(Y)X|=0xC0; else X|=0x80; while(*s!=0)LcdWriteCom(X+,0);LcdWriteData(*s);Delays(1);s+;/void LCD_dis_data5(uchar x,uchar y,uint data5)/ uchar pos,i=0,str6;/switch(x%2)/case 1:pos=0x80+y;break; /case 0:pos=0xc0+y;break; /LcdWriteCom(pos,0); / str0=data5/10000%10+0x30;/ str1=data5/1000%10+0x30;/ str2=data5/100%10+0x30;/ str3=data5/10%10+0x30;/ str4=data5%10+0x30;/ str5=0;/while(stri != 0)/ / LcdWriteData(stri+);/ /void LCD_dis_data4(uchar x,uchar y,uint data4) uchar pos,i=0,str5;switch(x%2)case 1:pos=0x80+y;break; case 0:pos=0xc0+y;break; LcdWriteCom(pos,0); str0=data4/1000%10+0x30; str1=data4/100%10+0x30; str2=data4/10%10+0x30; str3=data4%10+0x30; str4=0;while(stri != 0) LcdWriteData(stri+); /void LCD_dis_data3(uchar x,uchar y,uint data4)/ uchar pos,i=0,str4;/switch

温馨提示

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

评论

0/150

提交评论