金華明,許凡非,王巧利,李丹陽,崔麗珍
1(內(nèi)蒙古科技大學(xué)機械工程學(xué)院,內(nèi)蒙古包頭014010)
2(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古包頭014010)
煤炭是我國的基礎(chǔ)能源,長久以來支撐著我國經(jīng)濟的發(fā)展[1].我國95%以上的煤礦都是井工開采,因煤礦深處地下數(shù)百米,同時井下狹小的巷道、高濃度瓦斯及煤塵、凹凸不平的地面、錯綜復(fù)雜的機械設(shè)備,煤礦井下透水、瓦斯、冒頂?shù)任kU因素威脅著工作人員的生命安全,為煤礦井下人員及設(shè)備的定位監(jiān)控技術(shù)提出了更高的要求[2].近年來,無線傳感器網(wǎng)絡(luò)定位技術(shù)成為國內(nèi)外學(xué)者的研究熱點,在實際應(yīng)用中得到迅速的發(fā)展.韓東升、楊維等人[3]提出了煤礦井下基于信道衰減模型的加權(quán)質(zhì)心定位算法,通過動態(tài)獲取巷道不同區(qū)域的路徑衰減指數(shù)η,解決了巷道不同區(qū)域內(nèi)通信環(huán)境不同造成衰減因子各異產(chǎn)生測距誤差的問題.在此基礎(chǔ)上崔麗珍、李蕾等人[4]研究了分區(qū)域分析巷道衰減指數(shù)η 的問題,采用了線性插值法實現(xiàn)了衰減指數(shù)的動態(tài)變化,一定程度上減小了建庫誤差.基于接收信號強度指示(Received signal strength indication:RSSI)測距算法的研究中,環(huán)境因子Xσ也是影響測距精準(zhǔn)性的重要因素,張會清、石曉偉等人[5]提出了基于BP 神經(jīng)網(wǎng)絡(luò)和泰勒級數(shù)的室內(nèi)定位算法,使用BP 神經(jīng)網(wǎng)絡(luò)擬合室內(nèi)無線信號的傳播模型,避免了傳統(tǒng)信號傳播模型對Xσ及η 的不精確估計.針對 BP 神經(jīng)網(wǎng)絡(luò)收斂速度慢,易陷入局部極小的缺點,封鵬[6]采用了有較好全局搜索能力的粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)[7]來擴大BP 神經(jīng)網(wǎng)絡(luò)的權(quán)值及閾值搜索范圍,加速收斂過程.在非測距式定位算法的研究中,對指紋匹配算法的應(yīng)用越來越廣泛,趙方、羅海勇等人[8]提出了基于公共信標(biāo)集的高精度射頻指紋定位算法,離線階段通過對待測區(qū)域劃分網(wǎng)格,根據(jù)離線數(shù)據(jù)集統(tǒng)計每個網(wǎng)格的射頻信號概率分布,以及在線目標(biāo)節(jié)點的觀測指紋,通過貝葉斯估計算法計算目標(biāo)節(jié)點所在各參考點處的最大概率,實現(xiàn)目標(biāo)節(jié)點的定位.該定位方式通過計算目標(biāo)節(jié)點落在網(wǎng)格的最大概率實現(xiàn)高精度定位,但應(yīng)用在通信環(huán)境時變較大的空間內(nèi)會產(chǎn)生較大的定位誤差.指紋匹配定位算法應(yīng)用于復(fù)雜多變的空間環(huán)境下,指紋地圖不能隨環(huán)境改變而自動更新是產(chǎn)生定位誤差的主要原因.針對這一問題,Krishnan,P[9]及 Shau-Shiun J 等人[10]提出設(shè)置足夠多的參考基站,根據(jù)實時輸出的RSSI,通過內(nèi)插算法,內(nèi)插出動態(tài)指紋地圖.Zheng,V.W 等人[11]通過構(gòu)建隱馬爾可夫模型(Hidden Markov Model,HMM)以及 Zou,H 等人[12]使用遷移學(xué)習(xí)(Transfer Learning)的方式,都使一個時刻RSSI 值遷移到另一個時刻使用.這幾種方式相比于人工測量更新指紋地圖,一定程度上降低了維護成本及復(fù)雜度,但這些方法依賴于額外布置的參考基站數(shù)量,參考基站的數(shù)量關(guān)系指紋地圖更新的準(zhǔn)確性,而且并不適用于空間環(huán)境復(fù)雜多變的煤礦井下.Haeberlen,A 等人[13]通過構(gòu)建參考基站與各參考點間的線性映射關(guān)系,根據(jù)參考基站實時RSSI 指紋更新指紋地圖.這種方法從一定程度上減少了對參考基站數(shù)量上的依賴,然而,參考基站處數(shù)據(jù)與參考點數(shù)據(jù)并不一定呈現(xiàn)嚴(yán)格的線性關(guān)系,易造成指紋地圖較大的更新誤差.吳陳沭[14]提出了“群智感知”的概念,通過測試人員的無意識參與構(gòu)建指紋地圖,采用RADAR-KNN 算法定位目標(biāo)節(jié)點,使指紋地圖的構(gòu)建更加智能化.通過對上述文獻的研究,提出了通過井下作業(yè)人員的無意識參與采集RSSI 數(shù)據(jù)以反映井下無線通信環(huán)境的變化,通過MDS(multidimensional scaling)算法定位作業(yè)人員的路徑位置信息;分區(qū)域構(gòu)建錨節(jié)點與參考點間的近鄰關(guān)系模型,通過作業(yè)人員的指紋信息更新指紋地圖,提高定位精度.
指紋匹配算法主要分為兩個階段:第一階段離線建庫階段,首先在待測區(qū)域內(nèi)部署適量的錨節(jié)點,并分配多個參考點位置.錨節(jié)點分別接收各參考點位置處的RSSI,所有參考點的信號強度與位置坐標(biāo)構(gòu)成指紋數(shù)據(jù)集存入數(shù)據(jù)庫,如式(1):
其中,Li表示第i 個指紋的位置坐標(biāo),ri為目標(biāo)節(jié)點接收到第i 個錨節(jié)點的RSSI.
第二階段在線匹配定位階段.錨節(jié)點接收到目標(biāo)節(jié)點發(fā)射的RSSI 指紋后,通過相應(yīng)算法與離線指紋數(shù)據(jù)庫匹配,定位目標(biāo)節(jié)點坐標(biāo).
指紋匹配定位算法應(yīng)用于煤礦井下,可從一定程度上避免測距式定位算法引進的測距誤差[15,16],然而在煤礦井下離線指紋地圖的實效性問題一直是困擾其應(yīng)用的重要原因.針對這一問題,以井下作業(yè)人員無意識的采集RSSI,通過MDS算法定位其行走路徑,利用RSSI 數(shù)據(jù)與其相應(yīng)的定位坐標(biāo)構(gòu)成新的指紋數(shù)據(jù),反映巷道內(nèi)變化后的通信環(huán)境.使用BP 神經(jīng)網(wǎng)絡(luò)算法分區(qū)域構(gòu)建參考點與錨節(jié)點間的近鄰關(guān)系模型,與指紋數(shù)據(jù)更新指紋地圖,實現(xiàn)高精度定位.
近鄰關(guān)系模型的核心思想是通過最近鄰區(qū)域劃分,使各錨節(jié)點與其近鄰參考點構(gòu)建映射關(guān)系,這種映射關(guān)系反映了參考點與錨節(jié)點近距離內(nèi)RSSI 指紋的相似性特征.并且巷道最近鄰區(qū)域的劃分使相似性在一定時間上保持相對穩(wěn)定.近鄰映射關(guān)系模型如式(2):

