《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 一種基于最小二乘法的AD轉(zhuǎn)換在線校正方法
一種基于最小二乘法的AD轉(zhuǎn)換在線校正方法
2020年電子技術(shù)應(yīng)用第2期
賈紅敏,張立廣,淡建超
西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安710021
摘要: 針對AD轉(zhuǎn)換過程中實(shí)際物理量與轉(zhuǎn)換后數(shù)字量之間存在的非線性問題,提出了一種軟件在線校正方法,該方法是基于最小二乘法的最優(yōu)化分段線性擬合方法。使用VS2010 C#編寫上位機(jī)軟件,用戶可任意設(shè)定誤差標(biāo)準(zhǔn),通過程序計(jì)算實(shí)現(xiàn)對整個非線性區(qū)間的最優(yōu)化分段線性擬合,得到不同的擬合函數(shù),達(dá)到高精度擬合的要求。此校正軟件可作為輔助開發(fā)工具,用于模擬量采集系統(tǒng)中,幫助實(shí)現(xiàn)物理量回歸。測試結(jié)果表明,該方法能夠顯著提高AD轉(zhuǎn)換精度,且易于操作,具有較高的準(zhǔn)確性。
中圖分類號: TN98;TP335
文獻(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.
Online correction method for AD conversion based on least squares algorithm
Jia Hongmin,Zhang Liguang,Dan Jianchao
College of Electronic Information Engineering,Xi′an Technological University,Xi′an 710021,China
Abstract: Aiming at the nonlinear problem between the actual physical values and the converted digital values in AD conversion process, a software online correction method is proposed. This method is based on the least square algorithm to optimize the piecewise linear fitting method. Using VS2010 C# to program, the user can set the error standard, and realize the optimal piecewise linear fitting of the whole nonlinear interval through program calculation, and obtain different fitting functions to achieve the requirement of high precision fitting. This calibration software can be used as an auxiliary development tool in analog acquisition systems to help achieve physical quantity regression. The test results show that the method can significantly improve the accuracy of AD conversion, and is easy to operate with high accuracy.
Key words : AD conversion;optimal segmentation;least squares algorithm;online correction

0 引言

    在計(jì)算機(jī)控制系統(tǒng)中,往往需要對模擬量信號進(jìn)行采集,但計(jì)算機(jī)只能識別數(shù)字量信號,因此需要將實(shí)際的物理量轉(zhuǎn)換為計(jì)算機(jī)所能識別的數(shù)字量。AD轉(zhuǎn)換芯片作為模擬量采集的核心部件,AD轉(zhuǎn)換的精度直接影響到控制系統(tǒng)的精度。AD轉(zhuǎn)換受傳感器自身特性的非線性、參考電壓波動、溫漂、零漂等問題的影響,導(dǎo)致實(shí)際物理量與轉(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)行軟件在線校正,最后將校正后的分段點(diǎn)、斜率和截距等數(shù)據(jù)下發(fā)到被校正裝置(如以STM32為MCU的模擬量采集系統(tǒng))中。經(jīng)實(shí)際測試驗(yàn)證,其擬合速度快、準(zhǔn)確性高且操作方便。

1 最小二乘法

    軟件實(shí)現(xiàn)線性化是基于最小二乘法原理的[3-4]。以滿足用戶要求的誤差標(biāo)準(zhǔn)為前提,將整個量程范圍劃分為不同的區(qū)間,在每個分段區(qū)間內(nèi)對實(shí)際物理量和轉(zhuǎn)換后數(shù)字量采用最小二乘法進(jìn)行直線擬合,確定各直線的待定系數(shù)ai(斜率)和bi(截距)。確定ai和bi后,得到y(tǒng)i=aix+bi這樣一條直線,使得用這條直線去近似這段曲線時,整個區(qū)間內(nèi)的誤差都較小,最后可得到整個量程范圍內(nèi)確定的函數(shù)關(guān)系。

jsj3-gs1-3.gif

    得到ai、bi值,則可確定各區(qū)間內(nèi)直線的函數(shù)關(guān)系。

2 軟件線性化基本思路

    經(jīng)理論分析和實(shí)驗(yàn)表明,實(shí)際物理量和AD轉(zhuǎn)換后數(shù)字量間的非線性關(guān)系主要分布在低端和高端,中間基本上是線性關(guān)系。因此,簡單地對整個量程區(qū)間的非線性關(guān)系進(jìn)行線性擬合時,兩端與實(shí)際曲線的擬合度很低[5],得到的擬合函數(shù)無法準(zhǔn)確地表達(dá)整個量程范圍內(nèi)實(shí)際物理量和數(shù)字量間的關(guān)系。

    如果不進(jìn)行分段線性校正,擬合函數(shù)f(x)的階數(shù)必須高于7[6],才能滿足控制系統(tǒng)精度的要求。而由于高階擬合函數(shù)計(jì)算復(fù)雜,需要用到迭代法,計(jì)算時間長,占用內(nèi)存多,難以在實(shí)際中應(yīng)用。因此就需要分段,將整個量程范圍根據(jù)誤差標(biāo)準(zhǔn)經(jīng)過計(jì)算進(jìn)行劃分區(qū)間,分別對每個劃分區(qū)間進(jìn)行擬合,各區(qū)間有不同的擬合函數(shù),此時可認(rèn)為每個劃分區(qū)間中的實(shí)際物理量和數(shù)字量間存在線性關(guān)系,而在整個量程范圍內(nèi)實(shí)際物理量和數(shù)字量之間是非線性關(guān)系。

    理論證明,只要分段的間距足夠小,分段的數(shù)量足夠多,對于任意的連續(xù)函數(shù),在誤差允許的范圍內(nèi),都可以用分段線性化來處理。但是在實(shí)際應(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ù)實(shí)際測試需求,輸入允許誤差ε及量程范圍[M,N](M、N均為數(shù)字量)。

    (2)計(jì)算機(jī)取出數(shù)據(jù)(xi,yi)的前3個點(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個數(shù)據(jù)點(diǎn)均滿足允許誤差,計(jì)算下一個點(diǎn)x3的誤差值ε3。將ε3值與允許誤差ε進(jìn)行比較,若仍小于允許誤差,則擬合區(qū)間再增加一個數(shù)據(jù)x3,擬合區(qū)間為[M,x3]。依次類推,直到在區(qū)間[M,xk]中出現(xiàn)某點(diǎn)xk,其誤差值εk大于允許誤差ε,計(jì)算機(jī)會自動將區(qū)間[M,xk]減少一個數(shù)據(jù)xk。此時可得到分段區(qū)間[M,xk-1]內(nèi)滿足精度要求的擬合函數(shù)表達(dá)式y(tǒng)0=a0x+b0,且這條直線延伸到量程范圍的起始點(diǎn)M。

    若這3個數(shù)據(jù)點(diǎn)中有任何一個點(diǎn)不滿足允許誤差,則將3個數(shù)據(jù)點(diǎn)中的前兩個點(diǎn)根據(jù)“兩點(diǎn)確定一條直線”定律,連接成一條直線且這條直線延伸到量程范圍的起始點(diǎn)M,分段區(qū)間為[M,x1]。且設(shè)定這3個數(shù)據(jù)點(diǎn)中不滿足誤差要求的點(diǎn)為第3個,為方便敘述,假設(shè)這個點(diǎn)為xk。

    (4)下一段從xk-1點(diǎn)開始,計(jì)算機(jī)取3個數(shù)字量xk-1、xk、xk+1,此時擬合區(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ù),覆蓋了整個量程范圍。

    根據(jù)上述方法,在實(shí)際校正中會出現(xiàn)很多種可能,圖1和圖2為兩種典型情況下的處理方式。情況1為有3個點(diǎn)滿足誤差標(biāo)準(zhǔn)的處理方式,情況2為有3個點(diǎn)不滿足誤差標(biāo)準(zhǔn)的處理方式。

jsj3-t1.gif

jsj3-t2.gif

3 軟件線性化的實(shí)現(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ù);非線性校正界面包括數(shù)據(jù)請求、數(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í)時曲線界面顯示。非線性校正界面如圖3所示。

jsj3-t3.gif

4 軟件線性化測試結(jié)果

    在軟件線性化測試中,被校正裝置為以STM32為MCU的模擬量采集系統(tǒng),其內(nèi)部AD轉(zhuǎn)換器的位數(shù)為12 bit,物理量為直流電壓,其量程范圍為1~10 V。AD轉(zhuǎn)換后數(shù)字量與實(shí)際測量的物理量如表1所示。

jsj3-b1.gif

    通過本文提出的校正方法對表1中的數(shù)據(jù)進(jìn)行最優(yōu)化分段線性校正,當(dāng)允許誤差分別為0.2和0.5時,其擬合分段直線如圖4和圖5所示。由圖4和圖5校正結(jié)果對比可知,計(jì)算機(jī)可以根據(jù)允許誤差的大小來動態(tài)調(diào)整分段區(qū)間,得到最優(yōu)化分段,使得分段數(shù)最優(yōu);校正過程方便,用戶只需手動輸入實(shí)際物理量、允許誤差和量程范圍;并且校正的準(zhǔn)確度高,要求的允許誤差越小,校正后的折線越逼近實(shí)際曲線。

jsj3-t4.gif

jsj3-t5.gif

    在上述測試條件下,允許誤差為0.2和0.5時,其擬合結(jié)果的分段數(shù)、分段區(qū)間、各段系數(shù)及最大誤差如表2所示。由兩組數(shù)據(jù)對比結(jié)果可知,擬合結(jié)果的分段區(qū)間不是固定的,而是會根據(jù)允許誤差的不同實(shí)現(xiàn)動態(tài)分配,從而實(shí)現(xiàn)了分段數(shù)的最優(yōu)化。同時,對于不同的允許誤差,當(dāng)允許誤差較小時,分段區(qū)間越多,擬合精度越高,因此在實(shí)際的運(yùn)用中,可根據(jù)需要設(shè)置允許誤差,獲得校正數(shù)據(jù),從而實(shí)現(xiàn)提高物理量回歸運(yùn)算精度的目的。

jsj3-b2.gif

5 結(jié)論

    本文提出了一種基于最小二乘法的最優(yōu)化分段線性擬合方法,經(jīng)過實(shí)際測試驗(yàn)證,擬合精度高,分段合理,算法簡單且快速性好,達(dá)到了方便、準(zhǔn)確實(shí)現(xiàn)非線性校正的目的。在實(shí)際操作時,用戶需要將實(shí)際測量的物理量、量程范圍及允許誤差輸入到軟件中,計(jì)算機(jī)可根據(jù)軟件程序自動計(jì)算出分段區(qū)間和擬合系數(shù),用戶再將擬合參數(shù)下發(fā)給被校正裝置即可。此方法也可用于嵌入式系統(tǒng)的輔助開發(fā)中,進(jìn)行模擬量的非線性校正,提高非線性校正的靈活性和準(zhǔn)確性。

參考文獻(xiàn)

[1] 國培光.模擬量分段線性化校正電路設(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] 解樂,劉建國,程寅,等.一種非接觸式道面溫度測量系統(tǒng)研制[J].電子技術(shù)應(yīng)用,2017,43(6):75-78.

[4] 李緯良,肖輝,方鵬飛.基于STM32的揚(yáng)聲器定心支片順性測量系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(7):102-106,116.

[5] 曹金華,賀黎瀟,沈安東,等.基于KL25的AD轉(zhuǎn)換動態(tài)在線校正技術(shù)[J].實(shí)驗(yàn)室研究與探索,2013,32(10):249-252.

[6] 馬松嶺.最小二乘法在熱電偶電勢-溫度特性線性化中的應(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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。