Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 校准算法&;使多个温度传感器的读数正常化_C++_Statistics_Normalization - Fatal编程技术网

C++ 校准算法&;使多个温度传感器的读数正常化

C++ 校准算法&;使多个温度传感器的读数正常化,c++,statistics,normalization,C++,Statistics,Normalization,我正在建造一个定制的暖通空调控制器。除其他外,它将在多个位置安装温度传感器。问题是,在任何给定时刻,传感器对当前空气温度的看法都略有不同 例如,现在,我得到以下读数(所有传感器位于同一位置): 75.4F(SHT11) 77.0F(HTU21d) 77.7F(BME280) 76.1F(DS18B20) 76.1F(DS18B20) 76.5F(DS18B20) 75.7F(DS18B20) 一旦我用这些传感器在不同的位置(比如,在冰箱内、冰箱内、空调房间的桌子上和阴凉处)收集了几组同步读数

我正在建造一个定制的暖通空调控制器。除其他外,它将在多个位置安装温度传感器。问题是,在任何给定时刻,传感器对当前空气温度的看法都略有不同

例如,现在,我得到以下读数(所有传感器位于同一位置):

  • 75.4F(SHT11)
  • 77.0F(HTU21d)
  • 77.7F(BME280)
  • 76.1F(DS18B20)
  • 76.1F(DS18B20)
  • 76.5F(DS18B20)
  • 75.7F(DS18B20)
一旦我用这些传感器在不同的位置(比如,在冰箱内、冰箱内、空调房间的桌子上和阴凉处)收集了几组同步读数,看看他们在测量(或多或少)相同的环境空气温度时的个人意见有何不同,我需要想出一个算法,将他们的个体读数标准化为合理一致的一致温度

在这种情况下,“真实”温度是“在所有传感器中,任何一致的温度似乎都具有最佳的线性一致性”

现在,大问题。。。我该怎么做?


我将用C++实现这个(在ARDUIO上,但是在这里,它纯粹是一个C++和算法问题,不是硬件问题)。 最简单的2:

  • 简单平均值(将所有临时值加起来,除以传感器数量)[如果存在强异常值,则会重新计算]
  • 中位数(排序,然后取中间的值)
  • 有关更多信息,请查看


    对于您所说的“最佳线性一致”=>这只是简单的平均值。但我还是推荐中位数——根据我的经验,这通常是更好的选择,因为它对异常值更具韧性。

    请原谅我自吹自擂。我在论文中研究了这个问题和相关的问题。见第6章,特别是第6.5节

    我考虑的模型中,传感器状态(以一种或多种方式工作或发生故障)是一个变量,此外还有待测量的未知实际变量和已知测量值。通过对传感器状态的推理,您可以得到一些有趣的现象,如第节所述。6.5,例如:传感器同意,一个传感器明显出现故障,传感器相互投票反对,所有传感器都不同意


    本论文不包含Sec中传感器模型的公式。6.5但是如果有兴趣的话,我想我可以为您生成它们。或者,当然,你也可以推导出它们。

    这个标准与简单的平均值有什么不同?测量值不是意见,所以测量值显示了该点的温度梯度。此外,分析时必须考虑传感器误差,因为DS18B20为+/-0.5C。其他相关问题是该值将用于显示什么?控制如果显示,那么平均值就足够了,对于控制来说,基于每个测量项目的物理体积的“加权”平均值可能更好。每个人似乎都在说要取平均值,但据我所知,似乎您希望保留所有数据点,但“规范化”它们以使它们彼此一致。看看高斯平滑。。。这可能就是你要找的。@Luis-大多数温度传感器引用的错误规格几乎毫无意义,除非你的用例是“从装配线上随机挑选一个,读取读数,并按面值接受”(例如,如果您打算将其粘贴到大规模生产的产品中,如带有LCD显示屏的气象站,并且在没有进一步验证和校准的情况下使用它).事实上,它们的准确度要高得多,只要你能将其中的2到3个样本与已知的参考进行比较,以确定误差的偏移量和斜率。这肯定是我的想法,尽管我仍在努力理解它,因为它有点超出我的理解力;-)我很高兴听到你感兴趣。所有的贝叶斯网络只是一个形式化的东西,或者说是假设理性信念是由概率表示的。这实际上比通常的公式更简单,因为它在平等的基础上考虑了所有不确定性来源(关于假设、参数、未观察到的变量、观察到的变量和任何其他方面的不确定性)。我最喜欢的介绍是R.T.考克斯的《概率、频率和合理预期》,美国物理学杂志,14:1(1946)。