PID自动控制温度控制器_第1页
PID自动控制温度控制器_第2页
PID自动控制温度控制器_第3页
PID自动控制温度控制器_第4页
PID自动控制温度控制器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、目录一、设计内容21.1温度控制21.2设计方案2二、软件设计01.1.主程序流程图01.2.DS18B20实现温度转换和温度数值读取流程图01.3.显示流程图1三、PID控制2#PID简介2#PID控制算法4四、电路设计6功能模块设计6电路连接设计7温度检测电路7继电器控温电路7外部电路8参考文献9附录PID温度控制器程序10一、设计内容温度控制本设计以水为测量对象,温度测量电路接收传感器的信号,并将模拟信号通过模/数转换器转换为数字信号,送入单片机系统,与预设的温度对比,通过一定的控制算法,控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。温度控制算法精确控制温度加热,以温

2、度最小为优化目标。温度是工业控制对象的主要的被控参数之一,如冶金,机械,食品,化工各类工业中广泛使用的各种加热炉,热处理炉,反应炉等。在过去多是采用常规的模拟调节器对温度进行控制,本设计采用了单片微型机对温度实现自动控制。设计方案温度控制系统是一种比较常见和典型的过程控制系统。温度是工业生产过程中重要的被控参数之一,当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID调节的控制效果要好得多,可控性方面也有了很大的提高。温度是一个非线性的对象,具有大惯性的特点,在低温段惯性较大,在高温段惯性较小。对于这种温控对象,一般认为它具有以下的传递函数形式

3、:这是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且不能用数码管显示,对键盘进行设定。采用89C51单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程来实现各种控制算法和逻辑控制。单片机系统可以使用数码管来显示水温的实际值,能用键盘输入设定值。选用了AT89C51芯片,不需要外扩展存储器,可使系统整体结构更为简单。采用以单片机为控制核心的控制系统,尤其对温度控制,可达到模拟控制所达不到的效果,并且实现显示和键盘设定功能,大大提高了系统的智能化。这也使得系统

