2 系统软件设计
系统程序的控制思想如下:设置目标温度后,系统对炉温采样,并通过预设温度、当前温度、历史偏差等进行PID运算产生输出参数,通过该参数控制加热时间,从而调节加热器的平均功率,实现系统的PID控制。整体功能通过主程序、串行通信中断服务程序、PID控制子程序等配合实现。这里主要介绍主程序流程和PID控制子程序流程。系统首先初始化I/O、8253、定时器、UART等部件,然后进入主循环,进行温度采样和相关处理。本系统软件设计的核心思想就在于实现PID控制,在系统运行过程中通过按相应键重新设置目标温度。主程序流程如图2所示。
本方案利用位置式PID算法,将温度传感器采样输入作为当前输入,接着与设定值进行相减得偏差,再进行PID运算产生输出结果,然后控制定时器的时间进而控制加热器。由中断定时器提供溢出频率为64 Hz的中断信号,配合主程序的PID运算结果来确定加热时间,实现加热器功率调节,该部分子程序流程图如图3所示。
上位机软件使用Delphi,由于Delphi不提供串口通信的ActiveX控件,仅有API函数可以使用,但API函数编程较为复杂,因此可将微软公司提供的Ac-tiveX控件Microsoft Communication Control 6.0(简称MSComm控件)引入到Delphi开发环境中,这样用户便可以像使用Delphi控件一样方便地利用MSComm控件进行计算机串口的通信编程。下面给出上位机命令的发送与数据接收的部分源程序:
3 系统调试
本系统的关键之处在于PID控制。对于PID系统来说,系统性能的好坏主要取决于PID控制参数的设定。由PID控制原理知;比例(P)控制能迅速反应误差,减小稳态误差;比例作用的加大,会引起系统的不稳定。积分(I)控制的作用,只要系统有偏差存在,积分作用不断地积累,输出控制量以消除误差;积分作用太强会使系统超调加大,甚至使系统出现振荡。微分(D)控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。本系统要达到的目标就是:反应速度尽可能快,超调量尽可能小,稳态误差趋近于0。