基于数字PID和89C52单片机的温度控制系统
扫描二维码
随时随地手机看文章
1 系统结构及主要硬件电路设计
1.1 系统结构
该系统的控制对象是水温,水温经测温传感器DSl820转换成电压信号,经A/D转换成计算机可以接收的数字信号,保存在89C52单片机采样值单元中;再利用键盘输入设定温度,经温度标度转换成二进制数,保存在单片机内设定值单元;然后,调用显示子程序,显示设定温度和采样温度,然后把采样值与设定值输入单片机内进行数字PID控制算法的运算,运算结果由单片机输出,通过可控硅交流调压装置来控制时间的导通和关断,在达到设定温度后利用PWM方法来保持此温度,以此来调节温度。该系统原理图如图1所示。
l.2 硬件电路设计
根据任务要求,确定了器件和系统电路。系统电路简图如图2所示。该系统以高性能/价格比的89C252单片机为控制系统的核心,采用新型单片机数字测温传感器DSl820来测量温度,由双向可控硅驱动电路MOC3854和双向可控硅TLC253A组成输出控制通道。除此之外,还有键盘电路、显示电路、报警电路等。
89C52单片机是控制系统的核心,实现水温检测、数字滤波、控制算法运算、信息存储等功能。89C52通过数据、地址、控制总线与A/D转换器相连,完成模拟量与数字量之间的转换。测量机构采用温度传感器DSl820作为温度测量电路的核心器件,DSl820是一款两端器件,只需要一个直流电压源,功率的需求比较低,可量测范围-40~180℃,其输出是高阻抗电流,因而大阻值的电阻对器件工作影响不大,具有非常好的线性输出性能。执行机构是可控硅交流调压装置,其输入信号为高低电平,通过改变输入信号来调节加热炉丝的电压。键盘部分主要在程序中引入3个中断,即串位键、+l键、-1键分别对应3个中断,当某个键按下时,中断口便产生一个下降沿,从而进入相应的中断服务子程序。显示利用8155进行扩展成4位BCD码,前2位为设定值,后2位为采样值,实现了动态循环显示特性。
2 程序流程及温控算法
2.1 程序流程
系统的程序流程主要包括系统的主程序、对89C52单片机硬件电路的初始化、环境温度采集子程序、温度控制子程序、键盘控制子程序、报警子程序等部分构成。程序流程图如图3所示,该系统的软件是在89C5l单片机仿真开发环境下采用基于51系列的C语言编写的,用C语言来设计程序大大提高了开发调试的工作效率,使得程序结构清晰,便于进一步扩展系统的功能。
2.2 温控算法
温控系统采用数字PID算法,并由软件实现,所谓PID控制就是按设定值与测量值之间偏差的比例、偏差的积累和偏差变化的趋势进行控制。它根据采样时刻的偏差值计算控制量。因此PID控制律的实现,必须用数值逼近法。当采样周期相当短时,可以用求和代替积分,用差商代替微分,即做如下近似变换:
式中,k为采样序号,k=l,2,…;T为采样周期。
显然,上述离散化过程中,采样时间T必须足够短,才能保证有足够的精度。为了书写方便,将e(kT)简化表示成e(k)等,即省去T。可以得到离散的PID表达式为:
式中,k为采样序号,k=1,2,…,;u(k)为第k次采样时刻的计算机输出值;e(k)为第k次采样时刻输入的偏差值;e(k-1)为第(k-1)次采样时刻输入的偏差值;K1为积分系数,;KD为积分系数。
该系统采用增量式PID控制算法,是指数字控制器输出只是控制量的增量,该算法编程简单,数据可以递推使用,占用存储空间少,运算快。
根据递推原理可得:
3 结束语
本文主要从硬件和软件两个方面具体描述了基于数字PID的89C52单片机温度控制系统的构造。该系统充分发挥了89C52单片机对模拟量的采集处理和增量式数字PID控制算法的功能,可以比较灵活的调节控制信号的导通时间来控制加热电路和冷却电路的工作。该系统基本满足了温度控制的要求,具有超调量小,振荡幅度小,设定值可以随时用按键人为设定等优点,同时该系统还避免了控制过程中的不确定性及噪声,提高了系统的工作效率。理论和实践证明,该系统具有高可靠性、高性价比、控制简单方便等优点,大大提高测量的精度。