首页 温度控制PID实例

温度控制PID实例

举报
开通vip

温度控制PID实例温度控制PID实例 #include #include "global_varible.h" /**************************************************************************** * 模块名: PID * 描述: PID调节子程序 * 采用PID-PD算法。在偏差绝对值大于?e时,用PD算法,以改善动态品质。 * 当偏差绝对值小于?e时,用PID算法,提高稳定精度。 * PIDout=kp*e(t)+ki*[e(t)+e(t-1)+...

温度控制PID实例
温度控制PID实例 #include #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; //计算二阶偏差 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) //当前温度高于设定温度0.5度时削弱积分正输出 d_out >>= 1; } PID_Out += d_out; //PID比例,积分和微分输出 } else PID_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) //当前温度比设定温度低3度则全速加热 PID_Out=200; if(PID_e0 < -20) //当前温度高于设定温度0.2度则关闭加热 PID_Out=0; Hot_T_Run=PID_Out; //加热时间控制输出 PID_e2 = PID_e1; //保存上次偏差 PID_e1 = PID_e0; //保存当前偏差 } ////////////////////////////////////////////////////////////void PID_Math() end.
本文档为【温度控制PID实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079973
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:4
分类:
上传时间:2017-10-06
浏览量:34