【干货】陀螺仪的数据处理

 

1 陀螺仪数据校准1.1 原理一款飞控上的传感器是需要进行校准的,比如这里讲的陀螺仪。目前大多数的陀螺校准其...







1 陀螺仪数据校准

1.1 原理

一款飞控上的传感器是需要进行校准的,比如这里讲的陀螺仪。目前大多数的陀螺校准其实就是去掉零点偏移量,采集一定的数据,求平均,这个平均值就是零点偏移,后续飞控所读的数据减去零偏即可,如下所示:

这里乘以0.005其实就是除以200,表示采集的200个数据。

1.2 目的

零点偏移对陀螺、进而对飞控的影响是巨大的,举个例子,加入x轴有0.2度/秒的零偏,那通过这个x轴计算出来的角度,也不会是从0度开始,造成姿态角有偏差,所以飞行过程中会很难控水平。

1.3 一般方法

陀螺的校准比较简单,一般上电后,自己执行即可,然后保存这个零偏,另每次上电得到的零偏都不同,所以需要每次都校准一次。PX4原生飞控,这点做得很蠢,在QGC地面站的传感器校准页面中,需要用户自己点击进行校准,不会自动执行,当然这个很好改。

1.4 进阶

考虑到如果是小白用户,或者没细看说明书,通常有陀螺上电自动校准的话,是需要通电后保持静止的,否则校准得到的是一个错误值,所以最好能识别飞行器是否在静止状态,然后再进行校准。方法也很简单,就是判定两次采集的数据差的和是否超过一定阈值,超过阈值,说明在运动中,这里就不启用校准,LED红灯提示,飞控代码在此不断循环待机,直至静止状态。


2 陀螺的误差分析

作为飞控系统上的核心传感器,陀螺仪的重要程度不言而喻。飞控的姿态数据很大程度上需要依赖陀螺仪的数据质量。但是低成本的MEMS传感器,比如飞控上常用的mpu6050/mpu6000等,在使用过程中,误差一直伴随着测量值,所以这里就简单谈谈有哪些误差,以及处理的方法。

MEMS惯性器件的误差一般分成两类:系统性误差和随机误差。系统性误差本质就是能找到规律的误差,所以可以实时补偿掉,主要包括常值偏移、比例因子、轴安装误差等。但是随机误差一般指噪声,无法找到合适的关系函数去描述噪声,所以很难处理。一般采用时间序列分析法对零点偏移的数据进行误差建模分析,可以用卡尔曼滤波算法减小随机噪声的影响。

从物理意义和误差来源分,也把 MEMS 陀螺仪漂移分为常值漂移、角度随机游走、速率随机游走、量化噪声和速率斜坡等。

2.1 陀螺数据噪声成分辨识

要对陀螺信号进行预处理首先需要对其噪声成分进行辨识。Allan方差分析法是目前最常用的陀螺噪声辨识方法之一。由于Allan方差分析是通过调节Allan方差滤波器带宽,对功率谱进行细致分割,能够辨识出多种不同类型的随机过程误差,并定量分离各项误差系数,而且算法上操作简单、便于计算,在陀螺噪声辨识方面优势明显。

Allan方差实质上就是通过求取整个信息采集过程中相邻时间段的方差形式来对信号在整个时间段内的稳定情况进行衡量的过程。Allan方差的双对数曲线的典型形式以及不同斜率段的曲线代表的噪声成分如下图:

用传感器静止采集数据10000s左右,采用周期是100Hz。allan方差结果如下图所示。

所以这里的MEMS陀螺所包含的噪声成分主要有:角度随机游走、相关噪声、速率随机游走,而其中代表零偏不稳定性的斜率为0的部分曲线很短,可以认为两个陀螺中零偏不稳定性影响都相对较小,所以前面进行的陀螺校准得到的零偏可以认为是一个常值

2.2 一个简单的模型

这里描述一个简单的模型,认为陀螺的数据误差主要是零偏和白噪声,如下所示:

最后得到的参数:



模型对比如下图:



放大部分:

所以两者模型,基本一致的,在一般应用中,可以满足需求。

