欢迎来到天天文库
浏览记录
ID:47330531
大小:1.12 MB
页数:23页
时间:2019-08-15
《基于.PID电加热炉温度控制系统设计(1)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.基于PID电加热炉温度控制系统设计摘要电加热炉随着科学技术的发展和工业生产水平的提高,已经在冶金、化工、机械等各类工业控制中得到了广泛应用,并且在国民经济中占有举足轻重的地位。对于这样一个具有非线性、大滞后、大惯性、时变性、升温单向性等特点的控制对象,很难用数学方法建立精确的数学模型,因此用传统的控制理论和方法很难达到好的控制效果。单片机以其高可靠性、高性能价格比、控制方便简单和灵活性大等优点,在工业控制系统、智能化仪器仪表等诸多领域得到广泛应用。采用单片机进行炉温控制,可以提高控制质量和自动化水平。一、绪论在本控制对象电阻加热炉功率为8可W,由220V交流电供电
2、,采用双向可控硅进行控制。本设计针对一个温度区进行温度控制,要求控制温度范围50~350C,保温阶段温度控制精度为正负1度。选择合适的传感器,计算机输出信号经转换后通过双向可控硅控制器控制加热电阻两端的电压。其对象问温控数学模型为:其中:时间常数Td=350秒,放大系数Kd=50,滞后时间=10秒,控制算法选用改PID控制实时温度采样显示设定值单片机设定温度电源控制电阻加热炉图1.1系统总体结构图...二、控制系统的建模和数字控制器设计输入并采样r(K)、c(K)开始计算偏差e(K)=r(K)-c(K)计算u(k)=qe(k)+qe(k-1)+qe(k-2)存u(k
3、)以备输出参数序号e(k-1)e(k-2)调整e(k)e(k-1)返回 图2PID算法流程图数字PID控制算法PID控制器是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。受控对象PID位置算法reuy+-图2.1位置PID控制算法简化示意图...在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。当采样
4、周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续时间PID算法的微分方程,变为描述离散-时间PID算法的差分方程。用矩形积分时,有(1)用差分代替微分(2)由上式得(3)式中u0——控制量的基值,即k=0时的控制;u(k)——第k个采样时刻的控制;KP——比例放大系数;KI——积分放大系数;KD——微分放大系数;TS——采样周期。式(3)是数字PID算法的非递推形式,称全量算法。算法中,为了求和,必须将系统偏差的全部过去值e(j)(j=1,2,3,...,k)都存储起来。这种算法得出控制量的全量输出u(k),是控制量的绝对数值。在控制系统
5、中,这种控制量确定了执行机构的位置。当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。yuerPID增量算法受控对象-+步进电机∆u...由位置算法求出再求出两式相减,得出控制量的增量算法(4)式(4)称为增量式PID算法。对增量式PID算法(4)归并后,得(5)从式(5)看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k),e(k-1),e(k-2)就足够了。如果计算机系统采用恒定的采样周期T,一旦确定q,q,q只要使用前后测量三次的偏差值,就可以由上式求出控制量。typedef struct
6、PID { Int SetPoint;//设定目标Desired ValueLong SumError;//误差累计 double propotion;//比例常数 Propotion ConstDouble integral;//积分常数 Integral ConstDouble derivative;//微分常数 Derivative Constint LastError;// Error[-1] Int PrevError;// Error[-2] } PID; ststic PIDsPID; /*Initialize PID Structure PID参数初
7、始化*/ ...void IncPIDInit(void) { sptr->SumError=0; sptr->LastError=0;// Error[-1] sptr->PrevError=0;// Error[-2] sptr->Propotion=0;//比例常数 Propotional Const sptr->integral=0;//积分常数Integral Const sptr->derivative=0;//微分常数Derivative Const sptr->SetPoint=0; } /*增量式PID计算部分*/ int IncPIDCa
此文档下载收益归作者所有