https://blog.csdn.net/u012325601/article/details/60882949

陀螺仪随机误差的Allan方差分析

GitHub仓库:https://github.com/XinLiGitHub/GyroAllan

PS:博文不再更新,后续更新会在GitHub仓库进行。

1,前言

陀螺仪的随机误差主要包括:量化噪声、角度随机游走、零偏不稳定性、角速率随机游走、速率斜坡和正弦分量。对于这些随机误差,利用常规的分析方法,例如计算样本 均值和方差,并不能揭示出潜在的误差源。另一方面,在实 际工作中通过对自相关函数和功率谱密度函数加以分析将随 机误差分离出来是很困难的。Allan方差法是20世纪60年代由美国国家标准局的David Allan提出的,它是一种基于时域的分析方法。Allan方差法 的主要特点是能非常容易地对各种误差源及其对整个噪声统 计特性的贡献进行细致的表征和辨识,而且具有便于计算、 易于分离等优点。

2,MATLAB程序

allan.m文件

  1. function [T,sigma] = allan(omega,fs,pts)

  2. [N,M] = size(omega); % figure out how big the output data set is

  3. n = 2.^(0:floor(log2(N/2)))'; % determine largest bin size

  4. maxN = n(end);

  5. endLogInc = log10(maxN);

  6. m = unique(ceil(logspace(0,endLogInc,pts)))'; % create log spaced vector average factor

  7. t0 = 1/fs; % t0 = sample interval

  8. T = m*t0; % T = length of time for each cluster

  9. theta = cumsum(omega)/fs; % integration of samples over time to obtain output angle θ

  10. sigma2 = zeros(length(T),M); % array of dimensions (cluster periods) X (#variables)

  11. for i=1:length(m) % loop over the various cluster sizes

  12. for k=1:N-2*m(i) % implements the summation in the AV equation

  13. sigma2(i,:) = sigma2(i,:) + (theta(k+2*m(i),:) - 2*theta(k+m(i),:) + theta(k,:)).^2;

  14. end

  15. end

  16. sigma2 = sigma2./repmat((2*T.^2.*(N-2*m)),1,M);

  17. sigma = sqrt(sigma2);

nihe.m文件

  1. function C=nihe(tau,sig,M)

  2. X=tau';Y=sig';

  3. B=zeros(1,2*M+1);

  4. F=zeros(length(X),2*M+1);

  5. for i=1:2*M+1

  6. kk=i-M-1;

  7. F(:,i)=X.^kk;

  8. end

  9. A=F'*F;

  10. B=F'*Y;

  11. C=A\B;

gyro_data.m文件

  1. clc;

  2. clear;

  3. data = dlmread('data.dat'); %从文本中读取数据,单位:deg/s,速率:100Hz

  4. data = data(720000:2520000, 3:5)*3600; %截取保温两个小时后的,五个小时的数据,把 deg/s 转为 deg/h

  5. [A, B] = allan(data, 100, 100); %求Allan标准差,用100个点来描述

  6. loglog(A, B, 'o'); %画双对数坐标图

  7. xlabel('time:sec'); %添加x轴标签

  8. ylabel('Sigma:deg/h'); %添加y轴标签

  9. legend('X axis','Y axis','Z axis'); %添加标注

  10. grid on; %添加网格线

  11. hold on; %使图像不被覆盖

  12. C(1, :) = nihe(A', (B(:,1)').^2, 2)'; %拟合

  13. C(2, :) = nihe(A', (B(:,2)').^2, 2)';

  14. C(3, :) = nihe(A', (B(:,3)').^2, 2)';

  15. Q = sqrt(abs(C(:, 1) / 3)); %量化噪声,单位:deg/h

  16. N = sqrt(abs(C(:, 2) / 1)) / 60; %角度随机游走,单位:deg/h^0.5

  17. Bs = sqrt(abs(C(:, 3))) / 0.6643; %零偏不稳定性,单位:deg/h

  18. K = sqrt(abs(C(:, 4) * 3)) * 60; %角速率游走,单位:deg/h/h^0.5

  19. R = sqrt(abs(C(:, 5) * 2)) * 3600; %速率斜坡,单位:deg/h/h

  20. fprintf('量化噪声 X轴:%f Y轴:%f Z轴:%f 单位:deg/h\n', Q(1), Q(2), Q(3));

  21. fprintf('角度随机游走 X轴:%f Y轴:%f Z轴:%f 单位:deg/h^0.5\n', N(1), N(2), N(3));

  22. fprintf('零偏不稳定性 X轴:%f Y轴:%f Z轴:%f 单位:deg/h\n', Bs(1), Bs(2), Bs(3));

  23. fprintf('角速率游走 X轴:%f Y轴:%f Z轴:%f 单位:deg/h/h^0.5\n', K(1), K(2), K(3));

  24. fprintf('速率斜坡 X轴:%f Y轴:%f Z轴:%f 单位:deg/h/h\n', R(1), R(2), R(3));

  25. D(:, 1) = sqrt(C(1,1)*A.^(-2) + C(1,2)*A.^(-1) + C(1,3)*A.^(0) + C(1,4)*A.^(1) + C(1,5)*A.^(2)); %生成拟合函数

  26. D(:, 2) = sqrt(C(2,1)*A.^(-2) + C(2,2)*A.^(-1) + C(2,3)*A.^(0) + C(2,4)*A.^(1) + C(2,5)*A.^(2));

  27. D(:, 3) = sqrt(C(3,1)*A.^(-2) + C(3,2)*A.^(-1) + C(3,3)*A.^(0) + C(3,4)*A.^(1) + C(3,5)*A.^(2));

  28. loglog(A, D); %画双对数坐标图

3,运行结果

