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

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

  Allan方差可以根据输出角θ来计算,对应于每个陀螺速率采样值。
  1.计算每个陀螺输出样本对应的θ。这可以通过以下方式计算:
在这里插入图片描述
  有时这些角度测量是由𝑡𝑡=𝑘𝜏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方差。
在这里插入图片描述
   δ 2 ( τ ) \delta^2(τ) δ2(τ)表示Allan方差是的函数,< >为集合平均值。将上式展开,得到:
在这里插入图片描述
  这里的二进制操作是样本总数,𝑚是平均因子,τ=𝑚 τ 0 τ_0 τ0是平均时间,𝐾是一组从1到N的离散值。
  上式利用陀螺仪的输出角θ计算出某一特定值下的最终速率Allan方差(通过重叠法)值。一旦我们知道了θ的输出角度值、样本周期和𝑚的值,我们就可以用这个方程来计算Allan方差。

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

  最后,对2.1节或2.2节的结果取平方根,就可以得到某一特定值的根Allan方差或Allan偏差的值。这个结果现在将被用来表征陀螺仪中的噪声。
在这里插入图片描述

三、噪声识别

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/243367.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双指针算法专题

前言 双指针算法入门&#xff0c;干就完了 下面的题目都是来自灵神的基础算法精讲&#xff0c;有思路不清晰的地方&#xff0c;可以去看讲解。 灵茶山艾府的个人空间-灵茶山艾府个人主页-哔哩哔哩视频 (bilibili.com) 相向双指针 1.两数之和 题目链接&#xff1a;167. 两数之…

VSCode使用Makefile Tools插件开发C/C++程序

提起Makefile&#xff0c;可能有人会觉得它已经过时了&#xff0c;毕竟现在有比它更好的工具&#xff0c;比如CMake&#xff0c;XMake&#xff0c;Meson等等&#xff0c;但是在Linux下很多C/C源码都是直接或者间接使用Makefile文件来编译项目的&#xff0c;可以说Makefile是基石…

YARN节点故障的容错方案

YARN节点故障的容错方案 1. RM高可用1.1 选主和HA切换逻辑 2. NM高可用2.1 感知NM节点异常2.2 异常NM上的任务处理 4. 疑问和思考4,1 RM感知NM异常需要10min&#xff0c;对于app来说是否太长了&#xff1f; 5. 参考文档 本文主要探讨yarn集群的高可用容错方案和容错能力的探讨。…

查找局域网树莓派raspberry的mac地址和ip

依赖python库&#xff1a; pip install socket pip install scapy运行代码&#xff1a; import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…

【C++】类和对象(上篇)

文章目录 &#x1f6df;一、面向过程和面向对象初步认识&#x1f6df;二、类的引入&#x1f6df;三、类的定义&#x1f4dd;1、类的两种定义方式&#x1f4dd;2、成员变量命名规则的建议 &#x1f6df;四、类的访问限定符及封装&#x1f369;1、访问限定符&#x1f369;2、封装…

医院网络安全建设:三网整体设计和云数据中心架构设计

医院网络安全问题涉及到医院日常管理多个方面&#xff0c;一旦医院信息管理系统在正常运行过程中受到外部恶意攻击&#xff0c;或者出现意外中断等情况&#xff0c;都会造成海量医疗数据信息的丢失。由于医院信息管理系统中存储了大量患者个人信息和治疗方案信息等&#xff0c;…

unity 单例模式(实例详解)

文章目录 在Unity中&#xff0c;单例模式是一种常用的编程设计模式&#xff0c;用于确保在整个应用程序生命周期中&#xff0c;只有一个类的实例存在。这样可以保证数据的全局唯一性和共享性&#xff0c;例如游戏场景中的资源管理器、游戏控制器、事件管理器等。 以下是一个简单…

C++11手撕线程池 call_once 单例模式 Singleton / condition_variable 与其使用场景

一、call_once 单例模式 Singleton 大家可以先看这篇文章&#xff1a;https://zh.cppreference.com/w/cpp/thread/call_once /*std::call_oncevoid call_once( std::once_flag& flag, Callable&& f, Args&&... args ); */ #include <iostream> #i…

C# 使用System.Threading.Timer 实现计时器

写在前面 以往一般都是用 System.Timers.Timer 来做计时器&#xff0c;而 System.Threading.Timer 也可以实现计时器功能&#xff0c;并且还可以配置首次执行间隔&#xff0c;在功能上比System.Timers.Timer更加丰富&#xff1b;根据这个特性就可以实现按指定时间间隔对委托进…

2023年上半年网络工程师真题(1/3)

