校准和标准化来自多个温度传感器的读数的算法
Algorithm to calibrate & normalize readings from multiple temperature sensors
我正在构建自定义 HVAC 控制器。除其他外,它将在多个位置安装温度传感器。问题是,在任何给定时刻,传感器对当前气温的看法都略有不同。
例如,现在,我得到以下读数(所有传感器都在同一个位置):
- 75.4F (SHT11)
- 77.0F (HTU21d)
- 77.7F (BME280)
- 76.1F (DS18B20)
- 76.1F (DS18B20)
- 76.5F (DS18B20)
- 75.7F (DS18B20)
一旦我用这些传感器在不同位置(比如,冰柜内、冰箱内、我在空调房间的桌子上和外面的阴凉处)收集了几组同步读数,就可以看看他们在测量(或多或少)相同的环境空气温度时的个人意见有何不同,我需要以某种方式想出一种算法来将他们的个人读数标准化到某个合理一致的共识温度。
在这种情况下,"real" 温度为 "whatever consensus temperature seems to have the best linear agreement among all the sensors"。
现在,最大的问题是……我该怎么做?
我将使用 C++ 实现它(在 Arduino 上,但此时它纯粹是一个 "C++ and algorithm" 问题,而不是硬件问题)。
有几种方法可以找到 "consensus"
最简单的2个:
- 简单平均值(总结所有温度并除以传感器数量)[如果你有一个强大的离群值,将会出现]
- 中位数(排序然后取中间的值)
查看更多信息https://en.wikipedia.org/wiki/Median#Other_median-related_concepts
对于您所说的 "best linear agreement" => 这只是简单的平均值。但我会推荐中位数 - 根据我的经验,这通常是更好的选择,因为它对异常值更有弹性。
原谅我自吹自擂。我在我的论文 Unified Prediction and Diagnosis in Engineering Systems by means of Distributed Belief Networks 中研究了这个问题和相关问题。请参阅第 6 章,尤其是第 6.5 节。
我考虑了模型,其中传感器状态(以一种或多种方式工作或发生故障)是一个变量,除了被测量的未知实际变量和已知测量值。通过对传感器状态的推理,您可以得到一些有趣的现象,如第 1 节中所述。 6.5,例如传感器同意,一个传感器显然出现故障,传感器相互投票,并且所有人都不同意。
论文中没有包含传感器模型的公式。 6.5,但如果有兴趣,我想我可以为您生成它们。或者,当然,您也可以导出它们。
我正在构建自定义 HVAC 控制器。除其他外,它将在多个位置安装温度传感器。问题是,在任何给定时刻,传感器对当前气温的看法都略有不同。
例如,现在,我得到以下读数(所有传感器都在同一个位置):
- 75.4F (SHT11)
- 77.0F (HTU21d)
- 77.7F (BME280)
- 76.1F (DS18B20)
- 76.1F (DS18B20)
- 76.5F (DS18B20)
- 75.7F (DS18B20)
一旦我用这些传感器在不同位置(比如,冰柜内、冰箱内、我在空调房间的桌子上和外面的阴凉处)收集了几组同步读数,就可以看看他们在测量(或多或少)相同的环境空气温度时的个人意见有何不同,我需要以某种方式想出一种算法来将他们的个人读数标准化到某个合理一致的共识温度。
在这种情况下,"real" 温度为 "whatever consensus temperature seems to have the best linear agreement among all the sensors"。
现在,最大的问题是……我该怎么做?
我将使用 C++ 实现它(在 Arduino 上,但此时它纯粹是一个 "C++ and algorithm" 问题,而不是硬件问题)。
有几种方法可以找到 "consensus"
最简单的2个:
- 简单平均值(总结所有温度并除以传感器数量)[如果你有一个强大的离群值,将会出现]
- 中位数(排序然后取中间的值)
查看更多信息https://en.wikipedia.org/wiki/Median#Other_median-related_concepts
对于您所说的 "best linear agreement" => 这只是简单的平均值。但我会推荐中位数 - 根据我的经验,这通常是更好的选择,因为它对异常值更有弹性。
原谅我自吹自擂。我在我的论文 Unified Prediction and Diagnosis in Engineering Systems by means of Distributed Belief Networks 中研究了这个问题和相关问题。请参阅第 6 章,尤其是第 6.5 节。
我考虑了模型,其中传感器状态(以一种或多种方式工作或发生故障)是一个变量,除了被测量的未知实际变量和已知测量值。通过对传感器状态的推理,您可以得到一些有趣的现象,如第 1 节中所述。 6.5,例如传感器同意,一个传感器显然出现故障,传感器相互投票,并且所有人都不同意。
论文中没有包含传感器模型的公式。 6.5,但如果有兴趣,我想我可以为您生成它们。或者,当然,您也可以导出它们。