课程设计(论文)-电阻炉温度控制系统设计.doc_第1页
课程设计(论文)-电阻炉温度控制系统设计.doc_第2页
课程设计(论文)-电阻炉温度控制系统设计.doc_第3页
课程设计(论文)-电阻炉温度控制系统设计.doc_第4页
课程设计(论文)-电阻炉温度控制系统设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

装订线长 春 大 学 课程设计纸 长 春 大 学课 程 设 计 说 明 书题目名称 电阻炉温度控制系统设计 院(系) 电子信息工程学院 专业(班级) 电气08401班 学生姓名 杨 闯 指导教师 王英霞(副教授) 起止日期 2011.11.142011.11.25 电阻炉温度控制系统设计摘要 本课程设计以电阻炉为研究对象,开发了基于单片机的温度控制系统。本温度控制系统按功能分主要包括温度传感器模块、数据处理模块、温度显示/设定模块和温度控制模块。温度传感器采用了数字式温度传感器DS18B20,对温度进行实时采样并将模拟信号转换成数字信号返回给单片机。系统可通过键盘对电阻炉温度进行预设,单片机根据当前炉内温度和预设温度进行比较结果,在进行PID运算,控制输出宽度可调的PWM方波,并由此控制固态继电器的导通和关断来调节电热丝的加热功率,当炉内温度过高与过低的时,蜂鸣器将进行报警,从而使炉内温度迅速达到预设值并保持恒定。关键词单片机 温度检测 PID 温度控制Design and Implementation of a Temperature Control SystemAbstract The design process, first of all the software design and development, making the system functional module and through the Proteus software simulation, respectively, to achieve feature an integrated design of the hardware, and repeated demonstration, testing the device parameters to make it stable operation, and ultimately make This system has realized the constant temperature control. Keywords: MCS-51,Temperature detection,PID, Temperature control 第一章 前言11.1设计目的11.2设计要求1第二章 系统总体设计方案22.1设计方案2第三章 系统硬件设计33.1 单片机系统33.1.1 STC89C52简介33.1.2 晶振电路53.1.3 复位电路53.2 温度检测电路63.3 温度控制电路63.4 键盘显示电路7第四章 PID控制设计84.1 PID算法设计84.2 PID程序设计9第五章 系统软件设计115.1 系统程序流程图115.2 系统总程序11第六章 总结18致谢19参考文献20第一章 前言1.1设计目的本文选择设计一个电阻炉温度控制系统,利用微机控制系统完成电阻炉的检测、处理及数字控制计算,根据数据结果进行相应的处理,从而改变电阻炉的加热功率,达到控制温度的目的。1.2设计要求1、现场温度值可处理。2、温度范围为20100。3、系统有必要的保护和报警。4、温度值要有显示。5、误差范围1。第二章 系统总体设计方案2.1设计方案本系统以STC89C52为核心,以KEIL为系统程序开发平台,以C语言进行程序设计。所设计的温度控制主要由单片机、温度检测模块、温度控制模块、温度显示模块、按键设定模块、报警模块等五部分组成。设计方案见图2-1温度传感器DS18B20STC89C52单片机基本控制系统数码管显示键盘双向可控硅电炉加热器采集报警保护电路图2-1 总体设计方案框图第三章 系统硬件设计3.1 单片机系统单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。3.1.1 STC89C52简介STC89C52是一种低功耗,高性能CMOS微控制器(如图3-1),可提供以下标准功能:8K字节闪存器,256字节内部RAM,32个I/O口线,看门狗定时器,2个数据指针,3个16位定时/计数器,一个6向量2级中断结构,全双工串行通信口,片内振荡器及时钟电路。并支持两种软件可选的节电工作模式,空闲方式停止CPU的工作,但允许RAM,定时/计数器,串性通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个中断或硬件复位为止。图3-1 STC89C52引脚图P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低8位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.2 晶振电路单片机外接晶振后,就构成了自激振荡器,并产震荡时钟,为单片机提供稳定的时钟。而且单片机每条指令的运行都是严格按照机器周期来执行的,机器周期就是由晶振电路(如图3-2)提供的。3-2 晶振电路图3.1.3 复位电路单片机复位电路(如图3-3)就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。3-3 复位电路图3.2 温度检测电路本设计温度检测电路(图3-4)采用数字传感器DS18B20,DS18B20是一种可组网的单线数字温度传感器,它采用单线总线结构,集温度测量和A/D转换于一体,直接输出数字量,用一根I/O线就可以传送数据与命令,其温度测量范围为-55+125,精度为+/-0.5,使用中无需外部器件,可利用数据线或外部电源提供电能,供电电压范围为3.35.5V,通过编程,实现912位分辨率读出温度数据。3-4 温度检测电路图3.3 温度控制电路本文温度检测电路(图3-5)采用固态继电器SSR,固态继电器SSR是一种无触点通断电子开关,它利用电子元件(如开关三极管、双向可控硅等半导体器件)的开关特性,可达到无触点无火花地接通和断开电路的目的,为四端有源器件,其中两个端子为输入控制端,另外两端为输出受控端。为实现输入与输出之间的电气隔离,器件中采用了高耐压的专业光电耦合器。当施加输入信号后,其主回路呈导通状态,无信号时呈阻断状态。整个器件无可动部件及触点,可实现相当于常用电磁继电器一样的功能。单片机端口输出的PWM方波控制固态继电器SSR的开断,从而控制电阻炉的开断频率,控制电热丝功率的变化,以达到加热目的。3-5 温度控制电路图3.4 键盘显示电路键盘显示电路(图3-6)设定部分主要是键盘输入,此部分主要由两个按键组成,PLAS为加,SUBS为减,当系统启动时,默认设定温度为20,当按下PLAS时设置电阻炉温度增加,按下SUBS时设置电阻炉温度减小。此部分按键为常开按钮,当不触发时为断开状态,按键按下之后与地连接,故为低电平,单片机读取按键数据为低电平时有效。DS18B20检测到的温度与设定温度进行比较,单片机根据当前炉内温度和预设温度进行比较结果,进行PID控制运算,运算后的温度值用数码管精进行实时显示。3-6 键盘显示电路第四章 PID控制设计4.1 PID算法设计对温度的控制算法,采用技术成熟的PID算法,对于时问常数比较大的系统来说,其近似于连续变化,因此用数字PID完全可以得到比较好的控制效果。简单的比例调节器能够反应很快,但不能完全消除静差,控制不精确,为了消除比例调节器中残存的静差,在比例调节器的基础上加入积分调节器,积分器的输出值大小取决于对误差的累积结果,在误差不变的情况下,积分器还在输出直到误差为零,因此加入积分调节器相当于能自动调节控制常量,消除静差,使系统趋于稳定。积分器虽然能消除静差,但使系统响应速度变慢。进一步改进调节器的方法是通过检测信号的变化率来预报误差,并对误差的变化作出响应,于是在P1调节器的基础上再加上微分调节器,组成比例、积分、微分(PID)调节器,微分调节器的加入将有助于减小超调,克服振荡,使系统趋于稳定,同时加快了系统的稳定速度,缩短调整时间,从而改善了系统的动态性能,其控制规律为:单片机是一种采样控制,它只能根据采样时刻的误差值计算控制变量,不能直接计算公式中的积分项和微分项,采用数值计算法逼近后,PID的调节规律可以通过数值公式为:如果采样取得足够小,这种逼近可相当准确,被控过程与连续过程十分接近。我们变换上式(2)得:把,带入上式得:试中 ei=W-Yi,W设定值,Yi为第i次实际输出值, Kp为比例系数,积分系数I=T/Ti,微分系数D=T/Td,T为采样周期。用PID控制算法实现锅炉温度控制是这样一个反馈过程:比较实际炉温和设定炉温得到偏差,通过对偏差的处理获得控制信号,再去调节炉子的加热功率,从而实现对炉温的控制,由于电阻炉一般都是下一阶段对象和带纯滞后的一阶对象,所以式中Kp、Kd和Ki的选择取决于电阻炉的响应特性和实际经验。本程序先将用户设定温度和电阻炉实际温度T比较,计算出偏差ei,然后分两种情况进行计算控制变量:(1) 大于等于设定的偏差e时,由于积分控制器使系统响应速度变慢,不采用积分控制器调节,直接使用PD调节,获得比较快的动态响应,计算Pd和Pp,最终得到控制量获得比较快的动态响应。(2) 小于设定的设定的偏差e时,正常的分别计算Pi、Pd和Pp,然后根据算法公式计算出控制变量。流程图如图4-1所示。4-1 PID控制流程图4.2 PID程序设计PID算法函数void PID(void),根据误差的大小算出固态继电器的导通时间 void PID()uchar Ctrhab20=8,15,2O,4O,5O,6O,7O,80,100,120,140,160,180,200; 控制时间参数表kp=200;kd=3;ki=10; 初始化PID参数 tempsv=controlnum;temppv=T;读入实际、设定温度e2=temsvtemppv;计算误差e0 =el;el=e2;u0=u; 误差及输出量的转赋P=e2一el; 计算P值D=kd*(e22el+e0); 计算D值if(e2=50) I=kp+e2;判断采用PD还是PID控制else I=0;u=kp(P+I+D)+uO;controltime=ctrhabu;查表赋控制时间第五章 系统软件设计5.1 系统程序流程图系统流程图如图5-1所示。开始系统初始化初始化DS18B20读取温度数据等待定时中断控制算法控制输出脉冲温度设定YN显示温度键盘按下?5-1 程序流程图5.2 系统总程序#include#include#define uchar unsigned char#define uint unsigned intsbit ds=P22; /温度传感器信号线sbit dula=P26; /数码管段选线sbit wela=P27; /数码管位选线sbit beep=P23; /蜂鸣器uint temp; /定义整型的温度数据float f_temp; uint warn_11=200; /定义温度的下限值uint warn_12=1000; /定义温度的上限值0sbit s1=P10; /键盘sbit s2=P12;sbit pwm=P16;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, /0-9带小数点0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /不带小数点void delay(uint z) / 延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);viod dsreset(void) /DS18B20复位,初始化函数uint i;ds=0;i=103;while(i0)i-;ds=1;i=4;while(i0)i-;bit tempreadbit(void) /读一位数据函数uint i;bit dat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return(dat);uchar tempread(void) /读一个字节数据函数uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=tempreadbit();dat=(j1); return(dat);Void keyscan() /键盘if(s1=0)warn_11+;If(s2=0)warn_12+;void tempwritebyte(uchar dat) uint i;uchar j;bit testb;for(j=1;j1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0;i=8;while(i0)i-;ds=1;i+;i+;void tempchange(void) /DS18B20 开始获取温度并转换dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0x44);uint get_temp() /读取寄存器中存储的温度数据uchar a,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp=8;temp=templa;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05;return temp;void display(uchar num,uchar dat) /数据显示程序uchar i; dula=0;P0=tabledat;dula=1;dula=0;wela=0;i=0XFF;i=i&(0X01)warn_12) /大于100度,蜂鸣器响warn(40);dis_temp(get_temp();pwm=1;delay(10000);else if(t=50) I=kp+e2;判断采用PD还是PID控制else I=0;u=kp(P+I+D)+uO;controltime=ctrhabu;查表赋控制时间void init_com(void) /串口初始化TMOD=0x20;PCON=0x00;SCON=0x50;TH1=0xFd;TL1=0xFd;TR1=1;void comm(char*parr) doSBUF=*parr+;while(!TI);TI=0;while(*parr);void main() /主函数uchar bu

温馨提示

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

评论

0/150

提交评论