王榮忠 高秋英,2 王得軍
1. 青島海爾洗衣機有限公司,山東省青島市 266100;2. 數字化家電國家重點實驗室,山東省青島市 266100
在控制器的研發過程中,經常需要對實驗獲得的數據進行曲線擬合處理,以便找到變量之間的關系,目前較為常用的方法是最小二乘法,而其中多項式擬合應用最為廣泛。在實際計算中,通過對偏差的平方和對每個系數求偏導數,使偏導數為零來建立方程組,經過一系列推導,得到系數公式,然后求得系數[1]。在多項式的系數求解計算中會有大量的運算,而控制器通常會使用單片機作為采集和運算單元,其運算能力不足,所以對運算過程進行簡化是非常有必要的[2]。本文結合最小二乘法多項式擬合的算法原理,在自變量為自然數序列時,對應用較為廣泛的多項式曲線擬合進行了公式推導,得出一種簡化算法,并舉出實例說明了其應用方法。
設有一組實驗數據為(xi,yi)i=1, 2,…,n,其擬合函數為下式:

其中,a0,a1, …,an是n+1個待定參數,y是與x有一定依賴關系的變量,根據最小二乘法原理,則應使

對函數S求偏導數,并令其為0,即可得:

若對于任意函數h(x),g(x)引入記號:即:

其中,f為yi與xi依賴關系式,寫成矩陣形式為[3]:

上式稱為正規方程組。當φ0(x),φ1(x),…,φn(x)線性無關時,方程組有唯一解。取φ0(x)=1,φ1(x)=x,…,φn(x)=xn,相應的方程組為[4-5]:

從中可以解出a0,a1,…,an。
設有一組實驗數據(xi,yi)i=1, 2,…,n,其中,x為一組自然數序列,取值從1到n,y為實測值,設該組數據的一次曲線擬合函數為[4]:

由上述式(6)可得出其擬合公式為:

其中,a0,a1——要求解的系數;
n——采集數據的個數;
xi——數據的序號;
yi——測得的數據。
由式(8)可得a0表達式為:

將a0代入式(8)可得a1的表達式為:

使用式(10)進行計算,可以不用將每個變量的值都進行存儲,只需累加計算,便可進行曲線擬合的計算。


根據等差數列平方和公式,可得:

將公式(12)、(13)代入式(10),則有:

分子分母同時消掉n:

進一步進行簡化:

可見,公式(16)已得到很大簡化,且b、d的計算已被省略掉。在單片機中計算時,為了減少計算步驟,可簡化為如下形式:

得到a1的表達式之后,將式(17)代入式(9)可得到a0的計算公式:

至此,擬合公式中的兩個系數求解都得到了簡化后的計算公式,計算公式中僅與和數據采集的個數n有關,省去了兩個復雜變量的計算。
以一個溫度傳感器的數據擬合為例,表1給出實際采集到的一組數據,數據從1到60,即n=60。

將c、e、n及a1的值代入式(18),可計算出a0=30.1472,至此,我們可以得到該組溫度數據的擬合曲線公式為:

利用Excel表格中的曲線擬合工具,對表1中的數據進行曲線擬合,得到的公式如下,可以看出,與我們的計算結果是一致的。

表1 溫度傳感器數據

綜上所述,在使用最小二乘法進行曲線擬合時,可以使用自然數序列作為自變量,或經過變換將自變量變為自然數序列,從而可以使用本文推導后的簡化算法,省掉多個中間變量以及復雜的運算環節,有效節省運算資源,且不影響最終的計算結果。本文提出的簡化后的系數計算方法非常適用于一些計算能力不足的應用場合,對于實用場景中的非線性關系,可以進行分段線性化或者一些變量關系的轉換變為線性關系,從而可以應用本簡化方法。另外,按照本文提出的簡化方法,可以很方便地推廣到曲線擬合的其他應用場合。