文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190940
中文引用格式: 賈紅敏,張立廣,淡建超. 一種基于最小二乘法的AD轉(zhuǎn)換在線校正方法[J].電子技術(shù)應(yīng)用,2020,46(2):80-83.
英文引用格式: Jia Hongmin,Zhang Liguang,Dan Jianchao. Online correction method for AD conversion based on least squares algorithm[J]. Application of Electronic Technique,2020,46(2):80-83.
0 引言
在計算機控制系統(tǒng)中,往往需要對模擬量信號進(jìn)行采集,但計算機只能識別數(shù)字量信號,因此需要將實際的物理量轉(zhuǎn)換為計算機所能識別的數(shù)字量。AD轉(zhuǎn)換芯片作為模擬量采集的核心部件,AD轉(zhuǎn)換的精度直接影響到控制系統(tǒng)的精度。AD轉(zhuǎn)換受傳感器自身特性的非線性、參考電壓波動、溫漂、零漂等問題的影響,導(dǎo)致實際物理量與轉(zhuǎn)換后的數(shù)字量之間存在非線性關(guān)系,使轉(zhuǎn)換精度無法滿足控制系統(tǒng)的要求[1],因此需要對AD轉(zhuǎn)換結(jié)果進(jìn)行校正。
對于AD轉(zhuǎn)換中存在的非線性問題,通??蓮挠布蛙浖煞矫孢M(jìn)行處理。硬件處理在盡可能減少非線性的基礎(chǔ)上[2],通常配合軟件處理一起。軟件處理的方法較多,其擬合精度高,快速性好,通常有線性近似法、分段直線回歸法、傳統(tǒng)的回歸法(如最小二乘法)等,目的都是采用軟件的方法盡可能降低由于非線性帶來的誤差。
本文提出了一種基于最小二乘法的最優(yōu)化分段線性擬合方法,對AD轉(zhuǎn)換結(jié)果進(jìn)行軟件在線校正,最后將校正后的分段點、斜率和截距等數(shù)據(jù)下發(fā)到被校正裝置(如以STM32為MCU的模擬量采集系統(tǒng))中。經(jīng)實際測試驗證,其擬合速度快、準(zhǔn)確性高且操作方便。
1 最小二乘法
軟件實現(xiàn)線性化是基于最小二乘法原理的[3-4]。以滿足用戶要求的誤差標(biāo)準(zhǔn)為前提,將整個量程范圍劃分為不同的區(qū)間,在每個分段區(qū)間內(nèi)對實際物理量和轉(zhuǎn)換后數(shù)字量采用最小二乘法進(jìn)行直線擬合,確定各直線的待定系數(shù)ai(斜率)和bi(截距)。確定ai和bi后,得到y(tǒng)i=aix+bi這樣一條直線,使得用這條直線去近似這段曲線時,整個區(qū)間內(nèi)的誤差都較小,最后可得到整個量程范圍內(nèi)確定的函數(shù)關(guān)系。
得到ai、bi值,則可確定各區(qū)間內(nèi)直線的函數(shù)關(guān)系。
2 軟件線性化基本思路
經(jīng)理論分析和實驗表明,實際物理量和AD轉(zhuǎn)換后數(shù)字量間的非線性關(guān)系主要分布在低端和高端,中間基本上是線性關(guān)系。因此,簡單地對整個量程區(qū)間的非線性關(guān)系進(jìn)行線性擬合時,兩端與實際曲線的擬合度很低[5],得到的擬合函數(shù)無法準(zhǔn)確地表達(dá)整個量程范圍內(nèi)實際物理量和數(shù)字量間的關(guān)系。
如果不進(jìn)行分段線性校正,擬合函數(shù)f(x)的階數(shù)必須高于7[6],才能滿足控制系統(tǒng)精度的要求。而由于高階擬合函數(shù)計算復(fù)雜,需要用到迭代法,計算時間長,占用內(nèi)存多,難以在實際中應(yīng)用。因此就需要分段,將整個量程范圍根據(jù)誤差標(biāo)準(zhǔn)經(jīng)過計算進(jìn)行劃分區(qū)間,分別對每個劃分區(qū)間進(jìn)行擬合,各區(qū)間有不同的擬合函數(shù),此時可認(rèn)為每個劃分區(qū)間中的實際物理量和數(shù)字量間存在線性關(guān)系,而在整個量程范圍內(nèi)實際物理量和數(shù)字量之間是非線性關(guān)系。
理論證明,只要分段的間距足夠小,分段的數(shù)量足夠多,對于任意的連續(xù)函數(shù),在誤差允許的范圍內(nèi),都可以用分段線性化來處理。但是在實際應(yīng)用中,應(yīng)根據(jù)誤差標(biāo)準(zhǔn)來劃分區(qū)間,劃分的區(qū)間數(shù)量不宜太多。當(dāng)允許誤差較大時,分段數(shù)較少;當(dāng)允許誤差較小時,分段數(shù)較多。此動態(tài)分段方法既可簡化得到擬合函數(shù)的過程,又能提高轉(zhuǎn)換精度,滿足控制要求。基于最小二乘法的最優(yōu)化分段線性擬合方法的基本思路為:
(1)假設(shè)有一組樣本數(shù)據(jù)(xi,yi)(i=0,1,2,…,n-1)(數(shù)字量xi從小到大排列),用戶根據(jù)實際測試需求,輸入允許誤差ε及量程范圍[M,N](M、N均為數(shù)字量)。
(2)計算機取出數(shù)據(jù)(xi,yi)的前3個點,擬合區(qū)間為[M,x2]。用最小二乘法求出各點在擬合區(qū)間[M,x2]內(nèi)的擬合系數(shù)a0和b0并依次計算各點的誤差值εi,其中εi=
|yi-(a0xi+b0)|。
(3)將各點誤差值εi與允許誤差ε進(jìn)行比較。若這3個數(shù)據(jù)點均滿足允許誤差,計算下一個點x3的誤差值ε3。將ε3值與允許誤差ε進(jìn)行比較,若仍小于允許誤差,則擬合區(qū)間再增加一個數(shù)據(jù)x3,擬合區(qū)間為[M,x3]。依次類推,直到在區(qū)間[M,xk]中出現(xiàn)某點xk,其誤差值εk大于允許誤差ε,計算機會自動將區(qū)間[M,xk]減少一個數(shù)據(jù)xk。此時可得到分段區(qū)間[M,xk-1]內(nèi)滿足精度要求的擬合函數(shù)表達(dá)式y(tǒng)0=a0x+b0,且這條直線延伸到量程范圍的起始點M。
若這3個數(shù)據(jù)點中有任何一個點不滿足允許誤差,則將3個數(shù)據(jù)點中的前兩個點根據(jù)“兩點確定一條直線”定律,連接成一條直線且這條直線延伸到量程范圍的起始點M,分段區(qū)間為[M,x1]。且設(shè)定這3個數(shù)據(jù)點中不滿足誤差要求的點為第3個,為方便敘述,假設(shè)這個點為xk。
(4)下一段從xk-1點開始,計算機取3個數(shù)字量xk-1、xk、xk+1,此時擬合區(qū)間為[xk-1,xk+1],用最小二乘法求出各點在擬合區(qū)間[xk-1,xk+1]內(nèi)的擬合系數(shù)aj和bj(j=1,2,…,n-2),并依次計算各點的誤差值εk。沿用步驟(3)中的方法,找出新區(qū)域內(nèi)的擬合表達(dá)式。直至計算判斷達(dá)到量程范圍上限N點,擬合過程結(jié)束。至此得到了符合允許誤差的各段擬合函數(shù),覆蓋了整個量程范圍。
根據(jù)上述方法,在實際校正中會出現(xiàn)很多種可能,圖1和圖2為兩種典型情況下的處理方式。情況1為有3個點滿足誤差標(biāo)準(zhǔn)的處理方式,情況2為有3個點不滿足誤差標(biāo)準(zhǔn)的處理方式。
3 軟件線性化的實現(xiàn)
AD轉(zhuǎn)換在線校正軟件使用VS2010 C#開發(fā),并將校正后的允許誤差、量程范圍、分段數(shù)、分段區(qū)間、斜率a和截距b等參數(shù)保存到Access數(shù)據(jù)庫中,用戶可根據(jù)允許誤差和量程范圍隨時查詢。
軟件可校正的物理量有直流電壓、直流電流、交流電壓、交流電流和交流頻率,每次只能校正一個物理量。AD轉(zhuǎn)換在線校正軟件主要包括串口設(shè)置界面、非線性校正界面(主界面)和實時曲線界面。串口設(shè)置界面主要用來設(shè)置校正軟件與被校正裝置間的通信參數(shù);非線性校正界面包括數(shù)據(jù)請求、數(shù)據(jù)顯示、擬合折線和歷史數(shù)據(jù)查詢四部分,實現(xiàn)數(shù)字量的接收、物理量的輸入、根據(jù)允許誤差和量程范圍進(jìn)行分段線性校正并將參數(shù)下發(fā)給被校正裝置,以及保存和查詢等功能;被校正裝置根據(jù)校正軟件下發(fā)的參數(shù)進(jìn)行物理量的回歸運算[7],校正軟件通過發(fā)送指令讀取運算得到的物理量值,并將物理量值通過實時曲線界面顯示。非線性校正界面如圖3所示。
4 軟件線性化測試結(jié)果
在軟件線性化測試中,被校正裝置為以STM32為MCU的模擬量采集系統(tǒng),其內(nèi)部AD轉(zhuǎn)換器的位數(shù)為12 bit,物理量為直流電壓,其量程范圍為1~10 V。AD轉(zhuǎn)換后數(shù)字量與實際測量的物理量如表1所示。
通過本文提出的校正方法對表1中的數(shù)據(jù)進(jìn)行最優(yōu)化分段線性校正,當(dāng)允許誤差分別為0.2和0.5時,其擬合分段直線如圖4和圖5所示。由圖4和圖5校正結(jié)果對比可知,計算機可以根據(jù)允許誤差的大小來動態(tài)調(diào)整分段區(qū)間,得到最優(yōu)化分段,使得分段數(shù)最優(yōu);校正過程方便,用戶只需手動輸入實際物理量、允許誤差和量程范圍;并且校正的準(zhǔn)確度高,要求的允許誤差越小,校正后的折線越逼近實際曲線。
在上述測試條件下,允許誤差為0.2和0.5時,其擬合結(jié)果的分段數(shù)、分段區(qū)間、各段系數(shù)及最大誤差如表2所示。由兩組數(shù)據(jù)對比結(jié)果可知,擬合結(jié)果的分段區(qū)間不是固定的,而是會根據(jù)允許誤差的不同實現(xiàn)動態(tài)分配,從而實現(xiàn)了分段數(shù)的最優(yōu)化。同時,對于不同的允許誤差,當(dāng)允許誤差較小時,分段區(qū)間越多,擬合精度越高,因此在實際的運用中,可根據(jù)需要設(shè)置允許誤差,獲得校正數(shù)據(jù),從而實現(xiàn)提高物理量回歸運算精度的目的。
5 結(jié)論
本文提出了一種基于最小二乘法的最優(yōu)化分段線性擬合方法,經(jīng)過實際測試驗證,擬合精度高,分段合理,算法簡單且快速性好,達(dá)到了方便、準(zhǔn)確實現(xiàn)非線性校正的目的。在實際操作時,用戶需要將實際測量的物理量、量程范圍及允許誤差輸入到軟件中,計算機可根據(jù)軟件程序自動計算出分段區(qū)間和擬合系數(shù),用戶再將擬合參數(shù)下發(fā)給被校正裝置即可。此方法也可用于嵌入式系統(tǒng)的輔助開發(fā)中,進(jìn)行模擬量的非線性校正,提高非線性校正的靈活性和準(zhǔn)確性。
參考文獻(xiàn)
[1] 國培光.模擬量分段線性化校正電路設(shè)計[J].西北農(nóng)業(yè)大學(xué)學(xué)報,1995,23(3):55-62.
[2] 何朝暉,陳厚鵬,戎蒙恬.采樣保持電路中的一種增益誤差自校正方法[J].上海交通大學(xué)學(xué)報,2004,38(5):733-737.
[3] 解樂,劉建國,程寅,等.一種非接觸式道面溫度測量系統(tǒng)研制[J].電子技術(shù)應(yīng)用,2017,43(6):75-78.
[4] 李緯良,肖輝,方鵬飛.基于STM32的揚聲器定心支片順性測量系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2019,45(7):102-106,116.
[5] 曹金華,賀黎瀟,沈安東,等.基于KL25的AD轉(zhuǎn)換動態(tài)在線校正技術(shù)[J].實驗室研究與探索,2013,32(10):249-252.
[6] 馬松嶺.最小二乘法在熱電偶電勢-溫度特性線性化中的應(yīng)用[J].西安建筑科技大學(xué)學(xué)報(自然科學(xué)版),2001,33(1):86-88.
[7] 劉偉,沈安東,王宜懷.低端嵌入式系統(tǒng)中物理量回歸算法的優(yōu)化[J].現(xiàn)代電子技術(shù),2008(18):31-34.
作者信息:
賈紅敏,張立廣,淡建超
(西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安710021)