Home PID控制器
Post
Cancel

PID控制器

PID控制器

PID控制参数详解 PID

PID控制,即 比例(proportion) - 积分(integration) - 微分(differentiation) 控制 是自动控制原理中定义的一种控制方法也可以称为是校正方法.

pid

积分形式:$U(t) = K_pe(t) + K_i\int_0^te(t)dt + K_d\cfrac{de(t)}{dt}$

离散化: $U(t) = K_pe(t) + K_i\sum{e(t)} + K_d(e(t) - e(t-1))$

增量式: $U(t-1) = K_pe(t-1) + K_i\sum{e(t-1)} + K_d(e(t-1) - e(t-2))$

\[\begin{aligned} \Delta{U(t)} &= U(t) - U(t-1) \\ &=K_p(e(t)-e(t-1)) + K_ie(t) + K_d(e(t)-2e(t-1)+e(t-2)) \end{aligned}\]

如上图所示:Kp Ki Kd为pid三个参数.

  1. 比例环节
    成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。当仅有比例控制时系统输出存在稳态误差(Steady-state error)
    优点: 调整系统的开环比例系数,提高系统的稳态精度,减低系统的惰性,加快响应速度。
    缺点: 仅用P控制器,过大的开环比例系数不仅会使系统的超调量增大,而且会使系统稳定裕度变小,甚至不稳定。

  2. 积分环节
    控制器的输出与输入误差信号的积分成正比关系。主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T,T越大,积分作用越弱,反之则越强。
    优点: 消除稳态误差。
    缺点: 积分控制器的加入会影响系统的稳定性,使系统的稳定裕度减小。

  3. 微分环节
    反映偏差信号的变化趋势,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系. 无法单独起作用。
    优点:使系统的响应速度变快,超调减小,振荡减轻,对动态过程有“预测”作用。

代码实现

输入误差与输入值,通过增量式pid调整

1
2
3
4
5
6
7
8
9
10
11
12
double PurePid::step_control(double val, double err) {
    double res = val;
    errs[err_cnt%3] = err;
    
    if(err_cnt >= 3) 
    {
        res += _kp * (errs[err_cnt % 3] - errs[(err_cnt-1) % 3]) + _ki * errs[err_cnt % 3] + _kd * (errs[err_cnt % 3] - 2 * errs[(err_cnt - 1) % 3] + errs[(err_cnt - 2) % 3]);
    }
    err_cnt++;
    return res;
}

This post is licensed under CC BY 4.0 by the author.

ndk调用c++动态库

Can解析