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