PID温度控制器Word版

上传人:沈*** 文档编号:148018021 上传时间:2022-09-03 格式:DOC 页数:27 大小:526KB
收藏 版权申诉 举报 下载
PID温度控制器Word版_第1页
第1页 / 共27页
PID温度控制器Word版_第2页
第2页 / 共27页
PID温度控制器Word版_第3页
第3页 / 共27页
资源描述:

《PID温度控制器Word版》由会员分享,可在线阅读,更多相关《PID温度控制器Word版(27页珍藏版)》请在装配图网上搜索。

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!目 录一、设计内容11.1温度控制11.2设计方案1二、软件设计02.1主程序流程图02.2 DS18B20实现温度转换和温度数值读取流程图02.3显示流程图1三、PID控制23.1PID简介23.2PID控制算法4四、电路设计64.1功能模块设计64.2电路连接设计74.2.1温度检测电路74.2.2继电器控温电路74.2.3外部电路8参考文献9附录 PID温度控制器程序10传播优秀Word版文档 ,希望对您有帮助,可双击去除!一、设计内容1.1温度控制本设计以水为测量对象,温度测量电路接收传感器的信号,并将模拟信号通过模/数转换器转换为

2、数字信号,送入单片机系统,与预设的温度对比,通过一定的控制算法,控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。温度控制算法精确控制温度加热,以温度最小为优化目标。温度是工业控制对象的主要的被控参数之一,如冶金,机械,食品,化工各类工业中广泛使用的各种加热炉,热处理炉,反应炉等。在过去多是采用常规的模拟调节器对温度进行控制,本设计采用了单片微型机对温度实现自动控制。1.2设计方案温度控制系统是一种比较常见和典型的过程控制系统。温度是工业生产过程中重要的被控参数之一,当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID调节的控制

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

4、可使系统整体结构更为简单。传播优秀Word版文档 ,希望对您有帮助,可双击去除!采用以单片机为控制核心的控制系统,尤其对温度控制,可达到模拟控制所达不到的效果,并且实现显示和键盘设定功能,大大提高了系统的智能化。这也使得系统所测得结果的精度大大提高。AT89C51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。而在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。而这种

5、单片机对开发设备的要求非常低,开发时间也能大大缩短。DS18B20是一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有独特的单总线接口方式,仅需使用1个端口就能实现与单片机的双向通讯。采用数字信号输出提高了信号抗干扰能力和温度测量精度。它的工作电压使用范围宽3.05.5 V,可以采用外部供电方式,也可以采用寄生电源方式,即当总线DQ为高电平时,窃取信号能量给DS18B20供电。它还有负压特性,电源极性接反时,DS18B20

6、不会因接错线而烧毁,但不能正常工作。可以通过编程而实现912位的温度转换精度设置。设定的分辨率越高,所需要的温度数据转换时间就越长,在实际应用中要将分辨率和转换时间权衡考虑。RS-232接口是个人计算机上的通讯接口之一,是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。随着设备的不断改进,出现了代替DB25的DB9接口。传播

7、优秀Word版文档 ,希望对您有帮助,可双击去除!二、软件设计2.1主程序流程图系统的主程序流程图如图 2-1 所示,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。开始初始化DS18B20温度读取模块温度值传送温度值处理比较设定温度值与实际温度值是否小于?PID控制运算模块继电器控制模块YN图2-1 主程序流程图2.2 DS18B20实现温度转换和温度数值读取流程图图2-2为DS18B20实现温度转换和温度数值读取流程图,用于系统的温度转换和温度数值的读取。传播优秀Word版文档 ,希望对您有帮助,可双击去除!开始初始化DS18B20应答脉冲发起Skip Rom命令发起

8、Convert T命令延时1秒等待温度转换完成应答脉冲发起Read Scratchpad命令读取第1.2字节即温度数据YYNN图2-2 DS18B20实现温度转换和温度数值读取流程图2.3显示流程图图2-3为系统的显示流程图。主要是通过对传输信号进行显示后,给操作者提供提示。以到达为本系统提供对温度的显示和监控的目的。传播优秀Word版文档 ,希望对您有帮助,可双击去除!串行口初始化向缓冲区送数据查段码图2-3 显示流程图开始送显示结束三、PID控制3.1PID简介PID控制器是一种线性控制器,它根据给定值厂r(t)与实际输出值y(t)构成控制偏差e(t): (3.1)将偏差的比例(Propo

9、rtional)、积分(Integral)和微分(Derivative)通过线性组合构成控制量,对被控对象进行控制,因此称为PID控制。PID控制系统原理如图 3-1 所示。传播优秀Word版文档 ,希望对您有帮助,可双击去除!图 3-1 PID 控制系统原理图其控制规律为: (3.2)或者写成传递函数的形式为: (3.3)式中 :比例系数:积分时间常数:微分时间常数PID控制器各校正环节的作用如下:(1) 比例环节即时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差;(2) 积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积