其中,RSSIi為信標(biāo)節(jié)點i 的RSSI 指紋數(shù)據(jù);f 為近鄰映射關(guān)系;rssii為第i 個參考點的RSSI.
單個信標(biāo)節(jié)點RSSI 指紋的改變,并不能反映整條巷道內(nèi)全部參考點的RSSI 指紋變化.最近鄰區(qū)域的劃分是對整條巷道內(nèi)影響信道環(huán)境變化的因素進行劃區(qū)域分析.依據(jù)參考點與錨節(jié)點歐式距離最小的原則,為各錨節(jié)點分配參考點,使得在越小的區(qū)域內(nèi)錨節(jié)點的RSSI 指紋與參考點間的RSSI 指紋呈現(xiàn)越為相似的變化規(guī)律,從而減小更新誤差.本文采用BP 神經(jīng)網(wǎng)絡(luò)擬合近鄰關(guān)系模型,從一定程度上減小線性擬合產(chǎn)生的定位誤差.
BP 神經(jīng)網(wǎng)絡(luò)以最速下降法為學(xué)習(xí)規(guī)則,通過誤差的反向傳播不斷修整網(wǎng)絡(luò)權(quán)值及閾值,直至滿足網(wǎng)絡(luò)誤差平方和最小的多層前饋網(wǎng)絡(luò)[17].本文采用兩輸入單輸出的三層BP 神經(jīng)網(wǎng)絡(luò),擬合近鄰關(guān)系模型.
依據(jù)經(jīng)驗公式(3)估計隱藏層神經(jīng)元個數(shù),以訓(xùn)練誤差最小為原則,調(diào)整隱藏層神經(jīng)元個數(shù).選擇f(x)=(1-e-x)/(1+e-x)為激活函數(shù).算法步驟如下:

