问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PID参数解析:一文读懂PID并会调试kp,ki,kd(位置式 增量式PID)

创作时间:
作者:
@小白创作中心

PID参数解析:一文读懂PID并会调试kp,ki,kd(位置式 增量式PID)

引用
1
来源
1.
https://www.kpfans.com/article/K5E2Aw3OvD.html

PID控制算法是自动化控制领域的重要内容,具有广泛的工程应用背景。本文将从PID的基本概念出发,深入讲解比例(P)、积分(I)和微分(D)三个参数的作用及其对系统性能的影响,并通过多个实例展示如何调节PID参数以达到最佳控制效果。

什么是PID

PID控制算法的核心在于实现系统的快速响应、准确控制和稳定运行。具体来说:

  • P(比例):将输入偏差乘以一个常数。
  • I(积分):对输入偏差进行积分运算。
  • D(微分):对输入偏差进行微分运算。

其中,输入偏差定义为读出的被控制对象的值与设定值之差。例如,如果目标是将温度控制在26度,而当前传感器读数为28度,则26度是设定值,28度是读出值。

PID控制算法的三个主要性能指标包括:

  1. 稳定性:系统受到干扰后能否恢复到稳定状态。
  2. 准确性:系统稳态时的误差大小。
  3. 快速性:系统响应速度的快慢。

PID公式

PID控制算法的基本公式如下:

$$
u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt}
$$

其中:

  • $K_p$:比例增益
  • $T_i$:积分时间常数
  • $T_d$:微分时间常数
  • $u(t)$:控制量(控制器输出)
  • $e(t)$:被控量与给定值的偏差

各个参数对性能的影响

比例系数 $K_p$

随着比例系数 $K_p$ 的增加,系统的超调量会增大(震荡变严重),但系统响应速度会加快。

积分时间常数 $T_i$

积分作用的强弱取决于积分常数 $T_i$。$T_i$ 越小,积分作用就越强。积分控制的主要作用是改善系统的稳态性能,消除系统的稳态误差。加入积分控制会使得系统的相对稳定性变差。$T_i$ 值的减小可能导致系统的超调量增大,而 $T_i$ 值的增大可能使得系统响应趋于稳态值的速度减慢。

积分控制部分的作用主要是用来消除静差。比例控制只能尽量将误差调节到0,而微分的作用是将曲线的斜率控制到0则停止对其作用。这个时候就需要积分来起作用,直到系统的误差值为0。

微分时间常数 $T_d$

随着微分时间常数 $T_d$ 的增加,闭环系统响应的响应速度加快,调节时间减小。微分环节的主要作用是提高系统的响应速度。但是过大的 $K_d$ 值会因为系统造成或者受控对象的大时间延迟而出现问题。微分环节对于信号无变化或变化缓慢的系统不起作用。

PID的作用

  • 比例控制:能迅速反映误差,从而减小误差,但比例控制不能消除稳态误差,$K_p$ 的加大会引起系统的不稳定。
  • 积分控制:只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差。因此只要有足够的时间,积分控制将能完全消除误差,但是积分作用太强会使系统超调加大,甚至使系统出现振荡。
  • 微分控制:可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。

位置型控制算法

位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向于零的过程。

代码实现如下:

int Position_PID (int Encoder,int Target)
{
    static float Bias,Pwm,Integral_bias,Last_Bias;
    Bias=Encoder-Target; //计算偏差
    Integral_bias+=Bias; //求出偏差的积分
    Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias);
    Last_Bias=Bias;       //保存上一次偏差
    return Pwm;           //输出
}

假设采样时间间隔为 $T$,则在 $k$ 时刻:

  • 偏差为 $e(k)$
  • 积分为 $e(k)+e(k-1)+e(k-2)+\ldots+e(0)$
  • 微分为 $\frac{e(k)-e(k-1)}{T}$

从而公式离散化后如下:

  • 比例系数:$K_p$
  • 积分系数:$K_p \cdot \frac{T}{T_i}$,可以用 $K_i$ 表示
  • 微分系数:$K_p \cdot \frac{T_d}{T}$,可以用 $K_d$ 表示

则公式可以写成如下形式:
$$
Pwm = K_p[e(k)-e(k-1)]+K_i e(k)+K_d[e(k)-2e(k-1)+e(k-2)]
$$

增量型控制算法

速度闭环控制就是根据单位时间获取的脉冲数(这里使用了M法测速)测量电机的速度信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向于零的过程。

在速度控制闭环系统中,通常只使用PI控制,因此对PID控制器可简化为以下公式:
$$
Pwm += K_p[e(k)-e(k-1)]+K_i e(k)
$$

代码实现如下:

int Incremental_PI (int Encoder,int Target)
{
    static float Bias,Pwm,Last_bias;
    Bias=Encoder-Target;                                  //计算偏差
    Pwm+=Velocity_KP*(Bias-Last_bias)+Velocity_KI*Bias;   //增量式PI控制器
    Last_bias=Bias;                                    //保存上一次偏差
    return Pwm;                                           //增量输出
}

增量式控制算法的优点包括:

  1. 不需要做累加,控制量增量的确定仅与最近几次误差采样值有关,计算误差或计算精度问题对控制量的计算影响较小。
  2. 增量式算法得出的是控制量的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会严重影响系统的工作。
  3. 容易实现手动到自动的无冲击切换。
  4. 利用增量算法,也很容易得出位置算法 $u(k) = u(k-1) + \Delta u(k)$。

如何调节PID三个参数

PID算法具有三大特性:

  1. 稳定性
  2. 快速性
  3. 准确性

在实际应用中,根据具体需求可以选择性地使用这些特性。例如,自动停车系统或自动蓄水系统可能只需要用到稳定性和准确性,而刹车系统则需要同时考虑这三个特性。

接下来通过几个实例说明PID参数的调节方法:

实例1:KP=500, KI=0, KD=0

特点:

  • 比例控制较大,出现了震荡
  • 需要加入微分D控制抑制
  • 积分控制为零,但是没有静差,因为比例控制较强

实例2:KP=50, KI=0, KD=0

特点:

  • 比例控制KP减小,无震荡,响应变慢了
  • 无积分控制且比例控制较弱时,会出现静差(积分减少静差)

实例3:KP=500, KI=0, KD=400

特点:

  1. 在比例控制较强的情况下,加入比较大的微分控制,震动次数较小。
  2. 微分控制较大,响应变慢

实例4:KP=120, KI=0.1, KD=500

目标:控制电机转90°,需要严格控制超调量、和静差。但是对响应速度无要求。

特点:

  1. 因为响应速度无要求,一般比例控制应该给小一点。
  2. 加大系统的阻尼防止超调,也就是微分参数尽量大。
  3. 另外因为比例参数较小,应该加入积分控制减小静差。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号