余修武,梁北孔,周利興,謝曉永,范思柔,王宇琴,劉 琴
(1.南華大學(xué) 環(huán)境與安全工程學(xué)院,湖南 衡陽(yáng) 421001;2.金屬礦山安全與健康國(guó)家重點(diǎn)實(shí)驗(yàn)室,安徽 馬鞍山 243000)
礦物資源消耗的增長(zhǎng)使得淺部礦物逐步殆盡,導(dǎo)致地下采礦向更深水平推進(jìn)[1]。深部礦井因高溫高濕、高地應(yīng)力、供電線路長(zhǎng)及人員設(shè)備密集等因素造成復(fù)合型災(zāi)害事故頻發(fā)[2],對(duì)深井開(kāi)采的安全工作造成巨大威脅。由于現(xiàn)有的有線礦井安全監(jiān)測(cè)系統(tǒng)不能滿足深井的安全需求[3],有必要把無(wú)線傳感網(wǎng)絡(luò)引入深井生產(chǎn)中。傳感器網(wǎng)絡(luò)的應(yīng)用相關(guān)性強(qiáng),隨著應(yīng)用環(huán)境的不同,路由算法差距或許會(huì)很大,尚不存在通用的路由算法[4],且目前適用深部礦井應(yīng)用環(huán)境的路由算法較少。因此,開(kāi)展深部礦井無(wú)線傳感器網(wǎng)絡(luò)路由算法的研究意義重大。
無(wú)線傳感器網(wǎng)絡(luò)是1個(gè)由大量節(jié)點(diǎn)構(gòu)成的,具有數(shù)據(jù)采集、融合與傳輸?shù)淖越M織網(wǎng)絡(luò)[5]。為解決無(wú)線傳感器網(wǎng)絡(luò)能耗低效及“熱區(qū)”問(wèn)題,許多路由算法被提出。其中,LEACH算法[6]簇首節(jié)點(diǎn)的選擇是隨機(jī)的,且以單跳方式傳輸數(shù)據(jù),會(huì)產(chǎn)生簇首節(jié)點(diǎn)不均勻地分布和當(dāng)前能量較少的節(jié)點(diǎn)也成為簇首等問(wèn)題;錢開(kāi)國(guó)等針對(duì)路由算法中簇首節(jié)點(diǎn)分布不均問(wèn)題提出HNDCRA[7]算法,均衡了簇首分布,但其算法的簇首競(jìng)選機(jī)制未加入節(jié)點(diǎn)當(dāng)前能量,導(dǎo)致部分簇首節(jié)點(diǎn)能量被過(guò)快地消耗;張文梅等提出改進(jìn)的無(wú)線傳感器網(wǎng)絡(luò)非均勻分簇路由算法[8],把節(jié)點(diǎn)當(dāng)前能量引入簇首競(jìng)選機(jī)制中,使簇首能量均衡地消耗,該算法一定程度上能減少并均衡節(jié)點(diǎn)能量消耗,但沒(méi)有對(duì)“熱區(qū)”問(wèn)題提出解決方案;彭鐸等針對(duì)無(wú)線傳感網(wǎng)“熱區(qū)”問(wèn)題提出EUCP[9]算法,能在一定程度上改善“熱區(qū)”問(wèn)題。然而,上述路由算法多適用于典型大面積監(jiān)控領(lǐng)域,在深部礦井特殊的應(yīng)用環(huán)境中,狹長(zhǎng)的帶狀巷道使其具有局限性。為此,王偉等針對(duì)帶狀網(wǎng)“熱區(qū)”的出現(xiàn)提出CRLDB[10]算法,引入非均勻分簇概念,使用候選簇首競(jìng)爭(zhēng)策略;劉佳針對(duì)礦井下巷道應(yīng)用環(huán)境提出CHPBN[11]算法,僅分簇1次,數(shù)據(jù)多跳轉(zhuǎn)發(fā);林啟中等提出HEED-EELD(Dual-cluster-head routing algorithm based on location information)[12]算法,以單跳距離構(gòu)建層次,采用雙簇首并將節(jié)點(diǎn)位置及其當(dāng)前能量引入路由選擇機(jī)制。然而,以上算法大多運(yùn)用非均勻分簇思想,競(jìng)選簇首并以多跳方式傳輸簇間數(shù)據(jù),但均未考慮數(shù)據(jù)傳輸過(guò)程中路徑通信代價(jià)及跳數(shù)問(wèn)題。因此,本文提出1種基于網(wǎng)絡(luò)分區(qū)和路徑能耗的帶狀無(wú)線傳感器網(wǎng)絡(luò)多簇首簇路由算法(NPPEC),算法采用跳數(shù)泛洪方式建立帶狀網(wǎng)絡(luò)分區(qū)結(jié)構(gòu),將節(jié)點(diǎn)分布密度加入簇首競(jìng)選機(jī)制中,通過(guò)主簇首和副簇首的分工配合,使簇首能量更均衡地消耗;依據(jù)路徑能耗、節(jié)點(diǎn)當(dāng)前能量及位置計(jì)算路徑選擇概率,并通過(guò)控制跳數(shù)改善數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
采用無(wú)線通信模型First order radio model[13]獲取某節(jié)點(diǎn)發(fā)送和接收數(shù)據(jù)包的能量消耗值。假設(shè)從節(jié)點(diǎn)A發(fā)送lbit的數(shù)據(jù)到節(jié)點(diǎn)B,A和B之間的距離為d,則其能量消耗值求解如下:
(1)
節(jié)點(diǎn)B接收l(shuí)bit數(shù)據(jù)所消耗的能量求解如下:
ERx(l,d)=l×Eelec
(2)
式(1)中的限值d0為:
(3)
式中:Eelec表示節(jié)點(diǎn)發(fā)送或接收1 bit數(shù)據(jù)的能量消耗值;εfs表示在自由空間模型下1 bit數(shù)據(jù)的能耗;εamp表示在多路徑模型下發(fā)送1 bit數(shù)據(jù)的能耗;d0表示通信距離限值;d小于d0時(shí),r=2;當(dāng)d大于或等于d0時(shí),r=4。傳感器節(jié)點(diǎn)有傳感器模塊、處理器模塊及無(wú)線通信模塊,其中無(wú)線通信模塊消耗了絕大部分能量,如圖1所示。
圖1 網(wǎng)絡(luò)節(jié)點(diǎn)能耗情況Fig.1 Energy consumption of network nodes
節(jié)點(diǎn)布置在深井巷道里面,區(qū)域長(zhǎng)度L一般遠(yuǎn)大于寬度W,構(gòu)成帶狀無(wú)線傳感網(wǎng)。假設(shè)有nall個(gè)節(jié)點(diǎn)組成此網(wǎng)絡(luò),第i個(gè)節(jié)點(diǎn)為Si,則節(jié)點(diǎn)集S={S1,S2,,Snall}。此帶狀網(wǎng)絡(luò)存在如下特點(diǎn):①網(wǎng)絡(luò)中所有節(jié)點(diǎn)均已完成定位算法,位置坐標(biāo)已知,忽略定位誤差對(duì)路由算法的影響;②除了匯聚節(jié)點(diǎn)的能量不受限制之外,其余節(jié)點(diǎn)能量有限并存在相同屬性及功能;③因節(jié)點(diǎn)的無(wú)線通信模塊消耗了大部分能量,忽略其余模塊的能耗;④普通節(jié)點(diǎn)數(shù)據(jù)傳播延遲遠(yuǎn)小于數(shù)據(jù)采集周期,不會(huì)造成網(wǎng)絡(luò)擁堵;⑤因深井環(huán)境復(fù)雜多變,節(jié)點(diǎn)能根據(jù)實(shí)際情況調(diào)節(jié)信號(hào)發(fā)射強(qiáng)度;⑥信息接收節(jié)點(diǎn)能基于接收信號(hào)強(qiáng)度計(jì)算與發(fā)射節(jié)點(diǎn)之間的距離。
采用跳數(shù)泛洪方式建立網(wǎng)絡(luò)分區(qū)結(jié)構(gòu),其主要步驟如下:
1)匯聚節(jié)點(diǎn)廣播1個(gè)初始消息PA給其鄰居節(jié)點(diǎn),初值為0。
2)收到該P(yáng)A信號(hào)的節(jié)點(diǎn)就將自己的分區(qū)值設(shè)置為PA+ 1,接著該節(jié)點(diǎn)將自身分區(qū)值PA(PA=PA+1)再?gòu)V播給其鄰居節(jié)點(diǎn)。
3) 收到新PA消息的節(jié)點(diǎn)再把自己的分區(qū)值設(shè)置為PA+1,因?yàn)榭赡軙?huì)收到來(lái)自前1分區(qū)多個(gè)節(jié)點(diǎn)的PA值,這里規(guī)定PA值只設(shè)置1次。
消息依照這樣的規(guī)律在監(jiān)測(cè)區(qū)域擴(kuò)散,區(qū)域內(nèi)節(jié)點(diǎn)隨機(jī)分布,且都能獲得對(duì)應(yīng)的分區(qū)值,即全網(wǎng)建成了分區(qū)結(jié)構(gòu),如圖2所示。
圖2 深井巷道網(wǎng)絡(luò)分區(qū)結(jié)構(gòu)Fig.2 Deep mine tunnel network partition structure
節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)分區(qū)結(jié)構(gòu)獲得與自身位置對(duì)應(yīng)的分區(qū)值,該值可應(yīng)用于簇首競(jìng)選及數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程。數(shù)據(jù)按分區(qū)值減少的方向逐跳轉(zhuǎn)發(fā),路由按分區(qū)值增加的方向依次建立,構(gòu)成帶狀網(wǎng)絡(luò)分區(qū)結(jié)構(gòu)。該算法分為3階段:簇首競(jìng)選、簇的形成、能量多路徑路由。
簇首競(jìng)選分為主簇首競(jìng)選和副簇首競(jìng)選。其中,主簇首負(fù)責(zé)簇內(nèi)數(shù)據(jù)的收集與融合;副簇首負(fù)責(zé)簇間數(shù)據(jù)轉(zhuǎn)發(fā),包括轉(zhuǎn)發(fā)來(lái)自其主簇首的數(shù)據(jù)。
2.1.1 主簇首競(jìng)選
以文獻(xiàn)[4]的閾值公式為基礎(chǔ),將節(jié)點(diǎn)當(dāng)前能量、節(jié)點(diǎn)分布密度以及節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離引入該閾值公式中,如式(4)所示。
(4)
(5)
式中:n表示第r輪中沒(méi)有擔(dān)任主簇首的某1節(jié)點(diǎn);T(n)表示節(jié)點(diǎn)n的閾值;P指主簇首在全網(wǎng)節(jié)點(diǎn)中所占比例,P=n/nall;r是選舉輪數(shù);rmod(1/P)指第r輪中擔(dān)任過(guò)主簇首節(jié)點(diǎn)的個(gè)數(shù);G是第r輪中沒(méi)有擔(dān)任過(guò)主簇首的節(jié)點(diǎn)集合;α,β,γ是參數(shù),且α+β+γ=1;Ecur是在第r輪中某節(jié)點(diǎn)的當(dāng)前能量值,該值在式(4)中影響較大;Et表示第r輪網(wǎng)絡(luò)能量總和;di指節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離;dave指第r輪中所有存活節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的平均距離;dmax指第r輪中范圍的最大距離值;Qn指節(jié)點(diǎn)分布密度,第r輪初始階段,以R為半徑的范圍中,節(jié)點(diǎn)進(jìn)行信息交互并采集存活節(jié)點(diǎn)信息,由此可得Nei(n)a;Na表示網(wǎng)絡(luò)存活節(jié)點(diǎn)數(shù)量,由匯聚節(jié)點(diǎn)獲取并向全網(wǎng)廣播。節(jié)點(diǎn)隨機(jī)產(chǎn)生1個(gè)0~1范圍內(nèi)的數(shù),當(dāng)該數(shù)值小于T(n)時(shí),節(jié)點(diǎn)成為候選主簇首;候選主簇首向同1分區(qū)內(nèi)的所有節(jié)點(diǎn)廣播其當(dāng)前能量信息,并將自身的當(dāng)前能量與同1分區(qū)其余候選主簇首的當(dāng)前能量相比較,假如該候選主簇首的當(dāng)前能量比同分區(qū)的其余任1候選主簇首的當(dāng)前能量都要大,則該候選主簇首當(dāng)選該分區(qū)的主簇首,反之則競(jìng)選失敗。最后,當(dāng)選分區(qū)主簇首的節(jié)點(diǎn)向整個(gè)分區(qū)內(nèi)的所有節(jié)點(diǎn)廣播其競(jìng)選成功的消息。
該閾值公式的理論依據(jù)論述如下:首先,節(jié)點(diǎn)當(dāng)前能量是主簇首競(jìng)選機(jī)制中的重要因素,如果競(jìng)選主簇首時(shí)不考慮節(jié)點(diǎn)當(dāng)前能量,則可能發(fā)生當(dāng)前能量過(guò)少的節(jié)點(diǎn)擔(dān)任主簇首的情況,會(huì)導(dǎo)致部分節(jié)點(diǎn)因能耗過(guò)快而失效,節(jié)點(diǎn)當(dāng)前能量越高,成為主簇首的概率就應(yīng)越高;相反,節(jié)點(diǎn)當(dāng)前能量越低,被選舉為主簇首節(jié)點(diǎn)的概率也就越低。其次,在深部礦井中,各工作區(qū)域的環(huán)境及功能存在差異,節(jié)點(diǎn)分布密度是不同的,節(jié)點(diǎn)分布密度大的區(qū)域,增加其節(jié)點(diǎn)擔(dān)任主簇首的概率;反之,節(jié)點(diǎn)分布密度小的區(qū)域,減少其節(jié)點(diǎn)成為主簇首的概率。最后,從能耗角度來(lái)說(shuō),節(jié)點(diǎn)到匯聚節(jié)點(diǎn)的距離對(duì)主簇首競(jìng)選有直接關(guān)聯(lián),如果距匯聚節(jié)點(diǎn)較遠(yuǎn)的節(jié)點(diǎn)成為主簇首,網(wǎng)絡(luò)的能耗就會(huì)比距匯聚節(jié)點(diǎn)較近的節(jié)點(diǎn)更大,假如網(wǎng)絡(luò)中經(jīng)常出現(xiàn)這種情況,則會(huì)使網(wǎng)絡(luò)生命周期更早地結(jié)束。
2.1.2 副簇首選取
文獻(xiàn)[14]論證了簇首節(jié)點(diǎn)數(shù)量占比k為5%左右時(shí),網(wǎng)絡(luò)的能量消耗最為理想。在主簇首競(jìng)爭(zhēng)范圍內(nèi),基于能量情況選取副簇首。首先,計(jì)算某簇所需副簇首的數(shù)量,計(jì)算方法如下:
nv=(nall×k-n)×f
(6)