3 陀螺的温飘特性

MEMS的陀螺仪的零偏是会受到环境温度的影响产生变化的,直观感受就是,笔者曾经在夏天,进行飞行测试时,由于飞控上面无遮挡,当飞行一段时间后,飞控不能回平了,也就是说,温度变化的情况下,解算的姿态角数据有偏差了,本质是上电校准的零偏不能再用了,如下图的数据:

虽然极端天气下飞行的机会不多,但是一款成熟的飞控产品还是要考虑这个因素的,比如在高温、极端寒冷条件下。

目前解决这个问题的方法有两种:一种是传感器数据保持恒温输出,如下图的DJI的拆机图,IMU模块有个大电阻进行加热,使得传感器的工作温度在一恒定值。

另外一种就是事先进行温飘标定,即不同温度下,拟合出补偿的数据。不过,这种方法也较为麻烦,比如飞控量产,需要每一个都这么做;其次就是时间长了,标定会有偏差的,所以,能硬件解决的问题,千万不要让算法去做。

4 陀螺的滤波

飞行器在实际飞行时,震动是相当剧烈的,所以不可避免对传感器数据会有影响,当然,IMU中受影响最大的是加速度计数据,具体的以后会单独讲。就笔者的经验来看,陀螺的数据需要滤波的必要性不是特别大,除非数据相当糟糕,一般MPU6000/6050自带的低通滤波开启就可以了

4.1 怎么判定是否要加滤波?

判定是否需要滤波的话,首先可以采集原始数据,看看波形是否平滑,也可以在多轴的角速度飞行模式进行测试,如果PID参数调整的足够好,但还是有些高频的抖动,可以尝试先滤波,再调参。

上图的数据传输的质量比较差,所以将就着看吧,红色是滤波后的,效果是比较明显的。

用滤波器的话有一点要注意:滤波器是会造成延迟的,上篇文章提到过,延迟对控制系统的影响是很大的,所以千万不能为了追求滤波效果,造成大的延迟,通常不要超过一个周期最好。

4.2 用什么样的滤波器?

一阶低通效果就足够了,当然也可以设计IIR、FIR之类的。

4.3 那一阶低通的参数如何取?

简单的笨办法就是写一个测试一个,看哪个参数好,虽然蠢了点,多花了些时间,但也是最有效的办法。

当然,也可以事先计算。举个例子,一般飞行器陀螺低通滤波的经验值带宽是30hz左右,所以就按30hz来计算。

一阶低通滤波器的系数表达式是:

如果不会推导,记住就行了,笔者懒得写了。T是你读取传感器数据的采样周期,假如是500hz,那就是0.002s,fc是30,所以a就是0.3768。

5 还可以对陀螺数据做什么处理?

上述只是简单版,对于一般的飞控而言,做了这些工作其实足够了,当然也可以继续深挖下去。去掉常值分量后,信号应为零均值信号,但因受外部环境和内部因素的干扰,信号的平稳性却很难保证,一般陀螺仪的随机漂移是影响陀螺精度的误差源,进而影响整个姿态测量系统,因此,研究陀螺仪随机漂移能够进一步提高系统精度。

陀螺漂移数据序列,经去掉常值零偏项后,所得的漂移数据便成为平稳随机时间序列。现在用时间序列分析方法进行建模,构造一个数学模型来逼近真实的随机漂移数据,然后,用这一模型对陀螺漂移进行预测,从而达到补偿的目的。这里采用AR 模型来建立陀螺漂移模型。

5.1 辨识漂移模型

AR(p)模型的一般表达式:

式中,ai为自回归系数,x ( k
)为 AR( p )模型的输出,ω( k)为噪声序列。

这里用一阶模型:

表示在k时刻的观察值只与相邻的前一时刻的观察值存在相关性。

辨识出来的模型:

得到模型后,接下来就是进行卡尔曼滤波了。

关于误差分析建模,进而滤波处理这段,笔者不是导航专业出身,所做的方法以及结果笔者不确定是否正确,因此就点到为止,有兴趣的可以继续查找资料实验。

来源:知乎




    关注 景龙通航无人机科技有限公司


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册