05 Pid Tuning
版本
时间
备注
V0.1
发布于2019-10-24 14:26:02
初始版本
V0.2
更新于2019-12-23 15:10:16
回答191025问题
一、PID参数整定流程
crazyflie Rate PID调整过程 1. 先调整Rate模式,将rollType,pitchType 和 yawType都调整为RATE 2. 将 ATTITUDE模式对应的 roll, pitch 和 yaw的KP,KI和KD调整为0.0,仅保留Rate相关的参数 3. 将RATE模式对应的 roll, pitch 和 yaw 的KI和KD调整为0.0,先调整比例控制KP 4. 烧写代码,使用cfclient的param功能开始在线进行KP的调整
- 注意,使用cfclient修改后的参数,掉电是不保存的. 
- 注意安全,因为在PID调整期间会出现超调的情况 
- 先固定住飞行器,让其只能进行 - pitch轴的翻转.逐渐增加- pitch对应的- KP,直到飞机出现前后的震荡(超调)
- 当出现严重的震荡时,可以稍微降低 - KP( Once you reach the point of instability, tune it down 5-10 points),然后即可确定- KP参数
- 同样的方法调整 - roll
- 最后同样的方法调整 - yaw
- 下面调整 - KI,该参数用于消除稳态误差,因为如果不引入该参数,只有比例调整的话,飞机受到重力等干扰会在0位置上线摆动.设置- KI的初始值为- KP的50%.
- 当 - KI增大到一定程度,也会导致飞机不稳定的晃动,但是- KI造成的晃动频率会相比- KP带来的震动,频率更小.然后以造成这个状态的- KI为基础确定- KI的值(This is your critical KI, and so tune down 5-10 points.)
- 同样的方法调整 - roll和- yaw
- yaw axis, except KI is usually around 80%+ of KP. 
以上完成了Rate模式参数的调整
下面开始调试 Attitude PID
- 确保 - Rate PID调整已经完成.
- 将 - rollType,- pitchType和- yawType都调整为- ANGLE,意味着飞机已经进入attitude mode.
- 改变 - roll和- pitch的- KI和- KD为- 0.0,将- Yaw的- KP``KI``KD都设置为- 0.0.
- 烧写代码,使用cfclient的param功能开始在线进行 - KP的调整.
- 将 - roll和- pitch的- KP设置为- 3.5,寻找任何不稳定性,例如振荡.持续增加KP,直到达到极限.
- 如果您发现 - KP导致不稳定,如果此时已经高于- 4,需要将- RATE模式的- KP和- KI稍微降低5-10点.这使您在调整姿势模式时更加“自由”
- 要调整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分辨率),电机输出基本不再出现问题
最后更新于
这有帮助吗?
