好吧这篇可能有点水。总之这是10s内惯导结果,因为上升段是重点关注的,再加上该飞控是按照500m的火箭设计的,所以上升段大概10s。图一是最剧烈的锥运动和振动叠加的情况,会激发出50多m的误差,图二也是锥运动和振动叠加,但是是我左手晃动飞控,可见频率没那么高,只激发出<15m的误差。考虑到500m的射高和探空火箭较为简单的运动(初始一段时间内发动机工作,剧烈振动但是主要加速度在z轴,接下来只有重力和空气阻力,振动也不明显),我觉得是可以接受的。毕竟为了方便焊接用的jy901b,内核好像是mpu6500,这的确精度不可能有多高,下一代再换bmi088之类的吧。到时候肯定是要融合气压和GNSS导航的。
这里说一下大致的思路,我上电后y轴向上,自动检测静止后采样1000ms后减去零偏。与其对比,ss0用的是固定矩阵纠偏,但是实际上mems的IMU都是零偏上电重复性误差更大,而且数据本身误差也很大,所以还不如用更简单的算法,但是每次上电执行。飞控上电校准后会开始回传四元数,这个四元数是JY901B内部解算的九轴四元数。开始任务后,飞控将停止接收地面站信息,并回传全部需要的遥测数据,此时四元数转为单片机软件的三轴算法,纯角速度积分的四元数,用了二阶锥运动误差补偿(之前用三阶没必要,这个算法误差远小于传感器误差)。毕竟上升段时间短,姿态变化剧烈,用JY901B内部的融合了重力方向和磁场方向的四元数会跟不上,反而会激发出更大的误差,实测接近图二的运动,用JY901B内部解算的四元数误差比图一的误差还大。
实验比较简陋,如下,毕竟这个传感器精度比较低,没必要太复杂。