4、所测得结果的精度大大提高。AT89C51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。而在众多的51系列单片机中,要算ATMEL公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。而这种单片机对开发设备的要求非常低,开发时间也能大大缩短。DS18B20是一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成申行数字信号(按9位二进制

5、数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有独特的单总线接口方式,仅需使用1个端口就能实现与单片机的双向通讯。采用数字信号输出提高了信号抗干扰能力和温度测量精度。它的工作电压使用范围宽3.05.5V,可以采用外部供电方式,也可以采用寄生电源方式,即当总线DQ为高电平时,窃取信号能量给DS18B20供电。它还有负压特性,电源极性接反时,DS18B20不会因接错线而烧毁,但不能正常工作。可以通过编程而实现912位的温度转换精度设置。设定的分辨率越高,所需要的温度数据转换时间就越长,在实际应用中要将分辨率和转换时间权衡考虑。RS-232接口是个人计算机上的通讯接口之一,是1970

6、年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。随着设备的不断改进,出现了代替DB25的DB9接口。:、软件设计主程序流程图系统的主程序流程图如图2-1所示,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。图2-1主程序流程图DS18B20实现温度转换和温度数值读取流程图图2-2为DS18B20实现温度转换和温

7、度数值读取流程图,用于系统的温度转换和温度数值的读取。2.3显示流程图图2-2DS18B20实现温度转换和温度数值读取流程图图2-3为系统的显示流程图。主要是通过对传输信号进行显示后,给操作者提供提示。以到达为本系统提供对温度的显示和监控的目的三、PID控制PID简介PID控制器是一种线性控制器,它根据给定值厂r(t)与实际输出值y构成控制偏差e(t):e(t)r(t)y(t)(3.1)将偏差 e(t)的比例(Proportional)、积分(Integral)和微分(Derivative)通过线性组合构成控制量,对被控对象进行控制,因此称为PID控制。PID控制系统原理如图3-1所示。其控制

8、规律为:u(t)KPe(t)1te(t)dtTDdeTi0dt或者写成传递函数的形式为:1G(s)KP(1TDS)T1s式中 Kp:比例系数工:积分时间常数TD:微分时间常数PID控制器各校正环节的作用如下:(1)比例环节即时成比例地反映控制系统的偏差信号 e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差;(2)积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,工越大,积分作用越弱,反之则越强;(3)微分环节能够反映偏差信号的变化趋势(变化速率),并且能在偏差信号值变得太大之前,在系图3-1PID控制系统原理图统中引入一个有效的早期修正信号,从而加快系统的

9、动作速度,减少调节时间。PID控制算法由于计算机控制是一种采样控制系统, 它只能根据采样时刻的偏差值计算控制量。 因此,(3.2)式中的积分和微分项不能直接使用,需要进行离散化处理。现令T为采样周期,以一系列的采样时刻点kT代表连续时间t,以累加求和近似代替积分,以一阶后向差分近似代替微分,做如下的近似变换:tkTtkk0e(t)Te(jT)Te(j)j0j0de(t)e(kT)ek1Te(k)e(k1)dtTT其中,T 为采样周期,e(k)为系统第k次采样时刻的偏差值,e(k(k1)次采样时刻的偏差值,k为采样序号,k=0,1,2,。将上面的(3.5)式和(3.6)式代入(3.2)式,则可以

10、得到离散的PID表达式:TkTu(k)Kpe(k)-e(j)我e(k)e(k1)(3.7)Tj0T如果采样周期T足够小,该算式可以很好的逼近模拟PID算式,因而使被控过程与连续控制过程十分接近。通常把(3.7)式称为PID的位置式控制算法。若在(3.7)式中,令:KI区(称为积分系数)TIKD(称为微分系数)k则 u(k)KPe(k)K1e(j)KDe(k)e(k1)(3.8)j0(3.8)式即为离散化的位置式PID控制算法的编程表达式。可以看出,每次输出与过去的所有状态都有关,要想计算 u(k),不仅涉及 e(k)和 e(k1),且须将历次 e(j)相加,计算复杂,浪费内存。下面,推导计算较

11、为简单的递推算式。为(3.4)(3.5)(3.6)1)为系统第此,对(3.8)式作如下的变动:考虑到第(k1)次采样时有Tk1Tnu(k1)Kpe(k1)e(j)e(k1)e(k2)(3.9)1j0T使(3.8)式两边对应减去(3.9)式,得u(k)u(k1)KPe(k)e(k1)-e(k)TDe(k)2e(k1)e(k2)T1T整理后得TTDu(k)u(k1)KPe(k)e(k1)e(k)e(k)2e(k1)e(k2)T1TTTD2TDTDu(k1)KP(1D)e(k)KP(1)e(k1)KPe(k2)T1TTTu(k1)a0e(k)a1e(k1)a2e(k2)(3.10)位置式得递推形式。

12、式中的 a0、a1、22同(3.10)式中的一样因为在计算机控制中,a。、劣、a2都可以事先求出,所以,实际控制时只须获得 e(k)、e(k1)、e(k2)三个有限的偏差值就可以求出控制增量。由于其控制输出对应执行机构的位置的增量,故(3.11)式通常被称为PID控制的增量式算式。增量式PID控制算法与位置式控制算法比较,有如下的一些优点:(1)位置式算法每次输出与整个过去状态有关, 算式中要用到过去偏差的累加值e(j),容易产生较大的累计误差。而增量式中只须计算增量,算式中不需要累加,控制增量的确定仅与最近几次偏差采样值有关,当存在计算误差或者精度不足时,对控制量的影响较小,且较容易通过加权

13、处理获得比较好的其中,a0KP(1TT1TD),a1Kp(12TD),a2KPTD,(3.10)式就是PID如果令 u(k)u(k)u(k1)则u(k)a0e(k)a1e(k1)a2e(k2)控制效果;(2)由于计算机只输出控制增量,所以误动作影响小,而且必要时可以用逻辑判断的方法去掉,对系统安全运行有利;(3)手动一自动切换时冲击比较小。鉴于以上优点,本系统的控制算法即采用增量式的PID控制算法。四、电路设计功能模块设计数字温度传感器DS18B20从设备不同的位置采集温度, 并将数字信号送入AT89C51单片机系统,单片机获取采集的温度值,经过处理后得到当前环境中一个比较稳定的温度值,根据当

14、前设定的温度上下限值,再通过PID控制算法控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。当采集的温度经处理后没有达到设定的温度值时,单片机控制继电器开启升温设备(加热器)。电路连接设计温度检测电路温度检测用DS18B20温度传感器,DS18B20是单线数字式测温芯片,它能在现场采集温度数据,并将温度数据直接转换成数字量,并将数字信号送入AT89C51单片机系统。图4-2为温度检测电路图。图4-2温度检测电路图继电器控温电路当DS18B20采集到温度后,会将温度值传送到单片机。单片机获取采集的温度值,经过处理后得到当前环境中一个比较稳定的温度值,根据当前设定的温度上下限值,再

15、通过PID控制算法控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。4.2.3外部电路启动、复位电路用于系统的开始和重置图4-3继电器控温电路图?c.X食Kh=*三记得参考文献1余锡存主编.单片机原理与接口技术.西安电子科技大学出版社,2001,7.2刘金琨.先进PID控制及其MATLAB仿真M.北京:电子工业出版社,2003.3曹巧媛主编.单片机原理及应用(第二版)M.北京:电子工业出版社,2002.4康华光主编.电子技术基础M.北京:高等教育出版社,1998,121-142.5何立民.单片机高级教程应用M.北京:北京航空航天大学出版社,2000,3-14.6金发庆等编.传感

16、器技术与应用M.北京机械工业出版社,2002.7秦实宏等.单片机原理与应用技术M.北京:中国水利水电出版社,2005,27-48.8陈忠华.基于单片机的温度智能控制系统的设计与实现D.大连理工大学硕士学位论文,2006.附录PID温度控制器程序#pragmadbcode#include#includeINTRINS.H#defineBUSY1(DQ1=0)/定义busy信号sbitDQ1=P3A5;定义18B20单总线弓I脚voidds_reset_1(void);voidwr_ds18_1(chardat);voidtime_delay(unsignedchartime);intget_te

17、mp_1(void);voiddelay(unsignedintx);voidread_ROM(void);intget_temp_d(void);voidds_init(void);voidds_getT(void);voidhot();/声明18B20复位函数/声明18B20写入函数声明延时函数/声明18B20读入温度函数声明延时函数/声明18B20读ROM函数/声明获取温度函数/声明18B20初始化函数/声明18B20获得温度显示信函数unsignedcharResultSignal;intResultTemperatureLH,ResultTemperatureLL,ResultTem

18、peratureH;unsignedcharROM8;unsignedcharidataTMP;unsignedcharidataTMP_d;unsignedcharf;unsignedcharrd_ds18_1();unsignedintTemH,TemL;/温度的整数部分和小数部分unsignedintcount;unsignedinttt1,tt2;/定义小数计算部分/*以下定义各种变量amvoidmain()(ds_init();18B20初始化while(1)(ds_getT();/使用该函数获得温度,整数部分存储到TemH,小数部分存储到count的低8位if(TMP_dtt1)(

19、hot();voidds_init(void)(unsignedintk=0;ds_reset_1();ds_reset_1();wr_ds18_1(0 xcc);_nop_();wr_ds18_1(0 x7f);ds_reset_1();wr_ds18_1(0 xcc);_nop_();wr_ds18_1(0 x44);for(k=0;k11000;k+)time_delay(255);ds_reset_1();/* 18B20初始化函数*/reset/skiprom(wr_ds18_1(0 xcc);wr_ds18_1(0 xbe);TemH=get_temp_1();TemL=get_t

20、emp_d();TemH&=0 x00ff;TemL&=0 x00ff;count=(TemH*256+TemL)*6.25;延时程序,单位us大于10us*/voidtime_delay(unsignedchartime)(time=time-10;time=time/6;while(time!=0)time-;/*/*voidds_reset_1(void)(unsignedcharidatacount=0;DQ1=0;time_delay(240);time_delay(240);DQ1=1;return;voidcheck_pre_1(void)/*/*resetds1

21、8b20*/while(DQI);while(-DQ1);time_delay(30);voidread_ROM(void)intn;ds_reset_1();check_pre_1();wr_ds18_1(0 x33);for(n=0;n8;n+)ROMn=rd_ds18_1();/*/*/bittmrbit_1(void)idatachari=0;bitdat;DQ1=0;_nop_();DQ1=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*Readabitfrom18

22、20位读取*/_nop_();_nop_();_nop_();_nop_();dat=DQ1;time_delay(50);returndat;)/*/*readabetyfromds18b20字节读取*/*/unsignedcharrd_ds18_1()unsignedcharidatai,j,dat=0;for(i=1;i=8;i+)j=tmrbit_1();dat=(j(i-1)|dat;)returndat;)*/*writeabetyfromds18b20写字节产*1voidwr_ds18_1(chardat)(signedcharidatai=0;unsignedcharidata

23、j;bittestb;for(j=1;j1;if(testb)(DQ1=0;_nop_();_nop_();DQ1=1;time_delay(60);else(DQ1=0;time_delay(50);DQ1=1;_nop_();_nop_();*/)intget_temp_1(void)(unsignedcharidataa=0,b=0;unsignedcharidatai;EA=0;ds_reset_1();check_pre_1();wr_ds18_1(0 xcc);wr_ds18_1(0 x44);while(BUSY1);ds_reset_1();check_pre_1();wr_ds18_1(0 xcc);wr_ds18_1(0 xbe);a=rd_ds18_1();b=rd_ds18_1();i=b;i=(i4);if(i=0)(

温馨提示

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

评论

0/150

提交评论