10、分作用越弱,反之则越强;(3) 微分环节能够反映偏差信号的变化趋势(变化速率),并且能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。传播优秀Word版文档 ,希望对您有帮助,可双击去除!3.2PID控制算法由于计算机控制是一种采样控制系统,它只能根据采样时刻的偏差值计算控制量。因此,(3.2)式中的积分和微分项不能直接使用,需要进行离散化处理。现令为采样周期,以一系列的采样时刻点代表连续时间,以累加求和近似代替积分,以一阶后向差分近似代替微分,做如下的近似变换: (3.4) (3.5) (3.6)其中,为采样周期,为系统第次采样时刻的偏差值

11、,e()为系统第()次采样时刻的偏差值,为采样序号,=0,1,2,。将上面的(3.5)式和(3.6)式代入(3.2)式,则可以得到离散的PID表达式: (3.7)如果采样周期足够小,该算式可以很好的逼近模拟PID算式,因而使被控过程与连续控制过程十分接近。通常把(3.7)式称为PID的位置式控制算法。若在(3.7)式中,令: (称为积分系数) (称为微分系数)则 (3.8)(3.8)式即为离散化的位置式PID控制算法的编程表达式。可以看出,每次输出与过去的所有状态都有关,要想计算,不仅涉及和,且须将历次相加,计算复杂,浪费内存。下面,推导计算较为简单的递推算式。为此,对传播优秀Word版文档

12、,希望对您有帮助,可双击去除!(3.8)式作如下的变动:考虑到第次采样时有 (3.9)使(3.8)式两边对应减去(3.9)式,得 整理后得 (3.10)其中,(3.10)式就是PID位置式得递推形式。如果令 则 式中的、同(3.10)式中的一样。因为在计算机控制中,、都可以事先求出,所以,实际控制时只须获得、三个有限的偏差值就可以求出控制增量。由于其控制输出对应执行机构的位置的增量,故(3.11)式通常被称为PID控制的增量式算式。增量式PID控制算法与位置式控制算法比较,有如下的一些优点: (1) 位置式算法每次输出与整个过去状态有关,算式中要用到过去偏差的累加值,容易产生较大的累计误差。而

13、增量式中只须计算增量,算式中不需 要累加,控制增量的确定仅与最近几次偏差采样值有关,当存在计算误差或者精度不足时,对控制量的影响较小,且较容易通过加权处理获得比较好的控制效果;传播优秀Word版文档 ,希望对您有帮助,可双击去除!(2) 由于计算机只输出控制增量,所以误动作影响小,而且必要时可以用逻辑判断的方法去掉,对系统安全运行有利;(3) 手动一自动切换时冲击比较小。鉴于以上优点,本系统的控制算法即采用增量式的PID控制算法。四、电路设计4.1功能模块设计数字温度传感器DS18B20从设备不同的位置采集温度,并将数字信号送入AT89C51单片机系统,单片机获取采集的温度值,经过处理后得到当

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

15、采集到温度后,会将温度值传送到单片机。单片机获取采集的温度值,经过处理后得到当前环境中一个比较稳定的温度值,根据当前设定的温度上下限值,再通过PID控制算法控制继电器的通断,从而控制加热器的工作,使得水温维持在设定的温度。传播优秀Word版文档 ,希望对您有帮助,可双击去除!图4-3继电器控温电路图4.2.3外部电路启动、复位电路用于系统的开始和重置。图4-4外部电路图传播优秀Word版文档 ,希望对您有帮助,可双击去除!参考文献1 余锡存主编单片机原理与接口技术西安电子科技大学出版社,2001,72 刘金琨先进PID控制及其MATLAB仿真M北京:电子工业出版社,20033 曹巧媛主编单片机

16、原理及应用(第二版)M北京:电子工业出版社,20024 康华光主编.电子技术基础M北京:高等教育出版社,1998,121-1425 何立民单片机高级教程应用M北京:北京航空航天大学出版社,2000,3-146 金发庆等编传感器技术与应用M北京机械工业出版社,20027 秦实宏等单片机原理与应用技术M北京:中国水利水电出版社,2005,27-488 陈忠华基于单片机的温度智能控制系统的设计与实现D大连理工大学硕士学位论文,2006传播优秀Word版文档 ,希望对您有帮助,可双击去除!附录 PID温度控制器程序#pragma db code#include#include INTRINS.H#de

17、fine BUSY1 (DQ1=0) /定义busy信号sbit DQ1=P35; /定义18B20单总线引脚void ds_reset_1(void); /声明18B20复位函数void wr_ds18_1(char dat); /声明18B20写入函数void time_delay(unsigned char time); /声明延时函数int get_temp_1(void); /声明18B20读入温度函数void delay(unsigned int x); /声明延时函数void read_ROM(void); /声明18B20读ROM函数int get_temp_d(void);

