我正在测试一个项目的温度传感器。我发现预期值和测量值之间存在差异。由于差异在温度范围内是非线性的,因此我不能简单地添加偏移量。有没有办法可以对获得的数据做一种偏移?
更新 我有一个商用加热器元件,它加热到一个设定的温度(我把这个温度称为预期)。另一方面,我有一个温度传感器(我的proj)测量加热器的温度(这里我将其命名为测量值)。
我注意到我想补偿的测量值和预期值之间的差异,以便测量值接近预期值。
实施例 如果我的传感器测得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
感谢您的时间。
答案 0 :(得分:2)
您有兴趣描述一个变量与另一个变量的偏差。您正在寻找的是功能
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
说明您在通常的预期和测量值之间观察到的差异。
答案 1 :(得分:0)
也许您可以使用数据样本来对变化进行回归分析,并将回归函数用作偏移函数。
答案 2 :(得分:0)
您可以创建校准lookup table(LUT)。
传感器读数中的误差在整个传感器范围内不是线性的,但您可以将范围分成多个子范围,子范围内的误差几乎是线性的。然后通过读取每个子范围中的读数并计算每个子范围的偏移误差来校准传感器。将每个子范围的偏移量存储在一个数组中,以创建校准查找表。
一旦校准表已知,您就可以通过执行适当偏移的表查找来更正测量值。使用实际测量值来确定数组的索引,从中获得正确的偏移量。
子范围不需要具有相同的大小,但应该可以很容易地计算任何测量的正确表索引。 (如果子范围大小不同,则可以使用多维数组(矩阵),不仅存储偏移量,还存储每个子范围的起点或终点。然后,您将扫描开始点到确定任何测量的正确表索引。)
您可以通过划分较小的子范围并创建更大的校准查找表来使校正更准确。或者,您可以在两个表条目之间进行插值,以获得更准确的偏移。