(完整版)基于PID电加热炉温度控制系统毕业设计论文 下载本文

基于PID电加热炉温度控制系统设计

纪和增

摘要 电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到好的控制效果。单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。采用单片机进行炉温控制,可以提高控制质量和自动化水平。

关键字 PID;电加热炉;温度控制系统;单片机

1 绪论

在本控制对象电阻加热炉功率为8可W,由220V交流电供电,采用双向可控硅进行控制。本设计针对一个温度区进行温度控制,要求控制温度范围50~350C,保温阶段温度控制精度为正负1度。选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。其对象问温控数学模型为:

其中:时间常数Td=350秒,放大系数Kd=50,滞后时间=10秒, 控制算法选用改PID控制

图1.1系统总体结构图

2 控制系统的建模和数字控制器设计

数字PID控制算法

在电子数字计算机直接数字控制系统中,PID控制器是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。

图2.1位置PID控制算法简化示意图

在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。当采样周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续时间PID算法的微分方程,变为描述离散-时间PID算法的差分方程。

用矩形积分时,有

(1)

用差分代替微分

Tu(k)?Kp?[e(k)?sTi

?(e(j)?j?0kTD[e(k)?e(k?1))]?u0TS (2)

由上式得

u(k)?Kpe(k)?K1?e(k)?KD[e(k)?e(k?1)]?u0j?0k (3)

式中 u0——控制量的基值,即k=0时的控制;u(k)——第k个采样时刻的控制;KP——比例放大系数;KI——积分放大系数;

KD——微分放大系数;

TS——采样周期。

式(3)是数字PID算法的非递推形式,称全量算法。算法中,为了求和,必须将系统偏差的全部过去值e(j)(j=1,2,3,... ,k)都存储起来。这种算法得出控制量的全量输出u(k),是控制量的绝对数值。在控制系统中,这种控制量确定了执行机构的位置,例如在阀门控制中,这种算法的输出对应了阀门的位置(开度)。所以,将这种算法称为“位置算法”。

当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。 由位置算法求出

Tu(k?1)?Kp[e(k?1)?STI?e(j)?Tj?0k?1TDSe(k?1)?e(k?2)]?u0

再求出

两式相减,得出控制量的增量算法

Tu(k)?Kp[e(k)?STI

?e(j)?j?1kTD[e(k)?e(k?1)]?u0TS (4)

式(4)称为增量式PID算法。

对增量式PID算法(4)归并后,得

?u(k)?q0e(k)?q1e(k?1)?q2e(k?2) (5)

其中(5)已看不出是PID的表达式了,也看不出P、I、D作用的直接关系,只表示了各次误差量对控制作用的影响。从式(5)看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k),e(k-1),e(k-2)就足够了。

3 硬件的设计和实现

3.1 AT89C51系列基本组成及特性

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

图3.1AT89C51管脚

管脚说明:

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为