段松凱,劉守兵
(1.河南機電職業學院電氣工程學院,河南 鄭州 451191;2.河南工程學院電氣信息學院,河南 鄭州 451191)
光纖壓力傳感器靈敏度高、抗干擾能力強,因而被廣泛應用于各種應用領域中,比如:醫學應用、環境檢測等[1-3]。
隨著光纖壓力傳感器的廣泛應用,人們對其測量精度的要求越來越高。然而,這種傳感器中彈性膜片的楊氏彈性模量和泊松比特別容易受到溫度的影響,存在很大的誤差,產生嚴重的溫度漂移,降低測量的精度和靈敏度。為了減小溫度對光纖壓力傳感器的影響,提高測量的精度和靈敏度,必須對其進行溫度補償[4-5]。現有的溫度補償的方法主要有硬件補償和軟件補償。硬件補償法主要采用橋式電路來消除環境溫度對測量精度的影響。這種方法不需要復雜的軟件編程,但是很難實現全程補償,成本高,精度低。軟件補償法主要采用軟件編程的方法對傳感器進行溫度補償。常見的軟件補償方法主要有多元回歸法[6]、神經網絡模型[7]和支持向量回歸(Support Vector Regression,SVR)[8]。傳統的多元回歸法,大多采用平方誤差作為損失函數,求解相對比較容易,但其預測值易傾向于離群值,泛化能力較差,精度難以達到要求;神經網絡模型具有很強的非線性擬合能力,但是其泛化能力差,極易受到數據樣本數量和質量的影響;SVR 通過非線性映射將輸入變量映射到高維線性特征空間,以便構造最優決策函數,并利用原空間的核函數取代高維空間的點積運算。這種學習算法復雜度低,魯棒性強,但需要學習的參數較多,補償精度極易受到超參數選取的影響。
為了解決上述問題,本文提出了基于麻雀搜索算法(Sparrow Search Algorithm,SSA)優化的SVR(Sparrow Search Algorithm with Support Vector Regression,SSA-SVR)的溫度補償模型。利用SSA 對SVR 的懲罰系數和核參數進行全局尋優,減少超參數選取對SVR 溫度補償模型補償精度的影響,提高其補償精度。利用溫度傳感器LM35 實時檢測光纖壓力傳感器的工作溫度,并采用上述SSA-SVR 溫度補償模型對受溫度漂移影響的光纖壓力傳感器進行溫度補償。
光纖壓力傳感器是一種以光為載體,光纖為媒介,通過彈性膜片感知外部壓力信號的傳感技術,其工作原理示意圖如圖1 所示。如圖1 所示,這種傳感器主要有四部分組成:光源、光纖、接收器和彈性膜片[5]。

