基于FreeRTOS的STM32四轴飞行器: 十五.PID参数调节
一.飞行方向的控制
因为在函数调用中已经将外环输出设置为内环期望值,所以在函数中不用设置。
如果需要向前后飞,设置期望值为:
pitchPID.desire = (joyStick.PIT - 500) * 0.04;
乘以0.04后该飞行角度最大值为20度。
如果需要向左右飞,设置期望值为:
rollPID.desire = (joyStick.ROL - 500) * 0.04;
如果需要转向,设置期望值为:
yawPID.desire = (joyStick.YAW - 500) * 0.04;
二.PID参数调节
先调内环P再调外环P,如果有震荡再调节内环D不行再调外环D,都做完后有稳态误差再调节内环I,再调节外环I。
俯仰角PID调节:
调节时将无人机绑在调节架上观察飞行状态,因为和重力相比较PID不足以完全恢复原先状态,现象为缓慢往下掉 ,出现这种现象证明内环P调节完毕。
先设置内环为1观察极性。
观察发现在飞机下落时有阻止趋势,极性正确。
如果设置极性相反, 在松开飞机时飞机会转圈。
因为在这时即使油门值为0,因为PID的作用飞机还在转,需要在代码中添加油门值判断关机。
根据现象一直增大内环P值观察现象,直到缓慢下降。
再来调节外环P值,该值调节俯仰角角度 使角度为0,观察发现极性相反 。
在增大值为-5.0时,发现飞机有震荡现象 。
修改内环D值抑制震荡 ,增大内环P值加快恢复速度 :
横滚角PID调节:
将机头换一个方向绑在调节架上。
横滚角和俯仰角值差不多,观察发现极性相反调节参数为:
偏航角PID调节:
先确定极性,如果极性对给予转动会缓慢回到起始位置,观察发现极性相反。
经调节合适参数如下:
三.总结