1)前向傳輸階段.輸入數(shù)據(jù)在隱藏層以及輸出層傳輸?shù)妮敵鲇嬎愎綖?

其中,Xi為 BP 神經(jīng)網(wǎng)絡(luò)輸入值,ωij、Qij分別為輸入層到隱藏層的初始權(quán)值及閾值,ωjk、Qjk為隱藏層到輸出層的初始權(quán)值及閾值.
2)誤差函數(shù)判斷階段.期望輸出與實際輸出的誤差是誤差反向傳播修正權(quán)值的判斷條件.誤差函數(shù)公式為:

3)誤差反向傳輸階段.當(dāng)前向誤差沒有達(dá)到設(shè)定閾值時,隱藏層、輸出層的反向傳輸誤差計算公式為:

其中,dk為期望網(wǎng)絡(luò)輸出值,Yk為實際網(wǎng)絡(luò)輸出值.
4)誤差反向傳輸修正階段.反向傳輸?shù)男拚鲗舆B接權(quán)值與閾值的公式為:

5)重復(fù)上述過程,直至訓(xùn)練誤差達(dá)設(shè)定閾值,訓(xùn)練結(jié)束.保存訓(xùn)練誤差最小的網(wǎng)絡(luò)權(quán)值矩陣.BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示.

圖1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structural diagram of BP neural network
狹長的巷道內(nèi)已知作業(yè)人員行走路徑上停下來的靜止點個數(shù)為 n,其坐標(biāo)集合為 X=[x1,x2,x3,…,xn].MDS 算法通過距離矩陣定位作業(yè)人員行走路徑[18].算法步驟如下:
1)計算靜止點間歐式距離.本文以路徑中兩靜止點間的步行距離計數(shù)器獲得實測距離矩陣D,其中D=[dij]n×n.
2)利用距離矩陣D 計算相對坐標(biāo).依據(jù)靜止點間進行平移、旋轉(zhuǎn)等操作不會對距離矩陣產(chǎn)生影響的原則,首先計算距離矩陣D 的雙中心矩陣B,如式(13).對雙中心矩陣B 進行正交分解,如式(14).

