王子豪盧文科左 鋒
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海 201620)
位置敏感位移傳感器(PSD)是一種基于光電效應(yīng)的新型非接觸式位移傳感器,可將輸入的位移信號(hào)線性轉(zhuǎn)換為電壓信號(hào),具有幾何分辨率高,響應(yīng)速度快,線性輸出范圍廣等諸多優(yōu)點(diǎn)[1]。 入射光照射到PSD 材料表面時(shí),PSD 傳感器輸出信號(hào)與入射光的光照強(qiáng)度和光斑大小形狀都無關(guān),僅與入射光的位置有關(guān),但溫度卻是影響光電子活躍程度和光電流大小的重要因素,傳統(tǒng)的硬件溫度補(bǔ)償方式電路設(shè)計(jì)難度大,安裝調(diào)試步驟繁瑣,可移植性差[2]。 而以支持向量機(jī)為代表的統(tǒng)計(jì)學(xué)習(xí)方法實(shí)現(xiàn)的軟件補(bǔ)償通過對(duì)小樣本數(shù)據(jù)進(jìn)行模型訓(xùn)練,對(duì)測(cè)量結(jié)果進(jìn)行修正,消除交叉敏感[3],可對(duì)該傳感器進(jìn)行有效的溫度補(bǔ)償。
圖1 所示,PSD 傳感器是一種檢測(cè)入射光點(diǎn)位置的位移傳感器,本質(zhì)上是被集成在同一塊硅片的基于橫向光電效應(yīng)的半導(dǎo)體器件,共有三層,分別為P 型半導(dǎo)體(P 層),本征半導(dǎo)體(I 層)和N 型半導(dǎo)體(N 層),其中I 層最厚,P 層和I 層較薄,由于P型半導(dǎo)體多子為帶正電的空穴,適合作為光敏層[4],同時(shí)也是阻抗系數(shù)一定的電阻層[5]。
圖1 PSD 結(jié)構(gòu)圖
當(dāng)有入射光照射進(jìn)感光層時(shí)會(huì)產(chǎn)生與光照強(qiáng)度成正比的光電流I0,分成I1,I2由入射光點(diǎn)出發(fā)向兩側(cè)流動(dòng),則:
由于P層阻抗均勻,因此電阻大小與距離成正比,則根據(jù)歐姆定律,兩電極輸出電流與入射光點(diǎn)到兩極的距離成反比,得:
I1為入射點(diǎn)左邊的電流,I2為入射點(diǎn)右邊的電流,R1和R2分別對(duì)應(yīng)入射點(diǎn)左右兩側(cè)的電阻大小,L為PSD 傳感器的長(zhǎng)度,X為入射點(diǎn)到PSD 中點(diǎn)的距離,以向左為正方向,將式(1)代入式(2)中可得:
再經(jīng)整理,消去I0可得:
由式(5)可知被測(cè)量X與入射光的光照強(qiáng)度無關(guān),只有PSD 的長(zhǎng)度L能影響輸出結(jié)果[6-7]。
免疫算法(immune algorithm)是收到人體免疫系統(tǒng)的啟發(fā)而開發(fā)的一種新型算法,人體受外界抗原侵犯時(shí),免疫細(xì)胞分化為能產(chǎn)生特異性抗體的效應(yīng)B 細(xì)胞和記憶細(xì)胞,通過計(jì)算抗原抗體親和度函數(shù),保留優(yōu)秀的免疫細(xì)胞,淘汰低價(jià)值免疫細(xì)胞,再計(jì)算抗體濃度和激勵(lì)度,通過代代克隆和進(jìn)化更新種群,達(dá)到最優(yōu)解,使抗體抗原最好結(jié)合,消除抗原。
抗體ab 之間的親和度可表示為兩個(gè)抗體之間的歐式距離:
式中:L為特征空間中的維數(shù),又可通過設(shè)置相似度閾值δ(δ∈(0,1))將其離散化,以便簡(jiǎn)化抗體濃度和激勵(lì)度的計(jì)算,這里將δ設(shè)置為0.7,表示為:
在抗體濃度表示為:
N為抗體個(gè)體總數(shù),抗體激勵(lì)度代表抗體對(duì)抗原消除的最終效果,因此,抗原抗體親和度大而且濃度較低的抗體抵抗效果更好,可表示為:
式中:α和β為激勵(lì)度常數(shù),通常設(shè)置為1,aff(abi)為抗原抗體親和度,初值為計(jì)算出的目標(biāo)函數(shù)值。然后選出全體中激勵(lì)度高的一半個(gè)體進(jìn)行克隆,也就是抗體的自我復(fù)制,產(chǎn)生下一代并變異,擴(kuò)大搜索區(qū)間,因此變異個(gè)體abi,k:
k為抗體維數(shù),每一維空間都需變異操作,pm為變異因子。 在前一半個(gè)體中,設(shè)置自我復(fù)制數(shù)為10,變異之后根據(jù)親和度函數(shù)選出最優(yōu)秀個(gè)體保留,其余九個(gè)淘汰,在保留未變異的群體作為另一半,保持抗體數(shù)量不變,最后經(jīng)激勵(lì)度運(yùn)算完成排序,完成一次迭代[8-9]。
支持向量機(jī)是一種基于間隔最大化的機(jī)器學(xué)習(xí)策略,在解決非線性分類和回歸問題時(shí),它通過將特征向量映射到更高維的空間和核技巧,使更高維空間線性回歸等價(jià)于低維空間非線性回歸問題,其結(jié)構(gòu)如圖2 所示。
圖2 最小二乘支持向量機(jī)結(jié)構(gòu)圖
線性回歸方程為:
標(biāo)準(zhǔn)支持向量機(jī)的約束條件一般為不等式,而最小二乘支持向量機(jī)的約束條件卻是等式,如果使用誤差二范數(shù)來表示,那么優(yōu)化問題為:
約束條件為:
又通過將拉格朗日函數(shù)的引入,則回歸函數(shù)為[10]:
式中:c為懲罰因子;ai為拉格朗日乘子為松弛因子。 本文所選取的核函數(shù)為RBF 核,也就是高斯型徑向基函數(shù):
算法流程圖如圖3 所示,以訓(xùn)練集的計(jì)算值和期望值的方差作為親和度函數(shù),也就是目標(biāo)函數(shù),式(13)為約束條件,將其轉(zhuǎn)化為凸優(yōu)化問題,通過免疫算法來不斷優(yōu)化目標(biāo)函數(shù),當(dāng)達(dá)到收斂時(shí),再導(dǎo)入此時(shí)的懲罰因子C,和核函數(shù)參數(shù)σ的值進(jìn)入LSSVM完成模型的訓(xùn)練,輸出值便是溫度補(bǔ)償?shù)慕Y(jié)果[11]。
圖3 IA-LSSVM 算法流程
在不同溫度下測(cè)定PSD 傳感器的位移輸入輸出大小,并將點(diǎn)光源調(diào)至最大,最后調(diào)節(jié)電位器,當(dāng)位移為0 時(shí),輸出電壓U0=0。 在測(cè)量時(shí),每隔0.5 mm 記錄一次傳感器輸出電壓U0,直到U0輸出無明顯變化為止。 最后再記錄下溫度傳感器LM35 的值,輸入輸出結(jié)果如表1 所示,由表1 可繪制溫度補(bǔ)償前傳感器的輸入輸出特性曲線,如圖4。
圖4 補(bǔ)償前的輸入輸出特性曲線
由圖4 可見,PSD 位移傳感器測(cè)量有效距離為4 mm 到11 mm,當(dāng)測(cè)量位移X在4 mm 到6 mm 時(shí),其測(cè)量結(jié)果基本不受溫度影響,而在測(cè)量位移超過6 mm 之后,測(cè)量結(jié)果受溫度的影響開始顯現(xiàn),尤其在10 mm 左右,誤差受溫度影響越來越大。 根據(jù)以上數(shù)據(jù),可計(jì)算得到:
①零位誤差系數(shù)α0(零位置隨溫度漂移的速度)為:
式中:u0m代表零位值的最大的改變值,即零位時(shí)電壓最大改變量,在此僅為161.2 mV-154.4 mV=6.8 mV,U(FS)代表著量程,這里是輸出電壓的范圍,此傳感器量程為500 mV,ΔT為溫度變化值,為45 ℃,因此α0=3.0×10-4/℃。
②靈敏度溫度系數(shù)αs(靈敏度隨溫度漂移的速度)為:
式中:y(T2)和y(T1)分別為在相同輸入下溫度為T2和T1下傳感器輸出電壓值,由圖4 可見,輸入為11 mm時(shí)輸出受溫度漂移最大,且T2和T1為最高和最低溫度,由 表1 可 算 出,2.8×10-3/℃,可見靈敏度溫度系數(shù)比較大。
表1 二維標(biāo)定試驗(yàn)數(shù)據(jù)
③溫度附加誤差[12]:
由于在溫度為70 ℃時(shí)輸出電壓相差最大,所以取T=70 ℃來計(jì)算溫度附加誤差δ,因此δ=可見附加溫度誤差也比較大,所以必須進(jìn)行溫度補(bǔ)償。
本文使用MATLAB 對(duì)IA-LSSVM 溫度補(bǔ)償模型進(jìn)行仿真,并用第1,3,5,7,9 組作為最小二乘支持向量機(jī)的訓(xùn)練集數(shù)據(jù),余下五組為測(cè)試集數(shù)據(jù),設(shè)置免疫算法種群規(guī)模為100,每一代優(yōu)秀個(gè)體克隆個(gè)數(shù)為10,相似度因子為0.7,激勵(lì)度系數(shù)全都設(shè)為1。二維標(biāo)定實(shí)驗(yàn)后溫度補(bǔ)償模型如圖5 所示,以測(cè)試集的預(yù)測(cè)值計(jì)算的均方差為目標(biāo)函數(shù),通過免疫算法不斷優(yōu)化最小二乘支持向量機(jī)中的高斯核函數(shù)參數(shù)σ以及懲罰因子C的值,找到最優(yōu)值之后訓(xùn)練出最優(yōu)模型,最終輸出結(jié)果X′,結(jié)果見表2,輸入輸出特性曲線如圖6 所示。
圖5 IA-SVM 溫度補(bǔ)償系統(tǒng)框圖
圖6 補(bǔ)償后PSD 傳感器輸出特性曲線
表2 IA-LSSVM 溫度補(bǔ)償模型輸出值
免疫算法非常適用于多極值尋優(yōu)問題,而且尋優(yōu)速度非常快,僅僅迭代二十次就達(dá)到了收斂,并輸出相應(yīng)參數(shù)進(jìn)行模型訓(xùn)練。 由表2 可以算出其零位溫度系數(shù)α0:
式中:x0m為零位時(shí)位移最大改變量,為4.063 mm-4.010 mm=0.053 mm,X(FS)為位移傳感器量程為11 mm-4 mm=7 mm,計(jì)算結(jié)果α0=1.6×10-4/℃,與補(bǔ)償前的3.0×10-4/℃相比,提升了兩倍左右。 而靈敏度溫度系數(shù)αs:
分子Δym為在全量程范圍中,輸出值隨溫度漂移最大時(shí)候的差值,有表2 可知在滿量程11 mm 時(shí)取得最大漂移量:10.998 mm-10.909 mm =0.089 mm。ΔT為最高溫度和最低溫度輸出的差值,YFS表示量程7 mm。 因此可計(jì)算得到2.8×10-4/℃,相比于溫度補(bǔ)償之前的2.8×10-3,剛好提升了十倍。 另外,溫度附加誤差:
對(duì)于PSD 位移傳感器的溫度漂移問題,本文提出了基于IA-LSSVM 的軟件溫度補(bǔ)償模型。 以預(yù)測(cè)值與期望值的均方差作為目標(biāo)函數(shù),將其轉(zhuǎn)化為凸優(yōu)化問題,即用免疫算法迭代優(yōu)化最小二乘支持向量機(jī)的懲罰因子C,和高斯核函數(shù)σ的值,得到最優(yōu)值之后就可以訓(xùn)練最終的最小二乘支持向量機(jī)溫度補(bǔ)償模型。 結(jié)果表明:輸出測(cè)試集預(yù)測(cè)值的零位溫度系數(shù)提高了兩倍,靈敏度溫度系數(shù)提高了十倍,溫度附加誤差也提升了十倍,從而減小了溫度對(duì)測(cè)量結(jié)果的影響。