黃永剛
(中國鐵道科學研究院 標準計量研究所,北京 100015)
稱重傳感器被稱為電子衡器的心臟部件。隨著科學技術的飛速發(fā)展和微處理機的出現,工業(yè)生產過程自動化程度的不斷提高,稱重傳感器已成為過程控制中的一種必需裝置。由稱重傳感器制作的電子衡器也已廣泛地應用到各行各業(yè),實現了對物料快速、準確地稱量。
電阻應變式稱重傳感器由于具有準確度高、測量范圍廣、壽命長、結構簡單、頻響特性好、能夠在惡劣條件下工作、易于實現小型化整體化和品種多樣化等優(yōu)點,成為應用最廣泛的稱重傳感器。
它的一個缺點就是對于大應變有較大的非線性,這是由多方面的原因造成的。對于數字應變式稱重傳感器而言,由于集成了彈性元件、信號調理模塊和數據采集卡等部分,稱重傳感器各部分的非線性特性[1-3]合成了整體的非線性特性。過去,通常采用硬件電路對非線性誤差進行補償[4]。隨著計算機技術的廣泛應用,尤其是微型計算機和嵌入式微處理芯片的迅速發(fā)展,人們開始關注計算機處理數據的能力,使用軟件進行傳感器特性的非線性補償。常用的方法有最小二乘法[5-6],支持向量機法[7]、神經網絡法[8-9]等,尤以最小二乘法最為簡單實用。
在此,采用軟件和硬件相結合的方法校正稱重傳感器的非線性特性。稱重傳感器的輸出電壓經過一個以單片機為核心的非線性校正環(huán)節(jié)。該環(huán)節(jié)以多項式為數據處理模型,在計算多項式的值時,采用秦九韶算法,以減少運算次數,縮短運算時間,節(jié)約單片機的存儲空間。試驗結果證實該方法的正確性和有效性。
稱重傳感器在正式使用前必須進行靜態(tài)標定(校準),得到該傳感器的輸出信號與載荷的關系(輸出曲線),以此作為使用過程中的計量依據。假定,標定過程中加載砝碼的質量為,稱重傳感器的輸出電壓為u,稱重傳感器輸出電壓對載荷的函數關系為
在實際工作中,對載荷的測量是其逆過程,即通過測量到的電壓推算出載荷質量,即
構造一個函數
圖1 測量系統(tǒng)框圖Fig.1 Measurement system block diagram
由數值分析理論[10]知,任何一個初等函數均可以用一個適當的n次多項式去充分逼近它,因此式(3)可由n階多項式表示為
式中:a0,a1,…,an為 n 次多項式的系數;ε 為高階無窮小。標定點的示值殘差的平方和函數為
式中:i=0,1,2,…,m;m=標定點個數-1。
根據最小二乘法原理和多元函數求極值條件,要使標定點殘差的平方和達到最小值,將函數s=v(a0,a1,a2,…,an)分別對 a0—an求偏導,并令各偏導數等于零即可
聯立式(4),式(5)和式(6),整理得到正規(guī)方程組
式(7)可以寫為
則最終得到A的表達式為
由上述分析可知,用 span{1,x,x2,…,xn}上的多項式擬合,首先需要求解一個n+1的線性方程組。一般地,n值由所要求的精度確定。有時為了提高測量精度,可能需要增大n的取值。而當n較大時,正規(guī)方程的系數矩陣會出現病態(tài)[10],可以采用其它方法求解多項式系數,從而避免正規(guī)方程組的病態(tài)。
QR(正交三角)分解法,將矩陣分解成一個正規(guī)正交矩陣Q與上三角形矩陣R,是目前求一般矩陣全部特征值的最有效并廣泛應用的方法[10]。它有現成的Matlab指令可供調用,簡單快捷,易于實現。利用QR分解法求解多項式系數的程序流程如圖2所示。
圖2 利用QR分解法求解多項式系數的程序流程Fig.2 Program flow chart of solving polynomial coefficients using QR decomposition method
一個計算問題如果能減少運算次數,不僅可節(jié)省計算量,還可減少舍人誤差。這是算法設計的重要原則之一,以多項式求值為例,設給定n次多項式
求ui處的值f(ui)。若直接計算每一項anun再相加,共需求解
次乘法,n次加法。若采用
可表示為
則bn=f(ui)即為所求。此算法稱為秦九韶算法[10]。依此計算n次多項式f(u)的值,只用n次乘法和n次加法,乘法次數由 O(n2)降為 O(n),且僅使用 n+2個存儲單元。這是計算多項式值最好的算法。該算法是我國南宋數學家秦九韶于1247年提出的,國外稱其為Hernor算法,在1819年給出,比秦九韶算法晚了500多年。
對量程為15000kg的稱重傳感器進行加載測試,其加載砝碼質量和稱重傳感器的輸出電壓見表1。
表1 標定實驗數據Tab.1 Calibration experiment data
從理論上分析,稱重傳感器載荷和輸出電壓之間的函數關系可進行任意次多項式擬合。根據精度的要求,取 n=5,則式(4)為
根據表1數據及前述非線性修正算法的原理,可求得多項式(12)各系數a0—a5的值為
從而求得式(12)的表達式為
化為秦九韶算法的多項式表達式為
具有非線性校正功能的應變式稱重傳感器的關鍵技術在于非線性校正環(huán)節(jié)的處理方法,基于最小二乘法進行曲線擬合,建立非線性校正擬合多項式(式(13)),化為秦九韶算法的多項式表達式(式(14))后,利用編程語言將校正過程寫入單片機中。單片機與傳感器數據采集部分的輸出相連,收集前向環(huán)節(jié)的輸出數據,并利用儲存的處理方法對數據進行修正,最終輸出測量系統(tǒng)的示值。
由于應用簡單靈活、安全穩(wěn)定、成本低和軟件復雜程度低等優(yōu)勢,具有更少引腳和存儲的8位MCU長期處于壟斷地位,在未來仍會吸引市場的注意。在智能化控制領域,MCU長期處于8位機時代,竭盡全力發(fā)展與物理對象相關的控制功能[11]。在此,非線性校正環(huán)節(jié)以ATMEL89C52單片機為核心,包含非線性校正環(huán)節(jié)、以數字應變式稱重傳感器為基礎的測試系統(tǒng)的硬件電路框圖如圖3所示。
圖3 測量系統(tǒng)硬件框圖Fig.3 Measurement system hardware block diagram
程序設計包括主程序、按鍵中斷子程序、通信中斷子程序。其流程如圖4所示。
圖4 主程序流程Fig.4 Main program flow chart
編寫完成的軟件程序,在集成開發(fā)環(huán)境下運行成功后,再送入仿真器內進行仿真調試。實現預期的功能后,用編程器將程序寫入單片機內部進行獨立運行。
以單片機或SOC(system on chip)為核心的智能儀器儀表中,普遍采用C語言編程[12]。在Keil平臺也采用C語言進行編程,數據變量采用float型運算,在進行仿真調試的過程中,將表1數據代入式(13)和式(14),分別采用常規(guī)算法和秦九韶算法求多項式的值,2種算法的運算時間對比分析和秦九韶算法運算結果及誤差見表2。
由表可知,采用秦九韶算法進行多項式求值的運算時間約縮短至常規(guī)算法的1/2。2種算法的運算時間分布如圖5所示。
仿真調試的編譯結果還顯示,常規(guī)算法的運算語句程序代碼占用的存儲空間為893 B,而秦九韶算法縮減至710 B。
表2 仿真調試結果Tab.2 Simulation debugging results
圖5 算法的運算時間分布Fig.5 Operation time distribution of the algorithm
經過非線性校正處理后,測量系統(tǒng)的示值最大偏差為19.94 kg,滿量程時相對誤差為100%=0.133%,滿足0.2%的測試要求。校正后誤差分布情況如圖6所示。
圖6 誤差分布Fig.6 Error distribution
采用最小二乘法進行曲線擬合建立非線性校正擬合多項式,將校正過程存儲于單片機中,對應變式稱重傳感器進行非線性校正。試驗結果表明,經過非線性校正后,測量結果的最大絕對誤差為19.94 kg,即最大引用誤差為0.133%,滿足0.2%的測試精度要求。如果遇到標定值的示值非線性誤差不太理想等情況,可能需要調整多項式的次數或者改變擬合曲線的形式,以確保測量精度滿足實際需要。
進行多項式求值運算時,秦九韶算法占用存儲空間小,運算速度快,在單字節(jié)8位單片機中具有較高的應用價值。
[1]劉劍平,蔡紅英,呂秀珍.稱重傳感器彈性元件結構參數對非線性誤差的影響[J].機械工程師,2005,37(9):94-95.
[2]彭原,倪勇,左建中,等.測力傳感器非線性誤差研究[J].冶金設備,1995,17(4):6-9.
[3]魏俊波,張士勇.對傳感器非線性誤差的研究[J].大學物理實驗,2005,19(1):16-18.
[4]王瑞玲.電阻應變式測力傳感器線性化電路的設計與分析[J].計量與測試技術,2005,32(1):16-17.
[5]景婧.應變式稱重傳感器的非線性校正[J].計算機應用研究,2013,30(1):189-191.
[6]謝煜,楊三序,李曉偉.基于反擬合法的電容稱重傳感器非線性校正[J].儀器儀表學報,2007,28(5):923-927.
[7]WANG Xiaodong,YE Meiying.Hysteresis and nonlinearity compensation of relative humidity sensor using support vector machines[J].Sensors and Actuators B:Chemical,2008,129(1):274-284.
[8]蔡煜東,姚林聲.傳感器非線性校正的人工神經網絡方法[J].儀器儀表學報,1994,15(3):299-302.
[9]PATRA J C,ANG E L,DAS A,et al.Auto-compensation of nonlinearinfluence ofenvironmentalparameterson the sensor characteristics using neural networks[J].ISA Trans,2005,44(2):165-176.
[10]李慶揚,王能超,易大義.數值分析[M].北京:清華大學出版社,2008.
[11]單片機與嵌入式系統(tǒng)應用編輯部.8位單片機是否將被32位單片機替代[J].單片機與嵌入式系統(tǒng)應用,2015,15(1):1-2.
[12]吳志祥,周祥才,黃亮,等.多項式直接擬合在鉑電阻高精度測溫中的研究[J].自動化與儀表,2014,34(2):57-60.