PID算法简介
P指的是比例(Proportion),I指的是积分(Integral),D指的是微分(Differential)。在电机调速系统中,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。
要想搞懂PID算法的原理,首先必须先明白P,I,D各自的含义及控制规律:
01
比例P:
比例项部分其实就是对预设值和反馈值差值的放大倍数。举个例子,假如原来电机两端的电压为U0,比例P为0.2,输入值是800,而反馈值是1000,那么输出到电机两端的电压应变为U0+0.2*(800-1000)。从而达到了调节速度的目的。显然比例P越大时,电机转速回归到输入值的速度将更快,及调节灵敏度就越高。从而,加大P值,可以减少从非稳态到稳态的时间。但是同时也可能造成电机转速在预设值附近振荡的情形,所以又引入积分I解决此问题。
02
积分I:
积分项部分其实就是对预设值和反馈值之间的差值在时间上进行累加。当差值不是很大时,为了不引起振荡。可以先让电机按原转速继续运行。当时要将这个差值用积分项累加。当这个和累加到一定值时,再一次性进行处理。从而避免了振荡现象的发生。可见,积分项的调节存在明显的滞后。而且I值越大,滞后效果越明显。
03
微分D:
微分项部分其实就是求电机转速的变化率。也就是前后两次差值的差而已。也就是说,微分项是根据差值变化的速率,提前给出一个相应的调节动作。可见微分项的调节是超前的。并且D值越大,超前作用越明显。可以在一定程度上缓冲振荡。比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。

偏差信号进行比例、积分和微分运算变换后形成一种控制规律。“利用偏差,纠正偏差”。
No.2
参数调整一般规则
由各个参数的控制规律可知,比例P使反应变快,微分D使反应提前,积分I使反应滞后。在一定范围内,P,D值越大,调节的效果越好。各个参数的调节原则如下:
PID调试一般原则
a.在输出不振荡时,增大比例增益P。
b.在输出不振荡时,减小积分时间常数Ti。
c.输出不振荡时,增大微分时间常数Td。
No.3
参数调整一般步骤
由于自动控制系统被控对象的千差万别,PID的参数也必须随之变化,以满足系统的性能要求。这就给使用者带来相当的麻烦,特别是对初学者。下面简单介绍一下调试PID参数的一般步骤:
01
确定比例增益
P确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0,PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。
02
确定积分时间常数Ti
比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。
03
确定微分时间常数Td
微分时间常数Td一般不用设定,为0即可。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。
04
联调
系统空载、带载联调,再对PID参数进行微调,直至满足要求。

No.4
总结
参数整定寻最佳,从大到小顺次查。先是比例后积分,最后再把微分加。曲线振荡很频繁,比例度盘要放大。曲线漂浮绕大弯,比例度盘往小扳。曲线偏离回复慢,积分时间往下降。曲线波动周期长,积分时间再加长。理想曲线两个波,调节过程高质量。
实际应用,进行PID参数调节时,一般使用试凑法,PID参数整定口诀如下:
参数整定找最佳,从小到大顺序查,
先是比例后积分,最后再把微分加,
曲线振荡很频繁,比例度盘要放大,
曲线漂浮绕大湾,比例度盘往小扳,
曲线偏离回复慢,积分时间往下降,
曲线波动周期长,积分时间再加长,
曲线振荡频率快,先把微分降下来,
动差大来波动慢,微分时间应加长,
理想曲线两个波,前高后低4比1,
一看二调多分析,调节质量不会低。
*************************************** Pixhawk *****************************************
转向:https://ardupilot.org/rover/docs/rover-tuning-steering-rate.html
速度和油门:https://ardupilot.org/rover/docs/rover-tuning-throttle-and-speed.html
油门控制器
一般来说,最好先调整这个控制器,然后再转向转向控制器。
P增益是最重要的,应首先进行调整。如果车辆速度颠簸且不稳定,则应减小此参数。如果车辆速度较慢,则应增加此参数。
I增益可纠正长期误差。如果车辆从未达到所需速度,则应增加此参数。如果车辆的速度在太快和太慢之间缓慢振荡,则应减小此参数。I 通常应该低于 P。
D 增益旨在通过对抗速度的短期变化来稳定输出。这可以保留为零。
FF增益应保留为零,因为CRUISE_THROTTLE和CRUISE_SPEED用于计算基本油门输出,这消除了对前馈的需要。
转弯率控制器尝试使用 PID 控制器实现所需的转弯率(由飞行员或自动驾驶仪设置)。
该控制器的 FF、P、I 和 D 增益分别保存在ATC_STR_RAT_FF、ATC_STR_RAT_P、ATC_STR_RAT_I和ATC_STR_RAT_D参数中。
转弯速率:
首先调整FF 增益。该增益将所需的转弯速率直接转换为转向伺服或电机输出。如果车辆的转弯速率响应迟缓,则应增加此参数。如果车辆不断超过其所需的转弯率,则应减小此参数。
P增益校正短期误差。如果 FF 值设置得当,它通常可以保留为零或另一个非常低的值。如果设置得太高,旋转速率可能会振荡。此P 增益应始终低于FF 增益。
I增益可纠正长期误差。如果车辆从未达到所需的转弯速率,则应增加此参数。如果车辆的转弯速率缓慢振荡,则应减小此参数。这个I 增益应该始终低于FF 增益。
D增益旨在通过对抗转弯率的短期变化来稳定输出。该增益通常可以保留为零。
几处特别需要注意的参数:

网友评论