18、/声明获取温度函数void ds_init(void); /声明18B20初始化函数void ds_getT(void); /声明18B20获得温度显示值函数void hot();/*以下定义各种变量*/unsigned char ResultSignal;int ResultTemperatureLH,ResultTemperatureLL,ResultTemperatureH;unsigned char ROM8;unsigned char idata TMP; unsigned char idata TMP_d; unsigned char f; unsigned char rd_ds1

19、8_1();unsigned int TemH,TemL; /温度的整数部分和小数部分unsigned int count;unsigned int tt1,tt2; /定义小数计算部分传播优秀Word版文档 ,希望对您有帮助,可双击去除!void main()ds_init(); /18B20初始化 while(1) ds_getT(); /使用该函数获得温度,整数部分存储到TemH,小数部分存储到count的低8位if(TMP_dtt1) hot(); /*18B20初始化函数*/void ds_init(void)unsigned int k=0;ds_reset_1();ds_rese

20、t_1(); /resetwr_ds18_1(0xcc); /skip rom_nop_();wr_ds18_1(0x7f);ds_reset_1();wr_ds18_1(0xcc);_nop_(); wr_ds18_1(0x44);for(k=0;k11000;k+)time_delay(255); ds_reset_1();void ds_getT(void)传播优秀Word版文档 ,希望对您有帮助,可双击去除!wr_ds18_1(0xcc);wr_ds18_1(0xbe);TemH=get_temp_1();TemL=get_temp_d();TemH&=0x00ff;TemL&=0x0

21、0ff;count=(TemH*256+TemL)*6.25;/*延时程序,单位us,大于10us*/void time_delay(unsigned char time) time=time-10; time=time/6; while(time!=0)time-;/*/* reset ds18b20 */*/void ds_reset_1(void) unsigned char idata count=0; DQ1=0; time_delay(240);time_delay(240);DQ1=1; return;void check_pre_1(void)传播优秀Word版文档 ,希望对您

22、有帮助,可双击去除! while(DQ1); while(DQ1); time_delay(30);void read_ROM(void)int n;ds_reset_1(); check_pre_1(); wr_ds18_1(0x33); for(n=0;n8;n+)ROMn=rd_ds18_1(); /*/* Read a bit from 1820位读取 */*/bit tmrbit_1(void) idata char i=0; bit dat; DQ1=0;_nop_(); DQ1=1; _nop_(); _nop_(); _nop_();_nop_(); _nop_();传播优秀W

23、ord版文档 ,希望对您有帮助,可双击去除! _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); dat = DQ1; time_delay(50); return dat;/*/* read a bety from ds18b20 字节读取 */*/unsigned char rd_ds18_1() unsigned char idata i,j,dat=0; for(i=1;i=8;i+) j=tmrbit_1(); dat=(j(i-1)|dat; return dat;/*/传

24、播优秀Word版文档 ,希望对您有帮助,可双击去除!/* write a bety from ds18b20 写字节 */*/void wr_ds18_1(char dat) signed char idata i=0; unsigned char idata j; bit testb; 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_(); 传播优秀Word版文档 ,希望对您有帮助,可双击去除! int

25、get_temp_1(void) unsigned char idata a=0,b=0; unsigned char idata i; EA=0; ds_reset_1(); check_pre_1(); wr_ds18_1(0xcc); wr_ds18_1(0x44); while(BUSY1); ds_reset_1(); check_pre_1(); wr_ds18_1(0xcc); wr_ds18_1(0xbe); a=rd_ds18_1(); b=rd_ds18_1(); i=b; /*若b为1则为负温 */ i=(i4); if(i=0) f=0; TMP=(a4)|(b8)TM

26、P=(TMP+1); else f=1;a=a4; b=b4); if(i=0) f=0; TMP=(a4)|(b4; 传播优秀Word版文档 ,希望对您有帮助,可双击去除! b=b4; TMP=(a|b); m=(m&0x0f); TMP_d=m; EA=1; return(TMP_d);void delay(unsigned int x) unsigned int i; for(i=0;ichannel j:-time k:-set temprature l:-actual tempraturereturn: adjust_time-adjust time*/void pid (unsig

27、ned char ch,float refval) Float DiscE,Tmpr; Errch1=refval-GetTmp(GetData7705(ch+l); /e(k) If(Errch 1=Emax) InteEch 1=InteEch 1=InteEch 0+Errch 1; else InteEch l= InteEch 0; DiscE=Err ch 1-Errch 0; Tmpr=Kp*Errch 1+Ki*InteEch 1+Kd*DiscE; OnMsch 1=GetOnMs(FiltA*OnMsch 0+FiltB*Tmpr); Errch 0=Err ch 1; InteEch 0=InteEch 1; OnMsch 0= OnMsch 1;/*function: float GetOnMs(float OnTime)description: output control timeparameter: nonereturn: ftmp传播优秀Word版文档 ,希望对您有帮助,可双击去除!*/float GetOnMs(float OnTime) float ftmp; if(OnTime=100) ftmp=100; else ftmp=OnTime; return(ftmp);传播优秀Word版文档 ,希望对您有帮助,可双击去除!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!