如何纠正来自外部环境的传感器漂移?

How do I correct sensor drift from external environment?

我有一个电磁传感器,可以报告它在 space 中读取的电磁场强度。 而且我还有一个发射电磁场的装置。占地1米。

所以我想使用它的读数来预测传感器的位置。 但传感器受金属影响,导致位置预测漂移。

这就像如果读数是 1,你把它放在金属附近,你会得到 2。 像那样的东西。这不仅仅是噪音,它是一种永久性的漂移。除非你移除金属,否则它总是会给出读数 2。

我一般需要学习哪些技巧或主题才能从 2 中恢复阅读 1? 假设金属固定在 space 的某处,我可以先将其放在金属附近来校准传感器。

您可以就一般情况下消除漂移提出任何建议。另外请考虑我可以在某个地方放置另一个发射器,这样我应该能够更容易地恢复真实读数。

我建议您将传感器输出视为两个因素的组合:

sensor_output = emitter_effect + environment_effect

并且您想在不添加 environment_effect 的情况下获得 emitter_effect。所以,当然你需要减去:

emitter_effect = sensor_output - environment_effect 

减去环境对传感器的影响通常称为补偿。为了进行补偿,您需要能够建模或预测您的环境(漂浮在周围的额外金属)对传感器的影响。环境效果模型的形式可以很简单也可以很复杂。

简单的方法通常使用单独的传感器来估计environment_effect。我不确定您的具体情况是什么,但您可以 select 一个传感器,它可以独立测量您设置中的干扰(金属)数量。

更复杂的方法可以在不参考独立传感器测量干扰的情况下进行补偿。例如,如果您预计距离平均为 10.0,只有偶尔的偏差,您可以使用该事实来估计存在多少干扰。以我的经验,这种方法不太可靠;具有用于测量干扰的独立传感器的系统更具可预测性和可靠性。

如果您对基于模型的估计感兴趣,可以开始阅读卡尔曼滤波:

https://en.wikipedia.org/wiki/Kalman_filter

这是一个复杂的主题,因此您应该会遇到陡峭的学习曲线。卡尔曼滤波(以及相关的贝叶斯估计方法)是从 "bad sensor reading" 转换为 "corrected sensor reading" 的正式方法。