(3)姿态角的计算:令ψ、θ和φ表示方向Z、Y、X欧拉角(分别称为偏航角、俯仰角和横滚角)。ψ、θ和φ的计算如式(5)~(7)所示。
(4)补偿零点漂移:由于存在陀螺零点漂移和离散采样产生的累积误差,由载体坐标系下的三轴角速度计算得到的四元数只能保证短期的精度,需要使用集成在MPU6050芯片内部的加速度计对其进行矫正。式(8)~(10)为axB、ayB、azB的数据归一化。
式(11)~(13)中的vx、vy、vz分别为利用四元数方法估计的四旋翼飞行器载体质心的速度在载体坐标系三轴上的分量。然后利用式(14)~(16)求出陀螺零点漂移和离散采样产生的累积误差ex、ey、ez.
再对所得到的误差进行比例与积分,式(17)~(19)中的gx、gy、gz即为对零点漂移的补偿。
(5)PID计算:式(20)~(22)中θd、φd、ψd分别表示下一次解算出来的俯仰角、横滚角及偏航角的值,eθ、eφ、eψ分别用来表示两次解算的俯仰角、横滚角、偏航角的误差。
kp、ki、kd为PID的控制参数,利用PID算法通过式(23)~(25),分别求出施加在4个电机上的可调变量uψ、uθ、uφ。