段松凱,劉守兵
(1.河南機(jī)電職業(yè)學(xué)院電氣工程學(xué)院,河南 鄭州 451191;2.河南工程學(xué)院電氣信息學(xué)院,河南 鄭州 451191)
光纖壓力傳感器靈敏度高、抗干擾能力強(qiáng),因而被廣泛應(yīng)用于各種應(yīng)用領(lǐng)域中,比如:醫(yī)學(xué)應(yīng)用、環(huán)境檢測(cè)等[1-3]。
隨著光纖壓力傳感器的廣泛應(yīng)用,人們對(duì)其測(cè)量精度的要求越來(lái)越高。然而,這種傳感器中彈性膜片的楊氏彈性模量和泊松比特別容易受到溫度的影響,存在很大的誤差,產(chǎn)生嚴(yán)重的溫度漂移,降低測(cè)量的精度和靈敏度。為了減小溫度對(duì)光纖壓力傳感器的影響,提高測(cè)量的精度和靈敏度,必須對(duì)其進(jìn)行溫度補(bǔ)償[4-5]。現(xiàn)有的溫度補(bǔ)償?shù)姆椒ㄖ饕杏布a(bǔ)償和軟件補(bǔ)償。硬件補(bǔ)償法主要采用橋式電路來(lái)消除環(huán)境溫度對(duì)測(cè)量精度的影響。這種方法不需要復(fù)雜的軟件編程,但是很難實(shí)現(xiàn)全程補(bǔ)償,成本高,精度低。軟件補(bǔ)償法主要采用軟件編程的方法對(duì)傳感器進(jìn)行溫度補(bǔ)償。常見(jiàn)的軟件補(bǔ)償方法主要有多元回歸法[6]、神經(jīng)網(wǎng)絡(luò)模型[7]和支持向量回歸(Support Vector Regression,SVR)[8]。傳統(tǒng)的多元回歸法,大多采用平方誤差作為損失函數(shù),求解相對(duì)比較容易,但其預(yù)測(cè)值易傾向于離群值,泛化能力較差,精度難以達(dá)到要求;神經(jīng)網(wǎng)絡(luò)模型具有很強(qiáng)的非線(xiàn)性擬合能力,但是其泛化能力差,極易受到數(shù)據(jù)樣本數(shù)量和質(zhì)量的影響;SVR 通過(guò)非線(xiàn)性映射將輸入變量映射到高維線(xiàn)性特征空間,以便構(gòu)造最優(yōu)決策函數(shù),并利用原空間的核函數(shù)取代高維空間的點(diǎn)積運(yùn)算。這種學(xué)習(xí)算法復(fù)雜度低,魯棒性強(qiáng),但需要學(xué)習(xí)的參數(shù)較多,補(bǔ)償精度極易受到超參數(shù)選取的影響。
為了解決上述問(wèn)題,本文提出了基于麻雀搜索算法(Sparrow Search Algorithm,SSA)優(yōu)化的SVR(Sparrow Search Algorithm with Support Vector Regression,SSA-SVR)的溫度補(bǔ)償模型。利用SSA 對(duì)SVR 的懲罰系數(shù)和核參數(shù)進(jìn)行全局尋優(yōu),減少超參數(shù)選取對(duì)SVR 溫度補(bǔ)償模型補(bǔ)償精度的影響,提高其補(bǔ)償精度。利用溫度傳感器LM35 實(shí)時(shí)檢測(cè)光纖壓力傳感器的工作溫度,并采用上述SSA-SVR 溫度補(bǔ)償模型對(duì)受溫度漂移影響的光纖壓力傳感器進(jìn)行溫度補(bǔ)償。
光纖壓力傳感器是一種以光為載體,光纖為媒介,通過(guò)彈性膜片感知外部壓力信號(hào)的傳感技術(shù),其工作原理示意圖如圖1 所示。如圖1 所示,這種傳感器主要有四部分組成:光源、光纖、接收器和彈性膜片[5]。
圖1 光纖壓力傳感器的工作原理示意圖
在圖1 中,光源發(fā)出的光耦合進(jìn)入入射端面B后從入射端面A 出射。出射光經(jīng)由彈性膜片反射后,部分反射光由接收光纖端面A 接收,接收光的強(qiáng)度與端面A 至彈性膜片的距離d有關(guān)。如果不施加外力p,即圖1 中的p=0,則彈性膜片不會(huì)產(chǎn)生位移。反之,若施加外力p,彈性膜片產(chǎn)生位移,端面A 至彈性膜片的距離d將發(fā)生變化。隨著外力的變化,彈性膜片的彎曲程度隨之變化,距離d發(fā)生變化,接收到的光強(qiáng)也會(huì)隨之變化,我們就可以通過(guò)檢測(cè)光強(qiáng)的大小而測(cè)量出外部施加壓力的大小。由于彈性膜片的泊松比和楊氏彈性極易受到溫度影響,其變形也相應(yīng)地極易受到溫度的影響,因而光纖壓力傳感器的輸出信號(hào)也極易受到溫度的影響,存在著嚴(yán)重的誤差,產(chǎn)生溫度漂移,降低測(cè)量的精度和靈敏度。為了解決這個(gè)問(wèn)題,必須對(duì)其進(jìn)行溫度補(bǔ)償。
SVR 是一種通過(guò)非線(xiàn)性轉(zhuǎn)換將輸入?yún)?shù)映射到高維線(xiàn)性特征空間,并利用原空間的核函數(shù)代替高維空間的點(diǎn)積運(yùn)算,最終構(gòu)造出變量間的擬合函數(shù)的擬合算法[9]。對(duì)于給定的樣本數(shù)據(jù)集{(x1,y1),(x2,y2),…,(xn,yn)},訓(xùn)練SVR 模型的目的是用方程去表示變量x與變量y之間的關(guān)系。對(duì)于任一給定的x,這個(gè)方程可用于求取其對(duì)應(yīng)的預(yù)測(cè)值。該方程可表示為[10]:
式中:w為權(quán)重向量,φ(x)是關(guān)于x的非線(xiàn)性映射,b為偏置。
為了確定式(1)中回歸參數(shù)w和b的估計(jì)值,我們可以將其轉(zhuǎn)化為一個(gè)凸二次規(guī)劃問(wèn)題[11]:
式中:ξi和是松弛因子,C為懲罰系數(shù),ε是不敏感損失函數(shù)系數(shù),用于降低目標(biāo)偏差,提高回歸精度。
利用拉格朗日函數(shù)和對(duì)偶原理,可得到式(2)的對(duì)偶問(wèn)題:
式中:l為支持向量的數(shù)量,其中拉格朗日乘子αi和可通過(guò)最小序列算法(Sequential Minimal Optimizaion,SMO)求得。
引入核函數(shù)K(x,xi)=φ(xi)Tφ(x),則式(4)可變形為:
在溫度補(bǔ)償模型中,一般選高斯型徑向基函數(shù)(Radial Basis Function,RBF)作為SVR 的核函數(shù),其表達(dá)式為:
SSA 是由薛建凱等[13]基于麻雀群體撲食行為提出的一種智能優(yōu)化算法。在SSA 中,麻雀搜索食物的過(guò)程即為解的尋優(yōu)過(guò)程。根據(jù)尋找食物的能力可將整個(gè)麻雀種群分發(fā)現(xiàn)者和加入者。發(fā)現(xiàn)者負(fù)責(zé)尋找食物并引導(dǎo)整個(gè)群體的流動(dòng),因而其可以在更廣泛的地方尋找食物。加入者跟隨發(fā)現(xiàn)者尋找食物,并尋找機(jī)會(huì)爭(zhēng)奪食物,以增加自己的撲食機(jī)會(huì)。在t+1 迭代過(guò)程中,其中發(fā)現(xiàn)者的位置更新公式可表示為:
式中:i,j表示第i個(gè)麻雀在第j維的位置信息,itermax為最大迭代次數(shù),α∈(0,1]是一個(gè)隨機(jī)數(shù),R2∈(0,1]和ST∈[0.5,1]分別表示預(yù)警值和安全閥值,Q為正態(tài)分布隨機(jī)數(shù),L為D維單位向量,其中D為待優(yōu)化問(wèn)題變量的維數(shù)。
加入者的位置更新公式為:
式中:XP為當(dāng)前發(fā)現(xiàn)者所占據(jù)的最優(yōu)位置,Xworst為當(dāng)前全局最差位置,A為各元素隨機(jī)賦值為1 或-1的1×D矩陣,且A+=AT(AAT)-1。
一般情況下,我們選取10%~20%的麻雀使其具有偵察預(yù)警能力。這些麻雀的初始位置是隨機(jī)的,而在迭代過(guò)程中其位置更新公式為:
式中:xb為當(dāng)前的全局最優(yōu)位置,β為步長(zhǎng)控制系數(shù),其一般取為一個(gè)均值等于0 而方差等于1 的正態(tài)分布的隨機(jī)數(shù),K∈(0,1]為隨機(jī)數(shù),fi表示當(dāng)前麻雀?jìng)€(gè)體的適應(yīng)度值,fg為全局最佳適應(yīng)度值,fw為全局最差適應(yīng)度值,ε為避免分母等于0 而分為設(shè)置的常數(shù)。
依據(jù)式(8)、式(9)和(10)更新麻雀種群的位置,直至達(dá)到最大迭代次數(shù)itermax,即可搜尋到麻雀的最優(yōu)位置,從而求取帶優(yōu)化問(wèn)題的全局最優(yōu)解。
將SVR 和SSA 融合,是將SSA 的全局優(yōu)化能力和SVR 強(qiáng)大的非線(xiàn)性擬合能力相結(jié)合。麻雀位置對(duì)應(yīng)SVR 模型中有待優(yōu)化的懲罰系數(shù)C、不敏感損失函數(shù)系數(shù)ε和核參數(shù)(在本文對(duì)應(yīng)RBF 的參數(shù)σ),得到麻雀的全局最優(yōu)位置xb,即為全局最優(yōu)的懲罰系數(shù)C、不敏感損失函數(shù)系數(shù)ε和RBF 核函數(shù)的參數(shù)σ,最后應(yīng)用這組參數(shù)訓(xùn)練SVR 模型并用于光纖壓力傳感器的溫度補(bǔ)償。SSA-SVR 模型的實(shí)現(xiàn)步驟如下(圖2):
圖2 SSA-SVR 模型的算法流程圖
①確定訓(xùn)練的樣本數(shù)據(jù)集,并進(jìn)行歸一化。在本文中,主要實(shí)現(xiàn)對(duì)光纖壓力傳感器進(jìn)行溫度補(bǔ)償,因此我們將光纖壓力傳感器的電壓輸出UP和溫度傳感器LM35 的電壓輸出UT作為輸入變量,施加于光纖壓力傳感器的壓力值P作為輸出變量,共同組成訓(xùn)練所需的樣本數(shù)據(jù)集。為了加快求解速度,提高補(bǔ)償精度,我們還采用min-max 標(biāo)準(zhǔn)方法對(duì)數(shù)據(jù)進(jìn)行歸一化,其公式為:
式中:x為樣本數(shù)據(jù),xmin為樣本數(shù)據(jù)的最小值,xmax為樣本數(shù)據(jù)的最大值,Xnew為歸一化后的數(shù)據(jù),其值落于[0,1]。
②麻雀種群初始化。確定麻雀種群數(shù)量,最大迭代次數(shù),麻雀的最大活動(dòng)范圍,解的維數(shù)和適應(yīng)度函數(shù)。在溫度補(bǔ)償模型中,一般選擇均方誤差作為適應(yīng)度,其公式為:
③用當(dāng)前麻雀位置作為SVR 的參數(shù)組合訓(xùn)練SVR 模型。
④采用上一步訓(xùn)練得到的SVR 模型進(jìn)行預(yù)測(cè),并采用式(12)計(jì)算適應(yīng)度值。
⑤判斷是否滿(mǎn)足終止條件,若滿(mǎn)足,則輸出結(jié)果并結(jié)束。否則,根據(jù)適應(yīng)度值對(duì)種群進(jìn)行排序,并尋找最優(yōu)個(gè)體和最差個(gè)體及其適應(yīng)度值。
⑥更新發(fā)現(xiàn)者位置、加入者位置和具有偵查預(yù)警能力的麻雀的位置,返回步驟③。
光纖壓力傳感器的溫度補(bǔ)償模型如圖3 所示。改變施加于光纖壓力傳感器的壓力P可以改變其電壓輸出UP,調(diào)節(jié)恒溫箱的工作溫度,即光纖壓力傳感器的工作溫度,即可改變溫度傳感器LM35 的輸出電壓UT,再將二者通過(guò)SSA-SVR 模型擬合數(shù)據(jù),擬合值即為補(bǔ)償后的壓力P的測(cè)量值P*,最終達(dá)到溫度補(bǔ)償?shù)哪繕?biāo)。
圖3 基于SSA-SVR 的光纖壓力傳感器溫度補(bǔ)償模型
在本溫度標(biāo)定實(shí)驗(yàn)中,主傳感器是光纖傳感器,而檢測(cè)其工作溫度的是溫度傳感器LM35,兩者被放到同一恒溫箱中。光纖壓力傳感器的輸入是外部施加的壓力P,輸出是其輸出電壓UP。溫度傳感器LM35 的輸入是恒溫箱的設(shè)定溫度T,輸出是其輸出電壓UT。在光纖壓力傳感器的工作溫度范圍內(nèi),依次設(shè)置恒溫箱的溫度為15.6 ℃,18.8 ℃,23.7 ℃,27.9 ℃,31.5 ℃,35.9 ℃,39.6 ℃,42.5 ℃,47.1 ℃,53.7 ℃。同時(shí),為了保證實(shí)驗(yàn)數(shù)據(jù)的準(zhǔn)確性,我們?cè)诿總€(gè)溫度點(diǎn)靜置15 min 后再進(jìn)行后續(xù)的實(shí)驗(yàn)。在每個(gè)工作溫度下,依次在光纖壓力傳感器的量程內(nèi)給其施加的壓力為200 kPa,250 kPa,300 kPa,350 kPa,400 kPa,450 kPa,500 kPa,550 kPa,600 kPa,650 kPa,分別記錄光纖壓力傳感器和溫度傳感器LM35 的輸出電壓,如表1 所示。
表1 光纖壓力傳感器溫度漂移標(biāo)定實(shí)驗(yàn)數(shù)據(jù)
根據(jù)表1 可以繪制出不同溫度下光纖壓力傳感器的靜態(tài)特性曲線(xiàn),如圖4 所示。在圖4 中,曲線(xiàn)自上而下依左上角的標(biāo)注溫度由高溫到低溫排列。
圖4 不同溫度下光纖壓力傳感器的靜態(tài)特性曲線(xiàn)
從圖4 不難看出,在施加相同的外部壓力P時(shí),光纖壓力傳感器的輸出電壓UP隨著溫度的升高而降低。由此不難推斷出光纖壓力傳感器存在嚴(yán)重的溫度漂移問(wèn)題。在本文中,我們用靈敏度溫度系數(shù)αS和相對(duì)誤差δT來(lái)衡量溫度漂移對(duì)傳感器測(cè)量精度的影響。
式中:T1為工作溫度的最小值,T2為工作溫度的最大值,Upmin和Upmax為同一壓力P和|Upmax-Upmin|取得最大值時(shí),光纖壓力傳感器輸出電壓的最小值和最大值。
由表1 可知,T1=15.6 ℃,T2=53.7 ℃,且當(dāng)P=650 kPa 時(shí),|Upmax-Upmin|取得最大值,此時(shí)Upmax=35.9 mV,Upmin=24.3 mV,將上述參數(shù)代入式(13)和式(14)可得溫度補(bǔ)償前光纖壓力傳感器靈敏度溫度系數(shù)αS和相對(duì)誤差δT為:
使用SSA 優(yōu)化SVR 模型參數(shù)訓(xùn)練SSA-SVR 溫度補(bǔ)償模型時(shí),從表1 所示的標(biāo)定數(shù)據(jù)中選取80%作為樣本訓(xùn)練數(shù)據(jù),20%作為樣本測(cè)試數(shù)據(jù)。
首先,在模型訓(xùn)練前,設(shè)定麻雀搜索算法的參數(shù)為:麻雀種群數(shù)量M=100,最大迭代次數(shù)為100,麻雀的最大活動(dòng)范圍(SVR 參數(shù)取值范圍)為:懲罰系數(shù)C∈[0,1 000]、核參數(shù)σ∈[0.001,100]和不敏感損失函數(shù)系數(shù)ε∈[0,3],解的維數(shù)3,適應(yīng)度函數(shù)采用均方差損失函數(shù)。然后,采用樣本訓(xùn)練數(shù)據(jù)訓(xùn)練SSA-SVR 算法模型。經(jīng)過(guò)50 次的SSA 迭代運(yùn)算,就可得到SVR 模型的參數(shù)組合:懲罰系數(shù)C=536.455、核參數(shù)σ=61.5519 和不敏感損失函數(shù)系數(shù)ε=0.5,并訓(xùn)練得到SVR 算法模型。接著,采用樣本測(cè)試數(shù)據(jù)集對(duì)SVR 模型進(jìn)行測(cè)試。最后,采用訓(xùn)練得到的模型對(duì)光纖壓力傳感器進(jìn)行溫度補(bǔ)償,得到補(bǔ)償后的壓力值P*,如表2 所示。
表2 基于SSA_SVR 溫度補(bǔ)償模型補(bǔ)償?shù)妮敵鰤毫χ?/p>
利用表2 中的數(shù)據(jù),我們不難繪制出光纖壓力傳感器溫度補(bǔ)償后靜態(tài)特性曲線(xiàn),如圖5 所示。
圖5 光纖壓力傳感器溫度補(bǔ)償后靜態(tài)特性曲線(xiàn)
對(duì)比圖4 和圖5 不難看出,溫度補(bǔ)償后,靜態(tài)特性曲線(xiàn)發(fā)散情況明顯改善,光纖壓力傳感器的溫度漂移問(wèn)題得到極大改善。同樣,我們可以繼續(xù)用靈敏度溫度系數(shù)αS和相對(duì)誤差δT來(lái)衡量溫度漂移對(duì)傳感器測(cè)量精度的影響。由表2 可知:T2-T1=53.7 ℃-15.6 ℃=38.1 ℃,Pmax=650 kPa,在壓力標(biāo)定值P=650 kPa 時(shí),補(bǔ)償壓力值存在最大的誤差:ΔPmax=600.500 4-599.499 7 =1.000 7 kPa,則補(bǔ)償后的靈敏度溫度系數(shù)αS和相對(duì)誤差δT為:
比較式(17)~式(18)與式(15)~式(16)不難發(fā)現(xiàn),靈敏度溫度系數(shù)αS和相對(duì)誤差δT都提高了兩個(gè)數(shù)量級(jí),光纖壓力傳感器的溫度漂移問(wèn)題得到了很大改善。
另外,為了衡量SSA-SVR 溫度補(bǔ)償模型的補(bǔ)償精度,我們利用表1 和表2 中的數(shù)據(jù)繪制了壓力標(biāo)定值和壓力補(bǔ)償值的對(duì)比圖,如圖6 所示。
圖6 采用SSA-SVR 溫度補(bǔ)償模型補(bǔ)償后壓力標(biāo)定值和壓力補(bǔ)償值的對(duì)比圖
觀(guān)察圖6,我們不難得到結(jié)論:使用SSA-SVR 溫度補(bǔ)償后壓力補(bǔ)償值與壓力標(biāo)定值基本一致,本模型具有很好的補(bǔ)償精度。為了更加直觀(guān)地判斷補(bǔ)償精度,本文又計(jì)算了最大絕對(duì)誤差ΔPabs和最大相對(duì)誤差ΔPxd,其計(jì)算公式為:
式中:P是壓力標(biāo)定值,P*為壓力補(bǔ)償值。
利用表1 與表2 中的數(shù)據(jù)不難計(jì)算出最大絕對(duì)誤差ΔPabs=0.500 4 kPa,最大相對(duì)誤差ΔPxd=0.250 1%,該溫度補(bǔ)償模型的補(bǔ)償精度能夠滿(mǎn)足實(shí)際需求。
基于SSA-SVR 溫度補(bǔ)償?shù)墓饫w壓力傳感器測(cè)量系統(tǒng)硬件實(shí)現(xiàn)框圖如圖7 所示。首先將SSA-SVR算法固化到STM32F103C8T6 單片機(jī)中;由LM35 溫度傳感器對(duì)光纖壓力傳感器的工作環(huán)境溫度進(jìn)行實(shí)時(shí)檢測(cè)。根據(jù)工作環(huán)境溫度的變化,實(shí)時(shí)對(duì)由光纖壓力傳感器采集到的數(shù)據(jù)進(jìn)行修正,從而實(shí)現(xiàn)對(duì)壓力傳感器進(jìn)行實(shí)時(shí)溫度補(bǔ)償。
圖7 系統(tǒng)硬件框圖
針對(duì)光纖壓力傳感器存在溫度漂移影響測(cè)量精度的問(wèn)題,本文從軟硬件兩個(gè)方面對(duì)基于SSA-SVR算法的溫度補(bǔ)償模型進(jìn)行了研究。研究結(jié)果表明:補(bǔ)償后靈敏度溫度系數(shù)αS和相對(duì)誤差系數(shù)δT均提高了2 個(gè)數(shù)量級(jí),最大絕對(duì)誤差和最大相對(duì)誤差只有0.500 4 kPa 和0.250 1%,從而可知SSA-SVR 算法能夠?qū)崿F(xiàn)對(duì)光纖壓力傳感器溫度補(bǔ)償。另外,本文提供的補(bǔ)償模型也可以用于其他非目標(biāo)參量的補(bǔ)償。