文獻(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 引言
在計算機(jī)控制系統(tǒng)中,,往往需要對模擬量信號進(jìn)行采集,但計算機(jī)只能識別數(shù)字量信號,,因此需要將實際的物理量轉(zhuǎn)換為計算機(jī)所能識別的數(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)計算機(jī)取出數(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大于允許誤差ε,計算機(jī)會自動將區(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點開始,,計算機(jī)取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)行物理量的回歸運(yùn)算[7],,校正軟件通過發(fā)送指令讀取運(yùn)算得到的物理量值,并將物理量值通過實時曲線界面顯示,。非線性校正界面如圖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ī)可以根據(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ū)間越多,擬合精度越高,,因此在實際的運(yùn)用中,,可根據(jù)需要設(shè)置允許誤差,獲得校正數(shù)據(jù),,從而實現(xiàn)提高物理量回歸運(yùn)算精度的目的,。
5 結(jié)論
本文提出了一種基于最小二乘法的最優(yōu)化分段線性擬合方法,經(jīng)過實際測試驗證,,擬合精度高,,分段合理,算法簡單且快速性好,,達(dá)到了方便,、準(zhǔn)確實現(xiàn)非線性校正的目的。在實際操作時,,用戶需要將實際測量的物理量,、量程范圍及允許誤差輸入到軟件中,,計算機(jī)可根據(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的揚(yáng)聲器定心支片順性測量系統(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)