温度控制的算法及程序实现

上传人:博****1 文档编号:379519966 上传时间:2023-06-11 格式:DOCX 页数:7 大小:87.19KB
返回 下载 相关 举报
温度控制的算法及程序实现_第1页
第1页 / 共7页
温度控制的算法及程序实现_第2页
第2页 / 共7页
温度控制的算法及程序实现_第3页
第3页 / 共7页
温度控制的算法及程序实现_第4页
第4页 / 共7页
温度控制的算法及程序实现_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《温度控制的算法及程序实现》由会员分享,可在线阅读,更多相关《温度控制的算法及程序实现(7页珍藏版)》请在金锄头文库上搜索。

1、温度控制与PID算法温度控制与PID算法j较为复杂,下面结合实际浅显易懂的阐述一下PID控制理论,将 温度控制及PID算法作一个简单的描述。1.温度控制的框图这是一个典型的闭环控制系统,用于控制加热温区的温度(PV)保持在恒定的温度 设定值(SV)。系统通过温度采集单元反馈回来的实时温度信号(PV)获取偏差值(EV), 偏差值经过PID调节器运算输出,控制发热管的发热功率,以克服偏差,促使偏差趋近于 零。例如,当某一时刻炉内过PCB板较多,带走的热量较多时,即导致温区温度下降,这 时,通过反馈的调节作用,将使温度迅速回升。其调节过程如下:汎鮎圭宜a冲蠕山覽唉 瞬丄切率I 汛亠丘匠温度控制的功率

2、输出采用脉宽调制的方法。固态继电器SSR的输出端为脉宽可调的电 压Uout。当SSR的触发角触发时,电源电压Uan通过SSR的输出端加到发热管的两端; 当SSR的触发角没有触发信号时,SSR关断。因此,发热管两端的平均电压为Ud=( t/T)* Uan=K* Uan其中K= t/T,为一个周期T中,SSR触发导通的比率,称为负载电压系数或是占空比,K 的变化率在0 1之间。一般是周期T固定不便,调节t,当t在0T的范围内变化时, 发热管的电压即在0UAN之间变化,这种调节方法称为定频调宽法。下面将要描述的PID 调节器的算式在这里的实质即是运算求出一个实时变化的,能够保证加热温区在外界干扰 的

3、情况下仍能保持温度在一个较小的范围内变化的合理的负载电压系数K。/A十*SSRLouiInOutr1 i ggeIUanL发热管L 8KW简汛勺市态继电辭加热电路脉宽调制匕压魏出示意图2.温度控制的两个阶段温度控制系统是一个惯性较大的系统,也就是说,当给温区开始加热之后,并不能立 即观察得到温区温度的明显上升;同样的,当关闭加热之后,温区的温度仍然有一定程度 的上升。另外,热电偶对温度的检测,与实际的温区温度相比较,也存在一定的滞后效应。 这给温度的控制带来了困难。因此,如果在温度检测值(PV)到达设定值时才关断输出, 可能因温度的滞后效应而长时间超出设定值,需要较长时间才能回到设定值;如果在

4、温度 检测值(PV)未到设定值时即关断输出,则可能因关断较早而导致温度难以达到设定值。 为了合理地处理系统响应速度(即加热速度)与系统稳定性之间地矛盾,我们把温度控制 分为两个阶段。丄:耳匚:(1)PID调节前阶段在这个阶段,因为温区的温度距离设定值还很远,为了加快加热速度,SSR与 发热管处于满负荷输出状态,只有当温度上升速度超过控制参数“加速速率” SSR 才关闭输出。“加速速率”描述的是温度在单位时间的跨度,反映的是温度升降的快 慢,如上图所示。用“加速速率”限制温升过快,是为了降低温度进入PID调节区 的惯性,避免首次到达温度设定值(SV)时超调过大。在这个阶段,要么占空比K=0, S

5、SR关闭;要么占空比K=100%, SSR全速输出。 PID调节器不起作用,仅由“加速速率”控制温升快慢。(2) PID调节阶段在这个阶段,PID调节器调节输出,根据偏差值计算占空比(0 100%),保证 偏差(EV)趋近于零,即使系统受到外部干扰时,也能使系统回到平衡状态。3. PID算法PID控制的原理是基于下面的算式:输出M(t)是比例项,积分项和微分项的函数。M(t)=Kc e(t) + Kce (t)dt + Kf. e(t)/dt + M:l ;,一 :J. 输出二比例项4积分项4微分项卜静态输出项(常数项)其中:M(t)PID回路的输出,是时间的函数KcPID回路的比例增益ePI

