反平方律方程

时间:2014-03-31 12:26:07

标签: c math exponential inverse

我有一个光传感器读取0到4095的光强度。我努力用光的平方反比定律写一个方程,这样当光线最低时(让我们说最低的环境光是50),它返回1,如果最高(4095),则返回26,但关键的是从1到26的增量要求光以指数方式增加,即:

123 4 5  6   7      8         9              10                          ...27
light intensity ->

对等式的任何建议?我似乎无法弄明白。语言是C.

4 个答案:

答案 0 :(得分:1)

您想要将4095到50间隔分成25个相等的段(26-1)。这意味着每个"强度段的宽度"是:

(4095-50)/25 = 161.8

因此,如果变量x的范围是1到26,那么距离的等式将是:

D = sqrt( 1 / (4095 - (x * 161.8)) )

这是以Intensity_value = 1/D^2作为比例(我说"强度值"因为如果它是真正的强度,它不包括比例常数 - 我们'为这个问题处理任意单位。)

换句话说,如果您在一行上标记了x,并且每个x值与原点的距离为D,那么您将获得您显示的结果126。我假设,从你的图表中,当你走到右边时,强度正在下降。

您应该能够针对不同的强度范围和相应的x的不同范围进行概括。

答案 1 :(得分:0)

如果您的目的是在域[1,4095]上找到一些指数函数,其值在[1,26]范围内,那么这将满足以下条件:

f(x) = exp [ ( x - 50) * ln( 26) / ( 4095 - 50)]

如果您的目的是找到满足平方反比定律的函数,那么;

enter image description here

这将有效:

(f( x))^2 = ( 1 / ( 4095 - ( x * ( 4095 - 50) / 25)) )
f(x) = sqrt( 1 / ( 4095 - ( x * ( 4095 - 50) / 25)) )

答案 2 :(得分:0)

尝试I = a.R ^ 2 + b的倒数,a = 4090/676,b = -1,其中I是强度。

我通过假设上述函数并插入值对1,50和26,4095并求解a和b来获得此结果。

答案 3 :(得分:0)

我不知道物理,但从你的解释我相信你正在寻找对数插值;这可以通过以下方式完成。

y = ln(x-50) * (26 - 1 / ln(4095-50) ) + 1

这里使用50,26和1作为参数来拉伸和移动函数以映射50到1和4095到26;我希望这会有所帮助。