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年