陀螺仪那点事

首先从问题说起,因为我最近在和陀螺仪厂商讨论陀螺仪对我们真正使用的影响。所以我先从陀螺仪的指标说起,基本知识会放在后面。
首先介绍一下零偏的的概念。

陀螺仪数据问题

零偏

零偏:称为零位漂移或零位偏移或零偏稳定性,也可简称零漂或漂移率,英文中称为drift 或bias drift。零偏应理解为陀螺仪的输出信号围绕其均值的起伏或波动,习惯上用标准差(σ)或均方根(RMS )表示,一般折算为等效输入角速率(°/ h) 。在角速度输入为零时,陀螺仪的输出是一条复合白噪声信号缓慢变化的曲线,曲线的峰-峰值就是零偏值(drift ),如图2-6所示。在整个性能指标集中,零偏是评价陀螺仪性能优劣的最重要指标。

这个零偏值在spec中是如何定义的呢?
ZERO-RATE OUTPUT (ZRO) 零速率输出
Initial ZRO Tolerance 初始化零速率输出偏移
这个偏移的范围 -10 ~+10

但是对于零偏还有一个衡量参数
Total RMS Noise 这个值是就是提到的标准差
这个标准差的值 小于0.2 dps (度/s)

在导航的时候,会在静止阶段来做零偏的校准。但是这个值的抖动,就是会影响我们对于这个数据的使用。

对于陀螺仪其他的几个比较难理解的指标,我写在附录里

附录:

零偏

零偏,又称为零位漂移或零位偏移或零偏稳定性,也可简称零漂或漂移率,英文中称为drift 或bias drift。零偏应理解为陀螺仪的输出信号围绕其均值的起伏或波动,习惯上用标准差(σ)或均方根(RMS )表示,一般折算为等效输入角速率(°/ h) 。在角速度输入为零时,陀螺仪的输出是一条复合白噪声信号缓慢变化的曲线,曲线的峰-峰值就是零偏值(drift ),如图2-6所示。在整个性能指标集中,零偏是评价陀螺仪性能优劣的最重要指标。

分辨率

陀螺仪中的分辨率是用白噪声定义的,如图2-6 中所示,可以用角随机游走来表示,可以简化为一定带宽下测得的零偏稳定性与监测带宽的平方根之比,其单位为 °ℎ−1 °。角度随机游走表征了长时间累积的角度误差。角随机游动系数反映了陀螺在此处键入公式。的研制水平,也反映了陀螺可检测的最小角速率能力,并间接反映了与光子、电子的散粒噪声效应所限定的检测极限的距离。据此可推算出采用现有方案和元器件构成的陀螺是否还有提高性能的潜力。

标度因子

标度因子是陀螺仪输出量与输入角速率变化的比值,通常用某一特定的直线斜率表示,该斜率是根据整个正(或负) 输入角速率范围内测得的输入/输出数据,通过最小二乘法拟合求出的直线斜率。对应于正输入和负输入有不同的刻度因子称为刻度因子不对称,其表明输入输出之间的斜率关系在零输入点不连续。一般用刻度因子稳定性来衡量刻度因子存在的误差特性,它是指陀螺在不同输入角速率情况下能够通过标称刻度因子获得精确输出的能力。非线性往往与刻度因子相关,是指由实际输入输出关系确定的实际刻度因子与标称刻度因子相比存在的非线性特征,有时还会采用线性度,其指陀螺输入输出曲线与标称直线的偏离程度,通常以满量程输出的百分比表示。

动态范围

陀螺在正、反方向能检测到的输入角速率的最大值表示了陀螺的测量范围。该最大值除以阀值即为陀螺的动态范围,该值越大表示陀螺敏感速率的能力越强。

带宽

带宽是指陀螺能够精确测量输入角速度的频率范围,这个频段范围越大表明陀螺的动态响应能力越强。对于开环模式工作的陀螺,带宽定义为响应相位从0到滞后90度对应的频段,也可等同定义为振幅响应比为0.5 即3dB 点对应的频段。对于闭环模式工作的陀螺,带宽定义为控制及解调电路的带宽,一般指解调电路中使用的低通滤波器的截至频率。电路带宽实际上是反映该电路对输入信号的响应速度,带宽越宽,响应速度越快,允许通过的信号频率越高,若频率为某一值的正弦波信号通过电路时其能量被消耗一半,则这个频率便是此电路的带宽。

参考文章