6、D回路的偏差(设定值(SV)与过程变量(PV)之差)Minitial PID回路的静态输出值为了能让数字计算机处理这个算式,连续算式必须离散化为周期采样偏差算 式,才能用来计算输出值。数字计算机处理的算式如下:札* 蛊 + K严畤 + %*(% - %) +输出=比例项+积分项+微分项+静态输出项(常数项)从这个公式可以看出,积分项是从第一个采样周期到当前采样周期所有误差 项的函数,微分项是当前采样和前一次采样的函数,比例项仅是当前采样的函数。 在数字计算机中,不保存所有的误差项,其实也不必要。由于计算机从第一次采样 开始,每有一个过程采样值必须计算一次输出值,只需要保存前一次过程值(PVn-

7、1) 和积分项前值。利用计算机处理的重复性,可以将以上算式变换为:叱二 *( SV - PVJ -IV (1%: 一 1气)(K-= (SV - PV.)- 1X)输出=比例项+积分项+微分项+静态输出项(常数项)其中:MnSVPVnPVn-1MX在第n采样时刻,PID回路的输出计算值PID回路设定值在第n采样时刻的过程变量值在第n1采样时刻的过程变量值积分前项值MintialPID回路的静态输出值KcKIPID回路的比例增益 积分项的比例常数KI=Kc * Ts / TiTs是离散化时的采样时间间隔Ti是积分时间参数;KD微分项的比例常数KD=Kc * Td / TsTs是离散化时的采样时间

8、间隔Td是微分时间参数;从上面PID的算式,可以分析三个基本参数Kc, KI, KD在实际控制中的作用:(1)比例调节作用:比例项按比例反应系统的偏差,系统一旦出现了偏差,比例调 节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少偏差。 但是过大的比例调节,使系统的稳定性下降,甚至造成系统的不稳定。(2)积分调节作用:积分项消除系统的稳态误差,提高无差度。只要有偏差,积分 就进行,直到无偏差时,积分运算才停止,积分调节项输出一常数值。积分作 用的强弱取决于积分时间常数Ti,Ti越小,积分作用越强。积分控制可提高 系统的无差度,但积分项输出响应缓慢,使得系统调节时间增长。(3)微分调

9、节作用:微分项反映系统过程变量的变化率(PVn-l-PVn) / Ts),具有预见性,能预见变化的趋势,因此,能产生超前的调节作用,在偏差还没有 形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分 时间参数Td选择合适的情况下,可以减少超调,减少调节时间。微分调节对 干扰有放大效果,过强的微分调节,对系统抗干扰不利。此外,微分项反映的 是过程变量的变化率,而当过程变量没有变化时,微分调节输出为零。微分调 节不能单独使用,需要与另外两种调节规律相结合,组成PD或PID调节器。以上面的推导,C程序如下/*pid算法C源程序,还有实现pid自动调整。51用于控制温度26-100摄氏

10、度。TIME:2011-07-29 20:15:07*/#include #include / *l*t*A/*模块名:PID*描述:PID调节子程序* 采用PID-PD算法。在偏差绝对值大于Ae时,用PD算法,以改善动态品质。* 当偏差绝对值小于Ae时,用PID算法,提高稳定精度。* PIDout=kp*e(t)+ki*e(t)+e(t-1)+.+e(1)+kd*e(t)-e(t-1)*=* 入口:无* 出口:无*改变:PID_T_Run=加热时间控制*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*

11、 *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* /void PID_Math(void)signed long ee1;/偏差一阶/signed long ee2;/偏差二阶

12、signed long d_out; /积分输出if(!Flag_PID_T_OK)return;Flag_PID_T_OK = 0;Temp_Set = 3700; /温度控制设定值度PID_e0 = Temp_Set - Temp_Now; /本次偏差ee1 = PID_e0 - PID_e1;/计算一阶偏差/ee2 = PID_e0-2*PID_e1+PID_e2;/计算二阶偏差 /一阶偏差的限制范围 if(ee1 500) ee1 = 500; if(ee1 200) PID_e_SUM = 200; if(PID_e_SUM -200) PID_e_SUM = -200;/计算PID

13、比例和微分输出/如果温度相差小于度则计入 PIDPID_Out = PID_kp * PID_e0 + PID_kd * ee1; if(abs(PID_e0) 100) 计限制if(PID_e_SUM 100) if(PID_e_SUM -100)积分输出/如果温度相差大于 1度时积分累PID_e_SUM = 100;PID_e_SUM = -100;/积分输出/当前温度高于设定温度度时积分150;d_out = PID_ki * PID_e_SUM;if(PID_e0 150) PID_e_SUM温度控制的算法及程序实现 if(PID_e_SUM 0) d_out = 1; /当前温度高于

14、设定温度度时削弱 积分正输出PID_Out += d_out;/PID比例,积分和微分输出elsePID_e_SUM=0;PID_Out /= 100; if(PID_Out 200) if(PID_Out 300) 速加热if(PID_e0 -20) 加热PID_Out=200;PID_Out=0;PID_Out=200;PID_Out=0;/恢复被PID_Out系数放大的倍数/当前温度比设定温度低 3 度则全/当前温度高于设定温度度则关闭Hot_T_Run = PID_Out;/ PID_e2 = PID_e1;PID_e1 = PID_e0;/加热时间控制输出/保存上次偏差/保存当前偏差

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号