PID自动温度控制器_第1页
PID自动温度控制器_第2页
PID自动温度控制器_第3页
PID自动温度控制器_第4页
PID自动温度控制器_第5页
免费预览已结束,剩余27页可下载查看

付费下载

下载本文档

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

文档简介

1、、设计内容1.1温度控制1.2设计方案二、软件设计2.1主程序流程图2.2 DS18B20实现温度转换和温度数值读取流程图2.3显示流程图三、PID控制3.1 PID简介3.2PID控制算法四、电路设计4.1功能模块设计4.2电路连接设计4.2.1温度检测电路 4.2.2继电器控温电路 4.2.3外部电路参考文献10附录PID温度控制器程序、设计内容1.1温度控制本设计以水为测量对象,温度测量电路接收传感器的信号,并将模拟信号通过模/数转换器转换为数字信号,送入单片机系统,与预设的温度对比,通过一定 的控制算法,控制继电器的通断,从而控制加热器的工作,使得水温维持在设定 的温度。温度控制算法精

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

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

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

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

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

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

8、portional)、积分(Integral)性组合构成控制量,对被控对象进行控制,因此称为PID控制。PID控制系统原理如图3-1所示。图3-1 PID控制系统原理图r(t) +t0e(t)dt(3.2)其控制规律为:1u(t) Kp e(t)-T1或者写成传递函数的形式为:1g(S) kp(1 tsTdS)(3.3)式中Kp :比例系数Ti :积分时间常数Td :微分时间常数PID控制器各校正环节的作用如下:比例环节即时成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差;积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,t越

9、大,积分作用越弱,反之则越强;微分环节能够反映偏差信号的变化趋势(变化速率),并且能在偏差信号值变得 太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速 度,减少调节时间。3.2 PID控制算法由于计算机控制是一种采样控制系统,它只能根据采样时刻的偏差值计算控 制量。因此,(3.2)式中的积分和微分项不能直接使用,需要进行离散化处理。现令T为采样周期,以一系列的采样时刻点kT代表连续时间t,以累加求和近似代替积分,以一阶后向差分近似代替微分,做如下的近似变换:t kT(3. 4)t0e(t)kT e(jT)j 0kT e(j)j 0(3. 5)de(t) e(kT) e kdt

10、T1 T e(k) e(k 1)(3. 6)其中,T为采样周期,e(k)为系统第k次采样时刻的偏差值,e(k1)为系统第(k 1)次采样时刻的偏差值,k为采样序号,k=0,1, 2,将上面的(3. 5)式和(3. 6)式代入(3. 2)式,则可以得到离散的PID表达式:u(k) Kp e(k)T kT-e(j) -D e(k) e(k 1)I1 j 0I(3. 7)如果采样周期T足够小,该算式可以很好的逼近模拟PID算式,因而使被控过程与连续控制过程十分接近。通常把(3.7)式称为PID的位置式控制算法。若在(3. 7)式中,令:K1KPTT1(称为积分系数)KdKpTd(称为微分系数)ke(

11、k) e(k 1)(3.8)则 u(k)Kpe(k)K1 e(j) Kdj 0(3.8)式即为离散化的位置式PID控制算法的编程表达式。可以看出,每次输出与过去的所有状态都有关,要想计算u(k),不仅涉及e(k)和e(k 1),且须将历次e(j)相加,计算复杂,浪费内存。下面,推导计算较为简单的递推算式。为此, 对(3. 8)式作如下的变动:考虑到第(k 1)次采样时有u(k 1) Kp e(k 1) TT1k 1e(j)j 0Te(k1) e(k 2)(3. 9)使(3. 8)式两边对应减去(3. 9)式,得u(k) u(k 1) Kp e(k)e(k1) Te(k)I1Td e(k) 2e

12、(k 1) e(k2)整理后得u(k) u(k1) Kp e(k) e(ku(k 1)u(k 1)Kp(1 T 辛)e(k)I1 Ia0e(k) a1e(k 1)1) Te(k)T1Kp(1 牛)e(k 1) Kp TDe(k 2)2)a2e(ke(k) 2e(k 1) e(k2)(3. 10)其中,a0 Kpd T ID), a1T, TKp(1半),a2KpTD,(3. 10)式就是 PID位置式得递推形式。如果令 u(k) u(k) u(k1)则u(k) a0e(k) a1e(k 1) a2e(k 2)式中的a。、a1、a2同(3. 10)式中的一样。因为在计算机控制中,ao、a1、a2

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

