史明泉,崔麗珍,赫佳星
(內蒙古科技大學信息工程學院,內蒙 古包頭 014010)
煤礦安全一直是一個熱門話題,在煤炭開采過程中,由于煤礦井下巷道狹窄,交錯縱橫且光線暗淡,這給井下人員及礦車定位帶來了諸多困難[1],因而井下定位成為亟待解決的問題。目前關于受限空間內定位的相關研究有很多,然而由于煤礦井下特殊的環境,普通的定位方法無法直接應用。ZigBee技術具有能耗低、效率高、抗干擾能力強和組網能力強等優點,能在煤礦井下穩定工作,傳送性能非常好,故本文選取ZigBee作為無線傳輸方式。基于ZigBee的定位原理是根據信標節點的接收信號強度值(received signal strength indication,RSSI)計算,得到定位節點的位置坐標。根據RSSI值進行室內定位目前主要有兩種方法:①基于相對位置的定位方法,利用RSSI值計算信標節點與待定位節點之間的距離來定位,比較常見的有三邊定位及其改進算法;②基于位置指紋的定位方法,離線階段,將各個采集點的RSSI值和相應的坐標保存到數據庫中;在線階段,將采集到的RSSI值與指紋庫進行匹配找到定位節點的位置信息[2-3]。基于相對位置的定位方法對環境依賴程度較高,在井下環境中,由于信號衰落,損耗系數的不確定及多徑效應引起的傳播模型不準確等因素,定位精度不高。本文采用基于位置指紋和神經網絡相結合的定位方法,采集定位環境中的位置指紋,根據已有的數據訓練神經網絡,建立RSSI值與實際坐標之間的映射關系。定位時采用訓練好的神經網絡預測待測節點的位置坐標。
近些年來,為進一步提高定位精度,利用神經網絡、機器學習等人工智能理論進行室內定位,成為一個熱門的研究領域。JEON等[4]利用支持向量機(support vector machine,SVM)學習并建立信號強度與位置信息之間的非線性關系,然后利用訓練好的支持向量機預測待測節點的位置信息,對測距誤差具有較高的容忍度;LIU等[5]提出的定位算法將次錨節點和BP(back propagation)網絡結合,因為BP網絡具有較高的并行性,其節點具有多跳性,在硬件環境不高的情況下,能夠準確定位待測節點,該算法盡管硬件開銷小,運算復雜度低,但定位精度較低,誤差較大;張會清等[6]將泰勒級數和BP神經網絡相結合來進行定位,用BP神經網絡對RSSI測距模型中的相關參數進行優化,通過泰勒級數的展開來提高定位精度。但該算法采用的RSSI測距模型運算復雜度較高,導致節點的能耗增加,節點不能長時間工作,這在煤礦井下這樣的惡劣環境中是不允許的,而且BP神經網絡收斂速度不快、容易陷入局部最小值。
廣義回歸神經網絡(generalized regression neural network,GRNN)的非線性映射能力很強,具有高度的魯棒性和容錯性,相比傳統BP網絡,GRNN有較強的數據擬合能力和較快的學習速度,特別是當訓練樣本較小時,可以獲得較好的回歸預測效果,煤礦井下環境惡劣,測試人員采集數據相對困難,因而GRNN網絡非常適合解決井下定位問題。本文將煤礦井下信標節點接收到的RSSI值作為神經網絡的輸入,將采集節點的位置坐標作為網絡輸出,訓練GRNN神經網絡,獲得RSSI值與節點坐標之間的網絡模型。GRNN模型結構簡單,只需一個參數,即平滑因子σ。因而,GRNN模型的預測性能在很大程度上取決于σ的選擇,平滑因子σ一般由先驗知識或者個人經驗來選擇,學習效率低下、人為主觀影響較大[7]。因而,本文將粒子群優化(particle swarm optimization,PSO)算法引入到GRNN模型中,采用粒子群算法優化GRNN模型參數,提高GRNN回歸預測效果,準確定位未知節點坐標位置。
如圖1所示,GRNN神經網絡由輸入層、模式層、求和層和輸出層共四層構成。

圖1 GRNN網絡結構圖Fig.1 Network structure of GRNN


(1)
假定f(x,y)服從正態分布,計算見式(2)。

(2)


(3)
求和層包含兩種類型的神經元,計算見式(4)。

(4)
一種神經元將模式層中所有神經元的輸出值加權求和,計算見式(5)。

(5)
另一種神經元將模式層中所有神經元的輸出值作為連接權值,把模式層中相應的神經元進行加權求和,計算見式(6)。

