电热杯恒温控制系统设计_第1页
电热杯恒温控制系统设计_第2页
电热杯恒温控制系统设计_第3页
电热杯恒温控制系统设计_第4页
电热杯恒温控制系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 计算机控制系统课程设计 计算机课程设计(电热杯的恒温控制)前言1.1 温度控制系统的背景温度是工业上常见的被控参数之一,恒温控制系统被广泛应用于加热炉,热处理炉,反应炉等。在一些温控系统电路中广泛采用的是通过热电偶,热电阻或PN结测温电路经过相应的信号调理电路,转换成A/D转换器能接收的模拟量,再经过采样保持电路进行A/D,最终送入单片机及其相应的外围电路,完成监控。但是由于传统的信号调理电路实现复杂,易受干扰,不易控制且精度不高。本次设计的单片机控制系统采用温度传感器(DS18B20)检测外部温度对水温进行恒温控制,精度保持在0、1摄氏度,范围保持在0、2摄氏度,不需要复杂的信号调理电路和

2、A/D转换电路就能直接与单片机完成数据采集和处理,实现方便、高精度、适应性强的控制。也经常用到电烤箱、微波炉、电热水器、烘干箱等需要进行温度控制与检测控制的家用电器。采用单片机实现温度控制不仅具有温度控制方便、简单、灵活等优点,而且可以大幅提高被控温度的技术指标,从而大大提高了产品的质量。 2. 总体设计方案2.1 系统的总体框图温度测量模块51单片机最小系统(添加复位电路)键盘模块 LCD1602显示模块温度输出模块串口通信 PC机2.2 总电路图3. 硬件电路设计3.1 温度测量与控制模块 温度测量模块采用的是ASLLAS半导体公司的DS18B20温度传感器。该传感器与传统的热敏电阻相比,

3、他能直接读出被测温度。这一部分主要完成对温度的采集和转换工作,有DS18B20数字温度传感器与其单片机接口部分组成。数字温度传感器把采集到的温度通过数据引脚传送到单片机的I/O,该模块由温度传感器,双向可控硅,光耦组成 。温度传感器负责温度的采集传送,由单片机程序判断处理后通过P 22、0口的高低电平变换控制经过光耦的隔离传输控制可控硅BAT06的开关,可控硅导通则电热杯接通220V电源进行加热。3.2键盘模块键盘模块设置有六个按键,接上拉电阻,分别由程序定义为控制目标温度的十位个位与十分位的加减1.3.3 串口通信单片机与PC机进行通信方便程序的烧制,尽管单片机有串行通信功能,但单片机提供的

4、信号电平和RS232的标准不一样,因此要通过MAX232这种类似的芯片进行电平转换。MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电EIA/TIA-232-E电平。3.4 液晶显示模块1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正

5、电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电15背光正极,16脚背光负极。4 PID控制4.1 PID基本公式 在实际应用中,可以根据受控对象的特性和控制的性能要求,灵活地采用不同的控制组合,构成比例(P)控制器 比例

6、+积分(PI)控制器比例+积分+微分(PID)控制器式中 或式中4.2 控制系统中的应用 在单回路控制系统中,由于扰动作用使被控参数偏离给定值,从而产生偏差。自动控制系统的调节单元将来自变送器的测量值与给定值相比较后产生的偏差进行比例、积分、微分(PID)运算,并输出统一标准信号,去控制执行机构的动作,以实现对温度、压力、流量、也为及其他工艺参数的自动控制。比例作用P只与偏差成正比;积分作用I是偏差对时间的积累;微分作用D是偏差的变化率;4.3 PID的独立介绍比例(P)控制 比例控制能迅速反应误差,从而减少稳态误差。除了系统控制输入为0和系统过程值等于期望值这两种情况,比例控制都能给出稳态误

7、差。当期望值有一个变化时,系统过程值将产生一个稳态误差。但是,比例控制不能消除稳态误差。比例放大系数的加大,会引起系统的不稳定。 图2比例(P)控制阶跃响应积分(I)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。为了减小稳态误差,在控制器中加入积分项,积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即使误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减少,直到等于零。积分(I)和比例(P)通常一起使用,称为比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。如果单独用积分(I)的话,由于积分输出随时间积累而逐渐增大,故调

8、节动作缓慢,这样会造成调节不及时,使系统稳定裕度下降。 图3积分(I)控制和比例积分(PI)控制阶跃相应微分(D)控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。由于自动控制系统有较大的惯性组件(环节)或有滞后(delay)组件,在调节过程中可能出现过冲甚至振荡。解决办法是引入微分(D)控制,即在误差很大的时候,抑制误差的作用也很大;在误差接近零时,抑制误差的作用也应该是零。图4微分 (D)控制和比例微分(PD)控制阶跃相应增益常数(系数)上升时间过冲建立时间稳态误差Kp减少增大很小变化减小KI减少增大增加消除KD很小变化减小减少很小变化 5. 增量式PID算法

