史明泉,崔麗珍,赫佳星
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙 古包頭 014010)
煤礦安全一直是一個熱門話題,在煤炭開采過程中,由于煤礦井下巷道狹窄,交錯縱橫且光線暗淡,這給井下人員及礦車定位帶來了諸多困難[1],因而井下定位成為亟待解決的問題。目前關(guān)于受限空間內(nèi)定位的相關(guān)研究有很多,然而由于煤礦井下特殊的環(huán)境,普通的定位方法無法直接應(yīng)用。ZigBee技術(shù)具有能耗低、效率高、抗干擾能力強和組網(wǎng)能力強等優(yōu)點,能在煤礦井下穩(wěn)定工作,傳送性能非常好,故本文選取ZigBee作為無線傳輸方式?;赯igBee的定位原理是根據(jù)信標(biāo)節(jié)點的接收信號強度值(received signal strength indication,RSSI)計算,得到定位節(jié)點的位置坐標(biāo)。根據(jù)RSSI值進(jìn)行室內(nèi)定位目前主要有兩種方法:①基于相對位置的定位方法,利用RSSI值計算信標(biāo)節(jié)點與待定位節(jié)點之間的距離來定位,比較常見的有三邊定位及其改進(jìn)算法;②基于位置指紋的定位方法,離線階段,將各個采集點的RSSI值和相應(yīng)的坐標(biāo)保存到數(shù)據(jù)庫中;在線階段,將采集到的RSSI值與指紋庫進(jìn)行匹配找到定位節(jié)點的位置信息[2-3]。基于相對位置的定位方法對環(huán)境依賴程度較高,在井下環(huán)境中,由于信號衰落,損耗系數(shù)的不確定及多徑效應(yīng)引起的傳播模型不準(zhǔn)確等因素,定位精度不高。本文采用基于位置指紋和神經(jīng)網(wǎng)絡(luò)相結(jié)合的定位方法,采集定位環(huán)境中的位置指紋,根據(jù)已有的數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),建立RSSI值與實際坐標(biāo)之間的映射關(guān)系。定位時采用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)預(yù)測待測節(jié)點的位置坐標(biāo)。
近些年來,為進(jìn)一步提高定位精度,利用神經(jīng)網(wǎng)絡(luò)、機器學(xué)習(xí)等人工智能理論進(jìn)行室內(nèi)定位,成為一個熱門的研究領(lǐng)域。JEON等[4]利用支持向量機(support vector machine,SVM)學(xué)習(xí)并建立信號強度與位置信息之間的非線性關(guān)系,然后利用訓(xùn)練好的支持向量機預(yù)測待測節(jié)點的位置信息,對測距誤差具有較高的容忍度;LIU等[5]提出的定位算法將次錨節(jié)點和BP(back propagation)網(wǎng)絡(luò)結(jié)合,因為BP網(wǎng)絡(luò)具有較高的并行性,其節(jié)點具有多跳性,在硬件環(huán)境不高的情況下,能夠準(zhǔn)確定位待測節(jié)點,該算法盡管硬件開銷小,運算復(fù)雜度低,但定位精度較低,誤差較大;張會清等[6]將泰勒級數(shù)和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合來進(jìn)行定位,用BP神經(jīng)網(wǎng)絡(luò)對RSSI測距模型中的相關(guān)參數(shù)進(jìn)行優(yōu)化,通過泰勒級數(shù)的展開來提高定位精度。但該算法采用的RSSI測距模型運算復(fù)雜度較高,導(dǎo)致節(jié)點的能耗增加,節(jié)點不能長時間工作,這在煤礦井下這樣的惡劣環(huán)境中是不允許的,而且BP神經(jīng)網(wǎng)絡(luò)收斂速度不快、容易陷入局部最小值。
廣義回歸神經(jīng)網(wǎng)絡(luò)(generalized regression neural network,GRNN)的非線性映射能力很強,具有高度的魯棒性和容錯性,相比傳統(tǒng)BP網(wǎng)絡(luò),GRNN有較強的數(shù)據(jù)擬合能力和較快的學(xué)習(xí)速度,特別是當(dāng)訓(xùn)練樣本較小時,可以獲得較好的回歸預(yù)測效果,煤礦井下環(huán)境惡劣,測試人員采集數(shù)據(jù)相對困難,因而GRNN網(wǎng)絡(luò)非常適合解決井下定位問題。本文將煤礦井下信標(biāo)節(jié)點接收到的RSSI值作為神經(jīng)網(wǎng)絡(luò)的輸入,將采集節(jié)點的位置坐標(biāo)作為網(wǎng)絡(luò)輸出,訓(xùn)練GRNN神經(jīng)網(wǎng)絡(luò),獲得RSSI值與節(jié)點坐標(biāo)之間的網(wǎng)絡(luò)模型。GRNN模型結(jié)構(gòu)簡單,只需一個參數(shù),即平滑因子σ。因而,GRNN模型的預(yù)測性能在很大程度上取決于σ的選擇,平滑因子σ一般由先驗知識或者個人經(jīng)驗來選擇,學(xué)習(xí)效率低下、人為主觀影響較大[7]。因而,本文將粒子群優(yōu)化(particle swarm optimization,PSO)算法引入到GRNN模型中,采用粒子群算法優(yōu)化GRNN模型參數(shù),提高GRNN回歸預(yù)測效果,準(zhǔn)確定位未知節(jié)點坐標(biāo)位置。
如圖1所示,GRNN神經(jīng)網(wǎng)絡(luò)由輸入層、模式層、求和層和輸出層共四層構(gòu)成。
圖1 GRNN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Network structure of GRNN
(1)
假定f(x,y)服從正態(tài)分布,計算見式(2)。
(2)
(3)
求和層包含兩種類型的神經(jīng)元,計算見式(4)。
(4)
一種神經(jīng)元將模式層中所有神經(jīng)元的輸出值加權(quán)求和,計算見式(5)。
(5)
另一種神經(jīng)元將模式層中所有神經(jīng)元的輸出值作為連接權(quán)值,把模式層中相應(yīng)的神經(jīng)元進(jìn)行加權(quán)求和,計算見式(6)。
(6)
輸出層的神經(jīng)元將求和層中兩個神經(jīng)元的值相除,得到輸出結(jié)果見式(7)。
(7)
粒子群優(yōu)化算法PSO是由E-berhart博士和Kennedy博士發(fā)明的一種新的全局優(yōu)化進(jìn)化算法,它源于對鳥類捕食行為的模擬[8-10],廣泛地應(yīng)用在系統(tǒng)辨識[11]、神經(jīng)網(wǎng)絡(luò)訓(xùn)練[12]等領(lǐng)域。
與蟻群算法類似,粒子群優(yōu)化算法假設(shè)一個群體(粒子群)用來描述待尋優(yōu)的問題,粒子群的個體(粒子)表示問題的一個值,比如本算法中粒子代表GRNN網(wǎng)絡(luò)的一個平滑因子。每個粒子有速度和位置兩個參數(shù),以粒子作為自變量構(gòu)建適應(yīng)度函數(shù),粒子的優(yōu)劣通過適應(yīng)度函數(shù)值來衡量。算法首先初始化一個隨機的粒子群,設(shè)定最大迭代次數(shù),在每一次迭代中,首先每個粒子尋找自身的最優(yōu)解,即個體極值pBest。然后比較每個pBest,尋找當(dāng)前的整個群體的最優(yōu)值,即全局極值gBest。粒子根據(jù)這兩個極值,利用式(8)和式(9)來更新自己的狀態(tài)。
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]之間的隨機數(shù);c1為記憶因子;c2為進(jìn)化因子;ω為加權(quán)系數(shù)。
更新過程中,粒子每一維的速度限制在[Vmin,Vmax]之間,其中Vmin為最小速率,Vmax為最大速率。粒子每一維的位置也被限制在允許范圍之內(nèi)。每一次迭代中,pBest和gBest都在不斷更新。最后當(dāng)達(dá)到最大迭代次數(shù),最終的gBest就是算法的最優(yōu)解。
基于GRNN神經(jīng)網(wǎng)絡(luò)的井下定位模型,首先根據(jù)井下環(huán)境特征,每隔一定距離采集RSSI值并記錄對應(yīng)的坐標(biāo)值,將樣本數(shù)據(jù)保存到數(shù)據(jù)庫中。算法分為訓(xùn)練階段和測試階段,訓(xùn)練階段利用訓(xùn)練樣本構(gòu)建PSO-GRNN網(wǎng)絡(luò)模型,該模型具有最小的定位誤差;測試階段,將待定位節(jié)點的RSSI值輸入至訓(xùn)練好的PSO-GRNN定位模型中,神經(jīng)網(wǎng)絡(luò)的輸出即為待測節(jié)點的預(yù)測坐標(biāo)。方案流程如圖2所示。
圖2 PSO-GRNN方案流程圖Fig.2 The process of PSO-GRNN
GRNN網(wǎng)絡(luò)模型采用MATLAB函數(shù)net=newgrnn(P,T,spread)構(gòu)建,其中P為神經(jīng)網(wǎng)絡(luò)的輸入,T為神經(jīng)網(wǎng)絡(luò)的輸出,spread為平滑因子。測試輸出采用函數(shù)Y=sim(net,P),其中net為newgrnn函數(shù)生成的GRNN網(wǎng)絡(luò)架構(gòu),P為測試輸入,Y為測試輸出。一般通過手動調(diào)整spread,來獲得最優(yōu)的網(wǎng)絡(luò)架構(gòu),但該方法存在效率低,精度差等問題。本質(zhì)上,σ的選擇歸結(jié)為一個優(yōu)化問題,即找到一個合適的σ,使得測試樣本的網(wǎng)絡(luò)輸出值(預(yù)測坐標(biāo))與實際值(實際坐標(biāo))的誤差最小。因此,本文采用PSO全局尋優(yōu)算法對spread進(jìn)行優(yōu)化調(diào)整,避免了由于手動調(diào)整帶來的效率低下等問題。
PSO-GRNN定位算法的具體步驟如下所述。
1) 設(shè)置粒子群算法的基本參數(shù),種群個體數(shù)量為sizepop,迭代次數(shù)為maxgen,粒子位置的最大值為popmax,粒子位置的最小值為popmin,粒子的最大速度為Vmax,粒子的最小速度為Vmin,記憶因子為c1,進(jìn)化因子為c2。
2) 構(gòu)建粒子群算法的適應(yīng)度函數(shù)。PSO-GRNN定位算法的適應(yīng)度函數(shù)表示為:定位節(jié)點的GRNN網(wǎng)絡(luò)輸出值(預(yù)測坐標(biāo))和節(jié)點的實際坐標(biāo)的均方根誤差。
具體實現(xiàn)是將樣本隨機分為A、B兩組,A為訓(xùn)練樣本,B為測試樣本。通過A訓(xùn)練得到的網(wǎng)絡(luò)結(jié)構(gòu),計算見式(10)。
(10)
測試階段:B的RSSI值作為該網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)的輸出即為測試樣本B對應(yīng)的預(yù)測坐標(biāo)值,預(yù)測坐標(biāo)值與測試樣本的實際坐標(biāo)值的均方根誤差函數(shù)作為適應(yīng)度函數(shù),計算見式(11)。
(11)
3) 比較第k個粒子所有位置的適應(yīng)度值,找出最小的適應(yīng)度值pBestValue(k),對應(yīng)的個體最優(yōu)位置為pBest。
4) 比較所有粒子在其最優(yōu)位置的適應(yīng)度值pBestValue(k),找出最小值,對應(yīng)的位置即為整個種群的最優(yōu)位置gBest。
5) 更新粒子位置和速度,計算見式(12)和式(13)。
Vk+1=ω×Vk+c1×rand×(pBest-Xk)+
c2×rand×(gBest-Xk)
(12)
Xk+1=Xk+Vk+1
(13)
6) 達(dá)到迭代次數(shù),采用搜索到的最佳gBest作為平滑因子構(gòu)建GRNN,計算見式(14)。
net=newgrnn(P,T,gBest)
(14)
為了驗證PSO-GRNN算法在井下環(huán)境的定位效果,選取實驗環(huán)境為一個80 m×4 m的狹長地下通道。沿著狹長的通道,每隔1 m設(shè)置1個數(shù)據(jù)采集點,共有81個數(shù)據(jù)采集點,定位節(jié)點使用CC2530 ZigBee節(jié)點,隨身攜帶。通道壁每隔20 m放置1個CC2530 ZigBee節(jié)點,作為信標(biāo)節(jié)點(AP),用來接收定位節(jié)點發(fā)送的數(shù)據(jù),共4個AP,4個AP分別通過有線的方式連接到網(wǎng)關(guān)。定位節(jié)點隨身攜帶,測試人員從(0,0)位置出發(fā),以2.5 m/s的速度勻速前進(jìn),終點位置為(0,80 m)。在每一個數(shù)據(jù)采集點處,定位節(jié)點向4個信標(biāo)節(jié)點分別發(fā)送50個數(shù)據(jù)包,信標(biāo)節(jié)點接收到數(shù)據(jù)后,解析出RSSI值,將RSSI值傳送到網(wǎng)關(guān),形成如[RSSI1,RSSI2,RSSI3,RSSI4,(X,Y)]的樣本數(shù)據(jù),共81個,存放在數(shù)據(jù)庫中。從81組樣本中隨機抽取65組樣本作為訓(xùn)練樣本,以[RSSI1,RSSI2,RSSI3,RSSI4]作為PSO-GRNN網(wǎng)絡(luò)模型的輸入,訓(xùn)練神經(jīng)網(wǎng)絡(luò),由于數(shù)據(jù)采集點坐標(biāo)的X值都為0,故問題簡化為將數(shù)據(jù)采集點的縱坐標(biāo)Y作為輸出。設(shè)定最大迭代次數(shù)為50,最終得到最優(yōu)的網(wǎng)絡(luò)輸出,即定位坐標(biāo)與實際坐標(biāo)的誤差最小。再用剩余的16組數(shù)據(jù)作為測試數(shù)據(jù),驗證該網(wǎng)絡(luò)的定位結(jié)果是否與實際坐標(biāo)相符。
為了比較三種算法的定位效果,隨機從81個樣本中抽取16個樣本,[RSSI1,RSSI2,RSSI3,RSSI4]分別作為三種網(wǎng)絡(luò)模型的輸入,模型的輸出為定位坐標(biāo)。圖3為BP的定位圖。
圖3 BP網(wǎng)絡(luò)的定位結(jié)果Fig.3 Localization results of BP
圖4為GRNN的定位圖,默認(rèn)GRNN網(wǎng)絡(luò)的平滑因子spread=1。
圖5為PSO-GRNN的定位圖,經(jīng)過優(yōu)化得到當(dāng)spread=0.582 7時,均方誤差RMse=2.193 7,達(dá)到最小。圖6為PSO的優(yōu)化結(jié)果。
圖4 GRNN網(wǎng)絡(luò)的定位結(jié)果Fig.4 Localization results of GRNN
圖5 PSO-GRNN網(wǎng)絡(luò)的定位結(jié)果Fig.5 Localization results of PSO-GRNN
圖6 PSO優(yōu)化結(jié)果Fig.6 Optimized result of PSO
比較圖3、圖4和圖5發(fā)現(xiàn):采用BP模型實際坐標(biāo)與預(yù)測坐標(biāo)的最大誤差9 m,最小誤差1 m,誤差在2 m內(nèi)的只有4個樣本;采用未經(jīng)優(yōu)化的GRNN模型的最大誤差9 m,最小誤差1 m,誤差在2 m內(nèi)的有5個樣本;采用PSO-GRNN模型的最大誤差4 m,最小誤差0m,誤差在2 m內(nèi)的有12個樣本。
通過均方根誤差也可以比較各種算法的定位精度,均方誤差的公式計算見式(14)。
(14)
由此可見,PSO-GRNN模型比BP模型和未經(jīng)優(yōu)化的GRNN模型有更高的定位精度,均方根誤差為2.1937,滿足煤礦井下定位需求。
三種模型的運行時間見表2。
由表2可知,PSO-GRNN模型經(jīng)過優(yōu)化得到最優(yōu)性能的同時,付出了時間的代價,該模型尋優(yōu)時間為4.531 3 s,比未經(jīng)優(yōu)化的GRNN模型慢;BP模型由于需要計算大量的閾值和權(quán)值,網(wǎng)絡(luò)結(jié)構(gòu)較復(fù)雜,時間為8.406 3 s,效率低下。
表1 各模型的均方根誤差Table 1 Mean square error of each model
表2 各模型訓(xùn)練尋優(yōu)時間Table 2 Training time of each model
本文提出的PSO-GRNN煤礦井下定位算法,考慮井下實際的接收信號模型,使用RSSI值作為神經(jīng)網(wǎng)絡(luò)的輸入,實際坐標(biāo)作為網(wǎng)絡(luò)輸出,建立網(wǎng)絡(luò)模型;利用PSO算法尋找GRNN網(wǎng)絡(luò)的最優(yōu)平滑因子,提高PSO-GRNN網(wǎng)絡(luò)模型的定位精度。仿真結(jié)果表明,相比未經(jīng)優(yōu)化的GRNN模型及BP模型,PSO-GRNN模型的定位精度顯著提高;進(jìn)一步比較三種算法的運行效率,可以看出PSO-GRNN模型比BP模型所需時間小很多,比BP模型效率更高,而且算法復(fù)雜度低,能很好地應(yīng)用在煤礦井下。