文獻(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)、溫漂,、零漂等問(wèn)題的影響,,導(dǎo)致實(shí)際物理量與轉(zhuǎn)換后的數(shù)字量之間存在非線性關(guān)系,使轉(zhuǎn)換精度無(wú)法滿足控制系統(tǒng)的要求[1],,因此需要對(duì)AD轉(zhuǎn)換結(jié)果進(jìn)行校正,。
對(duì)于AD轉(zhuǎn)換中存在的非線性問(wèn)題,通??蓮挠布蛙浖煞矫孢M(jìn)行處理,。硬件處理在盡可能減少非線性的基礎(chǔ)上[2],通常配合軟件處理一起,。軟件處理的方法較多,,其擬合精度高,,快速性好,通常有線性近似法,、分段直線回歸法,、傳統(tǒng)的回歸法(如最小二乘法)等,目的都是采用軟件的方法盡可能降低由于非線性帶來(lái)的誤差,。
本文提出了一種基于最小二乘法的最優(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ù)無(wú)法準(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)過(guò)計(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),,都可以用分段線性化來(lái)處理,。但是在實(shí)際應(yīng)用中,應(yīng)根據(jù)誤差標(biāo)準(zhǔn)來(lái)劃分區(qū)間,,劃分的區(qū)間數(shù)量不宜太多,。當(dāng)允許誤差較大時(shí),分段數(shù)較少,;當(dāng)允許誤差較小時(shí),,分段數(shù)較多。此動(dòng)態(tài)分段方法既可簡(jiǎn)化得到擬合函數(shù)的過(guò)程,,又能提高轉(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)開(kāi)始,,計(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),,擬合過(guò)程結(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#開(kāi)發(fā),并將校正后的允許誤差,、量程范圍,、分段數(shù),、分段區(qū)間、斜率a和截距b等參數(shù)保存到Access數(shù)據(jù)庫(kù)中,,用戶可根據(jù)允許誤差和量程范圍隨時(shí)查詢,。
軟件可校正的物理量有直流電壓、直流電流、交流電壓,、交流電流和交流頻率,,每次只能校正一個(gè)物理量。AD轉(zhuǎn)換在線校正軟件主要包括串口設(shè)置界面,、非線性校正界面(主界面)和實(shí)時(shí)曲線界面,。串口設(shè)置界面主要用來(lái)設(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],校正軟件通過(guò)發(fā)送指令讀取運(yùn)算得到的物理量值,,并將物理量值通過(guò)實(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所示。
通過(guò)本文提出的校正方法對(duì)表1中的數(shù)據(jù)進(jìn)行最優(yōu)化分段線性校正,,當(dāng)允許誤差分別為0.2和0.5時(shí),,其擬合分段直線如圖4和圖5所示。由圖4和圖5校正結(jié)果對(duì)比可知,,計(jì)算機(jī)可以根據(jù)允許誤差的大小來(lái)動(dòng)態(tài)調(diào)整分段區(qū)間,,得到最優(yōu)化分段,使得分段數(shù)最優(yōu),;校正過(guò)程方便,,用戶只需手動(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)過(guò)實(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)的輔助開(kāi)發(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] 解樂(lè),,劉建國(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)