PID控制精髓

一、基本概念

1.1 PID公式

连续形式:

离散形式(常用,由连续形式推导):

Refer:PID控制算法:一个简明的指南-物联沃-IOTWORD物联网

1.2 PID,就是“比例(proportional)、积分(integral)、微分(derivative)”

是一种很 常见的控制算法。常见的PID算法,位置式PID,增量式PID,串级PID等。

 P:Proportion(比例),就是输入偏差乘以一个常数。
 I  :Integral(积分),    就是对输入偏差进行积分运算。
 D:Derivative(微分),对输入偏差进行微分运算。

注:输入偏差=读出的被控制对象的值-设定值。比如说我要把温度控制在26度,但是现在我从温度传感器上读出温度为28度。则这个26度就是”设定值“,28度就是“读出的被控制对象的值”。

  

对应的模拟PID调节器的传递函数为

其中Kp为比例增益;T采样周期常数;Ti积分时间常数;Td微分时间常数;u(k)为控制量(控制器输出);e(k)为被控量与给定值的偏差。
Refer: 比例积分微分控制_百度百科 (baidu.com)


1.2 稳、准、快:

稳定性(P和I降低系统稳定性,D提高系统稳定性):在平衡状态下,系统受到某个干扰后,经过一段时间其被控量可以达到某一稳定状态;

准确性(P和I提高稳态精度,D无作用):系统处于稳态时,其稳态误差;

快速性(P和D提高响应速度,I降低响应速度):系统对动态响应的要求。一般由过渡时间的长短来衡量。

Refer: 四轴PID控制算法详解(单环PID、串级PID)_13147605的技术博客_51CTO博客

1.3. 衡量一个PID控制系统性能好坏的指标主要有:上升时间 、超调量 、调节时间 和稳态误差 。其中:


(1)上升时间tr 是指系统实际输出从正常输出的10%上升到正常输出的90%时所需的时间;
(2)调节时间te  是指系统实际输出值稳定在正常输出值的5%或2%范围以内时所需的时间;
(3)超调量σ% 是指系统实际输出的最大值与正常值的差与正常值的比值;
(4)稳态误差ess 是指系统达到稳态时的输出值与正常值差的绝对值与正常值的比值。
这四个参数反映了系统的响应能力和稳定性,通过它们就可以判定一个系统性能的好坏
Refer: 控制系统的性能指标及时域分析 - 百度文库 (baidu.com)

二、P,I,D参数在闭环控制中的作用

 

2.1 PID中的P,响应速度

*比例控制的作用,能迅速响应偏差,从而减小偏差,但比例控制不能消除稳态误差,KP的加大会引起系统的震荡

响应速度中,扮演着重要的作用,这里的P我使用Kp代替,可以联想到,当前的物理量值和目标的物理量值相差越大,输出的控制量值就会越大,可以快速达到目标物理量值。

在自动控制原理这门学科中会提到专业的名词。P项的计算公式为 P_out  = Kp * Err = Kp *  ( Current - Target) 

P值较小的情况下,可以发现响应速度变慢了;且当无积分Ki和比例控制Kd较弱时,会出现静差Off set
P值较大的情况下,虽然响应速度比较快,但是振荡很严重。

 

 

2.2 PID中的 I,消除静差(损耗)

*积分控制的作用是,只要系统存在稳态误差Off set,积分控制作用就不断地积累,输出控制量以消除稳态误差Off set。
因此只要有足够的时间,积分控制将能完全消除误差,但是积分作用太强会使系统超调加大,甚至使系统出现振荡。同时需要注意:积分限幅、积分限行,才能达到良好的效果。

静差Off set就是指,稳定状态下当前值和目标值的差。即,稳态误差。用于补偿系统物理量的持续外部消耗

例如:假如有个人把我们的加热装置带到了非常冷的地方,开始烧水了。需要烧到50℃。
在P的作用下,水温慢慢升高。直到升高到45℃时,他发现了一个不好的事情:天气太冷,水散热的速度,和P控制的加热的速度相等了。

