这个例子展示了如何使用Allan方差来确定MEMS陀螺仪的噪声参数。这些参数可用于陀螺的仿真建模。陀螺仪测量模型为:
三噪声参数N(角度随机游动),K(率随机漫步),和B(偏置不稳定性)使用从静止陀螺仪记录的数据进行估计。
Allan方差最初由David W.Allan开发,用于测量精密振荡器的频率稳定性。它还可用于识别静止陀螺仪测量中存在的各种噪声源。考虑L采样时间为的陀螺仪数据样本.形成持续时间的数据集群,, ...,并获得每个簇中包含的数据点总和在簇长度上的平均值。Allan方差定义为数据簇平均值的两个样本方差,作为簇时间的函数。本例使用重叠Allan方差估计。这意味着计算的簇是重叠的。对于较大的参数值,该估计量的性能优于非重叠估计量L.
Allan方差的计算如下:
日志L固定陀螺仪具有采样周期.让记录样本。
%从三轴陀螺仪的一个轴加载记录数据。这段录音%以100 Hz的采样率在6小时内完成。装载(“LoggedSingleAxis陀螺仪”,“ω”,“Fs”)t0=1/Fs;
对于每个样本,计算输出角度:
对于离散样本,累积和乘以可以使用。
θ=总和(ω,1)*t0;
接下来,计算Allan方差:
哪里和为集合平均值。
综上平均可以扩展为:
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));
最后,艾伦偏差用于确定陀螺仪的噪声参数。
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)之间的以下关系.的关系是:
从上面的方程可以看出,当通过传递函数为的滤波器时,艾伦方差与陀螺仪的总噪声功率成正比.这个传递函数产生于创建和操作集群的操作。
使用这种传递函数解释,滤波器带通依赖于。这意味着可以通过改变滤波器带通或.
角度随机游动以陀螺仪输出的白噪声频谱为特征。PSD表示为:
哪里
N=角度随机游走系数
代入原始PSD方程并进行积分得到:
上述方程是一条斜率为-1/2的直线,绘制在与.价值N可在以下位置直接从此行读取:.单位N是.
找出对数比例的艾伦偏差的斜率相等的指标%到指定的斜率。斜率=-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表示为:
哪里
K=速率随机游动系数
代入原始PSD方程并进行积分得到:
上面的方程是一条斜率为1/2的直线在的对数曲线上与.价值K可在以下位置直接从此行读取:.单位K是.
找出对数比例的艾伦偏差的斜率相等的指标%到指定的斜率。斜率=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表示为:
哪里
B偏置不稳定系数
=截止频率
代入原始PSD方程并进行积分得到:
哪里
词=余弦积分函数
当比截止频率的倒数长得多,PSD方程为:
上面的方程是一条斜率为0的直线,在的对数-对数曲线上与.价值B可直接从该行读取,缩放比例为.单位B是.
找出对数比例的艾伦偏差的斜率相等的指标%到指定的斜率。斜率=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标准规范格式指南和测试程序