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和yawyaw 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分辨率),电机输出基本不再出现问题
最后更新于
这有帮助吗?