(6)
輸出層的神經元將求和層中兩個神經元的值相除,得到輸出結果見式(7)。

(7)
粒子群優化算法PSO是由E-berhart博士和Kennedy博士發明的一種新的全局優化進化算法,它源于對鳥類捕食行為的模擬[8-10],廣泛地應用在系統辨識[11]、神經網絡訓練[12]等領域。
與蟻群算法類似,粒子群優化算法假設一個群體(粒子群)用來描述待尋優的問題,粒子群的個體(粒子)表示問題的一個值,比如本算法中粒子代表GRNN網絡的一個平滑因子。每個粒子有速度和位置兩個參數,以粒子作為自變量構建適應度函數,粒子的優劣通過適應度函數值來衡量。算法首先初始化一個隨機的粒子群,設定最大迭代次數,在每一次迭代中,首先每個粒子尋找自身的最優解,即個體極值pBest。然后比較每個pBest,尋找當前的整個群體的最優值,即全局極值gBest。粒子根據這兩個極值,利用式(8)和式(9)來更新自己的狀態。
Vk+1=ω×Vk+c1×rand×(pBest-Xk)+
c2×rand×(gBest-Xk)
(8)
Xk+1=Xk+Vk+1
(9)
式中:Vk為第k次迭代粒子的速度;Vk+1為第k+1次迭代粒子的速度;Xk是第k次迭代粒子的位置;Xk+1是第k+1次迭代粒子的位置;rand為[0,1]之間的隨機數;c1為記憶因子;c2為進化因子;ω為加權系數。
更新過程中,粒子每一維的速度限制在[Vmin,Vmax]之間,其中Vmin為最小速率,Vmax為最大速率。粒子每一維的位置也被限制在允許范圍之內。每一次迭代中,pBest和gBest都在不斷更新。最后當達到最大迭代次數,最終的gBest就是算法的最優解。
基于GRNN神經網絡的井下定位模型,首先根據井下環境特征,每隔一定距離采集RSSI值并記錄對應的坐標值,將樣本數據保存到數據庫中。算法分為訓練階段和測試階段,訓練階段利用訓練樣本構建PSO-GRNN網絡模型,該模型具有最小的定位誤差;測試階段,將待定位節點的RSSI值輸入至訓練好的PSO-GRNN定位模型中,神經網絡的輸出即為待測節點的預測坐標。方案流程如圖2所示。

圖2 PSO-GRNN方案流程圖Fig.2 The process of PSO-GRNN
GRNN網絡模型采用MATLAB函數net=newgrnn(P,T,spread)構建,其中P為神經網絡的輸入,T為神經網絡的輸出,spread為平滑因子。測試輸出采用函數Y=sim(net,P),其中net為newgrnn函數生成的GRNN網絡架構,P為測試輸入,Y為測試輸出。一般通過手動調整spread,來獲得最優的網絡架構,但該方法存在效率低,精度差等問題。本質上,σ的選擇歸結為一個優化問題,即找到一個合適的σ,使得測試樣本的網絡輸出值(預測坐標)與實際值(實際坐標)的誤差最小。因此,本文采用PSO全局尋優算法對spread進行優化調整,避免了由于手動調整帶來的效率低下等問題。
PSO-GRNN定位算法的具體步驟如下所述。
1) 設置粒子群算法的基本參數,種群個體數量為sizepop,迭代次數為maxgen,粒子位置的最大值為popmax,粒子位置的最小值為popmin,粒子的最大速度為Vmax,粒子的最小速度為Vmin,記憶因子為c1,進化因子為c2。
2) 構建粒子群算法的適應度函數。PSO-GRNN定位算法的適應度函數表示為:定位節點的GRNN網絡輸出值(預測坐標)和節點的實際坐標的均方根誤差。
具體實現是將樣本隨機分為A、B兩組,A為訓練樣本,B為測試樣本。通過A訓練得到的網絡結構,計算見式(10)。

(10)

測試階段:B的RSSI值作為該網絡的輸入,網絡的輸出即為測試樣本B對應的預測坐標值,預測坐標值與測試樣本的實際坐標值的均方根誤差函數作為適應度函數,計算見式(11)。

(11)

