如何校正外部环境引起的传感器漂移?

我有一个电磁传感器,它能够报告它在空间中读取的电磁场强度。我还有一台设备可以发射电磁场,覆盖1米的范围。

所以我想通过传感器的读数来预测它的位置。但是传感器受到金属的影响,导致位置预测发生漂移。

就好像如果读数是1,当你把它放在金属附近时,读数会变成2。类似的情况。这不仅仅是噪音,而是一种永久性的漂移。除非你移走金属,否则读数总是2。

我需要学习哪些技术或主题来从读数2恢复到读数1?假设金属固定在空间中的某个位置,我可以通过先将其放置在金属附近来校准传感器。

你可以建议任何关于去除漂移的一般方法。另外,请考虑我可以将另一个发射器放置在某个地方,这样我应该能够更容易恢复真实读数。


回答:

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

sensor_output = emitter_effect + environment_effect

你希望得到emitter_effect,而不包括environment_effect的增加。所以,你当然需要进行减法:

emitter_effect = sensor_output - environment_effect 

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

简单的方法通常使用一个单独的传感器来估算environment_effect。我不确定你的具体情况,但你可能能够选择一个能够独立测量你设置中干扰(金属)数量的传感器。

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

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

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

这是一个复杂的主题,所以你应该预期会有一个陡峭的学习曲线。卡尔曼滤波(以及相关的贝叶斯估计方法)是从“坏的传感器读数”转换到“校正后的传感器读数”的正式方法。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注