滤除低频偏差

信息处理 过滤器
2022-02-19 00:44:10

我正在尝试使用 GPS 和陀螺仪推断车辆的方位。

为此,我首先使用陀螺仪读数和车辆的(已知)偏航轴获得偏航分量,然后随着时间的推移整合结果并将其添加到之前的轴承。

我已经实现了以下内容的实时可视化:

  • 车辆偏航轴方向
  • 陀螺仪报告的旋转矢量的方向
  • 原始 GPS 方位
  • 外推轴承

大约有一半的时间效果很好:外推的方位在车辆转弯时平稳移动,并且 GPS(更新一秒后)几乎完美地与它对齐。另一半时间,陀螺仪似乎受到偏差的影响,导致外推轴承即使在车辆静止时也会漂移。

可视化显示陀螺仪旋转矢量随机改变方向,只要我没有遇到偏差问题并且车辆没有转动(表明我从陀螺仪得到接近白噪声的东西,这就是我'会期望)。当偏差问题发生时,陀螺仪方向保持不变,证实了我的怀疑,我患有偏差。

基于车辆在同一方向上转向的时间不会超过 1 到 4 分钟的假设,并且观察到偏差以更长的时间间隔(几分钟)来来去去,我尝试使用高通滤波器来消除偏差。我使用了 5 阶巴特沃斯滤波器。

初始截止频率为1240Hz(对应 4 分钟的周期),当我将设备旋转 90° 时π2rads,一旦旋转停止,轴承就会向相反的方向漂移。然后我从那里开始向下工作:在11800Hz(半小时)效果仍然可见,但要弱得多,并且在13600Hz(一小时)它几乎消失了。

真实世界的测试13600Hz,然而,仍然导致随机偏差,比我在原始值中所经历的还要大.

然后我尝试将频率增加到115Hz并注意到我可能患有过冲,因为轴承现在反弹并在旧轴承和新轴承之间的某个值附近振荡。

然后我又回到了原来的1240Hz并试验了滤波器阶数和特性:首先我尝试了一个一阶巴特沃斯滤波器,然后是一个五阶贝塞尔滤波器——但无济于事。

这里的错误在哪里,我如何在不引入任何其他甚至更不理想的工件的情况下消除偏见?

1个回答

我决定采用不同的方法:我现在不是通过过滤器传递原始加速度计数据并在过冲和振铃与偏差之间进行选择,而是通过定期比较外推值来检测偏差ΔψgyroΔψGPS

  1. 最初假设零偏差。
  2. 对于每个外推步骤,从测量值中减去偏差ωψ
  3. 在每个新的 GPS 方位上,计算偏差的变化ΔψgyroΔψGPSt
  4. 将此更改添加到先前的偏差估计
  5. 确定新偏差估计的准确性,考虑ψGPS, 陀螺仪输出在静止和经过时间的近似标准偏差
  6. 如果我们有先前的偏差估计(除了初始假设为零),通过卡尔曼滤波器运行旧的和新的偏差估计;否则只需继续新的偏差估计
  7. 返回步骤 2。

到目前为止,结果看起来不错——这在不引入任何新伪像的情况下明显减少了偏差。响应能力仍然需要提高,我可以通过调整我的准确度模型来解决这个问题。