【问题标题】:Offsetting the difference between measured and expected data抵消测量数据和预期数据之间的差异
【发布时间】:2014-03-13 09:53:41
【问题描述】:

我正在为一个项目测试温度传感器。我发现预期值和测量值之间存在差异。由于差异在温度范围内是非线性的,因此我不能简单地添加偏移量。有没有办法可以对获取的数据进行某种偏移?

更新 我有一个商用加热器元件,可以加热到设定温度(我按预期命名了这个温度)。另一方面,我有一个温度传感器(我的项目),它测量加热器的温度(这里我将其命名为测量的)。

我注意到测量值和预期值之间的差异,我想对此进行补偿,以便测量值接近预期值。

示例 如果我的传感器测量到 73.3,则应通过某种方式(数学或其他方式)对其进行处理,以便显示它接近 70.25。

希望这能澄清一点。

Measured    Expected
30.5    30.15
41.4    40.29
52.2    50.31
62.8    60.79
73.3    70.28
83      79.7
94      90.39
104.3   99.97
114.8   109.81

感谢您的宝贵时间。

【问题讨论】:

  • 您是要针对特定​​的单个传感器执行此操作,还是希望更正许多相同类型传感器的读数?这是一次性修复还是针对产品?您在最终读数中需要什么级别的准确度?
  • 是的,您能否提供更多关于您希望完成的任务的详细信息,或者提供一个基于虚构数据的所需结果的简单示例?
  • @sean 推断您有一些逻辑(函数)来计算预期是否正确?您想让它更好地接近实际观察到的数据,对吧?
  • @JoeHass 目前仅适用于单个传感器,但我会对一种适用于所有类似传感器的方法感兴趣,因为我相信大多数传感器都会有一些固有的错误。谢谢
  • @lizusek 是的,这就是我的意思,我已经更新了我的问题以显示我的详细信息。谢谢

标签: math microcontroller sensors data-analysis


【解决方案1】:

您有兴趣描述一个变量与另一个变量的偏差。你要找的是功能

g( x) = f( x) - x

它返回近似值、预测、添加到 x 的数字以根据实际 x 输入获得 y 数据。您首先需要根据观察到的 x 值预测 y,即 f(x)。这就是你可以通过回归得到的结果:

x = MeasuredExpected ( what you have estimated, and I assume 
                                        you will know this value)
y = MeasuredReal ( what have been actually observed instead of x)

f( x) = MeasuredReal( estimated) = alfa*x + beta + e

在只有一个变量的最简单情况下您甚至不必为此添加特殊工具。方程的系数等于:

alfa = covariance( MeasuredExpected, MeasuredReal) / variance( MeasuredExpected)
beta = average( MeasuredReal) - alfa * average( MeasuredExpected)

因此,对于每个预期测量值 x,您现在可以声明实际测量值的最可能值是:

f( x) = MeasuredReal( expected) = alfa*x + beta  (under assumption that error
                                                 is normally distributed, iid)

所以你必须添加

g( x) = f( x) - x = ( alfa -1)*x + beta

说明您观察到的通常预期值和测量值之间的差异。

【讨论】:

  • 虽然我同意你关于如何量化偏差的观点,但我不确定这就是 OP 想要的。如果我没听错,您需要对测量值/预期值进行一对一匹配,这样您就可以计算偏差。我的理解是,OP 希望估计偏差规则并将其应用于测量值,以使它们更接近预期值。我的建议是使用回归来估计基于样本测量/期望对的偏差规则。
  • 不,这是不正确的。我还建议回归以解决预期中存在的错误。这应该添加到 Expected 以获得 Measured 的最佳近似值
  • 哦,我明白了,你的意思是他想利用这种经验从期望值中估计出实际(读取测量值)值?
  • 是的,根据 OP 的介绍,我推断他已经有一些逻辑(函数)来计算 Expected,现在 OP 希望更好地逼近实际观察到的数据
  • @lizusek 如果我错了,请纠正我。最终我无法计算预期温度。传感器将是独立的,像温度计一样工作,它必须考虑偏移量。
【解决方案2】:

也许您可以使用数据样本来对变化进行回归分析,并将回归函数用作偏移函数。

http://en.wikipedia.org/wiki/Regression_analysis

【讨论】:

  • 您好,请问有免费的工具吗?
  • 你应该寻找统计和数值分析,例如R之类的数据挖掘软件:en.wikipedia.org/wiki/R_%28programming_language%29当然,如果变化遵循某种规则(即使不是线性的),这种方法也有效,否则可能很难找到合适的回归。
【解决方案3】:

您可以创建校准lookup table (LUT)。

传感器读数的误差在传感器的整个范围内不是线性的,但您可以将范围划分为多个子范围,其中子范围内的误差几乎是线性的。然后通过读取每个子范围的读数并计算每个子范围的偏移误差来校准传感器。将每个子范围的偏移量存储在数组中以创建校准查找表。

一旦知道校准表,您就可以通过执行表查找来纠正测量值以获取正确的偏移量。使用实际测量值确定数组中的索引,从中获取正确的偏移量。

子范围不需要相同大小,尽管这样可以轻松计算任何测量的适当表格索引。 (如果子范围的大小不同,那么您可以使用多维数组(矩阵)并不仅存储偏移量,还存储每个子范围的起点或终点。然后您将扫描起点到为任何测量确定适当的表索引。)

您可以通过划分更小的子范围并创建更大的校准查找表来使校正更准确。或者您可以在两个表条目之间进行插值以获得更准确的偏移量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2019-07-18
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多