PID算法学习笔记

PID算法 是控制算法中的经典算法,特别是在一个闭环控制系统中更为常用。在四轴飞行器,平衡小车、汽车定速巡航、温度控制器等场景有重要应用。PID,全称为比例-积分-微分控制器(Proportional-Integral-Derivative Controller),是一种广泛应用在控制系统中的经典算法。它的主要功能是根据系统的实际输出与期望值之间的偏差,通过比例、积分、微分三种运算,实时调整控制量,以实现对系统状态的精确控制。

1. 比例环节(P):比例环节直接作用于当前的误差信号,误差越大,控制器输出的纠正动作也越大,体现了一种即时响应的能力。

2. 积分环节(I):如果仅有比例环节,可能会导致系统无法消除静态误差,即当系统达到稳态时仍存在偏差。积分环节则可以累积过去的误差,并逐渐修正,使得系统最终能消除稳态误差。

3. 微分环节(D):微分环节则是预测未来的趋势,根据误差变化率进行提前调节,有助于改善系统的动态性能,提高系统的响应速度和稳定性。

https://ask.qcloudimg.com/http-save/yehe-5745070/0dfecb4b06bddcf05c78cd9bc8f16c52.png

PID算法中一共有三个参数kp、ki、kd

首先先说三个参数都是什么意思

kp:直接作用于当前的误差信号,误差越大,控制器输出的纠正动作也越大,体现了一种即时响应的能力。

ki:如果仅有比例环节,可能会导致系统无法消除静态误差,即当系统达到稳态时仍存在偏差。积分环节则可以累积过去的误差,并逐渐修正,使得系统最终能消除稳态误差。

通俗的说,只有kp,error值将永远存在,ki(积分),可以不断累积误差值,累计得越大调整力度越大。

kd:微分环节则是预测未来的趋势,根据误差变化率进行提前调节,有助于改善系统的动态性能,提高系统的响应速度和稳定性。

通俗的说,微分即求导,求导即斜率,斜率即物体的速度,kd可以控制物体运动的速度,不会导致越过标准线时速度过大。

下面我将通过动图一一展示三个参数的意义。

由上图可见,kp的值越大,无人机对误差的相应速度越大,以实际情况中的巡线小车为例,当小车偏离预设线后无法迅速调回正确方向时,需要调大kp的值。直到kp增大到小车会过调迅速转向线的相反方向时,找一个合适的数值停止。

第二个调整的是kd的值 

还是kp=0.5的情况,我们可以明显发现无人机在接近标准值的时候有强烈的震荡,甚至会出现超过标准值再返回的现象。

这次增加kd,上面说过kd是控制无人机的速度,将ki设置为0.04,可以发现,无人机可以很容易的定住,而不会在标准线附近来回晃荡。

还是以巡线小车举例,如果发现小车可以回到线上,但是返回速度过快,导致小车在标准线左右来回摇摆,可以加大kd的值,直到小车的摇摆幅度开始缩小,继续增大kd,小车会过冲的反效果,同样找到一个适合的数值停止。

第三个要调整的是ki(积分)的值,咱们发现无论如何无人机始终和标准线存在差距(error),不能刚好吻合。积分就是将每一时刻的error的值累加起来,开始调整无人机的误差。

可以发现,无人机在稳定了位置之后,在一点点向标准位置偏移。在巡线小车中,如果始终和标准线有一定距离不能完全吻合,可以加上ki的值。

最后附上一段C语言的PID算法

float PID_realize(float pos){

    pid.Setpos=pos;

    err=pid.Setpos-pid.Actualpos;

    float incrementpos=pid.Kp*(err-err_next)+pid.Ki*err+pid.Kd*(err-2*err_next+err_last);

    pid.Actualpos+=incrementpos;

    err_last=err_next;

    err_next=err;

    return pid.Actualpos;

}

Setpos对应上图中无人机的预设位置

Actualpos 代表无人机的当前位置

两者相减得到其err值

将比例 积分 微分相加得到incrementpos

err_last err_next 用于保存上一时刻的err值

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值