陀螺仪误差分析、处理与选型
imu误差的效果
陀螺仪的偏移对于速度的影响是二次的,对于位置的影响是三次的。
对于收敛的并且设计很好的滤波器,估计和去除imu的误差,能够提高姿态的精度和长期稳定性

常见误差项:
首先介绍几个常见的概念:
1.重复性
假设所有的条件一样,对于相同的输入,传感器输出相同的值的能力(对于每次启动都相同)。陀螺仪的零偏不具有重复性。
2.稳定性
对于同样的输入,在同一次启动,输出值都是相同的。
3.漂移
输出随着时间的变化(零漂是输入为0的时候的输出)

确定性误差
传感器非正交性(安装误差):
三轴加速度计和陀螺仪的三个轴不是完全的正交的,例如对于加速度计,理想情况下其中一个轴测量重力,其他两个轴不应该有输出。传感器不正交会出现在安装和封装的时候。生产和标定能够一定程度的解决这个问题,在系统运行的时候持续的估计和矫正也是一种解决方法。
尺度误差(scale)
随机噪声
《Notes on Stochastic Errors of Low Cost MEMS Inertial Units》
陀螺仪的噪声分析不适用arma模型,应该使用allan variance。
因为arma模型假设所有的误差都是完全客观的,然而在实际中:传感器的输出受到噪声的影响,而且是不同的独立随机过程的和;目前的arma模型能够解决噪声的影响,但是不能够解决独立随机过程的系数问题。误差中最主要的是:(1)零偏、温漂;(2)角速率噪声,也叫作随机游走

所有噪声可以建模为:
y(t)=u(t)+e(t)+b(T)+N(a,ω,T,t)(1)
allan variance 建模
b(T)表示温漂,一般不考虑,可以通过温度补偿来做

N(a,ω,T,t)表示加速度,角速度,温度和时间等总的因素造成的影响(G 的依赖性(加速度影响),对于mems陀螺仪来说,有可能受到重力的影响,可以通过建模并采用一定的方法去除这个影响)

e(t)=ARW(t)+F(t)+Q(t)+S(t)表示随机噪声

陀螺仪的误差分类
a。量化噪声Q(t)(Quantization Noise)
AD采样导致的噪声,量化噪声具有很宽的带宽,属于高频噪声,可以用低通滤波器处理或通过导航的积分环节去除,对精度的影响不大;
量化噪声的分辨率为Δ(和AD的位数有关系),采样频率为f=1/τ(手册中会介绍采样的频率),τ为采样时间,则量化噪声的功率谱密度为SΔ(f)=τ0Q2,Allan方差为σ2QN(τ)=3Q2τ2。
量化噪声属于高频噪声,在实际的应用中可进行低通滤波处理或大部分被导航的积分环节滤除。

b。角度随机游走(ARW(t))(Angular Random Walk)
高斯白噪声的影响,需要区别角速率输出还是角增量输出,mpu6050是角速度输出。
角度随机游走的功率谱密度为SΩ(f)=N2,Allan方差为σ2ARW(τ)=N2τ
一般陀螺仪内部会有低通滤波器。白噪声功率谱密度的等效带宽,叫作陀螺仪的带宽;(惯性仪器,157页))通过高频采样和低通滤波能够降低mems陀螺仪的角度随机游走噪声;

从另外一个角度分析:
假设每次测量的角速度受到白噪声的影响,即δθk=δθ+Nk∗τ,其中Nk为独立同分布的零均值白噪声,标准差σ,则经过时间n⋅τ之后,误差为

e=τ∑i=1nNi
从而e的数学特征为E(e)=0,Var(e)=δt2nVar(N)=δt⋅t⋅σ2
所以σ(e)=σ⋅δt⋅t−−−−√
因此,在手册中一般将上面的噪声常时间的积分的标准差记做

ARW=σθ(1)
单位为∘/h−−√

c。零偏不稳定性(F(t))(Bias Instability) ,也叫作闪变噪声(Flicker Noise)
准确的来说,并不是只有零偏导致偏移,零偏是没有运动时平均输出。零偏不稳定性即零偏会随着时间缓慢的变化。这是由于内部电磁的善变噪声和外部影响导致的,而且每次启动之初的零偏是不相同的。
零偏不稳定性的功率谱为SΩ(f)=B22πf,Allan方差为σ2BI(τ)=4B29
零偏的不稳定性描述一段时间之后,MEMS的零偏的变化情况。零偏稳定性通常定义为1σ值,单位为∘/h−−√。举例来说,假设当前时刻的零偏是已知的Bt,经过100s后,零偏的均值为Bt,标准差为0.01∘/h−−√。实际上,零漂并不是一个完全的随机游走,它的范围是有限的。零漂对角度的影响是线性的。

