束仁義 朱家兵 沈曉波 蔡 俊 夏 泐
(淮南師范學院 電子工程學院, 安徽 淮南 232038)
通過中國北斗衛(wèi)星導航系統(tǒng)(BDS)或者美國全球定位系統(tǒng)(GPS)可以實現(xiàn)戶外目標定位;但對于室內、井下、管道等封閉空間,很難通過BDS或者GPS實現(xiàn)準確定位[1],且成本高。因此,可以預先布置無線傳感器網(wǎng)絡(wireless sensor network,WSN)節(jié)點,使用成熟的定位算法來實現(xiàn)精準定位[2]。近年來,WSN在礦井人員定位、室內移動目標定位、天然氣管道泄露定位等方面得到了廣泛應用。許多學者提出了一些改進定位算法,如Thimmaiah等人提出了一種基于無線電信號強度的WSN定位誤差優(yōu)化技術[3];Chen等人提出了基于WSN距離相關的室內迭代定位算法[4];Lv等人提出了基于GA-PSO-BP混合算法的室內三維空間WSN定位技術[5]。2002年Suykens等人提出了基于最小二乘支持向量回歸機(least square support vector regression, LSSVR)算法[6]。周松斌等人將LSSVR算法應用到WSN定位中,有效降低了估計誤差對定位精度的影響,減小了平均定位誤差[7]。張烈平等人提出了基于粒子群優(yōu)化LSSVR的三維WSN節(jié)點定位算法,與LSSVR算法相比,該算法定位精度更高[8]。鐘陽晶等人提出了基于RSSI高斯濾波的LSSVR定位算法,定位誤差比未進行高斯濾波處理減少了12%~20%[9]。Zhang等人提出了基于RSSI-TOA和LSSVR算法的WSN節(jié)點三維定位算法,該算法比基于LSSVR或RSSI-TOA算法的定位精度更高[10]。
支持向量機是基于統(tǒng)計學習理論的機器學習算法,而LSSVR算法是基于支持向量機的一種改進[11]。本次研究是在LSSVR定位算法的基礎上,采用蝙蝠算法(BA)和卡爾曼濾波算法(KF),以提高節(jié)點定位精度。通過仿真實驗對 LSSVR、基于蝙蝠算法的最小二乘支持向量回歸機(BA-LSSVR)與基于卡爾曼濾波和蝙蝠算法的最小二乘支持向量回歸機(KF-BA-LSSVR)等3種算法的定位結果,以及基于卡爾曼濾波的最小二乘支持向量回歸機(KF-LSSVR)與KF-BA-LSSVR的平均定位誤差進行了對比分析。
最小二乘支持向量回歸機優(yōu)化問題的數(shù)學模型如式(1)所示[12]:
(1)
式中:ω—— 權重矩陣;
bk—— 偏差;
ξk—— 擬合誤差;
P—— 虛擬節(jié)點數(shù)量;
C—— 大于0的正則化參數(shù);
φ(xk) —— 非線性映射函數(shù)。
徑向基函數(shù)(radical basis function, RBF)選擇高斯核函數(shù)[13],表達式如式(2)所示:
(2)
式中:Rm,Rn—— 輸入向量,m、n=1,2,…,P;
σ—— 高斯核標準差。
通過拉格朗日乘子法得到式(1)所示拉格朗日函數(shù):
bk+ξk-yk)
(3)
式中:αk—— 拉格朗日乘子。
由式(3)分別對ω、b、α、ξ求導可得:
(4)
式中:I為單位矩陣;y=[y1,y2,…,yk];e=[1,1,…,1]T;α=[α1,α2,…,αk];Ω=Q(Rm,Rn)。
由式(4)可得:
(5)
式中:A=Ω+C-1I,由于|A|≠0,故A-1存在。
由式(5)得到最優(yōu)決策函數(shù):
(6)
(1) 首先將dkj和xk作為輸入訓練樣本量,此時dkj與xk分別對應式(1)中的φ(xk)和yk,同時對dkj與xk進行標準化處理;然后求得bk和αk。
基于LSSVR的定位流程如圖1所示。考慮實際定位存在偏差,節(jié)點平均定位誤差為:
圖1 基于LSSVR的定位流程
(7)
設正則化參數(shù)C和高斯核標準差σ的取值范圍分別為[0.1,100.0]和[0.1,10.0]。由于確定參數(shù)值需要滿足定位環(huán)境的要求,因此提出一種基于BA算法的優(yōu)化方法。BA算法是Yang等人于2010年提出的一種新型群體智能算法[14],在求解全局最優(yōu)解等方面具有很好的效果。
假設在一個D維搜索空間中,存在一定數(shù)量的蝙蝠,每個蝙蝠在某個位置以一定速度飛行且具有不同頻率。設最大脈沖音量和最大脈沖率分別為G和U。
已知第i個蝙蝠在t時刻的位置、飛行速度和頻率分別為Xi,t、Vi,t和Fi,t,則有[15]:
Fi,t=Fmin+β(Fmax-Fmin)
(8)
Vi,t+1=Vi,t+Fi,t(Xi,t-X*)
(9)
Xi,t+1=Xi,t+Vi,t+1
(10)
式中:β—— 服從均勻分布的隨機變量,取值范圍為[0,1);
X*—— 當前全局最優(yōu)解。
蝙蝠在空間搜索過程中根據(jù)需要調整G和U,更新公式為:
Gi,t+1=λGi,t
(11)
Ui,t+1=Ui,0(1-exp(-γt))
(12)
式中:λ、γ—— 常數(shù),0<λ<1、γ>0。
根據(jù)BA算法原理,優(yōu)化正則化參數(shù)C和高斯核標準差σ的步驟如下:
(1) 初始化蝙蝠參數(shù),主要包括種群數(shù)、Fmin、Fmax、Xi,t、Vi,t、G和U等。
(2) 定義蝙蝠個體的適應度函數(shù)為:
(13)
首先將C和σ代入LSSVR定位算法中,再將定位結果代入式(13)中進行求解,得到Fitness*。
(3) 將步驟(1)和(2)中參數(shù)值代入式(8) — 式(10)中,得到C*和σ*。比較最大脈沖率U和均勻分布隨機數(shù)rand,如果U C=C*+λG (14) σ2=(σ*)2+λG (15) 如果C和σ超出設定范圍,則取臨界值。 (4) 重復步驟(2)和(3),如果Fitness>Fitness*,計算得到當前全局最優(yōu)解Cbest和σbest。 (5) 進行多次迭代,重復步驟(2) — (4),得到最終優(yōu)化的C和σ。 作為輸入測試變量,距離對LSSVR定位的精度有很大影響,在實際測距過程中容易受到環(huán)境的影響。為了提高測距精度,在高斯白噪聲模型下采用KF算法進行距離優(yōu)化,具體描述如下[16-17]: (1) 狀態(tài)一步預測: (16) 式中:δ—— 離散時間; Φ—— 狀態(tài)轉移矩陣; (2) 一步預測協(xié)方差矩陣: P(δ+1|δ)=ΦP(δ|δ)ΦT+S (17) 式中:S—— 噪聲協(xié)方差矩陣; P(δ|δ) —— 上一狀態(tài)的協(xié)方差矩陣,設P(0|0)=P0。 (3) 濾波增益矩陣: K(δ+1)=P(δ+1|δ)HT× [HP(δ+1|δ)HT+E]-1 (18) 式中:H—— 觀測矩陣; E—— 噪聲驅動矩陣。 (4) 狀態(tài)更新: K(δ+1)ε(δ+1) (19) (5) 協(xié)方差矩陣更新: P(δ+1|δ+1)=[I-K(δ+1)H]× P(δ+1|δ) (20) 通過式(1) — 式(5)進行迭代更新,減小高斯白噪聲對距離的影響,提高節(jié)點定位精度?;?KF-BA-LSSVR的定位流程如圖2所示。 圖2 基于KF-BA-LSSSVR的定位流程 表1 BA算法參數(shù)設置 按照圖2所示定位流程進行仿真實驗,對LSSVR、BA-LSSSVR和KF-BA-LSSSVR等3種算法的定位結果及節(jié)點平均定位誤差(見圖3、圖4)進行對比分析。經(jīng)過BA算法優(yōu)化后得到C=41.836 7、σ2=2.812 3。經(jīng)過BA算法優(yōu)化后,LSSVR定位誤差減小,而經(jīng)過卡爾曼濾波后,其定位誤差更小。 圖3 3種算法的定位結果 圖4 3種算法的平均定位誤差 在參數(shù)相同的仿真環(huán)境下分別迭代10、20、30次,根據(jù)式(7)得到平均定位誤差。由3種定位算法不同迭代次數(shù)的誤差對比結果(見圖5)可知,增加迭代次數(shù)沒有提高節(jié)點的平均定位精度。 圖5 3種算法不同迭代次數(shù)的平均定位誤差對比 在參數(shù)相同的仿真環(huán)境下,迭代10次,得到 KF-LSSVA和KF-BA-LSSVR的平均定位誤差曲線(見圖6)。KF-BA-LSSVR算法的平均定位誤差比KF-LSSVR算法小。 圖6 KF-LSSVR和KF-BA-LSSVR的 為進一步提高基于LSSVR算法的WSN定位精度,提出基于BA算法的LSSVR算法。仿真實驗結果表明,基于BA算法的LSSVR定位效果得到了改善。在考慮測量距離受高斯噪聲影響的情況下,采取卡爾曼濾波進行距離優(yōu)化后,定位精度明顯提高、定位誤差大幅降低。在LSSVR定位的基礎上,通過BA優(yōu)化正則化參數(shù)和高斯核標準差,采用卡爾曼濾波算法降低噪聲對測距的影響,為WSN三維節(jié)點定位提供了一種良好的途徑。3 卡爾曼濾波定位
4 仿真實驗
4.1 仿真環(huán)境
5 結 語