05 Pid Tuning

一、PID参数整定流程

crazyflie Rate PID调整过程 1. 先调整Rate模式,将rollType,pitchTypeyawType都调整为RATE 2. 将 ATTITUDE模式对应的 roll, pitchyawKP,KIKD调整为0.0,仅保留Rate相关的参数 3. 将RATE模式对应的 roll, pitchyawKIKD调整为0.0,先调整比例控制KP 4. 烧写代码,使用cfclient的param功能开始在线进行KP的调整

  1. 注意,使用cfclient修改后的参数,掉电是不保存的.

  2. 注意安全,因为在PID调整期间会出现超调的情况

  3. 先固定住飞行器,让其只能进行pitch轴的翻转.逐渐增加pitch对应的KP,直到飞机出现前后的震荡(超调)

  4. 当出现严重的震荡时,可以稍微降低KP( Once you reach the point of instability, tune it down 5-10 points),然后即可确定KP参数

  5. 同样的方法调整 roll

  6. 最后同样的方法调整yaw

  7. 下面调整 KI,该参数用于消除稳态误差,因为如果不引入该参数,只有比例调整的话,飞机受到重力等干扰会在0位置上线摆动.设置 KI的初始值为KP的50%.

  8. KI增大到一定程度,也会导致飞机不稳定的晃动,但是KI造成的晃动频率会相比KP带来的震动,频率更小.然后以造成这个状态的 KI为基础确定 KI的值(This is your critical KI, and so tune down 5-10 points.)

  9. 同样的方法调整 rollyaw

  10. yaw axis, except KI is usually around 80%+ of KP.

以上完成了Rate模式参数的调整

下面开始调试 Attitude PID

  1. 确保Rate PID调整已经完成.

  2. rollType,pitchTypeyawType都调整为ANGLE,意味着飞机已经进入attitude mode.

  3. 改变 rollpitchKIKD0.0,将YawKP``KI``KD都设置为0.0 .

  4. 烧写代码,使用cfclient的param功能开始在线进行KP的调整.

  5. rollpitchKP设置为3.5,寻找任何不稳定性,例如振荡.持续增加KP,直到达到极限.

  6. 如果您发现KP导致不稳定,如果此时已经高于4,需要将RATE模式的 KPKI稍微降低5-10点.这使您在调整姿势模式时更加“自由”

  7. 要调整KI,请再次缓慢增加KI.不稳定性的状态是产生低频振荡.

二、 PID调试问题记录191025:

1. 逆时针慢速的转向抖动

起飞1秒后,飞机出现逆时针转动和机身摇晃(多次测试均是逆时针慢速的转向),但能看到在pitch和roll方向有修正作用,但是存在上下的颠簸. 先说下最终解决方法:发现最主要原因为飞行模式选错,姿态按照X型进行计算,但是电机输出确实按照+型计算,两者冲突,将电机输出也改成X型,解决问题!!!

2. 电机输出值上下波动过大

电机输出值上下波动过大,在前后两个控制周期里,同一个电机输出可能出现最小值到最大值的波动. TODO: 需要检查源码,是否有控制分量占比过大,导致最终拟合给电机输出波动太大 191025修正:输出给mos管的pwm频率从1.4kHz提高到300kHz,crazyflie原工程为328Khz.ESPlane1.0 arduino代码pwm频率为1.4khz.修正原因 191030再次修正:将电机输出改为了30kHz(8bit分辨率),在300kHz会出现PWM输出异常 191220再次修正:将电机输出改为了15kHz(8bit分辨率),电机输出基本不再出现问题

最后更新于