圖1 光纖壓力傳感器的工作原理示意圖
在圖1 中,光源發出的光耦合進入入射端面B后從入射端面A 出射。出射光經由彈性膜片反射后,部分反射光由接收光纖端面A 接收,接收光的強度與端面A 至彈性膜片的距離d有關。如果不施加外力p,即圖1 中的p=0,則彈性膜片不會產生位移。反之,若施加外力p,彈性膜片產生位移,端面A 至彈性膜片的距離d將發生變化。隨著外力的變化,彈性膜片的彎曲程度隨之變化,距離d發生變化,接收到的光強也會隨之變化,我們就可以通過檢測光強的大小而測量出外部施加壓力的大小。由于彈性膜片的泊松比和楊氏彈性極易受到溫度影響,其變形也相應地極易受到溫度的影響,因而光纖壓力傳感器的輸出信號也極易受到溫度的影響,存在著嚴重的誤差,產生溫度漂移,降低測量的精度和靈敏度。為了解決這個問題,必須對其進行溫度補償。
SVR 是一種通過非線性轉換將輸入參數映射到高維線性特征空間,并利用原空間的核函數代替高維空間的點積運算,最終構造出變量間的擬合函數的擬合算法[9]。對于給定的樣本數據集{(x1,y1),(x2,y2),…,(xn,yn)},訓練SVR 模型的目的是用方程去表示變量x與變量y之間的關系。對于任一給定的x,這個方程可用于求取其對應的預測值。該方程可表示為[10]:
式中:w為權重向量,φ(x)是關于x的非線性映射,b為偏置。
為了確定式(1)中回歸參數w和b的估計值,我們可以將其轉化為一個凸二次規劃問題[11]:
式中:ξi和是松弛因子,C為懲罰系數,ε是不敏感損失函數系數,用于降低目標偏差,提高回歸精度。
利用拉格朗日函數和對偶原理,可得到式(2)的對偶問題:
式中:l為支持向量的數量,其中拉格朗日乘子αi和可通過最小序列算法(Sequential Minimal Optimizaion,SMO)求得。
引入核函數K(x,xi)=φ(xi)Tφ(x),則式(4)可變形為:
在溫度補償模型中,一般選高斯型徑向基函數(Radial Basis Function,RBF)作為SVR 的核函數,其表達式為:
SSA 是由薛建凱等[13]基于麻雀群體撲食行為提出的一種智能優化算法。在SSA 中,麻雀搜索食物的過程即為解的尋優過程。根據尋找食物的能力可將整個麻雀種群分發現者和加入者。發現者負責尋找食物并引導整個群體的流動,因而其可以在更廣泛的地方尋找食物。加入者跟隨發現者尋找食物,并尋找機會爭奪食物,以增加自己的撲食機會。在t+1 迭代過程中,其中發現者的位置更新公式可表示為:
式中:i,j表示第i個麻雀在第j維的位置信息,itermax為最大迭代次數,α∈(0,1]是一個隨機數,R2∈(0,1]和ST∈[0.5,1]分別表示預警值和安全閥值,Q為正態分布隨機數,L為D維單位向量,其中D為待優化問題變量的維數。
加入者的位置更新公式為:
式中:XP為當前發現者所占據的最優位置,Xworst為當前全局最差位置,A為各元素隨機賦值為1 或-1的1×D矩陣,且A+=AT(AAT)-1。
一般情況下,我們選取10%~20%的麻雀使其具有偵察預警能力。這些麻雀的初始位置是隨機的,而在迭代過程中其位置更新公式為:
式中:xb為當前的全局最優位置,β為步長控制系數,其一般取為一個均值等于0 而方差等于1 的正態分布的隨機數,K∈(0,1]為隨機數,fi表示當前麻雀個體的適應度值,fg為全局最佳適應度值,fw為全局最差適應度值,ε為避免分母等于0 而分為設置的常數。
依據式(8)、式(9)和(10)更新麻雀種群的位置,直至達到最大迭代次數itermax,即可搜尋到麻雀的最優位置,從而求取帶優化問題的全局最優解。
將SVR 和SSA 融合,是將SSA 的全局優化能力和SVR 強大的非線性擬合能力相結合。麻雀位置對應SVR 模型中有待優化的懲罰系數C、不敏感損失函數系數ε和核參數(在本文對應RBF 的參數σ),得到麻雀的全局最優位置xb,即為全局最優的懲罰系數C、不敏感損失函數系數ε和RBF 核函數的參數σ,最后應用這組參數訓練SVR 模型并用于光纖壓力傳感器的溫度補償。SSA-SVR 模型的實現步驟如下(圖2):

圖2 SSA-SVR 模型的算法流程圖
①確定訓練的樣本數據集,并進行歸一化。在本文中,主要實現對光纖壓力傳感器進行溫度補償,因此我們將光纖壓力傳感器的電壓輸出UP和溫度傳感器LM35 的電壓輸出UT作為輸入變量,施加于光纖壓力傳感器的壓力值P作為輸出變量,共同組成訓練所需的樣本數據集。為了加快求解速度,提高補償精度,我們還采用min-max 標準方法對數據進行歸一化,其公式為:
式中:x為樣本數據,xmin為樣本數據的最小值,xmax為樣本數據的最大值,Xnew為歸一化后的數據,其值落于[0,1]。
②麻雀種群初始化。確定麻雀種群數量,最大迭代次數,麻雀的最大活動范圍,解的維數和適應度函數。在溫度補償模型中,一般選擇均方誤差作為適應度,其公式為:

