Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

PID控制器

proportion:比例,integration:积分,differentiation:微分。

Out = -K_p * Err - K_d * \frac{\Delta Err}{\Delta t} -K_i * \sum Err

比例控制器:

比例环节可在系统误差较大时及时减小误差,K_p较小时,对误差感知能力弱,系统回正速度慢;K_p较大时,提高响应速度,出现超调或者振荡发散,k_p影响震荡的频率和幅值。由于K_p的作用与误差成比例,当误差减小到某个值时,K_p与误差相乘输出的结果已经小到可以忽略的地步,无法对系统进行调节,进而导致输出结果收敛至距离期望值一定距离的位置,形成静态误差。只有比例控制,最终控制结果容易在目标值附近震荡。

积分控制器:

由于系统误差导致最终控制值与目标值始终存在一个小误差,这时需要引入积分环节,积分环节考虑误差的累积量,以减小系统稳态误差。积分环节有助于消除系统的静态误差,被称为无差调节。例如,如果只用比例控制器,目标值是100,则可能只能控制到99或者98或者101,这是需要引入积分控制器。但是如果K_i过大,则微小的扰动机会造成系统振荡。K_i较小,则存在静态误差,系统无法回正,K_i较大时促进了超调现象,系统无法稳定。

微分控制器:

引入了误差的变化率,反映误差未来的变化趋势。考虑误差变化速率,可以理解为阻尼作用,用于减小系统的过冲和振荡,可以让收敛速度更快。对突然变化的数据比较敏感,比如噪声造成的数据突变,当K_d较大时,将放大高频噪声,进而导致微分环节输出值过大,造成系统振荡。K_d较大时也会抑制PI环节的作用,系统反应缓慢。其预测未来的特性体现在根据误差变化趋势进行控制,让下一时刻控制器输出值提前参与输出。微分环节的阻尼特性体现在与比例环节进行对抗。

位置式PID:

直接使用系统的误差进行计算,输出与当前误差和历史误差相关,但对系统响应速度慢,适用于简单控制场合。

Out = K_p * Err + K_i * \sum Err + K_d * \frac{Err_t}{Err_{(t-1)}}

增量式PID:

适用误差的变化量进行计算,控制响应速度快,精度高,适于快速响应和精确控制场合。

\Delta Out = K_p * (Err_t - Err_{(t-1)}) + K_i * Err + K_d * (Err_t - 2*Err_{(t-1)}+Err_{(t-2)})

是位置式PID的t时刻公式和t-1时刻公式做差得到。增量式PID是一种递推式算法,优点是便于实现无扰动切换,控制增量\Delta Out的确定仅与最近3次的采样值有关。缺点是积分截断效应大,有稳态误差。
Tsinghua的那个PLL在结构上就类似于增量式PID。

PID控制器抗干扰设计

1、积分分离

在控制目标值出现大幅度增减时,比如人为设置了新值或者其他原因导致目标值变成了一个新的值,比如锁相环中的相位突变。短时间内系统输出有很大偏差,会造成PID运算的积分积累,导致控制量超过执行机构可能允许的最大动作范围对应的极限控制量。引起系统较大超调,甚至振荡。
因此,当被控制量与目标值偏差较大时,要取消积分作用(积分项置为0),以避免由于积分作用导致系统不稳定,超调等。当被控制量接近目标值时,引入积分控制,以消除静态误差,提高控制精度。

2、积分限幅

若系统误差长时间保持在一个方向,相同符号的误差积分值会越来越大,甚至溢出。导致积分项过大,系统无法执行。加限幅,把积分项的值限定在合理范围。

3、不完全微分(基于低通滤波器)

由于微分项有引入高频干扰的风险,在微分项输出加低通滤波器或者PID控制器的输出端添加一个低通滤波器,以改善系统性能。

串级PID控制器

串级PID可以提高控制品质。但不能盲目增加被控物理量。串级PID可以理解为内环和外环,外环输入是内环的期望,内环的目的是使用执行器能够直接改变的物理量,从而间接控制目标物理量,外环的目的是找到合适的曲线(得到合理的内环期望),从而引导目标的微分变化,达到间接控制目标物理的效果。例如电机控制的电压外环和电流内环,飞行控制的角度环和角速度环。
串级PID设计的前提条件:
1、 执行器输出无法直接控制目标物理量。
2、 执行器可以控制物理量的变化速率(及微分)。
3、 通过控制目标物理量的微分按照某种曲线变化,即可间接控制目标物理量。
4、 目标物理量的微分变化曲线应满足,在目标物理量存在误差时,应该产生能够减小该误差的趋势,并且在目标物理量不存在误差时,曲线变化量应该为0。
5、 使用目标物理量微分间接控制目标物理量可行的原因是,执行器可以控制的量与目标物理量之间存在简单的物理关系。

PID参数的选择:

T_{settle}表示稳定到目标值的时间,T_{rise}表示第一次到目标值的时间,超过目标值的多少用Overshoot表示。
要减少T_{rise},则适量加大K_p,要减小Tsettle 和Overshoot,则加大K_d

K_p增大T_{rise}减小Overshoot增大T_{settle}增大(略微)
K_d增大T_{rise}减小(略微)Overshoot减小T_{settle}减小
K_i增大T_{rise}减小(略微)Overshoot增大T_{settle}增大

因为K_p\frac{1}{T^2}成正比,K_i\frac{1}{T^3}成正,K_d\frac{1}{T}成正比。可取K_p = 0.1, K_d = 1.0, K_i = 0.001。可通过Twiddle算法优化PID参数。

参考