电阻炉温度控制系统设计38406

上传人:人*** 文档编号:511936969 上传时间:2022-08-06 格式:DOC 页数:15 大小:509.50KB
返回 下载 相关 举报
电阻炉温度控制系统设计38406_第1页
第1页 / 共15页
电阻炉温度控制系统设计38406_第2页
第2页 / 共15页
电阻炉温度控制系统设计38406_第3页
第3页 / 共15页
电阻炉温度控制系统设计38406_第4页
第4页 / 共15页
电阻炉温度控制系统设计38406_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《电阻炉温度控制系统设计38406》由会员分享,可在线阅读,更多相关《电阻炉温度控制系统设计38406(15页珍藏版)》请在金锄头文库上搜索。

1、 . . . 目 录摘要31.整体设计与系统原理32.硬件电路设计42.1 主机电路的设计42.2 数据采集电路的设计52.3电控制执行电路的设计52.4 键盘显示的设计63.系统软件设计73.1主程序模块73.2 功能实现模块83.2.1 T0中断子程序83.2.2 T1中断子程93.3运算控制模块93.3.1 标度转换子程序93.3.2 PID算法子程序94源程序代码105.结果分析论述156.参考文献15摘要电阻炉是工业炉的一种,是利用电流通过电热体元件将电能转化为热能来加热或者熔化元件或物料的热加工设备。电阻炉由炉体、电气控制系统和辅助系统组成,炉体由炉壳、加热器、炉衬(包括隔热屏)等

2、部件组成。由于炉子的种类不同,因而所使用的燃料和加热方法也不同;由于工艺不同,所要求的温度高低不同,因而所采用的测温元件和测温方法也不同;产品工艺不同,对控温精度要求不同,因而控制系统的组成也不一样。电气控制系统包括主机与外围电路、仪表显示等。辅助系统通常指传动系统、真空系统、冷却系统等,因炉种的不同而各异。 本文介绍了以AT89S52单片机为核心的温度控制器的设计,在该设计中采用高精度的温度传感器AD590对电热锅炉的温度进行实时精确测量,用超低温漂移高精度运算放大器OP07将温度-电压信号进行放大,再送入12位的AD574A进行AD转换,从而实现自动检测,实时显示与越限报警。控制部分采用P

3、ID算法,实时更新PWM控制输出参数,控制可控硅的通断时间,最终实现对炉温的高精度控制。1.整体设计与系统原理温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的。根据题目要求,电热锅炉温度控制系统由核心处理模块、温度采集模块、键盘显示模块、与控制执行模块等组成。采用AT89S52单片机作为电路的控制核心,使用12位的高精度模数转换器AD574A进行数据转换,控制电路部分采用PWM控制可控硅的通断以实行对锅炉温度的连续控制,温度控制采用改进的PID数字控制算法,显示采用3位LED静态显示。该设计结构简单

4、,控制算法新颖,控制精度高,有较强的通用性,所以系统设计总体框图如下:AT89C51单片机键盘 显示传感器电阻炉温度检测电路温度控制图(1)系统设计总体框图2.硬件电路设计2.1 主机电路的设计主机选用ATMEL公司的51系列单片机AT89S52来实现,利用单片机软件编程灵活、自由度大的特点,力求用软件完善各种控制算法和逻辑控制。本系统选用的AT89S52芯片时钟可达12MHz,运算速度快,控制功能完善。其部具有128字节RAM,而且部含有4KB的flash ROM 不需要外扩展存储器,可使系统整体结构更为简单、实用。其原理图如下所示:图(2)单片机最小系统2.2数据采集电路的设计就本系统来说

5、,需要实时采集水温数据,然后经过AD转换为数字信号,送入单片机中的特定单元,然后一部分送去显示;另一部分与设定值进行比较,通过PID算法得到控制量并经由单片机输出去控制电热锅炉加热或降温。数据采集电路主要由AD590, 0P07,74LS373,AD574A等组成。由于控制精度要求为0.1 度,而考虑到测量干扰和数据处理误差,则温度传感器和AD 转化器的精度应更高才能保证控制精度的实现,这个精度可处粗略定为0.1 度。故温度传感器需要能够区分0.1 度;而对于AD 转换器,由于测量围为40-90 度,以0.1 度作为响应的AD 区分度要求,则AD 需要区分(90-40)/0.1=500 个数字

6、量,显然需要10 位以上的AD 转换器。为此,选用高精度的12位AD574A。为了达到测量高精度的要求,选用温度传感器AD590,AD590具有较高精度和重复性(重复性优于01,其良好的非线形可以保证优于01 的测量精度,利用其重复性较好的特点,通过非线形补偿,可以达到0.1测量精度.)超低温漂移高精度运算放大器0P07将温度一电压信号进行放大,便于AD进行转换,以提高温度采集电路的可靠性。模拟电路硬件部分如下图所示:图(3)温度电压转换电路2.3电控制执行电路的设计由输出来控制电炉,电炉可以近似建立为具有滞后性质的一阶惯性环节数学模型。其传递函数形式为:其中时间常数T=350秒,放大系数K=

