参考: An introduction to inertial navigation, Oliver J. Woodman, 2007
参考:惯性仪器测试与数据分析, 严恭敏, 李四海, 秦永元 编
参考:NXP: Allan Variance: Noise Analysis for Gyroscopes
参考:IEEE Standard Specification Format Guide and Test Procedure for Single-Axis
参考:http://www.analog.com/cn/analog-dialogue/search.html?q=gyro
参考:ALLAN VARIANCE ANALYSIS ON ERROR CHARACTERS OF LOWCOST
MEMS ACCELEROMETER MMA8451Q
参考:Allan 方差分析的使用要点
本文涉及传感器均为 MEMS 器件。
1 Gyroscopes 陀螺仪
1.1 陀螺仪 简介
参考: http://www.analog.com/cn/analog-dialogue/articles/imems-angular-rate-sensing-gyroscope.html
略。
1.2 陀螺仪误差
1.2.1 常值零偏
【Constant Bias】
陀螺仪静止时,对 gyro 输出采样得到的均值,单位 ∘ / h ^{\circ}/h ∘/h 。
1.2.2 白噪声 / 角度随机游走
【Thermo-Mechanical White Noise / Angle Random Walk】
白噪声以远高于采样周期的频率干扰 gyro 输出。所以 gyro 传感器的输出就表现为零均值不相关随机变量。
公式推导见参考文献;
白噪声在计算角度时,引入了零均值随机游走误差,其标准差:
σ θ ( t ) = σ ⋅ δ t ⋅ t \sigma_\theta(t) = \sigma \cdot \sqrt{\delta t \cdot t} σθ(t)=σ⋅δt⋅t
与时间 t 的平方跟成正比。
在传感器手册中,通常使用 angle random walk (ARW) 表示:
A R W = σ θ ( 1 ) ARW = \sigma_\theta (1) ARW=σθ(1)
单位: ∘ / h ^{\circ}/h ∘/h
例如, Honeywell GG5300 的 A R W = 0. 2 ∘ / h ARW=0.2^{\circ}/h ARW=0.2∘/h 。
表示:1 小时对应的姿态误差的标准差为 0. 2 ∘ 0.2^{\circ} 0.2∘ ;同理,2 小时对应 2 ⋅ 0.2 = 0.2 8 ∘ \sqrt{2} \cdot 0.2 = 0.28^{\circ} 2⋅0.2=0.28∘
其他的表示方法:
功率谱密度 (单位: ( ∘ / h ) 2 / H z (^{\circ}/h)^2/Hz (∘/h)2/Hz)
A R W ( ∘ / h ) = 1 60 ⋅ P S D ( ( ∘ / h ) 2 / H z ) ARW(^{\circ}/\sqrt{h}) = \frac{1}{60} \cdot \sqrt{\mathbf{PSD} ((^{\circ}/h)^2/Hz)} ARW(∘/h)=601⋅PSD((∘/h)2/Hz)
FFT 噪声密度 (单位: ∘ / h / H z ^{\circ}/h/Hz ∘/h/Hz)
A R W ( ∘ / h ) = 1 60 ⋅ F F T ( ∘ / h / H z ) ARW(^{\circ}/\sqrt{h}) = \frac{1}{60} \cdot {\mathbf{FFT} (^{\circ}/h/Hz)} ARW(∘/h)=601⋅FFT(∘/h/Hz)
1.2.3 闪烁噪声 / 零偏稳定性
【Flicker Noise / Bias Stability】
闪烁噪声 是电子器件中一种常见的干扰,其功率谱密度正比于
1
f
\frac{1}{f}
f1,也叫粉红噪声。是陀螺仪零偏随时间漂移的主要因素,由于高频段的闪烁噪声功率谱密度较小,被白噪声淹没,在随机游走中建模。
零偏稳定性 用于描述在恒定温度条件下,静止放置的陀螺仪,在一定时间段内(如:100秒),零偏的可能变化范围,通常用 1 σ 1 \sigma 1σ 值表示, 单位: ∘ / h ^\circ /h ∘/h。
如果在 t t t 时刻零偏为 B t B_t Bt, 1 σ 1 \sigma 1σ 零偏稳定性为100秒 0.0 1 ∘ / h 0.01^\circ /h 0.01∘/h,则在 t + 100 t+100 t+100 时刻,零偏表示为期望 B t B_t Bt,标准差 0.0 1 ∘ / h 0.01^\circ /h 0.01∘/h 的随机变量。
零偏稳定性会随着时间对零偏产生随机游走影响,其标准差正比于时间的平方根。
所以,零偏稳定性有时会表示为以下形式:
B R W ( ∘ / h ) = B S ( ∘ / h ) t ( h ) BRW(^\circ /\sqrt{h}) = \frac{BS(^\circ /h)}{\sqrt{t(h)}} BRW(∘/h)=t(h)BS(∘/h)
式中,
t
t
t 是零偏稳定性定义的时间段长度。
实际上,零偏稳定性只能表示短时间内的零偏漂移,因为传感器的零偏是有界的,所以,随着时间的增长,误差模型中零偏标准差的增长并不准确。
1
σ
1 \sigma
1σ 方法可参考: 硅微陀螺仪零偏稳定性的优化_赵阳 / 国军标陀螺相关测试规范
1.2.4 温漂
MEMS 传感器的温漂通常表现为高阶非线性关系,在商业应用中,通常考虑恒温。
1.2.5 标定误差
参考:http://www.analog.com/cn/analog-dialogue/articles/mems-imu-gyroscope-alignment.html
略。
1.2.6 振动影响
参考:http://www.analog.com/cn/technical-articles/gyro-mechanical-performance.html
理想情况下,陀螺仪仅测量旋转速率,无关其他。但实际应用中,由于机械设计不对称和/或微加工不够精确,所有陀螺仪都有一定的加速度敏感度。
最显著的通常是对线性加速度的敏感度 (
g
g
g 敏感度 ) 和对振动校正的敏感度 (
g
2
g^2
g2 敏感度 ) 。
对于振动较大的场景,不可忽视。
2 Accelerometer 加速度计
略。
3 Allan 方差
3.1 Allan 方差简介
见维基百科:https://en.wikipedia.org/wiki/Allan_variance
Note: Allan 方差实验需保证足够的测试时间,通常 2~3 小时。否则,会丢失信号的部分特征。
3.2 Allan 方差读图
Xsens Mtx 陀螺仪 Allan 方差:
$ $ | 零偏不稳定性 | 角度随机游走 |
---|---|---|
G y r o X Gyro X GyroX | 0.01 0 ∘ / s = 3 6 ∘ / h ( a t 620 s ) 0.010 ^\circ /s = 36 ^\circ /h\ (at\ \ 620s) 0.010∘/s=36∘/h (at 620s) | 0.07 5 ∘ / s = 4. 6 ∘ / h 0.075^\circ /\sqrt{s} = 4.6 ^\circ /\sqrt{h} 0.075∘/s=4.6∘/h |
G y r o Y Gyro Y GyroY | 0.00 9 ∘ / s = 3 2 ∘ / h ( a t 530 s ) 0.009 ^\circ /s = 32 ^\circ /h\ (at\ \ 530s) 0.009∘/s=32∘/h (at 530s) | 0.07 8 ∘ / s = 4. 8 ∘ / h 0.078^\circ /\sqrt{s} = 4.8 ^\circ /\sqrt{h} 0.078∘/s=4.8∘/h |
G y r o Z Gyro Z GyroZ | 0.01 2 ∘ / s = 4 3 ∘ / h ( a t 270 s ) 0.012 ^\circ /s = 43 ^\circ /h\ (at\ \ 270s) 0.012∘/s=43∘/h (at 270s) | 0.07 9 ∘ / s = 4. 8 ∘ / h 0.079^\circ /\sqrt{s} = 4.8 ^\circ /\sqrt{h} 0.079∘/s=4.8∘/h |
读图 | 水平段最低点对应的纵坐标 | 斜率 -0.5 线段与 t = 1 t=1 t=1 直线交点的纵坐标 |
Note:
零偏不稳定性:斜率为 0 (水平)线段的最低点;
角度随机游走:斜率为 − 0.5 -0.5 −0.5 ,与 t = 1 s t=1s t=1s 的交点;(gyro - ARW , acc - VRW)
FXAS21002C 陀螺仪:
NXP allan 方差代码:
function [T,sigma] = allan(omega,fs,pts)
[N,M] = size(omega); % figure out how big the output data set is
n = 2.^(0:floor(log2(N/2)))'; % determine largest bin size
maxN = n(end);
endLogInc = log10(maxN);
m = unique(ceil(logspace(0,endLogInc,pts)))'; % create log spaced vector average factor
t0 = 1/fs; % t0 = sample interval
T = m*t0; % T = length of time for each cluster
theta = cumsum(omega)/fs; % integration of samples over time to obtain output angle θ
sigma2 = zeros(length(T),M); % array of dimensions (cluster periods) X (#variables)
for i=1:length(m) % loop over the various cluster sizes
for k=1:N-2*m(i) % implements the summation in the AV equation
sigma2(i,:) = sigma2(i,:) + (theta(k+2*m(i),:) - 2*theta(k+m(i),:) + theta(k,:)).^2;
end
end
sigma2 = sigma2./repmat((2*T.^2.*(N-2*m)),1,M);
sigma = sqrt(sigma2)
3.3 Allan 方差使用要点
摘取自:严恭敏老师 - Allan 方差分析的使用要点
- Allan方差分析的是静态误差,陀螺必须在静基座下进行采集数据,否则要是动基座下采集的陀螺数据,分析的结果到底是陀螺误差呢还是基座运动特性?!
- Allan方差可用于分析五种典型误差,但是某个陀螺中并不一定五种误差都有同时表现出来,不画Allan方差图/不肉眼看图,而盲目的采用最小二乘回归方法强行地就想求解五个系数的人是典型的教条主义者,往往得不到好的结果。
- 不是所有的Allan方差噪声系数都有用,主要有用的是角度随机游走系数(用于设置 Q阵 )和零偏不稳定性系数(用于设置一阶马氏过程的方差),其实这两个系数量级大小差不多就行了,太精细也没用。