量化噪声          X轴:0.458971 Y轴:0.564662 Z轴:1.118367  单位:deg/h
         角度随机游走  X轴:0.231291 Y轴:0.273737 Z轴:0.532305  单位:deg/h^0.5
         零偏不稳定性  X轴:8.264598 Y轴:8.849770 Z轴:7.367757  单位:deg/h
         角速率游走      X轴:42.156012 Y轴:40.870664 Z轴:32.268721  单位:deg/h/h^0.5
         速率斜坡          X轴:43.040958 Y轴:40.022454 Z轴:11.171091  单位:deg/h/h

注意:当Allan标准差的拟合多项式中的拟合系数是负值时,所得误差项的拟合结果随着相关时间的微小改变变化很大,拟合误差很大,可信度差。

陀螺仪随机误差的Allan方差分析相关推荐

  1. allan方差 imu_MEMS-IMU随机误差的Allan方差分析

    MEMS-IMU 随机误差的 Allan 方差分析 厉宽宽 , 陈允芳 , 程敏 , 王云鹏 [摘 要] 随着微机电系统-惯性测量单元 (MEMS-IMU) 技术的发展 , 低成本惯 性导航系统 (I ...

  2. PSINS之基于Allan方差分析的陀螺仪漂移误差辨识与仿真复现

    本博文主要对严恭敏老师在导航定位学报中发表的一篇论文进行简要整理,参考文献如下: 严恭敏,李梓阳,朱宏堡.基于Allan 方差分析的陀螺仪漂移误差辨识与仿真复现[J/OL].导航定位学报. https ...

  3. 关于Allan方差分析陀螺仪误差的几个摘要

    1. Allan方差分析主要用于分析陀螺量化噪声.角度随机游走噪声(角速率白噪声).零偏不稳定性.角速率随机游走(角加速度白噪声)和速率斜坡(角速率常值趋势项),等五种典型误差.有些文献也提到可用于分 ...

  4. Allan方差分析方法的直观理解

    Allan方差是时频分析和惯性导航领域常用的一种误差分析方法,它有效地刻画了待研究的误差时间序列在不同时间尺度上的波动水平(不稳定性),并可根据不同时间尺度上的Allan方差值所构成的曲线的形状特征来 ...

  5. 无人驾驶算法学习(十一):IMU标定及Allan方差分析

    文章目录 0.引言 标定IMU的工具包参考港科大的github: https://github.com/gaowenliang/imu_utils 1.安装依赖: sudo apt-get insta ...

  6. 陀螺 Allan 方差分析

    在IMU选型时,需要重点关注陀螺的随机游走和零偏稳定性参数,这些是影响姿态精度的主要参数. 一般,芯片手册上给定的参数比较理想.需要在拿到硬件后,进行误差分析,多次测试看其性能. 陀螺噪声分析不适用A ...

  7. 随机误差与Allan方差的理解

    以下主要以,MEMS惯性器件的误差分析为例: 1.确定性误差 主要考虑标度因数误差.零偏和轴失准误差. 1.1加速度计 加速度计误差模型 [ f x o f y o f z o ] = [ s a x ...

  8. IMU误差模型与校准

    目录 IMU误差模型和校准 参考文献 1 IMU的误差来源 2 IMU校准 IMU误差模型和校准 参考文献 1 Tedaldi D, Pretto A, Menegatti E. A robust a ...

  9. Allan方差:标准allan方差求取和重叠(Overlaping)方差求取 如何计算各个参数值!

    Allan介绍: 对于随机误差,利用常规的分析方法,例如计算样本均值和方差并不能揭示潜在的误差源,另一方面,虽然自相关函数和功率谱密度函数分别从时域和频域描述了随机误差的统计特性,但是在实际工作中通过 ...

最新文章

  1. python批处理修改文件的名字
  2. python面试常用问题_Python面试中最常见的25个问题-结束
  3. 数字新写法3_000_000,简单明了
  4. web developer tips (70):使用命令脚本安装IIS7
  5. mysql 存储过程cursor_MySQL 的存储过程写法和Cursor的使用
  6. 【JZOJ3598】【CQOI2014】数三角形
  7. 系统集成项目管理工程师考试复习-Part3
  8. 机器学习:单变量线性回归及梯度下降
  9. python模块 - re模块使用示例
  10. python github 12306 文贤平_GitHub排名第一!免费最强“抢票神器”在手,程序员抢票再不用跪求加速包...
  11. WinPE启动U盘工具箱 (通用PE工具箱ISO映像文件)
  12. 1到20的阶乘和是多少 php,20的阶乘(1到20的阶乘和结果)
  13. AI模型的大一统!多模态领域乱杀的十二边形战士
  14. HDB3码编码规则通俗易懂讲解
  15. 苏州大学 数据库题库
  16. 阿里云服务器ECS不能通过浏览器(外网)访问的解决办法
  17. Java Web 后续(三)
  18. 关于高压线路如何防山火
  19. 多可文档管理服务器,【多可文档管理系统怎么用】多可文档管理系统好不好_使用技巧-ZOL软件百科...
  20. 布局与控件(七)-ListView知多少(上)

热门文章

  1. iPad连android热点掉线,iphone热点总掉线怎么办?苹果手机保持热点不断开的方法...
  2. 野火buildroot
  3. 使用imageIO获取和修改图片的exif信息
  4. 伸缩自如的ElasticSearch——通过bboss操作和访问elasticsearch模式
  5. 第四章、面向对象(2)
  6. 计算机辅助翻译技术的好处,计算机辅助翻译原理与实践
  7. 电脑白屏,笔记本电脑白屏是怎么回事 笔记本电脑白屏解决方法【详解】
  8. ROC曲线,AUC面积
  9. 常见音频文件格式的特点。
  10. DirectX函数归纳总结