欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

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

  • 资源ID:83873472       资源大小:5.63MB        全文页数:6页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

温度控制与PID算法温度控制与PID算法j较为复杂,下面结合实际浅显易懂的阐述一下PID控制理论,将温度控制与PID算法作一个简单的描述。1 温度控制的框图 这是一个典型的闭环控制系统,用于控制加热温区的温度PV保持在恒定的温度设定值(SV)。系统通过温度采集单元反响回来的实时温度信号PV获取偏差值EV,偏差值经过PID调节器运算输出,控制发热管的发热功率,以克制偏差,促使偏差趋近于零。例如,当某一时刻炉内过PCB板较多,带走的热量较多时,即导致温区温度下降,这时,通过反响的调节作用,将使温度迅速上升。其调节过程如下: 温度控制的功率输出采用脉宽调制的方法。固态继电器SSR的输出端为脉宽可调的电压UOUT 。当SSR的触发角触发时,电源电压UAN通过SSR的输出端加到发热管的两端;当SSR的触发角没有触发信号时,SSR关断。因此,发热管两端的平均电压为 Ud(t/T)* UAN=K* UAN 其中K=t/T,为一个周期T中,SSR触发导通的比率,称为负载电压系数或是占空比,K的变化率在01之间。一般是周期T固定不便,调节t, 当t在0T的X围内变化时,发热管的电压即在0UAN之间变化,这种调节方法称为定频调宽法。下面将要描述的PID调节器的算式在这里的实质即是运算求出一个实时变化的,能够保证加热温区在外界干扰的情况下仍能保持温度在一个较小的X围内变化的合理的负载电压系数K。2.温度控制的两个阶段 温度控制系统是一个惯性较大的系统,也就是说,当给温区开始加热之后,并不能立即观察得到温区温度的明显上升;同样的,当关闭加热之后,温区的温度仍然有一定程度的上升。另外,热电偶对温度的检测,与实际的温区温度相比拟,也存在一定的滞后效应。 这给温度的控制带来了困难。因此,如果在温度检测值PV到达设定值时才关断输出,可能因温度的滞后效应而长时间超出设定值,需要较长时间才能回到设定值;如果在温度检测值PV未到设定值时即关断输出,如此可能因关断较早而导致温度难以达到设定值。为了合理地处理系统响应速度即加热速度与系统稳定性之间地矛盾,我们把温度控制分为两个阶段。(1) PID调节前阶段 在这个阶段,因为温区的温度距离设定值还很远,为了加快加热速度,SSR与发热管处于满负荷输出状态,只有当温度上升速度超过控制参数“加速速率,SSR才关闭输出。“加速速率描述的是温度在单位时间的跨度,反映的是温度升降的快慢,如上图所示。用“加速速率限制温升过快,是为了降低温度进入PID调节区的惯性,防止首次到达温度设定值SV时超调过大。在这个阶段,要么占空比K=0, SSR关闭;要么占空比K=100, SSR全速输出。PID调节器不起作用,仅由“加速速率控制温升快慢。2 PID调节阶段在这个阶段,PID调节器调节输出,根据偏差值计算占空比0100,保证偏差(EV)趋近于零,即使系统受到外部干扰时,也能使系统回到平衡状态。3 PID算法 PID控制的原理是基于下面的算式:输出M(t)是比例项,积分项和微分项的函数。 其中: M(t) PID回路的输出,是时间的函数 Kc PID回路的比例增益 e PID回路的偏差设定值SV与过程变量(PV)之差 Minitial PID回路的静态输出值 为了能让数字计算机处理这个算式,连续算式必须离散化为周期采样偏差算式,才能用来计算输出值。数字计算机处理的算式如下: 从这个公式可以看出,积分项是从第一个采样周期到当前采样周期所有误差 项的函数,微分项是当前采样和前一次采样的函数,比例项仅是当前采样的函数。在数字计算机中,不保存所有的误差项,其实也不必要。由于计算机从第一次采样开始,每有一个过程采样值必须计算一次输出值,只需要保存前一次过程值(PVn-1)和积分项前值。利用计算机处理的重复性,可以将以上算式变换为: 其中: Mn 在第n 采样时刻,PID回路的输出计算值 SV PID 回路设定值 PVn 在第n 采样时刻的过程变量值 PVn-1 在第n1 采样时刻的过程变量值 MX 积分前项值 Mintial PID回路的静态输出值Kc PID回路的比例增益KI 积分项的比例常数 KI=Kc * Ts / Ti Ts是离散化时的采样时间间隔 Ti是积分时间参数;KD 微分项的比例常数 KD=Kc * Td / Ts Ts是离散化时的采样时间间隔 Td是微分时间参数;从上面PID的算式,可以分析三个根本参数Kc, KI, KD在实际控制中的作用:(1) 比例调节作用:比例项按比例反响系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少偏差。但是过大的比例调节,使系统的稳定性下降,甚至造成系统的不稳定。(2) 积分调节作用:积分项消除系统的稳态误差,提高无差度。只要有偏差,积分就进展,直到无偏差时,积分运算才停止,积分调节项输出一常数值。积分作用的强弱取决于积分时间常数Ti,Ti越小,积分作用越强。积分控制可提高系统的无差度,但积分项输出响应缓慢,使得系统调节时间增长。(3) 微分调节作用:微分项反映系统过程变量的变化率PVn-1-PVn/ Ts,具有预见性,能预见变化的趋势,因此,能产生超前的调节作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间参数Td选择适宜的情况下,可以减少超调,减少调节时间。微分调节对干扰有放大效果,过强的微分调节,对系统抗干扰不利。此外,微分项反映的是过程变量的变化率,而当过程变量没有变化时,微分调节输出为零。微分调节不能单独使用,需要与另外两种调节规律相结合,组成PD或PID调节器。以上面的推导,C程序如下/*pid算法C源程序,还有实现pid自动调整。51用于控制温度26-100摄氏度。 TIME:2011-07-29 20:15:07*/#include <stdlib.h>#include "global_varible.h"/* 模块名: PID* 描述: PID调节子程序* 采用PID-PD算法。在偏差绝对值大于e时,用PD算法,以改善动态品质。* 当偏差绝对值小于e时,用PID算法,提高稳定精度。* PIDout=kp*e(t)+ki*e(t)+e(t-1)+.+e(1)+kd*e(t)-e(t-1)*=* 入口: 无* 出口: 无* 改变: PID_T_Run=加热时间控制*/void PID_Math(void)signed long ee1; /偏差一阶/signed long ee2; /偏差二阶signed long d_out; /积分输出 if(!Flag_PID_T_OK)return;Flag_PID_T_OK = 0;Temp_Set = 3700; /温度控制设定值37.00度PID_e0 = Temp_Set - Temp_Now; /本次偏差ee1 = PID_e0 - PID_e1; /计算一阶偏差 /ee2 = PID_e0-2*PID_e1+PID_e2; /计算二阶偏差/一阶偏差的限制X围if(ee1 > 500) ee1 = 500;if(ee1 < -500)ee1 = -500;PID_e_SUM += PID_e0; /偏差之和/积分最多累计的温差 if(PID_e_SUM > 200) PID_e_SUM = 200; if(PID_e_SUM < -200)PID_e_SUM = -200; PID_Out = PID_kp * PID_e0 + PID_kd * ee1;/计算PID比例和微分输出if(abs(PID_e0) < 200) /如果温度相差小于1.5度如此计入PID积分输出if(abs(PID_e0) > 100) /如果温度相差大于1度时积分累计限制if(PID_e_SUM > 100)PID_e_SUM = 100; if(PID_e_SUM < -100)PID_e_SUM = -100;d_out = PID_ki * PID_e_SUM;/积分输出if(PID_e0 < -5) /当前温度高于设定温度0.5度时积分累计限制if(PID_e_SUM > 150)PID_e_SUM = 150;if(PID_e_SUM > 0) d_out >>= 1;/当前温度高于设定温度0.5度时削弱积分正输出PID_Out += d_out; /PID比例,积分和微分输出elsePID_e_SUM=0;PID_Out /= 100; /恢复被PID_Out系数放大的倍数if(PID_Out > 200)PID_Out=200;if(PID_Out<0)PID_Out=0;if(PID_e0 > 300) PID_Out=200;/当前温度比设定温度低3度如此全速加热if(PID_e0 < -20) PID_Out=0;/当前温度高于设定温度0.2度如此关闭加热Hot_T_Run = PID_Out; /加热时间控制输出/PID_e2 = PID_e1; /保存上次偏差PID_e1 = PID_e0; /保存当前偏差

注意事项

本文(温度控制的PID算法及C程序实现)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!