3) 比較第k個粒子所有位置的適應度值,找出最小的適應度值pBestValue(k),對應的個體最優位置為pBest。
4) 比較所有粒子在其最優位置的適應度值pBestValue(k),找出最小值,對應的位置即為整個種群的最優位置gBest。
5) 更新粒子位置和速度,計算見式(12)和式(13)。
Vk+1=ω×Vk+c1×rand×(pBest-Xk)+
c2×rand×(gBest-Xk)
(12)
Xk+1=Xk+Vk+1
(13)
6) 達到迭代次數,采用搜索到的最佳gBest作為平滑因子構建GRNN,計算見式(14)。
net=newgrnn(P,T,gBest)
(14)
為了驗證PSO-GRNN算法在井下環境的定位效果,選取實驗環境為一個80 m×4 m的狹長地下通道。沿著狹長的通道,每隔1 m設置1個數據采集點,共有81個數據采集點,定位節點使用CC2530 ZigBee節點,隨身攜帶。通道壁每隔20 m放置1個CC2530 ZigBee節點,作為信標節點(AP),用來接收定位節點發送的數據,共4個AP,4個AP分別通過有線的方式連接到網關。定位節點隨身攜帶,測試人員從(0,0)位置出發,以2.5 m/s的速度勻速前進,終點位置為(0,80 m)。在每一個數據采集點處,定位節點向4個信標節點分別發送50個數據包,信標節點接收到數據后,解析出RSSI值,將RSSI值傳送到網關,形成如[RSSI1,RSSI2,RSSI3,RSSI4,(X,Y)]的樣本數據,共81個,存放在數據庫中。從81組樣本中隨機抽取65組樣本作為訓練樣本,以[RSSI1,RSSI2,RSSI3,RSSI4]作為PSO-GRNN網絡模型的輸入,訓練神經網絡,由于數據采集點坐標的X值都為0,故問題簡化為將數據采集點的縱坐標Y作為輸出。設定最大迭代次數為50,最終得到最優的網絡輸出,即定位坐標與實際坐標的誤差最小。再用剩余的16組數據作為測試數據,驗證該網絡的定位結果是否與實際坐標相符。
為了比較三種算法的定位效果,隨機從81個樣本中抽取16個樣本,[RSSI1,RSSI2,RSSI3,RSSI4]分別作為三種網絡模型的輸入,模型的輸出為定位坐標。圖3為BP的定位圖。

圖3 BP網絡的定位結果Fig.3 Localization results of BP
圖4為GRNN的定位圖,默認GRNN網絡的平滑因子spread=1。
圖5為PSO-GRNN的定位圖,經過優化得到當spread=0.582 7時,均方誤差RMse=2.193 7,達到最小。圖6為PSO的優化結果。

圖4 GRNN網絡的定位結果Fig.4 Localization results of GRNN

圖5 PSO-GRNN網絡的定位結果Fig.5 Localization results of PSO-GRNN

圖6 PSO優化結果Fig.6 Optimized result of PSO
比較圖3、圖4和圖5發現:采用BP模型實際坐標與預測坐標的最大誤差9 m,最小誤差1 m,誤差在2 m內的只有4個樣本;采用未經優化的GRNN模型的最大誤差9 m,最小誤差1 m,誤差在2 m內的有5個樣本;采用PSO-GRNN模型的最大誤差4 m,最小誤差0m,誤差在2 m內的有12個樣本。
通過均方根誤差也可以比較各種算法的定位精度,均方誤差的公式計算見式(14)。

(14)

由此可見,PSO-GRNN模型比BP模型和未經優化的GRNN模型有更高的定位精度,均方根誤差為2.1937,滿足煤礦井下定位需求。
三種模型的運行時間見表2。
由表2可知,PSO-GRNN模型經過優化得到最優性能的同時,付出了時間的代價,該模型尋優時間為4.531 3 s,比未經優化的GRNN模型慢;BP模型由于需要計算大量的閾值和權值,網絡結構較復雜,時間為8.406 3 s,效率低下。

表1 各模型的均方根誤差Table 1 Mean square error of each model

表2 各模型訓練尋優時間Table 2 Training time of each model
本文提出的PSO-GRNN煤礦井下定位算法,考慮井下實際的接收信號模型,使用RSSI值作為神經網絡的輸入,實際坐標作為網絡輸出,建立網絡模型;利用PSO算法尋找GRNN網絡的最優平滑因子,提高PSO-GRNN網絡模型的定位精度。仿真結果表明,相比未經優化的GRNN模型及BP模型,PSO-GRNN模型的定位精度顯著提高;進一步比較三種算法的運行效率,可以看出PSO-GRNN模型比BP模型所需時間小很多,比BP模型效率更高,而且算法復雜度低,能很好地應用在煤礦井下。