P兄这样想:我和目标已经很近了,只需要轻轻加热就可以了。
D兄这样想:加热和散热相等,温度没有波动,我好像不用调整什么。
于是,水温永远地停留在45℃,永远到不了50℃。
作为一个人,根据常识,我们知道,应该进一步增加加热的功率。可是增加多少该如何计算呢?
设置一个积分量。只要偏差存在,就不断地对偏差进行积分(累加),并反应在调节力度上。
这样一来,即使45℃和50℃相差不太大,但是随着时间的推移,只要没达到目标温度,这个积分量就不断增加。系统就会慢慢意识到:还没有到达目标温度,该增加功率啦!
到了目标温度后,假设温度没有波动,积分值就不会再变动。这时,加热功率仍然等于散热功率。但是,温度是稳稳的50℃。


KI 的值越大,积分时乘的系数就越大,积分效果越明显 。

 

2.3 PID中的D,抑制振荡(扰动)

*微分控制可以减小超调量克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度减小调整时间,从而改善系统的动态性能

当比较接近目标时,P的控制作用就比较小了。越接近目标,P的作用越温柔。有很多内在的或者外部的扰动因素,使控制量发生小范围的摆动。
D的作用就是让物理量的速度趋于0,只要什么时候,这个量具有了速度,D就向相反的方向用力,尽力抑制住振荡的变化。
在自动控制原理这门学科中会提到专业的名词。现在我们引入偏差值的概念,令Bias= Taget - Current ,令上一次求得的偏差值为Last_Bias。D项的计算公式为 D_out = Kd*(Bias-Last_Bias)。

我用带入值的方法来解释D的作用:现在让当前的速度值为90,目标值为100,Bias=10。现在是为了接近目标值,所以D项的结果是增加PWM。
现在增加后的速度变成了105,Bias=-5,Last_Bias=10,Bias-Last_Bias=-15,如果增加后的速度为110,Bias=-10,Last_Bias=10,Bias-Last_Bias=-20,
D项的计算结果是为了减小PWM,快速抑制住PWM的过量增加,超过目标值越多,那么抑制能力越厉害。通过控制加速度突变,实现匀速增降。

 

三、常用PID控制参数

3.1 位置式PID控制器

output = Kp * e(k)  +  Ki * ∑e(k)  +  Kd[e(k) - e(k-1)]
e(k)代表本次偏差
e(k-1)代表上一次的偏差
∑e(k) 代表e(k) 以及之前的偏差的累积和;   其中k为1, 2, .. ,k;

output代表输出

3.2 增量式PID控制器

根据增量式离散PID公式
output += Kp[e(k) - e(k-1)] + Ki*e(k) + Kd[e(k) - 2e(k-1) + e(k-2) ]
e(k)代表本次偏差
e(k-1)代表上一次的偏差 以此类推
output 代表增量输出
在我们的速度控制闭环系统里面,只使用PI控制
pwm +=Kp[e(k)-e(k-1)] + Ki*e(k)

 

 

四、PID参数调整口诀:

参数整定找最佳,从小到大顺序查。

先是比例后积分,最后再把微分加;
曲线振荡很频繁,比例度盘要放大;
曲线漂浮绕大湾,比例度盘往小扳;
曲线偏离回复慢,积分时间往下降;
曲线波动周期长,积分时间再加长;
曲线振荡频率快,先把微分降下来;
动差大来波动慢,微分时间应加长;
理想曲线两个波,前高后低四比一;
一看二调多分析,调节质量不会低。

五、调试PID参数的一般步骤:

5.1 负反馈

自动控制理论也被称为负反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。

5.2 PID调试一般原则

a.在输出不振荡时,增大比例增益P。
b.在输出不振荡时,减小积分时间常数Ti。
c.在输出不振荡时,增大微分时间常数Td。

调节系数 Q(%) Ti(s) Td(s) 特点
温度T 20~60 180~600s 3~180s  
压力P 30~70 24~180s    
液位L 20~80 60~300s    
流量L 40~100 6~60s    

 

5.3 一般步骤

Refer:基于微分先行法的最优温度控制系统设计 - 知乎 (zhihu.com)

a.确定比例增益P

确定比例增益P 时,首先去掉PID的积分项和微分项,积分时间设定为无穷大、微分时间设定为零 (即Ti=∞Td=0),  使PID为纯比例调节。

输入设定为系统允许的最大值的60%70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%70%。比例增益P调试完成。

b.确定积分时间常数Ti

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。

记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

c.确定微分时间常数Td

积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。

d.系统空载、带载联调,再对PID参数进行微调,直至满足要求

 

posted @ 2023-12-26 11:53  suntroop  阅读(631)  评论(0)    收藏  举报