2.1 T0中断子程序 该中断是单片机内部5s定时中断,优先级设为最低,但却是最重要的子程序。在该中断响应中,单片机要完成A/D数据采集转换、数字滤波、判断是否越限、标度转换处理、继续显示当前温度、与设定值进行比较,调用PID算法子程序并输出控制信号等功能 2.3 T1中断子程序 T1定时中断嵌套在T 中断之中,优先级高于T 中断,其定时初值由PID算法子程序提供,T1中断响应的时间用于输出可控硅(电炉)的控制信号。 3 运算控制模块 运算控制模块涉及标度转换、PID算法、以及该算法调用到的乘法子程序等。 3.1 标度转换子程序 该子程序作用是将温度信号(00H~FFH)转换为对应的温度值,以便送显示或与设定值在相同量纲下进行比较。所用线形标度变换公式为:  式中,Ax: 实际测量的温度值;Nx:经过A/D转换的温度量; Am =90; Ao=40; Nm =FEH; No=01H; 单片机运算采用定点数运算,并且在高温区和低温区分别用程序作矫正处理,温度计测量值与LED显示见图7。 3.2 PID算法子程序 系统算法控制采用工业上常用的位置型PID数字控制,并且结合特定的系统加以算法的改进,形成了变速积分PID一积分分离PID控制相结合的自动识别的控制算法。该方法不仅大大减小了超调量(见图9),而且有效地克服了积分饱和的影响,使控制精度大大提高。PID控制算法的流程图如图8。

图7 温度计测量值与报警方式图  图8 PID控制算法流程图 图9中,初始水温为26 C。实现思想:Ui(k)为第k次采样温度值,Ur 为设定值。 e(k) ≥ε 使用PD算法; e(k) <ε使用变速积分PID算法。 在此只给出本算法的控制结果曲线(见下图9)。 
图9 温度控制曲线图 四 源程序 本设计方案软件实现完全使用汇编程序语言。具体源程序略。 五 结果分析论述 本文针对电热锅炉温度控制系统模型,提出了一种基于单片机AT89S51的设计方案。设计中运用PID算法更新T1的定时常数,PWM输出控制可控硅的通断,从而实现对温度的连续控制。设计结果由图7和图9可以看出:本设计的控制器工作稳定,控制精度高,改进的PID算法超调量大大降低;软件采用模块化结构,提高了通用性。本设计的目的不仅仅是温度控制本身,主要提供了单片机外围电路及软件包括控制算法设计的思想,应该说,这种思想比控制系统本身更为重要。 七 参考文献 [1] 何立民 主编.单片机中级教程. 北京航空航天大学出版社.2002年8月. [2] 李朝青 编著.单片机原理及接口技术. 北京航空航天大学出版社.1999年3月. [3] 第三届全国大学生电子设计竞赛获奖作品选编.北京理工大学出版社.1997年1月. [4] Protel DXP教程.电子工业出版社.2004年 |