本例展示了如何使用Allan方差来确定MEMS陀螺仪的噪声参数。这些参数可用于陀螺仪的仿真建模。陀螺仪测量模型为:
三个噪声参数N(角度随机游走),K(概率随机游走),和B(偏置不稳定性)估计使用来自固定陀螺仪的记录数据。
Allan方差最初由David W. Allan开发,用于测量精密振荡器的频率稳定性。它也可以用来识别各种噪声源存在于固定陀螺仪测量。考虑l来自陀螺仪的采样数据具有采样时间.形成持续时间的数据集群,、……并获得每个聚类中包含的数据点的和在聚类长度上的平均值。Allan方差被定义为数据簇平均的两样本方差作为簇时间的函数。本例使用重叠Allan方差估计器。这意味着计算的聚类是重叠的。的较大值时,估计器的性能优于非重叠估计器l.
Allan方差计算如下:
日志l固定式陀螺仪具有采样周期.让记录样本。
从三轴陀螺仪的一个轴加载记录数据。这段录音以100 Hz采样率在6小时内完成。负载(“LoggedSingleAxisGyroscope”,“ω”,“Fs”) t0 = 1/Fs;
对于每个样本,计算输出角度:
对于离散样本,累积和乘以可以使用。
= cumsum(, 1)*t0;
接下来,计算Allan方差:
在哪里而且是整体平均值。
集合平均值可以扩展为:
maxNumM = 100;L = size(theta, 1);maxM = 2.^floor(log2(L/2));m = logspace(log10(1), log10(maxM), maxNumM).';M = cell (M);% m必须为整数。M =唯一的(M);删除重复项。Tau = m*t0;Avar = 0(数字(m), 1);为I = 1: number (m) mi = m(I);Avar (i,:) = sum(...(θ(1 + 2 * mi: L) - 2θ* (1 + mi: L-mi) +θ(1:l2 * mi))。^ 2, 1);结束Avar = Avar ./ (2*tau.;)^2 .* (L - 2*m));
最后,艾伦偏差用于确定陀螺仪的噪声参数。
adv =根号(avar);图logog (tau, adev) title(“艾伦偏差”)包含(“\τ”);ylabel (“\σ(\τ)”网格)在轴平等的
艾伦方差也可以用allanvar
函数。
[avarFromFunc, tauFromFunc] = allanvar(ω, m, Fs);adevFromFunc = sqrt(avarFromFunc);figure loglog(tau, adev, tauFromFunc, adevFromFunc);标题(“艾伦偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传说(手工计算的,“allanvar函数”网格)在轴平等的
为了获得陀螺仪的噪声参数,可以使用原始数据集中噪声参数的Allan方差与双侧功率谱密度(PSD)之间的关系.关系是:
由上式可知,当陀螺仪通过传递函数为的滤波器时,Allan方差与陀螺仪的总噪声功率成正比.这个传递函数产生于创建和操作集群所做的操作。
使用此传递函数解释,滤波器的带通取决于.这意味着不同的噪声参数可以通过改变滤波器带通或变化来识别.
利用陀螺仪输出的白噪声谱来表征角度随机游走。PSD表示为:
在哪里
N=角度随机游走系数
代入原PSD方程进行积分得到:
上面的方程是一条斜率为-1/2的直线与.的价值N可以直接从这一行读到.的单位N是.
求log- scaling Allan deviation的斜率相等的指数%到指定的斜率。斜率= -0.5;Logtau = log10(tau);Logadev = log10(adev);Dlogadev = diff(logadev) ./ diff(logtau);[~, i] = min(abs(dlogadev - slope));求直线的y轴截距。B = logadev(i) - slope*logtau(i);从直线上确定角度随机游走系数。logN = slope*log(1) + b;N = 10^logN绘制结果。tauN = 1;亚麻= N ./平方根(tau);figure loglog(tau, adev, tau, lineN,“——”,褐色,N,“o”)标题(“带角度随机游走的艾伦偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传说(‘\σ’,“\ sigma_N”)文本(牛角,N,“N”网格)在轴平等的
N = 0.0126
陀螺仪输出的红噪声(布朗噪声)谱表征了速率随机游走。PSD表示为:
在哪里
K=率随机游走系数
代入原PSD方程进行积分得到:
上面的方程是一条斜率为1/2的直线与.的价值K可以直接从这一行读到.的单位K是.
求log- scaling Allan deviation的斜率相等的指数%到指定的斜率。斜率= 0.5;Logtau = log10(tau);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;lineK = K .*平方根(tau/3);figure loglog(tau, adev, tau, lineK,“——”, tauK, K,“o”)标题(“速率随机游走的艾伦偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传说(‘\σ’,“\ sigma_K”text(tauK, K,“K”网格)在轴平等的
K = 9.0679 -05
陀螺仪输出的粉色噪声(闪烁噪声)谱表征了偏置不稳定性。PSD表示为:
在哪里
B偏差不稳定系数
截止频率
代入原PSD方程进行积分得到:
在哪里
Ci=余弦积分函数
当远长于截止频率的倒数,则PSD方程为:
上面的方程是一条斜率为0的直线与.的价值B可以直接从这一行读取.的单位B是.
求log- scaling Allan deviation的斜率相等的指数%到指定的斜率。斜率= 0;Logtau = log10(tau);Logadev = log10(adev);Dlogadev = diff(logadev) ./ diff(logtau);[~, i] = min(abs(dlogadev - slope));求直线的y轴截距。B = logadev(i) - slope*logtau(i);从直线上确定偏置不稳定系数。scfB =√(2*log(2)/pi);logB = b - log10(scfB);B = 10^logB绘制结果。tauB = tau(i);lineB = B * scfB * ones(size(tau));figure loglog(tau, adev, tau, lineB,“——”, tauB, scfB*B,“o”)标题(“带偏差不稳定性的艾伦偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传说(‘\σ’,“\ sigma_B”(tauB, scfB*B,“0.664”网格)在轴平等的
B = 0.0020
现在已经计算了所有的噪声参数,用所有用于量化参数的线绘制艾伦偏差。
tauParams = [tauN, tauK, tauB];params = [N, K, scfB*B];figure loglog(tau, adev, tau,[亚麻,lineK, lineB],“——”,...tauParams参数,“o”)标题(“带噪声参数的艾伦偏差”)包含(“\τ”) ylabel (“\σ(\τ)”)传说(“\σ(rad / s)的美元,“美元\ sigma_N ((rad / s) / \√{赫兹})的美元,...“美元\ sigma_K (rad / s \√{赫兹})的美元,“美元\ sigma_B (rad / s)的美元,“翻译”,“乳胶”) text(tauParams, params, {“N”,“K”,“0.664”})网格在轴平等的
使用imuSensor
对象用上面确定的噪声参数模拟陀螺仪测量。
模拟陀螺仪测量需要一些时间。为了避免这种情况,%测量值生成并保存到mat文件。默认情况下,% example使用mat文件。要生成度量值,请更改%此逻辑变量为true。generateSimulatedData = false;如果generateSimulatedData将陀螺仪参数设置为确定的噪声参数%以上。陀螺=陀螺参数(“NoiseDensity”N“随机散步”、钾、...“BiasInstability”, B);omegaSim = helperAllanVarianceExample(L, Fs,陀螺);其他的负载(“SimulatedSingleAxisGyroscope”,“omegaSim”)结束
计算模拟阿伦偏差,并将其与测井数据进行比较。
[avarSim, tauSim] = allanvar(omegaSim,“八度”Fs);adevSim = sqrt(avarSim);adevSim = mean(adevSim, 2);使用模拟的平均值。figure loglog(tau, adev, tauSim, adevSim,“——”)标题(“HW和模拟的艾伦偏差”)包含(“\τ”);ylabel (“\σ(\τ)”)传说(“HW”,“SIM卡”网格)在轴平等的
图中显示的陀螺仪模型创建自imuSensor
生成与记录数据具有相似艾伦偏差的测量值。由于量化和温度相关参数不使用,模型测量的噪声略小gyroparams
.陀螺仪模型可用于使用不容易被硬件捕获的运动来生成测量值。
单轴激光陀螺的标准规范格式指南和测试程序