温度控制的PID算法-及C程序实现_第1页
温度控制的PID算法-及C程序实现_第2页
温度控制的PID算法-及C程序实现_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、I匸调节拣凰腴世电諜与黑爲菅 愉山功率温度控制的功率输出采用脉宽调制的方法。固态继电器SSR的输出端为脉宽可调的电压Uout。当SSR的触发角触发时,电源电 压Uan通过SSR的输出端加到发热管的两端; 当SSR的触发角没有触发信号时,SSR关断 因此,发热管两端的平均电压为Ud=(t/T)* U an=K* U an其中K= t/T,为一个周期T中,SSR触发导 通的比率,称为负载电压系数或是占空比, K 的变化率在01之间。一般是周期T固定不 便,调节t,当t在0 T的范围内变化时,发 热管的电压即在0 Uan之间变化,这种调节方 法称为定频调宽法。下面将要描述的 PID调节器的算式在这里

3、的实质即是运算求出一个 实时变化的,能够保证加热温区在外界干扰的 情况下仍能保持温度在一个较小的范围内变发热管L8KW化的合理的负载电压系数K1<A十SSRL on tInUuL73Uan0_简单的固态继电器加热电路j;w一AKAT脉宽诡制电压输出示意图t2.温度控制的两个阶段温度控制系统是一个惯性较大的系统,也 就是说,当给温区开始加热之后,并不能立即 观察得到温区温度的明显上升;同样的,当关 闭加热之后,温区的温度仍然有一定程度的上 升。另外,热电偶对温度的检测,与实际的温 区温度相比较,也存在一定的滞后效应。这给温度的控制带来了困难。因此,如果在温 度检测值(PV)到达设定值时才关

4、断输出, 可能因温度的滞后效应而长时间超出设定值, 需要较长时间才能回到设定值;如果在温度检 测值(PV)未到设定值时即关断输出,则可 能因关断较早而导致温度难以达到设定值。为 了合理地处理系统响应速度(即加热速度)与 系统稳定性之间地矛盾,我们把温度控制分为 两个阶段。匿段拒艳的功态响应过程(1) PID调节前阶段在这个阶段,因为温区的温度距离 设定值还很远,为了加快加热速度,SSR 与发热管处于满负荷输出状态,只有当 温度上升速度超过控制参数"加速速 率”,SSR才关闭输出。“加速速率”描 述的是温度在单位时间的跨度,反映的 是温度升降的快慢,如上图所示。用“加 速速率”限制温升

5、过快,是为了降低温 度进入PID调节区的惯性,避免首次到 达温度设定值(SV)时超调过大。在这个阶段,要么占空比K=0, SSR 关闭;要么占空比K=100 %, SSR全速输 出。PID调节器不起作用,仅由“加速 速率”控制温升快慢。(2)PID调节阶段在这个阶段,PID调节器调节输出, 根据偏差值计算占空比(0 100%),保 证偏差(EV)趋近于零,即使系统受到外 部干扰时,也能使系统回到平衡状态。3. PID算法PID控制的原理是基于下面的算式: 输出M(t)是比例项,积分项和微分项的 函数。M(t)匸e(t) + Ke(t)dt +e(t)/dt + Minitla|输出=比侃坝+积

6、分威+微分项亠静企输出项(常数项)其中:M(t)间的函数PID回路的输出,是时KcPID回路的比例增益ePID回路的偏差(设定值(SV)与过程变量(PV)之差)Mi nitialPID回路的静态输出值为了能让数字计算机处理这个算 式,连续算式必须离散化为周期采样偏 差算式,才能用来计算输出值。数字计 算机处理的算式如下:Mn=Kc* 绻 + %* 畤卜 *何-) + MSnlllaL输出=比例项+积分项+徵分项+静态箔出项(常数攻)从这个公式可以看出,积分项是从 第一个采样周期到当前采样周期所有误 差 项的函数,微分项是当前采样和前 一次采样的函数,比例项仅是当前采样 的函数。在数字计算机中,

7、不保存所有 的误差项,其实也不必要。由于计算机从第一次采样开始,每有一个过程采样 值必须计算一次输出值,只需要保存前 一次过程值(PVn-1)和积分项前值。利用 计算机处理的重复性,可以将以上算式 变换为:SV - PVn) + (K:爭(SV - PVJ + MX) M (PI - PV ) + M 閘询输出=比例项+积分项+皺分项+静态输出项(常数项)其中:Mn在第n采样时刻,PID回路的输出计算值SVPID回路设定值PVn在第n采样时刻的过程变量值PVn-1在第n 1采样时刻的过程变量值MX积分前项值MintialPID回路的静态输出值KcPID回路的比例增益KI积分项的比例常数 KI=

8、Kc*Ts / TiTs 是离散化时的采样时间间 隔 Ti 是积分时间参数; KD 微分项的比例常数 KD=Kc * Td / TsTs 是离散化时的采样时间间 隔 Td 是微分时间参数;从上面 PID 的算式,可以分析三个基本 参数 Kc, KI, KD 在实际控制中的作用:1) 比例调节作用:比例项按比例反应系统 的偏差,系统一旦出现了偏差, 比例调节 立即产生调节作用用以减少偏差。 比例作 用大, 可以加快调节, 减少偏差。 但是过 大的比例调节, 使系统的稳定性下降, 甚 至造成系统的不稳定。2) 积分调节作用: 积分项消除系统的稳态 误差, 提高无差度。 只要有偏差, 积分就 进行,

9、直到无偏差时,积分运算才停止, 积分调节项输出一常数值。 积分作用的强 弱取决于积分时间常数 Ti ,Ti 越小,积 分作用越强。积分控制可提高系统的无差 度,但积分项输出响应缓慢, 使得系统调 节时间增长。( 3) 微分调节作用: 微分项反映系统过程变 量的变化率(PVn-1-PVn) / Ts),具有 预见性, 能预见变化的趋势, 因此,能产 生超前的调节作用, 在偏差还没有形成之 前,已被微分调节作用消除。 因此,可以 改善系统的动态性能。在微分时间参数 Td 选择合适的情况下,可以减少超调, 减少调节时间。微分调节对干扰有放大效 果,过强的微分调节,对系统抗干扰不利。 此外,微分项反映

10、的是过程变量的变化 率,而当过程变量没有变化时, 微分调节 输出为零。 微分调节不能单独使用, 需要 与另外两种调节规律相结合, 组成 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算法,以改善动

11、态品质。* 当偏差绝对值小于 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 = Te

12、mp_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

13、 + 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=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论