其中,J 為中心矩陣 J=I-e* eT/n,I 為 n 階單位矩陣,e=(1,1,1,…,1)T.
3)相對坐標(biāo)轉(zhuǎn)化成絕對坐標(biāo).無線傳感器網(wǎng)絡(luò)定位中相對坐標(biāo)沒有實際意義,需要將相對坐標(biāo)轉(zhuǎn)化成絕對坐標(biāo),此時需要對相對坐標(biāo)進行平移、旋轉(zhuǎn)、對稱等處理.其中假設(shè)相對坐標(biāo)為 R=[R0,R1,…,Rn],絕對坐標(biāo)為 X=[X0,X1,…,Xn],平移、旋轉(zhuǎn)、對稱因數(shù)為Q.

其中,R0及R60為巷道的進出口路徑上已知坐標(biāo),求得因數(shù)Q 后,根據(jù)式(16)可得剩余靜止點絕對坐標(biāo).

進一步化簡得到:

(4)重復(fù)迭代優(yōu)化.根據(jù)代價函數(shù)(17)是否滿足計算出的路徑靜止點絕對坐標(biāo)的距離矩陣與實際測得的坐標(biāo)距離矩陣誤差最小進行重復(fù)迭代.

本文通過實驗對比分析常用的幾種匹配算法的定位結(jié)果,采用PSO-BP 神經(jīng)網(wǎng)絡(luò)定位算法.針對BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練權(quán)值尋優(yōu)過程存在多極值點、易陷入局部極小及收斂速度慢的問題,粒子群優(yōu)化算法擴大BP 神經(jīng)網(wǎng)絡(luò)權(quán)閾值的搜索范圍,加速BP 神經(jīng)網(wǎng)絡(luò)收斂,提高訓(xùn)練速度[19].其中,算法過程如下:
1)初始化階段.初始化PSO 算法的權(quán)值矩陣ω 及權(quán)值速度V,其中權(quán)值個數(shù)n 由初始化公式可得:

其中,Ii、Hj、Ok為 BP 神經(jīng)網(wǎng)絡(luò)輸入層、隱藏層及輸層神經(jīng)元個數(shù).
2)第一代權(quán)值.第一代權(quán)值中個體最優(yōu)粒子.
Pbest為其本身,全局最優(yōu)權(quán)值gbest為所有權(quán)值中適應(yīng)度函數(shù)值最小的權(quán)值.

其中,E 為BP 神經(jīng)網(wǎng)絡(luò)的輸入輸出誤差,Yk是BP 神經(jīng)網(wǎng)絡(luò)的期望輸出值,Ok是BP 神經(jīng)網(wǎng)絡(luò)的實際輸出值.
3)權(quán)值更新階段.適應(yīng)度函數(shù)值未達(dá)設(shè)定閾值則更新權(quán)值,其中權(quán)值更新如下:

其中,c1、c2為學(xué)習(xí)因子,r1、r2為[0,1]內(nèi)均勻隨機數(shù).
4)PSO 算法權(quán)重更新階段.線性遞減權(quán)重法更新PSO 算法權(quán)重.

其中,ωmax、ωmin分別為慣性權(quán)重最大值、最小值,k 為當(dāng)前迭代步數(shù).
5)重復(fù)循環(huán)步驟3)直至適應(yīng)度函數(shù)值達(dá)到設(shè)定閾值.PSO-BP 神經(jīng)網(wǎng)絡(luò)算法流程如圖2 所示.