7、50,滞后时间t=10秒。可控硅可以认为是线形环节实现对炉温的控制。单片机输出与电炉功率分别属于弱电与强电部分,需要进行隔离处理,这里采用光耦合元件TLP521 在控制部分进行光电隔离,此外采用变压器隔离实现弱强电的电源隔离。单片机PWM 输出电平为0 时,光耦合元件导通,从而使三极管形成有效偏置而导通,通过整流桥的电压经过集电极电阻以与发射集反向偏压,有7V 左右的电压加在双向可控硅控制端,从而使可控硅导通,交流通路形成,电阻炉工作;反之单片机输出电平为0 时,光耦元件不能导通,三极管不能形成有效偏置而截止,可控硅控制端电压几乎为零,可控硅截止从而截断交流通路,电炉停止工作。此外,还设有越限

8、报警,当温度低于下限时发光二极管亮;高上限时蜂鸣器叫。控制执行部分的硬件电路如下图。图(4)控制执行部分电路2.4 键盘显示的设计按键的响应是由中断来实现的。按键AN3与P3.2相连,采用外部中断方式,并且优先级定为最高;按键AN5和AN4分别与P1.7和P1.6相连,采用软件查询的方式;AN1则为硬件复位键,与R、C构成复位电路。其中的功能定义如表1所示。按键键名功能AN1复位键使系统复位AN4加一键设定温度渐次加一AN5减一键设定温度渐次减一表1按键功能显示采用3位共阳LED静态显示方式,显示容有温度值的十位、个位与小数点后一位,这样可以只用P3.0(RXD)口来输出显示数据,从而节省了单

9、片机端口资源,在P1.4 口和P3.1(TXD)的控制下通过74LS164来实现3位静态显示。数字电路硬件部分见图(5):图(5)数字硬件电路示意图3.系统软件设计系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块。3.1主程序模块主程序流程图见图(6)所示:图(6)主程序流程图3.2 功能实现模块功能实现模块主要由AD转换子程序、中断处理子程序、键盘处理子程序、显示子程序等部分组成,以用来执行对可控硅与电炉的控制。3.2.1 T0中断子程序该中断是单片机部100ms定时中断,优先级设为最高,是最重要的子程序。在该中断响应中,单片机要完成调用PID算法子程序且输出PID计算结果等

10、功能。其流程图如下:图(7)T0中断子程序3.2.2 T1中断子程T1定时中断用于调制PWM信号,优先级低于T 0中断,其定时初值由PID算法子程序提供的输出转化而来,T1中断响应的时间用于输出控制信号。其流程图如图(8)所示:图(8)T1中断子程序3.3运算控制模块3.3.1标度转换子程序该子程序作用是将温度信号(00HFFH)转换为对应的温度值,以便送显示或与设定值在一样量纲下进行比较。所用线形标度变换公式为:式中,Ax:实际测量的温度值;Nx:经过AD转换的温度量;Am =90;Ao=40;Nm =FEH; No=01H。单片机运算采用定点数运算,并且在高温区和低温区分别用程序作矫正处理

11、。3.3.2 PID算法子程序系统算法控制采用工业上常用的位置型PID数字控制,并且结合特定的系统加以算法的改进,形成了变速积分PID一积分分离PID控制相结合的自动识别的控制算法。该方法不仅大大减小了超调量,而且有效地克服了积分饱和的影响,使控制精度大大提高。由前面得到的PID参数以与以上的方程为u(k)=q0e(k)+q1e(k-1)+q2e(k-2),由此可以计算出在数字PID增量型控制算法的参数:q0=120,q1=-240,q2=120。PID控制算法的流程图如下图(9):图(9)PID控制算法的流程图4源程序代码#include#include PID.h#defineAD_Dat

12、aP0unsignedcharADConvert(void);sbitAD_Start=P20;sbitAD_EOC=P21;sbitCtrl=P34; sbitSW=P23;sbitoutpin=P10;unsigned char const DisCode10 = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,;unsigned char const Statud10 = 0xb7,0xf8,0xf3;/n,t,p,i,d ,0xb0,0xdeunsigned int tep,step=300,s_ulCycle,s_uiHighTim

13、e,s_uiLowTime,Freq,value,Scale;unsigned long longtemp,longtemp1,longtemp2;unsigned char i=0;bit s_bStatus=0;unsignedcharADConvert(void);void display(unsigned int num1, unsigned int num2);voiddelay(unsignedintDelayTime); voidEX_init();void PWM_Set( unsigned int uiFreq, unsigned char ucScale );main()u

14、nsigned long temp=0,temp1=0;Ctrl=0;EX_init(); initialize_pid_value();while(1)temp=ADConvert();temp=temp*400/256;if(temp360)|(temp 100 ) /占空比不可能大于100% return; s_ulCycle = 921600/uiFreq; longtemp1 = s_ulCycle; longtemp2 = ucScale; longtemp = 65535-(longtemp1*longtemp2/100); s_uiHighTime =longtemp; longtemp = 65535-(longtemp1*(100 - longtemp2)/100); s_uiLowTime =longtemp;void PWM_Tm1ISR(void) interrupt 1 TR0 = 0; s_bStatus= s_bStatus; /取反标志位,表示该输出高电平或低电平 if(s_bStatus)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号