




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、温度是工业生产和生活中常见的参量之一,及时准确地得到温度信息并对其进行适当控制的智能化温度控制系统得到了广泛应用。本水温控制系统采用STC89C52单片机为核心,利用DS18B20对温度进行采样,实现水温的实时监测与控制,根据单片机输入温度值与系统给定温度值的比较结果,采用mos管控制加热器进行升温、降温控制,并结合数字PID算法,实现温度的高精度自动控制,系统具有控制方便、简单、灵活性高的特点。l 设计并制作一个水温自动控制系统,控制对象为1升水,容器为搪瓷器皿。水温可以在一定范围内设定,并能实现在1070量程范围内对每一点温度的自动控制,以保持设定的温度基本保持不变。l 基本要求:l 1)
2、可键盘设定控制温度值,并能用液晶显示,显示最小区分度为0.1;l 2)可以测量并显示水的实际温度。温度测量误差在0.5 内;l 3)水温控制系统应具有全量程(1070)内的升温、降温功能(降温可用半导体制冷片、升温用800W以内的电加热器);l 4)在全量程内任意设定一个温度值(例如起始温度15内),控制系统可以实现该给定温度的恒值自动控制。控制的最大动态误差4,静态误差1,系统达到稳态的时间15min(最少两个波动周期)。水温控制系统以STC89C52单片机作为控制核心,采用开关控制和PID控制算法相结合,通过控制单位时间内加热时间所占的比例(即控制波形的占空比)来控制水的加热速度,实现对1
3、L水的全量程(1070)内的升温、降温功能的自动控制。根据设计要求系统可划分为控制模块、温度测量模块、水温调节模块、键盘输入模块、显示电路模块等。系统原理框图如图12-1所示:图12-1 水温控制系统原理框图STC 89C52首先写命令给DS18B20, DS18B20开始转换数据,将转换后的温度数据送入89C52进行处理,处理后在液晶屏上实时显示。并将实际测量温度值与键盘设定值进行比较,根据比较结果进行温度调节,当温差比较大时采用开关量调节,既全速加热和制冷,当温差小时采用PID算法进行调节,最终达到温度得稳定控制。其中,加热采用内置(水中)电阻丝实现,热量直接与水传递,加热效果好,控温方便
4、;降温采用半导体制冷片实现。其体积小,安装简单,易于控制,价格便宜,可短时间内反复启动。但其制冷速率不高,所以设计中配套散热风扇以达到快速降温的目的。l 实际温度控制系统,常采用开关控制或数字PID控制方式。开关控制的特点是可以使系统以最快的速度向平衡点靠近,但在实际应用却很容易造成系统在平衡点附近振荡,精度不高;而数字PID控制具有稳态误差小特点,实用性广泛的特点,但误差较大时,系统容易出现积分饱和,从而份致系统出现很大的超调量,甚至出现失控现象。因此,本设计将开关控制,防积分饱和、防参数突变微分饱和等方法溶入PID控制算法组成复合式数字PID控制方法,集各种控制策略的优点,既改善了常规控制
5、的动态过程又保持了常规控制的稳态特性。l 控制算法的确定l 温度控制过程为:当水温温差大时,采用开关控制方式迅速减小温差,以缩短调节时间;当温差小于某一值后采用PID控制方式,以使系统快速稳定并保持系统无静态误差。在这种控制方法中, PID控制在较小温差时开始进入,这样可有效避免数字积分器的饱和。PID参数和被控制对象关系密切,要精确得到被控对象模型比较困难,为此,采用离线模糊整定的方法来确定PID参数,即给出一组PID参数的初值,测得相应的数据,按使这个量减小的方向调节PID参数,用整定后的参数控制该系统,并根据输出的调节时间、超调量及稳态误差,调节PID参数,如此反复,求得一组使系统性能最
6、优的PID参数。复合PID控制系统方框图如图12-2所示。根据设计要求,系统对1L净水进行加热或降温处理,根据水的对象特性,会出现惯性温度误差问题,原因如下:温度控制器采用发热丝对水进行加热。发热丝通电加热时,内部温度很高。当容器内水温升高至设定温度时,温度控制器发出信号停止加热。但这时发热丝的温度会高于设定温度,发热丝还将继续对对水进行加热,导致水的温度还会继续上升几度,然后才开始下降。当水温下降到设定温度的下限时,温度控制器又发出加热信号,开始加热,但发热丝要把温度传递到被加热器件需要一定的时间,导致水温会继续下降几度。所以,为了对水温实现精确控制,使温度测量误差在0.5 内,必须采用PI
7、D模糊控制算法,通过Pvar、Ivar、Dvar(比例、积分、微分)三方面的结合形成一个模糊控制来解决惯性温度误差问题。利用数值逼近方法,在采样时刻t=iT(T为采样周期,i为正整数)时,PID调节规律可通过下式近似计算。则增量式PID算法的输出量为:式中,ei、ei-1、ei-2分别为第n次、n-1次和n-2次的偏差值,Kp、Ti、Td分别为比例系数、积分系数和微分系数,T为采样周期。单片机每隔固定时间 T将现场温度与用户设定目标温度的差值带入增量式PID算法公式,由公式输出量决定PWM方波的占空比,后续加热电路根据此PWM方波的占空比决定加热功率。现场温度与目标温度的偏差大则占空比大,加热
8、电路加热功率增大,使温度的实测值与设定值的偏差迅速减少;反之,二者的偏差小则占空比减小,加热电路加热功率减少,直至目标值与实测值相等,达到自动控制的目的。 PID参数的选择是设计成败的关键,它决定了温度控制的准确度。由于温度系统是一个具有较大滞后性的系统,所以本系统的采样周期定为10秒,加热周期定为1秒钟,根据一些文献提供的经验值,初步确定Kp=2,Ti=2,Td=0.5,根据公式Ki= Kp*T/ TI ;Kd = Kp * TD /T;计算得出Ki=1,Kd=1;然后,由按键对系统设定一个温度值,在线应用工程整定法中的经验法对P,I,D各参数进行调整,经验法是一种凑试法,它通过模拟或闭环运
9、行,观察调节过程的响应曲线,如果曲线不够理想,则按某种程序将参数反复凑试,直到调节质量满意为止。凑试程序通常是先比例后积分,最后加入微分。凑试法整定PID参数的步骤是:1)首先进行P整定。将参数Kp由小而大慢慢变化,直至得到反应快,超调小的响应曲线。若无静差或静差在允许范围内且响应曲线满意,整定结束,否则继续下步。2)进行PI整定。略小于Kp值,将Ti由大而小缓慢变化,在保持系统动态性能良好的前提下,消除静差或是静差允许范围内。反复改变Kp,Ti值以求得较好效果,若效果满意,则整定结束,否则继续下去。3)进行PID整定。略改变Kp,Ti的值,使Td由小而大缓慢变化,以求得较好的响应曲线和较小的
10、静差。逐步反复的试凑,直至获得满意效果为止。 对于一定的系统,合理的参数组并不唯一,根据一些文献的实践经验,在具体实施PID参数整定时,以下几个结论比较实用:1)比例系数Kp是PID调节中最关键的一个参数,Kp增大,系统稳定性增加,但调节灵敏度减弱,一般曲线振荡频繁时,要增大Kp,而曲线飘浮绕大弯时,要减小Kp.2)积分时间常数Ti主要起消除静差的作用,减小Ti,消除静差快,但稳定性减小,一般曲线偏离恢复慢时,减小Ti,而曲线波动周期长时,再增大Ki。3)微分时间常数Td是加速过程的有力调节,在加速过渡过程,应增加Td,Td不宜过小,也不宜太大,Td一般选Ti的四分之一为最佳。根据以上调节的步
11、骤及调节的方法及经验,经过反复的试验做后得到最终的P,I,D的参数为Kp=30,Ki=5,Kd=0.水温控制系统的硬件电路主要包括:主控电路、温度采集电路、温控电路和显示电路等,下面依次对各部分进行设计。12.4.1 主控电路主控电路采用STC89C52单片机作为系统控制器,结合数字PID算法完成对温度测量信号的接收、处理,控制加热器和制冷片,使水温控制达到设计要求。主控电路包括STC89C52最小系统和键盘电路两部分,STC89C52最小系统在上一章中已介绍,这里不再赘述。本设计键盘采用RF-X1开发板上的6个独立按键中的4个,各按键经上拉电阻分别接到单片机的P3.2、P3.3、P3.4、P
12、3.5口上,起到确认、选择、上调和下调的作用,每按上调或下调键一次,设定温度值加1或减1。电路图如图12-3所示。EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1STC89C52S4S1S2S3S19D94001C222pFC322PfC110uFY112MHZR110K+5
13、VR6110K6210KR6310KR6510K+5VP32P33P34P3612.4.2 温度采集电路本系统采用DS18B20单总线可编程温度传感器来实现温度的采集和转换,温度以912位数字量读出,可以直接与单片机进行连接,无需外部器件和电源,大大简化了电路的复杂度。DS18B20应用广泛,测温范围为-55+125oC,温度数字量转换快,性能可以满足题目的设计要求。DS18B20的测温电路如图12-4所示。图12-4 DS18B20温度采集电路12.4.3 温度控制电路温度控制电路采用加热器和制冷片对1L水实现加热和降温,具体电路如图12-5所示。当实测温度高于设定温度时,单片机P0.2脚输
14、出低电平,光耦管导通输出高电平,进入LM393管脚比较整形,滤除高次谐波,输出高电平,进入Q3和Q4组成的推挽电路,Q3导通Q4截止,输出低电平,晶闸管导通,驱动制冷片降温。当实测温度低于设定温度时,P0.3脚输出低电平,驱动加热器对水温进行加热,工作原理与降温驱动相同,这里不再赘述。GND1GND3DQ2U2DS18B20R574.7K+5VP35图12-5 加热和制冷驱动电路12.4.4 显示电路显示电路采用LCD12864液晶模块显示系统的设定温度和实测温度。LCD12864液晶共有20个引脚,管脚名称及功能如表12-1所示。本系统选用单片机P1口作为数据输出端与LCD12864的数据端
15、(DB0DB7)相连,进行水温数据传输;P20接串并行模式方式位RS;P21接并行的读写方式位R/W;P22接并行使能端口E;P23接并/串行接口选择位PSB;P24接复位端口RST。具体电路图如图12-6所示。R41KR810KR510KR71KR104.7KR134.7KR1120KR1220KR31KR21KU3U4D1D2R910KR610K1234D3BRIDGE1M2RF470M1RF470Q1MPS8050Q3MPS8050Q4MPS8550Q2MPS855032184U1ALM39332184U2ALM39321CON2电热丝500W+5V+5V+5V+12V+12V+12V
16、150WSGND220V/50HzP02P03引脚号引脚名称方向功能说明1VSS-模块的电源地2VCC-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC 空脚17/RETH/L复位 低电平有效18NC 空脚19
17、LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-0V)表12-1 CA12864K引脚分布图12-6 LCD12864液晶显示电路系统的软件设计应用C语言,采用模块化对单片机进行编程实现各项功能。主要包括:PID控制程序、按键子程序、温度采集子程序、温度比较子程序和液晶显示程序。12.5.1 主程序设计系统上电初始化后,首先进行按键扫描,若有按键按下,则读取按键值,更新设定温度。将实测温度与设定温度进行比较,若实测温度与设定温度差值大于2C,则对水进行全速加热或降温;若实测温度与设定温度差值小于2C,则调用PID子程序,对水温进行微调,达到设计要求。系统主程序流程图如
18、图12-7所示。12.5.2 PID控制程序PID控制就是按设定值与测量值之间偏差的比例、偏差的积累和偏差变化的趋势进行控制。它根据采样时刻的偏差值计算输出控制量的增量,调节控制信号的导通时间来控制加热电路和冷却电路的工作。当采样周期相当短时,可以用求和代替积分,用差商代替微分。PID控制子程序如下:/*PID算法*/unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint ) unsigned int dError,Error; Error = pp-SetPoint - NextPoint; / 偏差pp-SumError +
19、= Error; / 积分dError = pp-LastError - pp-PrevError; / 当前微分pp-PrevError = pp-LastError; pp-LastError = Error; return (pp-Proportion * Error/比例+ pp-Integral * pp-SumError /积分项+ pp-Derivative * dError); / 微分项/*/12.5.3 按键子程序本系统采用四个按键,完成温度的设定。当选择键K1每按下一次,K1num加1,根据K1num值选择对温度值的百位(预留)、十位、个位进行数值调节。每按一次按键K2,
20、对应位数值加1,每按一次按键K1,对应位数值减1,并将设定温度值写到液晶显示器的相应位置。按键子程序如下:/*按键子程序*/void sheding()if(k1=0)delay1(10);if(k1=0) /按键K1按下while(!k1);/按键K1抬起write_com(0 x0f);write_com(0 x94);k1num+;switch(k1num)case 1:write_com(0 x0f);write_com(0 x94);/液晶显示位置,十位break;case 2: write_com(0 x95);/液晶显示位置,个位break;case 3: write_com(0
21、 x96);/液晶显示位置,小数位break;case 4: k1num=0;write_com(0 x0c);/清零break;if(k1num!=0)/返回/温度值加处理:if(k2=0) /按键K2按下delay1(10);if(k2=0) while(!k2);switch(k1num)case 1: shi+;if(shi=10)shi=0;a=shi;/十位加1,到10清零write_com(0 x94);write_date(tableshi);write_com(0 x94);break;case 2: ge+;if(ge=10)ge=0;b=ge;/个位加1,到10清零 wr
22、ite_com(0 x95);write_date(tablege);write_com(0 x95);break;case 3: xs+;if(xs=10)xs=0;c=xs;/小数位加1,到10清零write_com(0 x96);write_date(.);write_date(tablexs);write_com(0 x96);/在液晶对应位置画点break;/温度值减处理:if(k3=0) delay1(10);if(k3=0)while(!k3);switch(k1num)case 1:shi-;if(shi=-1)shi=9;a=shi;write_com(0 x94);writ
23、e_date(tableshi);write_com(0 x94);break;case 2:ge-;if(ge=-1)ge=9;b=ge; write_com(0 x95); write_date(tablege);write_com(0 x95);break;case 3:xs-;if(xs=-1)xs=9;c=xs; write_com(0 x96);write_date(.);write_date(tablexs);write_com(0 x96);break;/*/12.5.4 DS18B20温度采集子程序系统采用DS18B20对1L水的温度进行采集。首先根据DS18B20的工作时序
24、对其进行初始化,并对DS18B20内部寄存器读写操作进行定义。系统工作时,单片机读取DS18B20内部寄存器的二进制数值,将其转化为十进制的真实温度值。DS18B20温度采集子程序如下:/* DS18B20温度采集子程序*/void init_DS18B20()/初始化uchar x=0;DS18B20 = 1; /DQ复位delay(8); /稍做延时DS18B20 = 0; /单片机将DQ拉低delay(80); /精确延时 大于 480usDS18B20 = 1; /拉高总线delay(14);x=DS18B20; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20
25、);uchar read_onechar()/读一个字节uchar i=0;uchar date = 0;for (i=8;i0;i-)DS18B20 = 0; date=1; /寄存器右移DS18B20 = 1; if(DS18B20)date|=0 x80;delay(4);return(date);void write_onechar(uchar date)/写一个字节uchar i=0;for (i=8; i0; i-)DS18B20 = 0;DS18B20 = date&0 x01;delay(5);DS18B20 = 1;date=1;uint read_temp()/读取
26、温度uchar a=0;uchar b=0;uint t=0;float tt=0;init_DS18B20();write_onechar(0 xcc); / 跳过读序号列号的操作write_onechar(0 x44); / 启动温度转换init_DS18B20();write_onechar(0 xcc); /跳过读序号列号的操作write_onechar(0 xbe); /读取温度寄存器a=read_onechar(); /连续读两个字节数据 /读低8位 b=read_onechar(); /读高8位t=b;ttemper) /是否设置的温度大于实际温度 if(set_temper-t
27、emper2) /设置的温度比实际的温度是否是大于2度 high_time=100; /如果是,则全速加热low_time=0; else /如果是在0.8到2度范围,则开始降温 if(set_temper-temper0.8)high_time=0; low_time=100;else /如果温差小于0.8度,运行PID计算for(i=0;i10;i+) s=read_temp(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time=100) high_
28、time=(unsigned char)(rout/1000); elsehigh_time=100; low_time= (100-high_time); else if(set_temper=temper) /是否设置的温度小于实际温度 if(set_temper-temper0) high_time=0; low_time=100; /全速降温 else /实际温度大于设定温度,马上开启PID计算 for(i=0;i10;i+) s=read_temp(); rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform
29、 PID Interation if (high_time100) high_time=(unsigned char)(rout/10000); elsehigh_time=0; low_time= (100-high_time); /*/12.5.6 液晶显示程序液晶显示器用于显示水温的实际温度和设定温度。首先对LCD12864进行初始化,并读取控制器当前状态,判断是否准备好(空闲)。然后向液晶模块写入指令代码,进行显示准备,将要水温以十六进制代码的形式送入液晶显示缓冲区,最后利用读显示数据指令控制液晶模块在相应位置显示水温数据。液晶显示程序如下:/*LCD12864初始化*/void in
30、it_lcd()/lcd_psb=1;write_com(0 x34);/扩充指令集delay1(2);write_com(0 x30);/基本指令集delay1(2);write_com(0 x02);/显示归位delay1(2);write_com(0 x01);/清屏显示delay1(2);write_com(0 x0c);/显示状态开关delay1(2);write_com(0 x06);/显示光标移动设置delay1(2);/*写数据*/void write_date(uchar date)read_busy();lcd_rs=1;delay(5);lcd_rw=0;delay(5)
31、;lcd_date=date;lcd_en=0;delay(5);lcd_en=1;delay(5);lcd_en=0;delay(5);/*写指令*/void write_com(uchar com)read_busy();lcd_rs=0;delay(5);lcd_rw=0;delay(5);lcd_date=com;lcd_en=0;delay(5);lcd_en=1;delay(5);lcd_en=0;delay(5);/*判断忙闲状态*/uchar read_busy()lcd_date=0 xff;lcd_rs=0;delay(5);lcd_rw=1;delay(5);lcd_en=1;delay(5);while(lcd_date&bus
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国电动螺旋塞行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国电动挖掘机行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国电力电子发展分析及发展趋势与投资前景研究报告
- 2025-2030中国甲状腺疾病治疗行业市场发展趋势与前景展望战略分析研究报告
- 2025-2030中国生理海水鼻喷雾剂行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国生物药物口服给药行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国生物滴滤器行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国生物固体行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国玻璃隔墙行业市场发展趋势与前景展望战略分析研究报告
- 2025-2030中国玻璃布胶带行业市场发展趋势与前景展望战略分析研究报告
- 购买设备前的评估报告
- 热固性聚苯板施工方案
- 电梯主机轴承维修施工方案
- 三年级下册口算天天100题(A4打印版)
- 统编版语文四年级下册第四单元教材解读解读与集体备课课件
- 幕墙开启扇维修施工方案
- 销售团队就该这样管:五星评定销售管理实战指南
- 餐饮服务单位食品安全主体责任清单
- 2023年电力二十五项重点反事故措施考试题库(浓缩500题)
- 机械零件的修复技术概述课件
- 辐射与防护学习通课后章节答案期末考试题库2023年
评论
0/150
提交评论