繁体   English   中英

方程拟合数据点

[英]Equation to fit data points

我有一个有趣的问题,需要一些编码帮助。 我有一个用于驱动电流源的硬件DAC。 通过设置特定的DAC值,我可以获得特定的电流读数。 这也取决于整个电源电压。

总体目标是在需要计算DAC值的电源中设置所需的电流。 该项目是一台测试设备,因此在校准阶段,我会在指定电压下读取DAC值的所有电流。 这一切都很好,过去我只是简单地进行了一个简单的计算以获得Y = aX + c并计算了a和c,其中X是所需电流,Y是DAC值。 最佳拟合线足够简单并且可以正常工作。 但是,我现在需要大大提高准确性。

DAC和电流的图基本上是线性的,但在中间范围内只有一个小峰,但足以将精度限制为2%。对于此版本的硬件,我需要0.1%,我最多可以得到2048个采样点,因此良好的数据范围。

我希望特征的二阶或三阶多项式表示将有助于提高精度。 虽然数学并不超出我的范围,但是编码却是我的! 基本上,我是一名嵌入式硬件工程师,C#编码使我花了更长的时间才能理解。 硬件是嵌入式Atmel处理器,使用与外部参考仪表和目标硬件的Visual Studio进行校准编码。

基本上,多项式方程式将使用在校准期间计算出的系数放置在目标硬件中。

因此,任何帮助将不胜感激! 标记

也可以尝试一种有理函数,三次除以二次。 渐近线性,中间可能会发生颠簸。

例如, 1+x+0.01/(1+x²)就是这种形式。

通式为y = (a*x³+b*x²+c*x+d)/(e*x²+f*x+1) 要获得系数线性的形式,请与分母相乘得到

0 = a*x³+b*x²+c*x+d - e*x²y-f*xy-y

这给出了带有行的系数矩阵

[ x³, x², x, 1, -x²*y, -x*y, -y ]

对于每个数据点(x, y)=(x[k], y[k]) 然后将QR分解应用于该矩阵,并针对v=[ a, b, c, d, e, f, 1]^T (显然不考虑系统的最后第七行)求解R*v=0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM