Allan 方差简介
Allan方差分析主要用于分析陀螺量化噪声,一般用于分析(以下内容针对于陀螺仪的allan方差分析,对于加速度计都是类似的)量化噪声(一般不一定能从allan上看出来)
角度随机游走
零偏不稳定性
角速率随机游走
速率斜坡(一般不一定能从allan上看出来)
Allan方差分析的一个用途是分析陀螺的性能或者对比不同陀螺的性能。若是将几个陀螺的Allan方差曲线同时绘制一个双对数图上,曲线在左下角的对应的陀螺性能一般比较好一些(激光陀螺),而右上差(MEMS)。
斜率意义:
matlab实践环境:(matlab2019, 安装sensor fusion toolbox),主要参考matlab自带的 AllanVarianceExample.m
其实allan方差计算并不复杂,下面的例子只针对陀螺,把陀螺建模为:
其中我们只关心:N: angle random walk(-1/2斜率)
K: rate random walk(1/2斜率)
B: bias instability(0斜率)
理由引严老师的原文:Allan方差可用于分析五种典型误差,但是某个陀螺中并不一定五种误差都有同时表现出来,不画Allan方差图/不肉眼看图,而盲目的采用最小二乘回归方法强行地就想求解五个系数的人是典型的教条主义者,往往得不到好的结果。比如如下Allan方差图中y曲线所示(摘自https://github.com/ethz-asl/kalibr/wiki/IMU-Noise-Model),采用“三段论”大概读图计算角度随机游走系数、零偏不稳定性和角速率随机游走(或速率斜坡)即可,完全可满足实际应用。过细分析想得出精确系数的人都是有洁癖的。
手撸一个allan曲线记录静态条件下陀螺数据,总长度为L, 采样周期为
,
为所有采样记录的样本, 这里
,采样率=100。 这个matlab自带的数据集的陀螺的单位为rad/s
% Load logged data from one axis of a three-axis gyroscope. This recording
% was done over a six hour period with a 100 Hz sampling rate.
load('LoggedSingleAxisGyroscope', 'omega'