簡體   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