1.固态硬盘的存储介质是&#xff08;B&#xff09;。 A.光盘 B.闪存 C.软盘 D.磁盘 SSD存储介质是FLASH(一块块的存储芯片)&#xff0c;HDD(机械硬盘)存储介质是磁盘(机械臂和盘道)&#xff0c;补充:U盘的存储介质也是FLASH闪存。 2.虚拟存储技术把&#xff08;A&#xf…

小封装高稳定性振荡器 Sg2520egn / sg2520vgn, sg2520ehn / sg2520vhn

描述 随着物联网和ADAS等5G应用的实施&#xff0c;数据流量不断增长&#xff0c;网络基础设施变得比以往任何时候都更加重要。IT供应商一直在快速建设数据中心&#xff0c;并且对安装在数据中心内部/内部的光模块有很大的需求。此应用需要具有“小”&#xff0c;“低抖动”和“…

Linux_清理docker磁盘占用

文章目录 前言一、docker system 命令1. docker system df&#xff08;本文重点使用&#xff09;2. docker system prune&#xff08;本文重点使用&#xff09;3. docker system info4. docker system events 二、开始清理三、单独清理Build Cache四、单独清理未被使用的网络 前…

特征融合篇 | YOLOv8 引入长颈特征融合网络 Giraffe FPN

在本报告中,我们介绍了一种名为DAMO-YOLO的快速而准确的目标检测方法,其性能优于现有的YOLO系列。DAMO-YOLO是在YOLO的基础上通过引入一些新技术而扩展的,这些技术包括神经架构搜索(NAS)、高效的重参数化广义FPN(RepGFPN)、带有AlignedOTA标签分配的轻量级头部以及蒸馏增…

一文详解 Berachain 测试网:全面介绍与教程,bitget wallet教程

什么是Berachain&#xff1f; Berachain&#xff08;web3.bitget.com/zh-CN/assets/berachain-wallet&#xff09;是一种尖端区块链技术&#xff0c;使用 Cosmos SDK 构建的 Layer-1&#xff0c;兼容以太坊虚拟机&#xff08;EVM&#xff09;。它基于一种独特的概念&#xff0c…

Unity编程#region..#endregion以及面板提示语标签[Tooltip(““)]

C#中的#region..#endregion 在Unity中&#xff0c;#region和#endregion是用于代码折叠的预处理指令。它们并不是Unity特有的&#xff0c;而是C#语言本身提供的功能。 #region用于标记一段代码的开始&#xff0c;而#endregion用于标记一段代码的结束。在编辑器中&#xff0c;可…

基于YOLOv5、v7、v8的竹签计数系统的设计与实现

文章目录 前言效果演示一、实现思路① 算法原理② 程序流程图 二、系统设计与实现三、模型评估与优化① Yolov5② Yolov7③Yolov8 四、模型对比 前言 该系统是一个综合型的应用&#xff0c;基于PyTorch框架的YOLOv5、YOLOv7和YOLOv8&#xff0c;结合了Django后端和Vue3前端&am…

C内存对齐问题

一、主要参考&#xff1a; C/C编程笔记&#xff1a;C语言对齐问题【结构体、栈内存以及位域对齐】_二进制异常退出,栈对齐-CSDN博客 其中关于内存对齐&#xff0c;讲了结构体以及位域&#xff0c;以及一些容易出错的地方&#xff0c;非常好。 结构体对齐&#xff1a; 下面提…

项目风险管理

风险分类&#xff1a; 分类性质&#xff1a;纯粹风险&#xff0c;投机风险---对应火灾&#xff0c;股票买卖 产生原因&#xff1a;自然&#xff0c;社会&#xff0c;政治&#xff0c;经济&#xff0c;技术 风险性质&#xff1a;客观性&#xff0c;偶然性&#xff0c;相对性&a…

MySQL---多表等级查询综合练习

创建emp表 CREATE TABLE emp( empno INT(4) NOT NULL COMMENT 员工编号, ename VARCHAR(10) COMMENT 员工名字, job VARCHAR(10) COMMENT 职位, mgr INT(4) COMMENT 上司, hiredate DATE COMMENT 入职时间, sal INT(7) COMMENT 基本工资, comm INT(7) COMMENT 补贴, deptno INT…

锂电池SOC估计 | PatchTST时间序列模型锂电池SOC估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池SOC估计 | PatchTST时间序列模型锂电池SOC估计 采用新型PatchTST时间序列模型预测锂电池SOC&#xff0c;送锂电池数据集 可替换数据集&#xff0c;实现负荷预测、流量预测、降雨量预测、空气质量预测等其他多种…