温度的PID控制及程序示例.docxVIP

  • 113
  • 0
  • 约5.35千字
  • 约 8页
  • 2020-11-24 发布于天津
  • 举报
温度的 PID 控制 一.温度检测部分首先要 OK. 二、 PID 调节作用 PID 控制时域的公式 1 de(t) y(t) Kp(e(t) e(t) Td ) Ti dt 分解开来: 比例调节器 y(t) = Kp * e(t) e(k) 为当前的温差(设定值与检测值的插值) y(k) 为当前输出的控制信号 (需要转化为 PWM 形式 ) # 输出与输入偏差成正比。只要偏差出现,就能及时地产生与之成比例的调节 作用,使被控量朝着减小偏差的方向变化,具有调节及时的特点。但是, Kp 过 大会导致动态品质变坏,甚至使系统不稳定。比例调节器的特性曲线 . 积分调节器 y(t) = Ki * ∫(e(t))dt Ki = Kp/Ti Ti为积分时间 #TI 是积分时间常数,它表示积分速度的大小, Ti 越大,积分速度越慢,积分作 用越弱。只要偏差不为零就会产生对应的控制量并依此影响被控量。增大 Ti 会 减小积分作用,即减慢消除静差的过程,减小超调,提高稳定性。 微分调节器 y(t) = Kd*d(e(t))/dt Kd = Kp*Td Td 为微分时间 #微分分量对偏差的任何变化都会产生控制作用,以调整系统输出,阻止偏差变 化。偏差变化越快,则产生的阻止作用越大。从分析看出,微分作用的特点是: 加入微分调节将有助于减小超调量, 克服震荡, 使系统趋于稳定。 他加快了系统 的动作速度,减小调整的时间,从而改善了系统的动态性能。 三. PID 算法: 由时域的公式离散化后可得如下公式: y(k) = y(k-1)+(Kp+Ki+Kd)*e(k)-(Kp +2*Kd)*e(k-1) + Kd*e(k-2) y(k) 为当前输出的控制信号 (需要转化为 PWM 形式 ) y(k-1)为前一次输出的控制信号 e(k) 为当前的温差(设定值与检测值的插值) e(k-1) 为一次前的温差 e(k-2) 为二次前的温差 Kp 为比例系数 Ki = Kp*T/Ti T 为采样周期 Kd = Kp*Td/T 四.PID 参数整定(确定 Kp,Ts,Ti,Td ): 温度控制适合衰减曲线法,需要根据多次采样的数据画出响应曲线。 所以需要通过串口将采样时间 t, 输出 y(t) 记录下来,方便分析。 、不加入算法,系统全速加热,从常温加热到较高的温度的时间为 Tk, 则采样时间一般设为 T = Tk/10 。 、置调节器积分时间 TI= ∞,微分时间 TD=0,即只加比例算法: y(k) = y(k-1)+Kp*e(k) 比例带 δ 置于较大的值。将系统投入运行。 (δ = 1/Kp ) 、待系统工作稳定后,对设定值作阶跃扰动,然后观察系统的响应。若响 应振荡衰减太快,就减小比例带;反之,则增大比例带。如此反复,直到出现如 图所示的衰减比为 4: 1的振荡过程时,记录此时的 δ 值(设为 δS),以及 TS 的值(如图中所示)。当采用衰减比为 10: 1振荡过程时,应用上升时间 Tr 替代 振荡周期 TS 计算。 系统衰减振荡曲线 图中, TS为衰减振荡周期, Tr 为响应上升时间。 据表中所给的经验公式计算 δ、 TI 及 TD的参数。 表衰减曲线法整定计算公式 衰减率 ψ 整定参数 调节规律 δ (1/Kp) T I T D 0.75 P δS PI 1.2 δS 0.5T S PID 0.8 δS 0.3T S 0.1T S 0.9 P δS PI 1.2 δS 2T r PID 0.8 δS 1.2T r 0.4T r 大致计算出 Kp,Ti,Td 后代入公式,然后完善算法。让系统运作多测试几次。直到满意 为止。 以下是网上找的一个示例程序 #includereg51.h #includeintrins.h #define N0 40536 #define nop() _nop_() #define uchar unsigned char #define uint unsigned int /* 程序中变量 数组定义 */ uchar idata table[]={Real-time Temp:};// 第一行显示 Real-time Temp: uchar idata table1[5]; uchar data1,kp,ki,kd; uint t,hightime,count; // 占空比调节参数 uint rltemp,settemp=350; int e1,e2,e3,duk,uk; /* 引脚定义 */ sbit EOC=P2^6; sbit OE=P2^5; sbit START=P2^7; sbit lcden=P3^2; sbit lcdrw=P3^1; sbit lcdrs=P3^0; sbit pwm=P3^3; /***

文档评论(0)

1亿VIP精品文档

相关文档