圖2 PSO-BP 神經(jīng)網(wǎng)絡(luò)流程圖Fig.2 PSO-BP neural network flow chart
驗證本文算法井下定位效果,選取60m×4m 狹長地下管廊為實驗測試區(qū)域,模擬井下環(huán)境.實驗ZigBee 節(jié)點選用帶全向天線的CC2530 節(jié)點,在60m 的地下管廊內(nèi),每隔1m 設(shè)置一個參考點,共設(shè)置61 個參考點.每隔20m 放置一個CC2530 節(jié)點作為錨節(jié)點,4 個錨節(jié)點交叉部署于兩側(cè)以獲得最大的通信覆蓋面積.離線構(gòu)建指紋地圖階段由測試人員將目標(biāo)節(jié)點佩戴腰間,在各參考點處廣播50 個數(shù)據(jù)包,錨節(jié)點接收到參考點處RSSI,將RSSI 匯聚至協(xié)調(diào)器節(jié)點,并將RSSI 指紋傳至電腦終端完成離線指紋地圖構(gòu)建.
在線采集階段,實驗通過增加管廊通道內(nèi)人員走動及改變障礙物位置以達(dá)到改變通信環(huán)境的目的.本次實驗共設(shè)置了3 條行走路徑,模擬井下人員的無意識的數(shù)據(jù)采集.測試人員從起始位置(0,0)模仿礦井的巷道口位置,測試人員約以Vx=2.5m/s,Vy=0m/s 的速度做直線運動直至出口(0,60)位置,期間至指定靜止點時廣播信號,傳至終端采集RSSI 指紋信息,實驗方案部署圖如圖3 所示.
4.2.1 行走路徑定位結(jié)果分析
圖4分別為MDS算法定位測試人員三條行走路徑的曲線圖,其中橫坐標(biāo)為管廊的寬度,縱坐標(biāo)為管廊的長度.

圖3 管廊實驗節(jié)點部署圖Fig.3 Pipeline gallery experimental node deployment diagram

圖4 (a)、(b)、(c)路徑定位曲線圖Fig.4 (a),(b),(c)Path location curves
4.2.2 指紋地圖更新前定位結(jié)果分析
圖5 為未更新指紋地圖時KNN、BP 神經(jīng)網(wǎng)絡(luò)以及PSO-BP神經(jīng)網(wǎng)絡(luò)的定位曲線圖.其中,橫坐標(biāo)為目標(biāo)節(jié)點的位置個數(shù),縱坐標(biāo)為目標(biāo)節(jié)點位置的縱坐標(biāo).分別計算三種算法在指紋更新前定位目標(biāo)節(jié)點的定位坐標(biāo)與實際坐標(biāo)的均方差(RMSE)見表1.

圖5 指紋地圖更新前定位曲線圖Fig.5 Fingerprint map location curve before updating

表1 指紋更新前各算法定位誤差Table 1 Location errors of algorithms before fingerprint renewal
4.2.3 指紋地圖更新后定位結(jié)果分析
圖6為指紋地圖更新以后三種定位算法的定位曲線圖.

圖6 指紋地圖更新后定位曲線圖Fig.6 Fingerprint map updated location curve
同樣,圖6 的橫坐標(biāo)為目標(biāo)節(jié)點的位置個數(shù),縱坐標(biāo)為目標(biāo)節(jié)點位置的縱坐標(biāo).分別計算三種算法在指紋更新后定位目標(biāo)節(jié)點的定位坐標(biāo)與實際坐標(biāo)的均方差(RMSE)見表2.

表2 指紋更新后各算法定位誤差Table 2 Location errors of fingerprint updating algorithms
圖7 為指紋地圖更新后各算法的定位誤差柱狀圖.根據(jù)圖7 所示,相比于未更新指紋地圖,指紋地圖更新后三種算法的定位誤差均有所下降.

圖7 指紋地圖更新后定位誤差柱狀圖Fig.7 Location error histogram after updating fingerprint map
針對煤礦井下指紋匹配算法定位精度低的問題,本文采用分區(qū)域構(gòu)建近鄰關(guān)系模型更新指紋地圖的方式,通過實驗證明相比于未更新指紋地圖定位精度分別提高了大約17.4%,10.9%,11.8%.指紋匹配定位方面,本文采用 PSOBP 神經(jīng)網(wǎng)絡(luò)的定位方式,解決了BP 神經(jīng)網(wǎng)絡(luò)收斂速度慢,易陷入局部最優(yōu)的問題,最終的定位誤差約為3.1438m,可以滿足井下定位需求.