9、原理(2-4)增量式PID控制算法可以通过(2-4)推导得到控制器的第k-1个采样时刻的输出值为: (2-5)将(2-4)与(2-5)相减并整理,就可以得到增量式PID控制算法公式为:(2-6)其中 由(2-6)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(2-6)求出控制量。增量式PID控制算法与位置式PID算法(2-4)相比,计算量小得多,因此在实际中得到广泛的应用。位置式PID控制算法也可以通过增量式控制算法推出递推计算公式:(2-7)(2-7)就是目前在计算机控制中广泛应用的数字递推PID控制算法。6. 软件设计程序/*

10、标题;基于单片机的温度控制实验 * * 描述:1.用温度传感器DS18B20测得温度值; * 2.用LCD1602液晶显示器作为人机界面,其可以显示当前温度值,设定温度值等; * 3.使用PID控制算法,控制水温,从而达到恒温。 * * 目的:1.学会DS18B20的驱动; * 2.学会LCD1602的驱动; * 3.理解PID控制原理; */#include /包含51单片机头文件#include /包含数学计算头文件#includeDelay.h /包含用户头文件delay.h,作用:延时#includeLCD1602.h /包含用户头文件LCD_1602.h,作用:驱动1602液晶显示器

11、显示#includeDS18B20.h /包含用户头文件ds18b20.h,作用:驱动温度传感器测量当前温度#includeKeyScan.h /包含用户头文件Keyscan.h,作用:键盘扫描,获取按键值#define uchar unsigned char /用uchar代替unsigned char#define uint unsigned int /用uint代替unsigned intsbit kaitong = P20; /定义电热杯开通关断引脚int PrevError = 0; /定义上上一次偏差值int LastError = 0; /定义上一次偏差值int Error =

12、0; /定义当前偏差值int PError,IError,DError; /中间变量int LastValue; /上一次的输出值int NowValue; /本次的输出值int Full,Part; /加热占空比调节参数int SetValue=610; /初始化温度值60度float Proportion = 0.44;float Integral = 0.005; /定义积分参数float Derivative =5; /定义微分参数/*名称: 增量式PID计算函数 * *描述: 增量式PID表达式如下 * datau(k) = Kc*e(k)-e(k-1)+Ki*e(k)+Kd*e(k

13、)-2*e(k-1)+e(k-2) * 或datau(k)=Kc*e(t)-e(k-1)+Kc*T*e(k)/Ti+Kd*Td*e(t)-2*e(t-1)+e(t-2)/T * * *说明:e(t)为设定值与实际值之差, * Kc为比例系数 * Ki = Kc*T/Ti积分系数 * Kd = Kc*Td/T微分系数 * T为采用周期 * Ti为积分时间 * Td为微分时间 */int PIDCalc(int NextValue)/增量式PID计算部分 PrevError = LastError; /将上一次偏差LastError赋给上上一次偏差PrevErrorLastError = Erro

14、r; /将当前偏差Error赋给上一次偏差LastErrorError = keyscan() - NextValue; /将新的偏差赋给当前偏差Error 偏差是绝对值,有错LastValue = NowValue;/将本次输出值赋给上一次输出值if(Error =100)return(20);else if(Error=50)return(14);else if(Error=20)return(10);else if(Error0)PError = Proportion *(Error - LastError);IError = Integral *Error;DError = Deriv

15、ative *(Error - 2 * LastError + PrevError);NowValue =PError + IError + DError + LastValue; return NowValue; /计算PID控制值else PError = Proportion *(Error - LastError);IError = Integral *Error;DError = Derivative *(Error - 2 * LastError + PrevError);NowValue =PError + IError + DError + LastValue; return

16、0;/* 主函数*/void main()uint ccc=100;LCD_init();setPosition(1,2); /从第1行第2个字符位开始显示“Welcom to”prints(Welcom to);setPosition(2,5); /从第1行第2个字符位开始显示“SUST”prints(SUST);delayl(1000); /延时,使欢迎界面在屏幕上停留片刻write_com(0x01); /初始化LCDwhile(1) if(ccc=0) Part = PIDCalc(readtemp();ccc=100;for(;ccc0;ccc-)Full+; /加1,相当于dd =

17、 dd + 1if(Full 20) /如果dd大于20,则复位为1Full = 1;if(Full = Part) /判断PID计算值,如果Full小于等于该值,则开通发热管;否则关断kaitong = 0;elsekaitong = 1;/*从第2行第2字符位开始显示设定温度值*/setPosition(1,0); IntToStr(keyscan(),buffer,3); /处理温度值,以便显示prints(S:); /显示SET:printc(buffer0); /显示十位printc(buffer1); /显示个位printc(.); /显示小数点printc(buffer2); /

18、显示十分位printc(0xDF); /显示摄氏度符号右上角的小圆圈printc(C); /显示摄氏度符号“C”/*从第1行第2字符位开始显示当前温度值*/setPosition(1,8); IntToStr(readtemp(),buffer,3); /处理温度值,以便显示prints(P:); /显示CUR:printc(buffer0); /显示十位printc(buffer1); /显示个位printc(.); /显示小数点printc(buffer2); /显示十分位printc(0xDF); /显示摄氏度符号右上角的小圆圈printc(C); /显示摄氏度符号“C”setPosition(2,0); IntToStr(NowValue,buffer,3); /处理温度值,以便显示printc(buffer0); /显示十位printc(buffer1); /显示个位printc(buffer2);setPosition(2,4); IntToStr(PError,buffer,3); /处理温度值,以便显示printc(buffer0); /显示十位printc(buffer1); /显示个位printc(buffer2);setPosition(2,8); IntToStr(IError

温馨提示

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

评论

0/150

提交评论