主要内容

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

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

$$\Omega(t)=\Omega_{理想}(t)+偏差(t)+偏差(t)+偏差(K)$$

三噪声参数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$:

$$\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)标题(“艾伦偏差”)xlabel(“\tau”); 伊拉贝尔(“\σ(\τ)”网格)在…上平等的

Allan方差也可以用allanvar作用

[avarFromFunc,tauFromFunc]=allanvar(ω,m,Fs);adevFromFunc=sqrt(avarFromFunc);地物日志(tau,adev,tauFromFunc,adevFromFunc);标题(“艾伦偏差”)xlabel(“\tau”)伊拉贝尔(“\σ(\τ)”)传奇(“人工计算”,“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(tau);logadev=log10(adev);dlogadev=diff(logadev)。/diff(logtau);[~,i]=min(abs(dlogadev-斜率));%找到直线的y截距。B = logadev(i) - slope*logtau(i);%从直线确定角度随机游动系数。logN = log(1) + b;N = 10 ^ logN%绘制结果。tauN=1;亚麻布=N./sqrt(tau);数字对数(tau,adev,tau,亚麻布,“——”,陶恩,N,“哦”)标题(“Allan偏差与角度随机行走”)xlabel(“\tau”)伊拉贝尔(“\σ(\τ)”)传奇(“\sigma”,“\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(tau);logadev=log10(adev);dlogadev=diff(logadev)。/diff(logtau);[~,i]=min(abs(dlogadev-斜率));%找到直线的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,“哦”)标题(“速率随机游动的Allan偏差”)xlabel(“\tau”)伊拉贝尔(“\σ(\τ)”)传奇(“\sigma”,“\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,“哦”)标题(“带有偏差不稳定性的艾伦偏差”)xlabel(“\tau”)伊拉贝尔(“\σ(\τ)”)传奇(“\sigma”,“\ 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],“——”,...陶帕玛斯,帕玛斯,“哦”)标题(“Allan与噪声参数的偏差”)xlabel(“\tau”)伊拉贝尔(“\σ(\τ)”)传奇(“\σ(rad / s)的美元,“$\sigma_N((rad/s)/\sqrt{Hz})$”,...“$\sigma_K((rad/s)\sqrt{Hz})$”,“$\sigma_B(rad/s)$”,“口译员”,“乳胶”) text(tauParams, params, {“不”,“K”,“0.664”})网格在…上平等的

陀螺仿真

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

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

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

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

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

工具书类

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