尹家樂,盧文科,左 鋒,張 玨
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海 201600)
隨著科學(xué)技術(shù)的發(fā)展,各領(lǐng)域?qū)τ趬毫Φ臏y量精度要求越來越高。擴(kuò)散硅壓阻式壓力傳感器具有靈敏度高、精度高、可靠性能好、動(dòng)態(tài)響應(yīng)快等特點(diǎn),廣泛應(yīng)用于航空、航天、石油化工、地震測量等領(lǐng)域[1-3]。
擴(kuò)散硅壓阻式壓力傳感器采用了半導(dǎo)體的擴(kuò)散技術(shù)和壓阻效應(yīng)制作硅電阻條,并用四個(gè)硅電阻條連接成惠斯通電橋電路。由于半導(dǎo)體材料對溫度的敏感性以及硅電阻條制造工藝的局限性,因此該傳感器存在溫度漂移現(xiàn)象,必須對其進(jìn)行溫度補(bǔ)償[4-5]。當(dāng)前,國內(nèi)外的溫度補(bǔ)償技術(shù)分為硬件補(bǔ)償和軟件補(bǔ)償兩大類。硬件補(bǔ)償?shù)碾娐窂?fù)雜、調(diào)試?yán)щy、且硬件電路本身會(huì)受溫度影響,對溫度漂移的抑制效果并不明顯,不利于工程應(yīng)用。軟件補(bǔ)償結(jié)合數(shù)學(xué)方法和計(jì)算機(jī)技術(shù),其精度高、易于調(diào)試、應(yīng)用廣泛。因此軟件補(bǔ)償是溫度補(bǔ)償常用的方法。
軟件補(bǔ)償方法一般有反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)算法、最小二乘支持向量機(jī)(least squares support vector machine,LSSVM)算法等,還有遺傳算法、果蠅算法(fruit fly optimization algorithm, FOA)等優(yōu)化算法。BP神經(jīng)網(wǎng)絡(luò)算法結(jié)構(gòu)簡單、可調(diào)參數(shù)多、可操作性好,但是收斂速度慢、不能保證收斂到全局最小點(diǎn)且網(wǎng)絡(luò)結(jié)構(gòu)不易確定。LSSVM算法收斂速度快,但是懲罰因子c和核函數(shù)參數(shù)σ需要手動(dòng)選取,操作不便。遺傳算法全局搜索能力強(qiáng)但局部搜索能力有限,一般只能得到問題的次優(yōu)解,而FOA算法可實(shí)現(xiàn)全局自動(dòng)尋優(yōu)、收斂速度快,彌補(bǔ)了遺傳算法的不足。從以上分析可知,當(dāng)FOA算法與LSSVM算法相結(jié)合時(shí),能夠?qū)崿F(xiàn)算法收斂速度快且可全局自動(dòng)尋優(yōu)的目的。因此,本文選用果蠅算法優(yōu)化最小二乘支持向量機(jī)(fruit fly algorithm to optimized the least squares support vector machine,FOA-LSSVM)算法對擴(kuò)散硅壓阻式壓力傳感器進(jìn)行溫度補(bǔ)償。
在硅膜片上采用擴(kuò)散摻雜法制作4個(gè)阻值相等的壓敏電阻,并且由這4個(gè)擴(kuò)散壓敏電阻構(gòu)成惠斯登橋式測量電路。
擴(kuò)散硅壓力傳感器原理如圖1所示。
圖1 擴(kuò)散硅壓力傳感器原理圖
沿著某一方向施加應(yīng)力時(shí),由于壓阻效應(yīng)[5],半導(dǎo)體材料的電阻率會(huì)發(fā)生變化,影響電橋中電阻值的變化。當(dāng)不受壓力時(shí),電橋的輸出U0理論上應(yīng)該為零。當(dāng)硅膜片受壓時(shí),膜片的形變將使4個(gè)電阻條的阻值發(fā)生相應(yīng)變化,電橋失去平衡,輸出相應(yīng)的電壓U0。該電壓U0與被測壓力成線性關(guān)系,從而達(dá)到測量壓力的目的。
LSSVM是由標(biāo)準(zhǔn)支持向量機(jī)(support vector machine,SVM)演變而來的。LSSVM用訓(xùn)練誤差的平方替代SVM中的松弛變量,并用等式約束替代不等式約束,把SVM的訓(xùn)練轉(zhuǎn)化為線性方程組的求解,再采用共軛梯度方法求解,從而避免了二次規(guī)劃問題,提高了訓(xùn)練的速度[6-9]。
樣本集{(xi,yi)}有LSSVM的回歸函數(shù):
f(x)=〈ω,x〉+b
(1)
將求解f(x)轉(zhuǎn)化為求解下列方程組最優(yōu)解問題:
(2)
引入拉格朗日乘子λi,構(gòu)建如下拉格朗日方程,求最優(yōu)解:
(3)
對式(3)求偏微分:
(4)
將式(4)的前三個(gè)方程代入第四個(gè)方程,可得:
(5)
引入高斯型徑向基函數(shù)為核函數(shù)(RBF核),核函數(shù)定義為:
(6)
以上公式中:ξi為松弛因子;c為懲罰因子;x為訓(xùn)練樣本;x′i為SVM支持向量機(jī);σ為核函數(shù)參數(shù)。
將式(6)代入式(5)中,可得LSSVM的回歸方程為:
(7)
FOA是潘文超學(xué)者在2011年提出的種群體智能算法。該算法通過果蠅個(gè)體和群體簡單的覓食行為來表征復(fù)雜現(xiàn)象[6-10]。FOA原理是果蠅通過感知周圍食物濃度的大小判斷自己前進(jìn)的方向和距離,果蠅朝氣味濃度最大的位置靠近。果蠅覓食過程中通過群體之間的信息交互作用,使得最終全部到達(dá)食物濃度最優(yōu)的位置。
采用FOA-LSSVM算法對擴(kuò)散硅壓力傳感器進(jìn)行溫度補(bǔ)償,樣本訓(xùn)練集x為二維標(biāo)定的試驗(yàn)數(shù)據(jù)。用FOA算法選取LSSVM算法中懲罰因子c和核函數(shù)參數(shù)σ,提高了算法預(yù)測的速度和準(zhǔn)確度。FOA-LSSVM算法流程如圖2所示。
圖2 FOA-LSSVM算法流程圖
FOA-LSSVM算法具體工作步驟和參數(shù)設(shè)計(jì)如下所示。
①根據(jù)歸一化擴(kuò)散硅壓阻式壓力傳感器二維標(biāo)定試驗(yàn)得到的數(shù)據(jù)樣本,建立訓(xùn)練樣本數(shù)據(jù)和測試樣本數(shù)據(jù)。
②初始化FOA算法參數(shù),確定最大迭代次數(shù)gmax=300;種群規(guī)模S=20;令迭代次數(shù)g=0;果蠅的最初位置Xaxis=rand(1,2),Yaxis=rand(1,2);果蠅隨機(jī)飛行的范圍FR?[-10,10]。
其中:rand( )是隨機(jī)數(shù)函數(shù),rand(1,2)隨機(jī)生成一個(gè)一行兩列(0~1)之間的隨機(jī)數(shù)。
③進(jìn)化開始, 給出果蠅Fi的隨機(jī)方向和隨機(jī)距離:
(8)
④初步計(jì)算,計(jì)算果蠅Fi與初始位置的距離Di,就能算出氣味濃度判斷值Si。其中:Di由[D(i,1),D(i,2)]表示,Si由[S(i,1),S(i,2)]表示,然后根據(jù)得到的Si計(jì)算LSSVM算法的參數(shù)c和σ,如式(10)所示。
(9)
(10)
Si的計(jì)算公式為:
(11)
⑤更新后代,令g=g+1,由式(11)計(jì)算得到果蠅當(dāng)前味道濃度Si。比較當(dāng)前濃度值Si和當(dāng)前最佳濃度值Sbest,更新整個(gè)果蠅群中的最佳味道濃度值,仍用Sbest表示,并找到其對應(yīng)的最佳位置Xbest和Ybest,此時(shí)令Xaxis=Xbest,Yaxis=Ybest。
⑥迭代循環(huán),若g≤gmax,則回到③;否則,跳出循環(huán),記錄當(dāng)前的最佳位置和最佳濃度,并根據(jù)式(10)計(jì)算LSSVM算法的懲罰因子c和核函數(shù)參數(shù)σ。
⑦將數(shù)值代入LSSVM,進(jìn)行數(shù)據(jù)的回歸預(yù)測。
二維標(biāo)定試驗(yàn)利用LM35溫度傳感器,THSRZ-2型傳感器系統(tǒng)綜合試驗(yàn)裝置中的MPX10擴(kuò)散硅壓力傳感器以及恒溫箱。將溫度傳感器和擴(kuò)散硅壓力傳感器一同放在恒溫箱中,在不同的溫度時(shí)調(diào)節(jié)壓力大小,以10 kPa壓強(qiáng)為間隔,記錄不同壓力下輸出的電壓值。本試驗(yàn)分別標(biāo)定了21.8 ℃ 、25 ℃、30 ℃、35 ℃、40 ℃、45 ℃、50 ℃、55 ℃、60 ℃、65 ℃十組溫度下電壓輸出。
二維標(biāo)定試驗(yàn)原始數(shù)據(jù)如表1所示。
表1中:T為恒溫箱的溫度值;UT為溫度傳感器輸出的電壓值;P為氣壓計(jì)兩個(gè)氣室的差值即輸入的壓力值。
表1 二維標(biāo)定試驗(yàn)原始數(shù)據(jù)
采用MATLAB對原始數(shù)據(jù)進(jìn)行數(shù)據(jù)擬合,二維標(biāo)定試驗(yàn)數(shù)據(jù)擬合曲線如圖3所示。
圖3 二維標(biāo)定試驗(yàn)數(shù)據(jù)擬合曲線圖
從圖3可以看出,不同環(huán)境溫度、同一壓力輸入時(shí),擴(kuò)散硅壓力傳感器會(huì)產(chǎn)生不同的電壓輸出,即該傳感器的輸出電壓受到溫度的影響比明顯。下面用零位溫度系數(shù)α0和靈敏度溫度系數(shù)αs這兩個(gè)指標(biāo)評價(jià)溫度對擴(kuò)散硅壓力傳感器的影響。
零位溫度系數(shù)α0表示零位值U0隨溫度漂移的速度,即溫度改變1 ℃時(shí)零位值的最大改變量ΔU0m與量程U(FS)的百分比。
(12)
靈敏度溫度系數(shù)αs表示靈敏度隨溫度漂移的速度,即溫度改變1 ℃時(shí)輸出電壓值的最大改變量ΔUm與量程U(FS)的百分比。
(13)
以上公式中:ΔT為傳感器工作環(huán)境溫度改變的范圍;ΔU0m為在ΔT溫度變化范圍內(nèi)零位輸出值的最大變化量;U(FS)為量程即輸出電壓值的最大值與最小值之差;ΔUm為在ΔT溫度范圍內(nèi)全量程范圍內(nèi)同一輸入條件下溫度漂移的最大值與最小值之差。
依據(jù)表1中數(shù)據(jù)可以得出,ΔT=65℃-21.8℃=43.2℃;量程U(FS)=162.65 mV-5.4 mV=157.25 mV;ΔUm=162.65 mV-148.85 mV=13.8 mV;在0 kPa時(shí),ΔU0m=8.85 mV-5.40 mV=3.45 mV;將以上數(shù)據(jù)代入式(12)、式(13),求出零位位溫度誤差α0和靈敏度溫度系數(shù)αs,即:
10-4/℃
(14)
10-3/℃
(15)
由式(14)和式(15)可知,零位溫度系數(shù)α0和靈敏度溫度系數(shù)αs是比較大的,所以需要對該傳感器進(jìn)行溫度補(bǔ)償。
用MATLAB軟件運(yùn)行FOA-LSSVM算法對二維標(biāo)定測得的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,算法可得到壓力預(yù)測值,從而進(jìn)行溫度補(bǔ)償,減小誤差。FOA-LSSVM溫度補(bǔ)償系統(tǒng)如圖4所示。
圖4 FOA-LSSVM溫度補(bǔ)償系統(tǒng)圖
原始測量有11組數(shù)據(jù),選用30 kPa和60 kPa的兩組數(shù)據(jù)作為測試數(shù)據(jù),其余的9組數(shù)據(jù)作為訓(xùn)練樣本。選擇種群規(guī)模30,迭代次數(shù)為300次,對測得的UT和UO進(jìn)行回歸預(yù)測訓(xùn)練。
FOA-LSSVM溫度補(bǔ)償后的壓力輸出值如表2所示。
表2 FOA-LSSVM溫度補(bǔ)償后的壓力輸出值
進(jìn)化代數(shù)與適應(yīng)度關(guān)系如圖5所示。
圖5 進(jìn)化代數(shù)與適應(yīng)度關(guān)系圖
從圖5可以看出,在迭代到接近50代時(shí)就找到了懲罰因子c和核函數(shù)參數(shù)σ的較優(yōu)解。根據(jù)表2中數(shù)據(jù)對溫度補(bǔ)償后的壓力值進(jìn)行線性擬合,結(jié)果如圖6所示。
圖6 溫度補(bǔ)償后壓力值數(shù)據(jù)擬合曲線圖
10-5/℃
(16)
10-4/℃
(17)
本文采用FOA算法優(yōu)化LSSVM算法的懲罰因子c和核函數(shù)參數(shù)σ,避免了LSSSVM算法手動(dòng)選取參數(shù)的麻煩,從而大大提高了算法的效率和預(yù)測的準(zhǔn)確度。采用FOA-LSSVM算法對擴(kuò)散硅壓力傳感器進(jìn)行溫度補(bǔ)償,其零位溫度系數(shù)α0提高了一個(gè)數(shù)量級,靈敏度溫度系數(shù)αs提高了一個(gè)數(shù)量級。因此,該算法對擴(kuò)散硅壓阻式壓力傳感器的溫度補(bǔ)償?shù)玫搅死硐氲男Ч?/p>