课题学习(十九)----Allan方差:陀螺仪噪声分析

这篇具有很好参考价值的文章主要介绍了课题学习(十九)----Allan方差:陀螺仪噪声分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍

  Allan方差是一种分析时域数据序列的方法,用于测量振荡器的频率稳定性。该方法还可用于确定系统中作为平均时间函数的本征噪声。该方法易于计算和理解,是目前最流行的识别和量化惯性传感器数据中存在的不同噪声项的方法之一。该方法的结果与适用于惯性传感器数据的五个基本噪声项有关。这些是量化噪声、角度随机游走、偏置不稳定性、速率随机游走和速率斜坡。
  时域信号Ω(𝑡)的Allan方差分析是计算其根Allan方差或Allan偏差作为不同平均次数的函数,然后分析Allan偏差曲线的特征区域和对数曲线,以识别不同的噪声模式。

二、建立用于陀螺仪噪声识别的Allan偏差图

  下面描述了创建Allan偏差图所需遵循的步骤。本文采用重叠Allan方差法计算Allan方差并生成Allan偏差图进行噪声分析。
  步骤如下:

  1. 使用实验装置获取陀螺仪输出的时间序列Ω(𝑡)(保持陀螺仪静态)。设样本个数为N,采样周期为 τ 0 τ_0 τ0
  2. 设置平均时间为: τ = m τ 0 τ=mτ_0 τ=mτ0,m为平均因子。𝑚的值可以任意选择,并且保证𝑚<(N- 1)/2。
  3. 将信号的时间序列(即陀螺输出数据随时间的序列)划分为时间长度为 τ = m τ 0 τ=mτ_0 τ=mτ0的有限集合。
    在这种重叠Allan方差方法中,两个连续数据集合之间的时间跨度始终等于样本周期𝜏0。这种重叠方法利用平均时间来形成所有可能重叠的样本集合,最大限度地利用了数据集。如下图所示。
    课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
    如上图所示为平均因子𝑚= 3的重叠方法的样本集合。两个相邻集合具有重叠的样本。每个集合关联的持续时间为3个。每个集合之间通过采样周期为𝜏0 (Stride)隔开。
  4. 一旦集合形成,就可以用两种方法计算Allan方差(通过重叠法):
    ①使用输出速率样本的平均值,见第2.1节
    ②输出角θ对应于每个陀螺速率样本,见第2.2节
  5. 最后,计算该特定值的Allan偏差值,然后对多个值重复上述步骤得到Allan偏差图,见第2.3节。