14、响小,而且必要时可以用逻辑判断的方法去掉,对系统安全运行有利;(3) 手动一自动切换时冲击比较小。鉴于以上优点,本系统的控制算法即采用增量式的PID控制算法。四、电路设计4.1功能模块设计数字温度传感器 DS18B20从设备不同的位置采集温度,并将数字信号送入AT89C51单片机系统,单片机获取采集的温度值,经过处理后得到当前环境中一 个比较稳定的温度值,根据当前设定的温度上下限值,再通过PID控制算法控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。当采集的 温度经处理后没有达到设定的温度值时,单片机控制继电器开启升温设备(加热器)。fl.T展;.w十I.-=,I'+

15、 - .图4-1单片机电路图4.2电路连接设计4.2.1温度检测电路温度检测用DS18B20温度传感器,DS18B20是单线数字式测温芯片,它能在现 场采集温度数据,并将温度数据直接转换成数字量,并将数字信号送入AT89C51单片机系统。图4-2为温度检测电路图。图4-2温度检测电路图4.2.2继电器控温电路当DS18B20采集到温度后,会将温度值传送到单片机。单片机获取采集的温 度值,经过处理后得到当前环境中一个比较稳定的温度值,根据当前设定的温度 上下限值,再通过PID控制算法控制继电器的通断,从而控制加热器的工作,使 得水温维持在设定的温度。Vf于5-一一 二一O:EDI cc?C耶:s

16、se.pr?c三壬VK-rf,帝:u :±1:业s用::填PCPCIjIXTlm1 m氐:£rcT:lU存Em订I?hr2ICEE itJCCGrm图4-3继电器控温电路图VccIf血忙応423外部电路启动、复位电路用于系统的开始和重置。J975玄EL5Ta氏?::: P: 1 ":U.SF: 1=-JrsTi CXT3【曙114ILTT尸*tDA二s话TpjI H - J . h-41 F SKX 二 st ' - J 6- - D gC:当昨IdTTtLT-r-T可g讥星?B0zc图4-4外部电路图参考文献1234578余锡存主编单片机原理与接口技术西

17、安电子科技大学出版社,2001 ,刘金琨.先进 PID控制及其MATLAB仿真M.北京:电子工业出版社, 曹巧媛主编.单片机原理及应用 康华光主编.电子技术基础M 何立民单片机高级教程应用 金发庆等编传感器技术与应用秦实宏等.单片机原理与应用技术 陈忠华.基于单片机的温度智能控制系统的设计与实现2006.7.2003.2002 .(第二版)M.北京:电子工业出版社,.北京:高等教育出版社,1998 , 121-142 .M.北京:北京航空航天大学出版社,2000, 3-14 .M.北京机械工业出版社,2002.M.北京:中国水利水电出版社, 2005, 27-48 .D.大连理工大学硕士学位论

18、文,附录PID温度控制器程序#p ragma db code #i ncludevAT89C51.H> #in clude "INTRINS.H"un sig ned int tt1,tt2;II定义小数计算部分#defi ne BUSY1 (DQ1=0)/定义busy信号/定义18B20单总线引脚void ds_reset_1(void);II声明18B20复位函数void wr_ds18_1(char dat);II声明18B20写入函数void time_delay (un sig ned char time);II声明延时函数int get_temp_1(vo

19、id);II声明18B20读入温度函数void delay (un sig ned int x);II声明延时函数void read_ROM(void);II声明18B20读ROM函数int get_temp_d(void);II声明获取温度函数sbit DQ1= P3A5;II声明18B20初始化函数void ds_getT(void);II声明18B20获得温度显示值函数void ds_i nit(void);*void hot();I*以下定义各种变量un sig ned char ResultSig nal;int ResultTe mp eratureLH,ResultTe mp e

20、ratureLL,ResultTe mp eratureH;un sig ned char ROM8;un sig ned char idata TMP;un sig ned char idata TMP_d;un sig ned char f;un sig ned char rd_ds18_1();un sig ned int TemH,TemL;/温度的整数部分和小数部分un sig ned int count;ds_reset_1();void main()ds_i nit();/18B20初始化while(1)ds_getT();/使用该函数获得温度,整数部分存储到TemH,小数部分存