d。速率斜坡(Rate Ramp)
陀螺的角速率输出随着时间缓慢变化,通常由系统误差引起,比如环境温度的缓慢变化,可以通过严格的环境控制或引入补偿来降低此类误差。这个不应该存在,而且可以通过一定的措施去除掉。貌似就是b(T)温漂
温度补偿和温度闭环两种方法比较:温度补偿很难做,而且效果不好,一般使用温度闭环;

e。指数相关噪声(Exponential Correlation Noise)和正弦噪声S(t)(Sinusoidal Noise)
正弦噪声:由于mems单元在特定频率工作,所以一般受到正弦噪声的污染;

从算法上需要解决的:(1)角度随机游走(2)零偏不稳定性
图的来源: An introduction to inertial navigation

陀螺仪选型相关参数
陀螺仪选型需要主要两个主要的参数,一个是角度随机游走,另外一个是零偏不稳定性。
陀螺仪手册说明:
(1)Initial Zero Rate Output Tolerance: +/-40 °/s
当陀螺仪静止的时候,陀螺会给出在−40∘/s到+40∘/s之间的一个输出值,也就是初始的零漂值,值得注意的是每次启动的零漂值是不相同的。
(2)ZRO Variation Over Temperature
陀螺的零漂对于温度的敏感性
(3)Power-Supply Sensitivity
电磁的正弦信号的影响对于陀螺零偏的影响
(4)Linear Acceleration Sensitivity
线性加速度对于陀螺角速度的影响
(5)RMS噪声
多次采集的数据的均方根误差,相关的频率是低通滤波的频率,大小和采集的频率也有关系
(6)Rate Noise Spectral Density
速率噪声密度谱,感觉是角度随机游走相关的参数

减少噪声的方法
根据前面的噪声功率谱公式,可以显然的得到,为了减少噪声,可以进行过采样。此外,由于陀螺仪受到角度随机游走的影响,而角度随机游走可以看成是独立、同分布且不相关的,所以可以使用均值滤波。

mems gyro实验相关的结果
(1)不需要考虑地球自转;因为地球自转是7.27e-5 rad/d每秒,已经淹没在噪声中。
imu水平:3分钟静止偏了70度左右;
https://www.cnblogs.com/jian-li/p/5618464.html

  • 19
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
陀螺仪的零飘和温漂是普遍存在的问题,需要进行校准处理。以下是一份去除陀螺仪零飘和温漂的例程: ```c++ #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_L3GD20.h> #define GYROSCOPE_SENSITIVITY 0.00875 Adafruit_L3GD20 gyro; float x_offset, y_offset, z_offset; void setup() { Serial.begin(9600); Wire.begin(); gyro.enableAutoRange(true); gyro.begin(L3DS20_RANGE_500DPS); calibrate_gyroscope(); } void loop() { sensors_event_t event; gyro.getEvent(&event); float x_raw = event.gyro.x; float y_raw = event.gyro.y; float z_raw = event.gyro.z; float x = x_raw - x_offset; float y = y_raw - y_offset; float z = z_raw - z_offset; x *= GYROSCOPE_SENSITIVITY; y *= GYROSCOPE_SENSITIVITY; z *= GYROSCOPE_SENSITIVITY; Serial.print("X: "); Serial.print(x); Serial.print(", Y: "); Serial.print(y); Serial.print(", Z: "); Serial.println(z); delay(100); } void calibrate_gyroscope() { Serial.println("Calibrating gyroscope..."); int samples = 500; float x_sum = 0, y_sum = 0, z_sum = 0; for (int i = 0; i < samples; i++) { sensors_event_t event; gyro.getEvent(&event); x_sum += event.gyro.x; y_sum += event.gyro.y; z_sum += event.gyro.z; delay(10); } x_offset = x_sum / samples; y_offset = y_sum / samples; z_offset = z_sum / samples; Serial.print("X offset: "); Serial.println(x_offset); Serial.print("Y offset: "); Serial.println(y_offset); Serial.print("Z offset: "); Serial.println(z_offset); } ``` 该例程使用了 Adafruit_L3GD20 库读取陀螺仪数据,并通过 calibrate_gyroscope() 函数进行零飘和温漂的校准。在 loop() 函数中,将原始数据减去校准值,并乘以灵敏度得到角速度值。最后将角速度值输出到串口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值