文獻(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)