21、储到count的低8位if(TMP _d<tt1)hot();/*18B20初始化函*/void ds_i nit(void)un sig ned int k=0;ds_reset_1();/reset/ski p romds_reset_1();wr_ds18_1(0xcc);_nop_();wr_ds18_1(0x7f);ds_reset_1();wr_ds18_1(0xcc);_nop_();wr_ds18_1(0x44);for(k=0;k<11000;k+)time_delay(255);void ds_getT(void)wr_ds18_1(0xcc);wr_ds18_

22、1(0xbe);TemH=get_temp_1();TemL=get_temp_d();Tem H&=0x00ff;TemL&=0x00ff;cou nt=(TemH*256+TemL)*6.25;/*延时程序 单位 us大于 10us*/ void time_delay (un sig ned char time)time=time-10;time=time/6;while(time!=0)time-;/*/*reset ds18b20*/*/ void ds_reset_1(void)un sig ned char idata coun t=0;DQ1=0;time_del

23、ay(240);time_delay(240);DQ1=1;return;void check_ pre_1(void)while(DQI);while(DQ1);time_delay(30);void read_ROM(void)int n;ds_reset_1();checkpre_1();wr_ds18_1(0x33);for(n=0; * 8; n+)ROM n=rd_ds18_1();/*/*Read a bit from 1820位读取*/*/bit tmrbit_1(void)idata char i=0;bit dat;DQ1=0;_nop_();DQ1=1;_nop_();_

24、nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();dat = DQ1;time_delay(50);return dat;/*/*read a bety from ds18b20 字节读取 */*/ un sig ned char rd_ds18_1()un sig ned char idata i,j,dat=0;for(i=1;i<=8;i+)j=tmrbit_1();dat=(j<<(i-1)|dat;return dat;/*/_

25、nop_();/*write a bety from ds18b20 写字节*/*/ void wr_ds18_1(char dat)signed char idata i=0;un sig ned char idata j;bit testb;for(j=1;jv=8;j+)testb=dat & 0x01;dat = dat>>1;if(testb)DQ1=0;_nop_();_nop_();DQ1=1;time_delay(60);elseDQ1=0;time_delay(50);DQ1=1;_nop_();int get_temp_1(void)un sig ned

26、 char idata a=O,b=O;un sig ned char idata i;EA=O;ds_reset_1();checkpre_1();wr_ds18_1(0xcc);wr_ds18_1(0x44);while(BUSYI);ds_reset_1();checkpre_1();wr_ds18_1(0xcc);wr_ds18_1(0xbe);a=rd_ds18_1();b=rd_ds18_1();i=b;/*若b为1则为负温*/i=(i>>4);if(i=0)f=0;TMP=(a>>4)|(b<<4);a=(a&0 x0f);if (a&

27、gt;8)TMP=(T MP+1);checkpre_1();elsef=1;a=a>>4;b=b<<4;TMP=(a|b);TMP=TMP;TMP=(TMP+1);EA=1;return(TM P);int get_temp_d(void)un sig ned char idata a=O,b=O;un sig ned char idata i,m;EA=0;/复位ds_reset_1();wr_ds18_1(0xcc);wr_ds18_1(0x44);while(BUSYI);ds_reset_1();checkpre_1();wr_ds18_1(0xcc);wr_

28、ds18_1(0xbe);a=rd_ds18_1();b=rd_ds18_1();i=b;/*若b为1则为负温 */i=(i>>4);if(i=0)f=0;TMP=(a>>4)|(b<<4);a=(a&0 x0f);TMP_d=a;elsef=1;a=a;a=(a+1);b=b;b=(b+1);m=a;a=a>>4;b=b<<4;TMP=(a|b);m=( m&O x0f);TMP _d=m;EA=1;return(T MP _d);void delay (un sig ned int x)un sig ned int i;for(i=0;i<x;i+);void hot() 2. PID控制#defi ne FiltA0.1;/PID输出的滤波系数(0.0-1.0)#defi ne FiltB0.9/ PID输出的滤波系数(1-FilterA)#defi ne Kp1.75/PID控制器的比例系数#defi ne Ki0.00125/PID控制器的积分系数#

温馨提示

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

评论

0/150

提交评论