电阻加热炉温度控制系统Word下载.docx
《电阻加热炉温度控制系统Word下载.docx》由会员分享,可在线阅读,更多相关《电阻加热炉温度控制系统Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
控制要求:
通过检测电阻加热炉的温度,根据采样值与系统给定值进行比较,并经过PID运算,控制输出电加热炉端电压,实现电阻加热炉的温度自动调节。
设计中温度控制值800℃;
温度的ε±
5℃,调节温度在控制值范围之内。
检测对象:
温度检测4点,检测范围是0℃~1000℃;
检测精度为±
1℃。
控制对象:
电加热炉端电压,模拟量调节。
设计要求:
1.根据课程设计的内容及技术参数,确定控制系统的形式,选择数字控制器(单片机、PLC、PC机);
确定系统控制方案和组成,并绘制系统的控制框图。
2.根据控制系统的需要和技术参数,自行设计输入、输出通道(包括元器件选择)
3.设计控制系统软件,绘出程序流程图。
①数据采集及数据处理程序流程图设计;
②控制算法程序流程图设计;
③控制量输出程序流程图设计。
温度控制采用PID增量式控制算法;
并编写控制系统的部分软件。
指导教师评语及成绩
成绩:
指导教师签字:
年月日
第1章设计的方案
1.1概述
电加热炉是典型的工业过程控制对象。
其温度控制具有升温单向性、大惯性、大滞后、时变性等特点,且其升温、保温是依靠电阻丝加热,降温则是依靠环境自然冷却。
传统的加热炉电气控制系统普遍采用继电器控制技术,由于采用固定接线的硬件实现逻辑控制,使控制系统的体积增大,耗电多,效率不高且易出故障,不能保证正常的工业生产。
随着计算机控制技术的发展,传统继电器控制技术必然被基于计算机技术所取代。
单片机优异的性能使温度控制系统变的经济高效稳定且维护方便。
这种温度控制系统对改造传统的继电器控制系统有普遍性意义。
1.2系统组成总体结构
根据系统的控制要求,检测电阻加热炉的温度,并与系统给定值进行比较,实现电阻加热炉的温度自动调节,本系统的控制方案选用直接数字控制系统,系统总体框图如图1.1所示。
图1.1系统总体结构框图
第2章硬件设计
2.1模拟量输入通道设计
由于温度检测点为4点,所示需要一个多路模拟选择开关CD4052。
温度信号变化比较缓慢,不需要采样保持器可直接送到集成K型热电偶变换器MAX6675。
模拟量输入通道结构图如图2.1所示。
图2.1模拟量输入通道框图
1.温度检测单元
K型热电是目前用量最大的廉金属热电偶,其用量为其他热电偶的总和。
正极(KP)的名义化学成分为:
Ni:
Cr=90:
10,负极(KN)的名义化学成分为:
Si=97:
3,其使用温度为-200~1300℃。
K型热电偶具有线性度好,热电动势较大,灵敏度高,稳定性和均匀性较好,抗氧化性能强,价格便宜等优点,能用于氧化性惰性气氛中,广泛为用户所采用。
2.多路选择开关
由于本系统要求检测4点温度值,为了减少系统成本,检测通道采用多个通路共用一个MAX6675的形式,为此需要加入一个多路转换器CD4052。
CD4052是一个双4选1的多路模拟选择开关,其使用真值表如表1所示。
表1CD4052真值表
INH
B
A
0X/0Y
1
1X/1Y
2X/2Y
3X/3Y
X
3.热电偶变换器MAX6675
本系统要求温度检测范围是0℃~1000℃,检测精度为±
1℃,所选A/D转换器的位数n应满足式(2.1.1)
≥1000(2.1.1)
即n≥10,且n为整数。
根据以上参数及所使用的传感器为K型热电偶,本系统选择的MAX6675能够满足要求。
MAX6675是具有冷端补偿和A/D转换功能的单片集成K型热电偶变换器,测温范围0℃~1023℃,主要功能特点为:
直接将热电偶信号转换为数字信号、具有冷端补偿功能、简单的SPI串行接口与单片机通讯、12位A/D转换器、0.25℃分辨率、单一+5V的电源电压、热电偶断线检测、工作温度范围-20℃~+85℃。
MAX6675采用标准的SPI串行外设总线与单片机接口。
MAX6675从SPI串行接口输出数据的过程如下:
单片机使CS置为低电平,并提供时钟信号给SCK,由SO读取测量结果。
CS变低将停止任何转换过程,CS变高将启动一个新的转换过程。
将CS变低在SO端输出第一个数据,一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位,MAX6675SO端输出温度数据的格式如表2所示。
第1个输出位是D15,是一个标识位,并总为0。
D14~D3为转换温度转化数据,该数据全部为0时,表示被测温度是0℃;
全部为1时,表示被测温度为+1023.75℃。
D2为热电偶开路检查位,平时为低,当热电偶输入开放时为高,开路热电偶检测电路完全由MAX6675实现,为开放热电偶检测器操作,T-必须接地,并使接地点尽可能接近GND脚。
D1位为低以提供MAX6675器件身份码,该位恒为0。
D0位为三态输出位。
表2SO端输出数据格式
2.2模拟量输出通道的设计
模拟量输出通道是把单片机输出的数字信号转化成模拟电压或电流信号,来驱动相应的执行机构,达到控制的目的。
模拟量输出通道结构框图如图2.2所示。
单片机将经PID运算后得到的控制数据送到DAC0832,DAC0832输出差分电流信号,为了使其能变成电压输出,所以经过运算放大器A,将形成单极性电压输出,将运算放大器输出的电压信号送到SG3525,用来控制PWM的占空比,从而调节加热电阻两端的电压大小。
图2.2模拟量输出通道框图
1.D/A转换器
DAC0832主要由输入寄存器、8位DAC寄存器、采用R-2R电阻网路的8位D/A转换器、相应的选通控制逻辑四部分组成。
DAC0832的分辨率为8位,电流输出。
为了使其能变成电压输出,所以经过运算放大器A,将形成单极性电压输出0~5V(Vref为-5V)。
2.PWM控制器SG3525
SG3525A应用于交流电机调速、UPS电源以及其他需要PWM脉冲的领域。
其外围电路可对串联谐振式逆变电源进行多功能控制,实现H桥式IGBT脉宽调制PWM信号的生成和逆变电源的保护功能,以及变频电源工作过程中谐振频率的跟踪控制。
用SG3525A发出的PWM脉冲,来控制逆变器VT1、VT2导通,从而控制逆变电压。
SG3525的6脚连接电阻R,改变R的大小,这样就可调控SG3525输出的PWM脉冲频率。
同时通过调节SG3525的9脚电压来改变输出脉宽,9脚电压输入范围0~5V。
第3章软件设计
3.1PID控制算法
数字PID的控制算法有两种,即位置型和增量型。
根据本系统控制对象为加热电阻两端电压,以及增量型较位置型算法有累加误差小、误动作影响小、计算量小和编程方便的特点,本系统选用PID增量型控制算法。
数字PID增量型控制算法算式为
Δu(k)=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)](3.1.1)
u(k)=u(k)+Δu(k)(3.1.2)
其中e(k)=ST-PT;
ST为温度目标值,PT为温度当前值。
u(k)为DAC0832要转换的数据,当u(k)=00H时,运算放大器A输出0V电压信号;
当u(k)=FFH时,运算放大器A输出+5V电压信号。
为了防止积分项饱和,在程序中采取了抗积分饱和措施,原理如下:
当u(k)<
00H时,取u(k)=0
当u(k)>
FFH时,取u(k)=FFH
3.2软件流程图设计
温度采集及数据处理程序流程图如图3.1所示,PID控制算法程序流程图如图3.2所示。
程序清单见附页A。
图3.1温度采集及数据处理程序流程图图3.2PID控制算法流程图
第4章课程设计总结
通过几天来,不断的查阅文本资料以及网络资料,对所要求设计的电阻加热炉温度控制系统进行了分析和考虑,最终形成了以上的课设材料,显然,由于知识的欠缺以及知识构成的不完善,使得设计系统难免会有不足和缺陷。
但是,基本能满足设计要求。
在本次设计作品过程中,深刻体会到了学以致用的深刻涵义,学到的不一定是自己的东西,只有把这些东西运用到现实生活当中,运用于我们所面临的问题,能够帮助我们解决问题,这才是学习的最终目的。
通过查阅资料,我也了解到了一些书本上并不存在的东西,学到了新的知识,培养了自己独立思考和动手的能力,面对一些自己无法求解的东西,不是盲目的向身边的人求助,不假思索,实在无法解决的问题,就必须向那些比自己水平高的人,做到真的明白,真的理解。
我一定会在将来的学习生活中,进一步提高自己,做到理论联系实践,虚心求教,敢于创新,敢于承认自己的想法。
争取更大的进步。
参考文献
[1]梅丽凤,单片机原理及接口技术,北京:
清华大学出版社,2004:
15-62,219-230
[2]于海生,微型计算机控制技术,北京:
清华大学出版社,1999.3:
81—95
[3]张毅刚,单片机原理及应用,北京:
高等教育出版社,2003:
126—135
[4]刘高鏁,单片机实用技术,北京:
清华大学出版社,2004.10:
118—132
[5]吴宪平,集成传感器,北京:
国防工业出版社,1887.1:
36—50
[6]沙占友,集成化智能传感器原理与应用,北京:
电子工业出版社,2004:
77—81
[7]单成祥,传感器的理论与设计基础及其应用,北京:
国防工业出版社,1998.8:
371—386
[8]陈中平,单片机原理及接口,北京:
清华大学出版社,2007.3:
89—101
[9]睢丙东,单片机应用技术与实例,北京:
电子工业出版社,2005.1:
39—47
[10]何立民,单片机应用系统设计,北京:
航空航天大学出版社,1990:
45—56
附页A:
程序清单
#include<
at89x51.h>
absacc.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineaddrt1XBYTE[0xfffc]
#defineaddrt2XBYTE[0xfffd]
#defineaddrt3XBYTE[0xfffe]
#defineaddrt4XBYTE[0xffff]
#defineaddr0832XBYTE[0xefff]
sbitcs=P1^0;
sbitso=P1^1;
sbitsck=P1^2;
uchartimecount;
ucharuk,duk;
uintkp,ki,kd,e0,e1,e2;
uintst;
uintt1,t2,t3,t4,pt;
uintread_max6675()
{
uintdatat=0;
uchari;
cs=0;
for(i=0;
i<
16;
i++)
{
datat<
<
=1;
sck=1;
_nop_();
sck=0;
datat|=so;
}
datat>
>
=5;
returndatat;
}
voidread_pt()
addrt1=0;
t1=read_max6675();
addrt2=0;
t2=read_max6675();
addrt3=0;
t3=read_max6675();
addrt4=0;
t4=read_max6675();
pt=(t1+t2+t3+t4)/4;
voidpid()
e0=st-pt;
duk=(kp*(e0-e1)+ki*e0+kd*(e0-2*e1+e2))/10;
uk=uk+duk;
if(uk>
0xff)uk=0xff;
if(uk<
0)uk=0;
e2=e1;
e1=e0;
voidtimer0()interrupt1
if(--timecount==0)
timecount=40;
read_pt();
pid();
addr0832=uk;
}
main()
TMOD=0x01;
TH0=0X3C;
//50ms
TL0=0XAF;
TR0=1;
timecount=40;
//定时时间为40*50ms=2s
e0=0;
e1=0;
e2=0;
kp=360;
ki=180;
kd=80;
uk=0;
duk=0;
st=800;
//温度设定值
EA=1;
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)