pid离散表示:
out =Kp*(err(k) + T/Ti * err1 + Td/T * (err(k) - err(k-1) );
out:输出值,pwm输入值。
T采样周期,Ti,积分周期,Td,微分周期,err(k),误差值,err1,误差累积值。
位置型:
pid.out = pid.kp * pid.err + pid.ki * pid.err1 + pid.kd * (pid.err - pid.next);
参数是一样的。
增量型:
pid.inc= pid.kp * (pid.err - pid.next) + pid.ki * pid.err + pid.kd * (pid.err - 2*pid.next + pid.last);
pid.out += pid.inc;
pid.next = pid.err;
pid.last = pid.next;
Kp:加快系统响应速度,提高系统调节精度;副作用:会超调
Ki:消除稳态误差,副作用:积分饱和
Kd:改善系统动态性能,副作用:延长调节时间
参数同上
PID调试一般原则 :
在输出不振荡时,增大比例增益P。由小到大
在输出不振荡时,减小积分时间常数Ti。由大到小
在输出不振荡时,增大微分时间常数Td。由小到大
1、确定比例增益P 确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。 一般取P = Pmax(*60~70%)。
2、确定积分时间常数Ti 比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录 此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。
3、确定积分时间常数Td积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti 的方法相同,取不振荡时的30%。
口诀:
- 参数整定找最佳,从小到大顺序查。
- 先是比例后积分,最后再把微分加。
- 曲线振荡很频繁,比例度盘要放大。
- 曲线漂浮绕大湾,比例度盘往小扳。
- 曲线偏离回复慢,积分时间往下降。
- 曲线波动周期长,积分时间再加长。
- 曲线振荡频率快,先把微分降下来。
- 动差大来波动慢。微分时间应加长。
- 理想曲线两个波,前高后低4比1。
- 一看二调多分析,调节质量不会低。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
临界比例法:
利用该方法进行PID控制器参数的整定步骤如下:
1)首先预选择一个足够短的采样周期让系统工作;
2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;
3)在一定的控制度下通过公式计算得到PID控制器的参数。