2.1 使用输出速率样本的平均值计算Allan方差

  Allan方差可以根据每个数据集上输出速率样本的平均值来计算。
  1. 在 K τ 0 Kτ_0 Kτ0 K τ 0 + τ Kτ_0+τ Kτ0+τ之间对每个数据集的输出速率样本取平均值。
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  同样,在2.2节“使用输出角计算Allan方差”中会计算了θ的值,使用输出角计算平均输出速率 Ω ˉ K ( τ ) \bar \Omega_K(τ) ΩˉK(τ。在 K τ 0 Kτ_0 Kτ0 K τ 0 + τ Kτ_0+τ Kτ0+τ次之间,以输出角 θ K \theta_Κ θK表示的平均产出率为:
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  例如: Ω ˉ 2 ( τ ) \bar \Omega_2(τ) Ωˉ2(τ)和假设𝑚= 3表示平均陀螺的输出之间的集群乘以2𝜏0和2𝜏0+3𝜏0=5𝜏0。这就等于:
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  通过上面三式,对一个特定的值计算出Ω的所有可能值(在每个数据集上)。由于在这种方法中有𝑚可能形成的数据集,因此计算Ω的值。
  Ω的所有可能值(每个簇上)都是已知的,Allan方差可以计算如下:
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  这是艾伦方差的定义。 δ 2 ( τ ) \delta^2(τ) δ2(τ)表示Allan方差是的函数,< >为集合平均值。将上式展开,得到:
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  这个方程表示陀螺仪对一个特定值τ的最终速率Allan方差(重叠法),通过使用输出速率值的平均值, Ω ˉ ( τ ) \bar\Omega(τ) Ωˉ(τ)在每个数据集上。

2.2 使用输出角度计算Allan方差

  Allan方差可以根据输出角θ来计算,对应于每个陀螺速率采样值。
  1.计算每个陀螺输出样本对应的θ。这可以通过以下方式计算:
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  有时这些角度测量是由𝑡𝑡=𝑘𝜏0(𝜏0,2𝜏0,3𝜏0…),𝑘变化从1到𝑁。对于一个离散的样本集,累积和也可以用来给出θ的N值。在这里,取每个𝑘𝜏0上陀螺仪输出样本的累积和,然后将得到的每个和乘以样本周期𝜏0来得到θ的二进制操作值。

示例:计算θ的三个值,假设𝑘在1到3个样本之间变化。
假设观测到的 Ω k \Omega_k Ωk值分别为10、12和15。
通过使用累积和,可以得到以下值:10,10 +12=22和10 + 12 + 15 = 37。
进一步乘以𝜏0,我们现在得到的相应值: θ k : θ 1 = 10 τ 0 , : θ 2 = 22 τ 0 , : θ 3 = 37 τ 0 \theta_k:\theta_1=10τ_0,:\theta_2=22τ_0,:\theta_3=37τ_0 θk:θ1=10τ0,:θ2=22τ0,:θ3=37τ0

  2. 一旦计算了θ的N值,使用下式计算Allan方差。
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
   δ 2 ( τ ) \delta^2(τ) δ2(τ)表示Allan方差是的函数,< >为集合平均值。将上式展开,得到:
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
  这里的二进制操作是样本总数,𝑚是平均因子,τ=𝑚 τ 0 τ_0 τ0是平均时间,𝐾是一组从1到N的离散值。
  上式利用陀螺仪的输出角θ计算出某一特定值下的最终速率Allan方差(通过重叠法)值。一旦我们知道了θ的输出角度值、样本周期和𝑚的值,我们就可以用这个方程来计算Allan方差。

2.3 计算Allan偏差并创建Allan偏差图

  最后,对2.1节或2.2节的结果取平方根,就可以得到某一特定值的根Allan方差或Allan偏差的值。这个结果现在将被用来表征陀螺仪中的噪声。
课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法

三、噪声识别

  不同类型的随机过程导致Allan偏差图上出现不同梯度的斜率。不同的过程通常出现在不同的区域,使得它们的存在很容易被识别。确定了一个过程之后,就可以直接从绘图中读取其数值参数。对于像陀螺仪这样的MEMS器件,要测量的重要过程是随机游走和偏置不稳定性(有时也称为偏置稳定性),其可以识别和读取如下:

  • 白噪声/随机游走:在Allan方差图上显示为梯度为-0.5的斜率。该噪声的随机游走测量(速率陀螺仪的ARW,加速度计的VRW)是通过斜率拟合一条直线并读取其在= 1处的值获得的。陀螺仪的ARW是陀螺仪噪声的度量,单位为dps/rt(Hz)。
  • 偏置不稳定性:在图上表现为最小值周围的平坦区域。数值是Allan偏差图上的最小值。对于陀螺仪,偏置稳定性测量陀螺仪的偏置如何在恒定温度下在指定的时间内变化。这通常以dps/秒或dps/小时为单位。
      下图显示了从艾伦偏差图中可以观察到的各种不同的噪声过程。从下图中可以看出,陀螺仪需要观察、计算和分析的噪声过程是角度随机游走和偏置不稳定性。
    课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
      下图显示了飞思卡尔陀螺仪FXAS21002C对应的Allan方差曲线。偏置稳定性和ARW值在下图中有明显的标记。
    课题学习(十九)----Allan方差:陀螺仪噪声分析,课题学习,学习,算法
      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) 

  代码解释:

  • omega是陀螺速率输出。
  • m任意选取,τ定义为M *样本周期。
  • 在上面的代码中,使用2.2节中描述的方法来计算Allan方差。
  • theta由输出速率数据的累积和除以采样频率得到。这个θ是对应于每个样本得到的输出角度。
  • 由于m是可用的,每个输出速率样本对应的输出角度也是可用的,因此在上述代码中直接实现式(3)来计算Allan方差(代码中的sigma2)。
  • Allan偏差(代码中的sigma)然后通过取AVAR的平方根,即用2.3节公式来计算。

四、往期回顾

课题学习(一)----静态测量
课题学习(二)----倾角和方位角的动态测量方法(基于磁场的测量系统)
课题学习(三)----倾角和方位角的动态测量方法(基于陀螺仪的测量系统)
课题学习(四)----四元数解法
课题学习(五)----阅读论文《抗差自适应滤波的导向钻具动态姿态测量方法》
课题学习(六)----安装误差校准、实验方法
课题学习(七)----粘滑运动的动态算法
课题学习(八)----卡尔曼滤波动态求解倾角、方位角
课题学习(九)----阅读《导向钻井工具姿态动态测量的自适应滤波方法》论文笔记
课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记
课题学习(十一)----阅读《Attitude Determination with Magnetometers and Accelerometers to Use in Satellite》
课题学习(十二)----阅读《Extension of a Two-Step Calibration Methodology to Include Nonorthogonal Sensor Axes》
课题学习(十三)----阅读《Calibration of Strapdown Magnetometers in Magnetic Field Domain》论文笔记
课题学习(十四)----三轴加速度计+三轴陀螺仪传感器-ICM20602
课题学习(十五)----阅读《测斜仪旋转姿态测量信号处理方法》论文
课题学习(十六)----阅读《Continuous Wellbore Surveying While Drilling Utilizing MEMS Gyroscopes Based…》论文
课题学习(十七)----姿态更新的四元数算法总结
课题学习(十八)----捷联测试电路设计与代码实现(基于MPU6050和QMC5883L)文章来源地址https://www.toymoban.com/news/detail-814088.html