③用當前麻雀位置作為SVR 的參數組合訓練SVR 模型。
④采用上一步訓練得到的SVR 模型進行預測,并采用式(12)計算適應度值。
⑤判斷是否滿足終止條件,若滿足,則輸出結果并結束。否則,根據適應度值對種群進行排序,并尋找最優個體和最差個體及其適應度值。
⑥更新發現者位置、加入者位置和具有偵查預警能力的麻雀的位置,返回步驟③。
光纖壓力傳感器的溫度補償模型如圖3 所示。改變施加于光纖壓力傳感器的壓力P可以改變其電壓輸出UP,調節恒溫箱的工作溫度,即光纖壓力傳感器的工作溫度,即可改變溫度傳感器LM35 的輸出電壓UT,再將二者通過SSA-SVR 模型擬合數據,擬合值即為補償后的壓力P的測量值P*,最終達到溫度補償的目標。

圖3 基于SSA-SVR 的光纖壓力傳感器溫度補償模型
在本溫度標定實驗中,主傳感器是光纖傳感器,而檢測其工作溫度的是溫度傳感器LM35,兩者被放到同一恒溫箱中。光纖壓力傳感器的輸入是外部施加的壓力P,輸出是其輸出電壓UP。溫度傳感器LM35 的輸入是恒溫箱的設定溫度T,輸出是其輸出電壓UT。在光纖壓力傳感器的工作溫度范圍內,依次設置恒溫箱的溫度為15.6 ℃,18.8 ℃,23.7 ℃,27.9 ℃,31.5 ℃,35.9 ℃,39.6 ℃,42.5 ℃,47.1 ℃,53.7 ℃。同時,為了保證實驗數據的準確性,我們在每個溫度點靜置15 min 后再進行后續的實驗。在每個工作溫度下,依次在光纖壓力傳感器的量程內給其施加的壓力為200 kPa,250 kPa,300 kPa,350 kPa,400 kPa,450 kPa,500 kPa,550 kPa,600 kPa,650 kPa,分別記錄光纖壓力傳感器和溫度傳感器LM35 的輸出電壓,如表1 所示。

表1 光纖壓力傳感器溫度漂移標定實驗數據
根據表1 可以繪制出不同溫度下光纖壓力傳感器的靜態特性曲線,如圖4 所示。在圖4 中,曲線自上而下依左上角的標注溫度由高溫到低溫排列。

圖4 不同溫度下光纖壓力傳感器的靜態特性曲線
從圖4 不難看出,在施加相同的外部壓力P時,光纖壓力傳感器的輸出電壓UP隨著溫度的升高而降低。由此不難推斷出光纖壓力傳感器存在嚴重的溫度漂移問題。在本文中,我們用靈敏度溫度系數αS和相對誤差δT來衡量溫度漂移對傳感器測量精度的影響。
式中:T1為工作溫度的最小值,T2為工作溫度的最大值,Upmin和Upmax為同一壓力P和|Upmax-Upmin|取得最大值時,光纖壓力傳感器輸出電壓的最小值和最大值。
由表1 可知,T1=15.6 ℃,T2=53.7 ℃,且當P=650 kPa 時,|Upmax-Upmin|取得最大值,此時Upmax=35.9 mV,Upmin=24.3 mV,將上述參數代入式(13)和式(14)可得溫度補償前光纖壓力傳感器靈敏度溫度系數αS和相對誤差δT為:
使用SSA 優化SVR 模型參數訓練SSA-SVR 溫度補償模型時,從表1 所示的標定數據中選取80%作為樣本訓練數據,20%作為樣本測試數據。
首先,在模型訓練前,設定麻雀搜索算法的參數為:麻雀種群數量M=100,最大迭代次數為100,麻雀的最大活動范圍(SVR 參數取值范圍)為:懲罰系數C∈[0,1 000]、核參數σ∈[0.001,100]和不敏感損失函數系數ε∈[0,3],解的維數3,適應度函數采用均方差損失函數。然后,采用樣本訓練數據訓練SSA-SVR 算法模型。經過50 次的SSA 迭代運算,就可得到SVR 模型的參數組合:懲罰系數C=536.455、核參數σ=61.5519 和不敏感損失函數系數ε=0.5,并訓練得到SVR 算法模型。接著,采用樣本測試數據集對SVR 模型進行測試。最后,采用訓練得到的模型對光纖壓力傳感器進行溫度補償,得到補償后的壓力值P*,如表2 所示。

