主要内容

基于Allan方差的惯性传感器噪声分析

这个例子展示了如何使用Allan方差来确定MEMS陀螺仪的噪声参数。这些参数可用于陀螺的仿真建模。陀螺仪测量模型为:

$ $ \ω(t) = \ Omega_{理想}(t) + Bias_N (t) + Bias_B (t) + Bias_K (t) $ $

三噪声参数N(角度随机游动),K(率随机漫步),和B(偏置不稳定性)使用从静止陀螺仪记录的数据进行估计。

出身背景

Allan方差最初由David W.Allan开发,用于测量精密振荡器的频率稳定性。它还可用于识别静止陀螺仪测量中存在的各种噪声源。考虑L采样时间为的陀螺仪的数据样本美元\ tau_ {0} $.形成持续时间的数据集群美元\ tau_ {0} $,2美元\ tau_ {0} $, ...,$m\tau_{0}, (m < (L-1)/2并得到每个聚类中包含的数据点之和除以聚类长度的平均值。Allan方差被定义为数据聚类平均的两样本方差作为聚类时间的函数。这个例子使用重叠Allan方差估计。这意味着计算的集群是重叠的。对于较大的值,该估计器比非重叠估计器性能更好L

阿伦方差计算

Allan方差的计算如下:

日志L固定陀螺仪具有采样周期美元\ tau_ {0} $.让ω\美元记录样本。

%从三轴陀螺仪的一个轴加载记录数据。这段录音%以100 Hz的采样率在6小时内完成。装载(“LoggedSingleAxis陀螺仪”,“ω”,“Fs”)t0=1/Fs;

对于每个样本,计算输出角度\θ美元:

$$\theta(t)=\int^{t}\Omega(t')dt'$$

对于离散样本,累积和乘以美元\ tau_ {0} $可以使用。

θ=总和(ω,1)*t0;

接下来,计算Allan方差:

$$\sigma^2(\tau)=
;\frac{1}{2\tau^2}<(\theta{k+2m}-2\theta{k+m}+\theta{k})^2>$$

哪里\ \τ=美元tau_ {0} $< & # 62;美元为集合平均值。

综上平均可以扩展为:

$$\sigma^2(\tau)=&xA\frac{1}{2\tau^2(L-2m)}\sum{k=1}{L-2m}(\theta{k+2m}-2\theta{k+m}&\xA;+\theta{k})^2$$

maxNumM = 100;L = size(, 1);maxM = 2。^地板(log2 (L / 2));m = logspace(log10(1), log10(maxM), maxNumM).';m =装天花板(m);% m必须为整数。m =独特(m);%删除重复值。tau=m*t0;avar=0(numel(m),1);对于I = 1:numel(m) mi = m(I);:阿瓦尔人(我)=总和(...(θ(1 + 2 * mi: L) - 2θ* (1 + mi: L-mi) +θ(1:l2 * mi))。^ 2, 1);结束Avar = Avar ./ (2*tau。^2 * (L - 2*m));

最后是艾伦偏差大概{$ \σ(t) = \ \σ^ 2 (t)} $用于确定陀螺仪噪声参数。

adev=sqrt(avar);图形日志(tau,adev)标题(“艾伦偏差”)包含(“\τ”); 伊拉贝尔(“\σ(\τ)”网格)平等的

Allan方差也可以用allanvar作用

[avarFromFunc, tauFromFunc] = allanvar(omega, m, Fs);adevFromFunc =√avarFromFunc);图loglog(tau, adev, tauFromFunc, adevFromFunc);标题(“艾伦偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传奇(手工计算的,“allanvar函数”网格)平等的

噪声参数识别

要获得陀螺仪的噪声参数,请使用原始数据集中噪声参数的Allan方差和双边功率谱密度(PSD)之间的以下关系ω\美元.的关系是:

$ $ \σ^ 2(\τ)= 4 \ int_ {0} ^ {\ infty} S_ \ω(f) & # xA; \压裂{罪^ 4 f(\π\τ)}{(f \ \πτ)^ 2}df $ $

从上面的方程可以看出,当通过传递函数为的滤波器时,艾伦方差与陀螺仪的总噪声功率成正比$sin^4(x)/(x)^2$.这个传递函数产生于创建和操作集群的操作。

使用这种传递函数解释,滤波器带通依赖于$\tau$。这意味着可以通过改变滤波器带通或$\tau$

角随机游走

角度随机游动以陀螺仪输出的白噪声频谱为特征。PSD表示为:

$ $ S_ \ω(f) = N ^ 2 $ $

哪里

N=角度随机游走系数

代入原始PSD方程并进行积分得到:

$$\sigma^2(\tau)=\frac{N^2}{\tau}$$

上述方程是一条斜率为-1/2的直线,绘制在$\sigma(\tau)$$\tau$.价值N可在以下位置直接从此行读取:$\tau=1$.单位N$ (rad / s) / \√{赫兹}$

找出对数比例的艾伦偏差的斜率相等的指标%到指定的斜率。斜率= -0.5;logtau = log10(τ);logadev = log10 (adev);Dlogadev = diff(logadev) ./ diff(logtau);[~, i] = min(abs(dlogadev - slope));%找到直线的y截距。B = logadev(i) - slope*logtau(i);%从直线确定角度随机游动系数。logN = log(1) + b;N = 10 ^ logN%绘制结果。tauN=1;亚麻布=N./sqrt(tau);数字对数(tau,adev,tau,亚麻布,“——”,陶恩,N,“o”)标题(“Allan偏差与角度随机行走”)包含(“\τ”) ylabel (“\σ(\τ)”)传奇(‘\σ’,“\sigma\u N”)文本(陶恩,N,“不”网格)平等的
N = 0.0126

速率随机游动

速率随机游动是由陀螺仪输出的红噪声(布朗噪声)谱来表征的。PSD表示为:

$$S\uOmega(f)=(\frac{K}{2\pi})^2\frac{1}{f^2}$$

哪里

K=速率随机游动系数

代入原始PSD方程并进行积分得到:

$ $ \σ^ 2(\τ)= \压裂{K ^ 2 \τ}{3}$ $

上面的方程是一条斜率为1/2的直线在的对数曲线上$\sigma(\tau)$$\tau$.价值K可在以下位置直接从此行读取:\τ= 3美元.单位K$ (rad / s \√{赫兹}$

找出对数比例的艾伦偏差的斜率相等的指标%到指定的斜率。斜率= 0.5;logtau = log10(τ);logadev = log10 (adev);Dlogadev = diff(logadev) ./ diff(logtau);[~, i] = min(abs(dlogadev - slope));%找到直线的y截距。B = logadev(i) - slope*logtau(i);%从测线确定速率随机游动系数。logK=slope*log10(3)+b;K=10^logK%绘制结果。tauK = 3;= K .*√(tau/3);图loglog(tau, adev, tau, lineK,“——”tauK, K,“o”)标题(" Allan Deviation with Rate Random Walk ")包含(“\τ”) ylabel (“\σ(\τ)”)传奇(‘\σ’,“\ sigma_K”)文本(tauK, K,“K”网格)平等的
K = 9.0679 e-05

偏见不稳定

偏置不稳定性的特征是陀螺仪输出的粉红色噪声(闪烁噪声)谱。PSD表示为:

$$S{\Omega}(f)=\left\{\begin{array}{lr}(\frac{B^2}{2\pi})\frac{1}{f}
;&;:f\leq f#0\\0&;:f>;f#0\end{array}\right$$

哪里

B偏置不稳定系数

$f_0$=截止频率

代入原始PSD方程并进行积分得到:

$$\sigma^2(\tau)=\frac{2B^2}{\pi}[\ln{2}+\\\&}xA;-\frac{sin^3x}{2x^2}(sinx+4xcox)+Ci(2x)-Ci(4x)]$$

哪里

$x = f_0 $

=余弦积分函数

$\tau$比截止频率的倒数长得多,PSD方程为:

$$\sigma^2(\tau)=\frac{2B^2}{\pi}\ln{2}$$

上面的方程是一条斜率为0的直线,在的对数-对数曲线上$\sigma(\tau)$$\tau$.价值B可直接从该行读取,缩放比例为$ \√6{\压裂{2 \ ln{2}}{\π}}\大约0.664美元.单位Brad / s美元

找出对数比例的艾伦偏差的斜率相等的指标%到指定的斜率。斜率=0;logtau=log10(tau);logadev=log10(adev);dlogadev=diff(logadev)。/diff(logtau);[~,i]=min(abs(dlogadev-斜率));%找到直线的y截距。B = logadev(i) - slope*logtau(i);从直线上确定偏差不稳定系数。scfB =√2 *日志(2)/ pi);logB = b - log10(scfB);B = 10 ^ logB%绘制结果。陶布=τ(i);linb = B * scfB * ones(size(tau));图loglog(tau, adev, tau, lineB,“——”,tauB,scfB*B,“o”)标题(“带有偏置不稳定性的Allan偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传奇(‘\σ’,“\ sigma_B”)文本(陶布scfB * B,“0.664”网格)平等的
B = 0.0020

现在,所有的噪声参数已经计算,绘制Allan偏差与所有用于量化参数的线。

tauParams=[tauN,tauK,tauB];params=[N,K,scfB*B];图形日志(tau,adev,tau,[lineN,lineK,lineB],“——”,...陶帕玛斯,帕玛斯,“o”)标题(“Allan与噪声参数的偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传奇(“\σ(rad / s)的美元,“$\sigma_N((rad/s)/\sqrt{Hz})$”,...“美元\ sigma_K (rad / s \√{赫兹})的美元,“$\sigma_B(rad/s)$”,“翻译”,“乳胶”) text(tauParams, params, {“不”,“K”,“0.664”})网格平等的

陀螺仿真

使用imuSensor目的用上述噪声参数模拟陀螺仪测量。

%模拟陀螺仪测量需要一些时间。为了避免这种情况,%测量结果已生成并保存到MAT文件中。默认情况下,此%示例使用mat -文件。要生成度量值,请更改%此逻辑变量为true。generateSimulatedData=false;如果generateSimulatedData将陀螺仪参数设置为所确定的噪声参数%以上。陀螺= gyroparams (“NoiseDensity”N“随机行走”、钾、...“双星稳定性”, B);omegaSim = helperAllanVarianceExample(L, Fs,陀螺仪);其他的装载(“SimulatedSingleAxisGyroscope”,“omegaSim”)结束

计算模拟Allan偏差,并将其与记录数据进行比较。

[阿瓦西姆,陶西姆]=阿兰瓦尔(欧米伽西姆,“八度”Fs);adevSim =√avarSim);adevSim = mean(adevSim, 2);%使用模拟的平均值。图loglog(tau, adev, tauSim, adevSim,“——”)标题(“硬件的Allan偏差与仿真”)包含(“\τ”); 伊拉贝尔(“\σ(\τ)”)传奇(“HW”,“SIM”网格)平等的

该图显示了从imuSensor生成与记录数据具有类似Allan偏差的测量值。由于量化和温度相关参数未使用回转参数.陀螺仪模型可以用来生成测量,使用的运动是不容易捕获的硬件。

参考文献

  • IEEE标准647-2006单轴激光陀螺IEEE标准规范格式指南和测试程序