到了这里,关于课题学习(十九)----Allan方差:陀螺仪噪声分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 6轴陀螺仪姿态解算

    之前看过学长姿态解算相关代码,因为要做平衡车的项目,希望陀螺仪处理数据能够达到很好的效果,大概2个星期前,看的学长代码,当时把大部分代码看懂是用来干什么的,但原理还是一窍不通,没办法,太高深了hhhhh。用学长的代码很顺利就完成了基本工作,但当时调

    2023年04月08日
    浏览(35)
  • 陀螺仪MPU6050(IIC&源码)

    1. 陀螺仪 1.1   什么是陀螺仪? 检测角度变化的一个装置。 1.1.1  有什么用?? 用于检测角度变化,用角度变化的值判断物体的运动轨迹。 1.1.2  我们怎么用? 我们是使用这个装置(或者说设备)获取到数据,再使用这个数据得到我们想要的信息。 这里我使用陀螺仪获取板

    2024年02月13日
    浏览(40)
  • 陀螺仪小车(Forerake-Car)

    项目简介:搭建一辆有arduino UNO 与rnf24l01组成的小车;手部安装由arduino nano开发板、nrf24l01、imu构成的手势控制器,利用手势控制器检测手部状态、发送信号对小车进行前进,实现基于卡尔曼滤波的MPU6050姿态结算。 如果你想搭建一辆有Arduino UNO和nRF24L01组成的小车,并使用手势

    2024年02月14日
    浏览(80)
  • 三轴陀螺仪解算姿态(四元数)

    三轴陀螺仪可以测量载体在三个轴上的角速度分量,对这些角速度进行积分就可以得到旋转的角度,应用到载体上就可以得到载体的姿态。 假设导航坐标系为东北天,载体坐标系为右前上。 初始载体坐标系和导航坐标系重合,对应的四元数为q=[1,0,0,0],使用此四元数表示 载

    2024年02月05日
    浏览(42)
  • MPU6050六轴陀螺仪外围电路分析

    MPU6050六轴陀螺仪常用的外围电路设计分析 AUX_DA引脚:用于传输辅助数据。通过该引脚,MPU6050可以与外部设备或其他传感器进行数据交换。可以将其他传感器(如磁力计)连接到AUX_DA引脚,以获取额外的数据或实现其他特殊功能。 AUX_CL引脚:用于提供辅助时钟信号。MPU6050可

    2024年01月25日
    浏览(41)
  • 陀螺仪与加速度计的姿态融合——互补滤波

    本篇文章我们来讲讲如何将陀螺仪和加速度计的数据结合起来,获取更准确的姿态数据,使用的是互补滤波的方法。 阅读本文需有一定的知识基础,可以参见作者以前MPU6050的两篇文章:《MPU6050陀螺仪和加速度计数据的获取和校准》、《MPU6050官方DMP的移植和使用》,以及了解

    2024年02月03日
    浏览(48)
  • 陀螺仪mpu6050的使用(附带HAL的使用)

    我们日常见的陀螺仪模块的使用就是在平衡小车和控制小车的移动上,那么陀螺仪是怎么使用的呢,首先就是能很好的使用I2C,而看到这里,说的一切都是虚的,首先陀螺仪的配置和数据手册大家也是没少看的,但是还是跟我再了解一遍. MPU6050内部整合了三轴MEMS陀螺仪、三轴

    2024年02月13日
    浏览(55)
  • 【QT】OpenGL显示六轴陀螺仪3D实时姿态

    https://blog.csdn.net/qq_35629971/article/details/126203543?spm=1001.2014.3001.5506 新建一个qt的空白工程,附带UI界面,我的工程名称就叫my_3d UI界面可以可以放一些自己想要的按键、文本或者其他控件。这个不影响3D效果的展示,这些控件都会展示在3D效果图的上层,不会被3D效果覆盖 首先我们

    2024年02月02日
    浏览(44)
  • MPU6050 加速度计和陀螺仪传感器与 Arduino 连接

    MPU6050是一款非常流行的加速度计陀螺仪芯片,具有六轴感应和 16 位测量分辨率。这种意义上的高精度和低廉的成本使其在 DIY 社区中非常受欢迎。甚至许多商业产品都配备了 MPU6050。陀螺仪和加速度计的组合通常被称为惯性测量单元或 IMU。 IMU 传感器用于各种应用,例如手机

    2024年02月02日
    浏览(58)
  • 【Android入门到项目实战-- 9.5】—— 陀螺仪传感器的详细使用教程

    目录 陀螺仪传感器 1、基础知识  2、实战使用         返回x、y、z轴的角加速度数据。         水平逆时针旋转,z轴为正,顺时针为负;         向左旋转,y轴为负,向右旋转,y为正;         向上旋转,x为负,向下旋转,x为正。 修改activity_main.xml代码如下:

    2024年02月12日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包