表2 基于SSA_SVR 溫度補償模型補償的輸出壓力值
利用表2 中的數據,我們不難繪制出光纖壓力傳感器溫度補償后靜態特性曲線,如圖5 所示。

圖5 光纖壓力傳感器溫度補償后靜態特性曲線
對比圖4 和圖5 不難看出,溫度補償后,靜態特性曲線發散情況明顯改善,光纖壓力傳感器的溫度漂移問題得到極大改善。同樣,我們可以繼續用靈敏度溫度系數αS和相對誤差δT來衡量溫度漂移對傳感器測量精度的影響。由表2 可知:T2-T1=53.7 ℃-15.6 ℃=38.1 ℃,Pmax=650 kPa,在壓力標定值P=650 kPa 時,補償壓力值存在最大的誤差:ΔPmax=600.500 4-599.499 7 =1.000 7 kPa,則補償后的靈敏度溫度系數αS和相對誤差δT為:
比較式(17)~式(18)與式(15)~式(16)不難發現,靈敏度溫度系數αS和相對誤差δT都提高了兩個數量級,光纖壓力傳感器的溫度漂移問題得到了很大改善。
另外,為了衡量SSA-SVR 溫度補償模型的補償精度,我們利用表1 和表2 中的數據繪制了壓力標定值和壓力補償值的對比圖,如圖6 所示。

圖6 采用SSA-SVR 溫度補償模型補償后壓力標定值和壓力補償值的對比圖
觀察圖6,我們不難得到結論:使用SSA-SVR 溫度補償后壓力補償值與壓力標定值基本一致,本模型具有很好的補償精度。為了更加直觀地判斷補償精度,本文又計算了最大絕對誤差ΔPabs和最大相對誤差ΔPxd,其計算公式為:
式中:P是壓力標定值,P*為壓力補償值。
利用表1 與表2 中的數據不難計算出最大絕對誤差ΔPabs=0.500 4 kPa,最大相對誤差ΔPxd=0.250 1%,該溫度補償模型的補償精度能夠滿足實際需求。
基于SSA-SVR 溫度補償的光纖壓力傳感器測量系統硬件實現框圖如圖7 所示。首先將SSA-SVR算法固化到STM32F103C8T6 單片機中;由LM35 溫度傳感器對光纖壓力傳感器的工作環境溫度進行實時檢測。根據工作環境溫度的變化,實時對由光纖壓力傳感器采集到的數據進行修正,從而實現對壓力傳感器進行實時溫度補償。

圖7 系統硬件框圖
針對光纖壓力傳感器存在溫度漂移影響測量精度的問題,本文從軟硬件兩個方面對基于SSA-SVR算法的溫度補償模型進行了研究。研究結果表明:補償后靈敏度溫度系數αS和相對誤差系數δT均提高了2 個數量級,最大絕對誤差和最大相對誤差只有0.500 4 kPa 和0.250 1%,從而可知SSA-SVR 算法能夠實現對光纖壓力傳感器溫度補償。另外,本文提供的補償模型也可以用于其他非目標參量的補償。