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