平衡步兵PID

RM开发板C型,电机型号MF9025

采用CAN控制+PID算法,C板自带BMI088陀螺仪

PID算法是由比例(Proportional,P)、积分(Integral,I)和微分(Derivative,D)三种算法组成,通俗点理解就是通过PID三个参数一系列的计算,使得实际的目标值无限的接近于期望值。在实际控制中,会进行不同的组合来达到不同的控制效果

可以记成pdi这样的调节顺序,p往大了调,d和i调小

比例(proportional)参数

根据当前误差(实际值与目标值的差)来调整控制器输出。

可以减小测量值(如平衡车的实际角度)和理论值(平衡车平衡时期望的0度)之间的误差,让测量值不断接近理论值。

输出 = p参数 * 误差(误差=测量值 - 理论值)

可以看出误差越大,p的输出也越大。

微分(Derivative)可以根据误差变化的速率来调整控制器的输出。它可以抑制系统的过度振荡,并提高系统的稳定性。可以将D的作用是“阻尼”如果系统误差很大(比如把平衡车放倒30度)或p参数较大,那么P的输出就会很大,导致系统剧烈响应,出现过冲现象(在平衡车中表现为大幅度低频振荡)此时就需要用到D算法来抑制,让系统可以刚好停在理论值而不过冲。就好像在水里挥拳,受到水的阻力越大,越难继续挥拳。这个”水的阻力“跟D算法的作用很像,因此称为”阻尼“,抑制过冲现象。

输出 = d参数 * (此次误差 - 上次误差)

此次误差与上一次误差的差值反映的是误差的变化速度(比如在平衡车自平衡的过程中,t0时刻的误差是30度,t1时刻10度,t2时刻5度,那么t0到t1时刻的误差变化速度较大,t1到t2时刻较小).可以看出,两次误差的差值越大,最后d的输出也越大,抑制效果越明显。

积分(Integral)考虑的是过去的误差积累,通过积分控制来减小稳态误差。换句话讲: I 算法的作用是消除稳态误差。当系统误差已经接近0时,p的输出会很小(输出 = p参数 * 误差(误差=测量值 - 理论值)),起不到继续减小误差的作用,导致误差始终没办法减小到0。这时就得用到i算法,让误差值不断累加,并将累加后的值输出。I 算法常用于精确控制,比如控制小车的速度和转向角精确维持在某个值。它对于系统长时间处于偏离目标值的状态时非常有用。

输出  =  i参数 × 误差的累加。

可以看出,只要存在误差(这种误差叫静态误差),无论误差有多小, i 的输出也会像滚雪球一样越滚越大

 

直立环调试过程

  1. 调试理想状态是在水平地面上在受力后仍可以直立不倒,且车体不会抖动。
  2. 调试的过程中会向前倾,原因是没有加行进环,他会向前倾倒,为了保持平衡他也要顺势往前给力,所以会出现向前动。
  3. 需要手扶着

调试如下:

先调试底盘倾角PID,目的是为了保证他立柱保持平衡

1、先加P,调至大幅度低频摇摆但不倒下(手扶着)

2、再加D,调至反复摇摆频率较快,但是摇摆角度没有只加P的时候那么大。

再调试倾角速度PID,目的是为了保证他不会大幅度向前向后倾倒

1、先加P,调至倾角没有那么明显

2、再加D,调至倾斜速度反应快些(相较于没加D)只要不抖 就往上加D

行进环调试过程

调试过程中没有明确需要调到什么样子,理论上来讲踢走但是可以返回(加了里程计),但是在调试过程中效果始终没有那么好。

  1. 位移在一个稳定的位置,使其保持在目标位置

  2. 前进保持平稳,停下快速返回平衡状态

在调试过程中由于没有加转向环,所以在静止状态下或者急停前进,方向会变化属于正常现象

先调试低层的位移PID,目的是为了保持在目标位置不乱动。

1、这里说明一下,目标状态(肉眼)看很难看出来什么效果,都是凭感觉调试出来,但是需要注意的点是使用Kd, Kp;并且Kd加的很大,才可以消除位置误差使他保持原地不动。

2、先加P:P加的小,平步就软,容易推动,P加大到可以感受到明显阻力即可(要水平推,不要从上往下给力),静止状态下推动,平步有抖动并且会来回移动。

3、再给D:加大D以消除平步来回移动,直到推动或者运动状态下可以快速回正,我这里给的

是P的40倍(这里很大,也是不断测试加上去的)

4、没有加I,因为效果不明显。

最后再调试前进运动PID,目的是为了在移动过程中保持平衡且能快速回正

1、先加P:调至前进可以保持平衡状态即可,加大的效果与0时的效果区别比较明显,前进更加稳定。过大会轻微反复摇摆

2、加I:P与I是200倍关系。

3、没有加D,加D会抖

4、调完行进环效果

参考如下:  平衡步兵底盘PID参数调试记录_平衡步兵csdn-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值