一種無線傳感器網(wǎng)絡分簇路由算法研究
在LEACH基礎上,提出一個基于能量和距離的分簇算法(clustering algorithm based on energy anddistance)。該算法按輪運行,每輪分為二層簇頭的建立,簇內(nèi)節(jié)點數(shù)據(jù)轉(zhuǎn)發(fā)和穩(wěn)定數(shù)據(jù)的傳輸。
2.1 二層簇頭的建立
在簇建立階段,首輪擔任簇頭的節(jié)點由基站隨機確定。簇頭的個數(shù)根據(jù)監(jiān)測區(qū)域的位置、大小及網(wǎng)絡規(guī)模來確定。被選中擔任簇頭的ID由基站依次在網(wǎng)絡中進行廣播,網(wǎng)內(nèi)節(jié)點對逐次收到的ID與自己的進行對比,相同的即為本輪的簇頭。簇頭全部選出以后,再向全網(wǎng)廣播簇頭ID。簇內(nèi)節(jié)點在每輪數(shù)據(jù)傳輸?shù)淖詈笠粠咽S嗄芰康刃畔⒁黄鸢l(fā)送至各自簇頭。簇頭對各簇內(nèi)節(jié)點的剩余能量進行比較,選舉剩余能量最大的節(jié)點作為下一輪簇頭,這樣建立了第一層簇頭。
第二層簇頭的建立和通信模式與LEACH有較大的區(qū)別。每輪選出的第一層簇頭成為第二層簇頭的普通節(jié)點,在LEACH中這些節(jié)點直接與基站通信。由式(1)可以看出,放大器能耗遠大于電路能耗,且放大器能耗中與通信距離d有直接關系,因此在產(chǎn)生第二層簇頭時,充分考慮了節(jié)點的剩余能量和節(jié)點與基站間距離等因素。產(chǎn)生第二層簇頭的閾值按如下公式計算:
式中:Eresidual(i)標識為i的簇頭的剩余能量;BSdistance(i)標識為i的簇頭與基站之間的距離。每輪在產(chǎn)生完第一層簇頭且簇頭能量高于某一個值Eth(若節(jié)點低于Eth就認為節(jié)點失效)時,各簇頭比較Tch值,找出其中Tch最大值為第二層簇頭。因此,第二層簇頭既有較高的能量,又距基站較近,這樣既能減少轉(zhuǎn)發(fā)數(shù)據(jù)時所消耗的能量,又能保證節(jié)點能量不會很快耗盡,而影響數(shù)據(jù)的采集。
2.2 簇內(nèi)節(jié)點數(shù)據(jù)轉(zhuǎn)發(fā)
每輪第一層簇頭選出來后,節(jié)點依據(jù)收到廣播信號的強度選擇要加入的簇,此時簇內(nèi)通信采用自由空間模型。與第一層簇內(nèi)節(jié)點數(shù)據(jù)通信不同,由于第二層簇內(nèi)節(jié)點距離簇頭較遠,有些可能遠遠超過了d0值,而數(shù)據(jù)通信采用的自由空間模型不一定正確,另外,直接與簇頭通信的能量消耗較大。因此,假設遠離簇頭的節(jié)點可與臨近的、能量高于自己的節(jié)點通信,且數(shù)據(jù)經(jīng)過多路轉(zhuǎn)發(fā)直至簇頭,滿足上述假設條件如式(4)所示:
由于每一輪每個簇頭在簇中的位置以及簇內(nèi)節(jié)點的個數(shù)會發(fā)生動態(tài)變化,為便于分析式(4)的最佳臨近節(jié)點,在圖1中列出了某種狀態(tài)下4種典型的數(shù)據(jù)轉(zhuǎn)發(fā)方式。
圖1(a)出現(xiàn)在數(shù)據(jù)收集的前期階段,由于節(jié)點能量充足,靠近基站的節(jié)點采用直接傳輸方式,而遠離基站的節(jié)點通過式(4)選擇下一跳節(jié)點進行數(shù)據(jù)轉(zhuǎn)發(fā);經(jīng)過多輪數(shù)據(jù)采集之后,靠近基站的節(jié)點因過多參與數(shù)據(jù)的轉(zhuǎn)發(fā)能量迅速降低,依據(jù)式(4)出現(xiàn)了圖1(b)或圖1(c);在數(shù)據(jù)收集的后續(xù)階段,由于靠近基站的節(jié)點整體能量下降,它們分別采用單跳的方式直接與基站通信,同時依據(jù)式(4)出現(xiàn)了圖1(d)。整個數(shù)據(jù)采集階段遠離基站的節(jié)點都是通過多跳的方式與臨近節(jié)點通信,說明通過多跳的數(shù)據(jù)轉(zhuǎn)發(fā)能耗要小于直接發(fā)送到簇首,同時轉(zhuǎn)發(fā)數(shù)據(jù)的節(jié)點能量較高,保證了轉(zhuǎn)發(fā)數(shù)據(jù)時有足夠的能量,均衡了網(wǎng)絡的能量。
2.3 穩(wěn)定數(shù)據(jù)傳輸
在穩(wěn)定數(shù)據(jù)傳輸階段,普通節(jié)點與第一層簇頭通信方式和LEACH相同,但是數(shù)據(jù)的采集、融合工作完成之后不是將數(shù)據(jù)包直接發(fā)送到基站,而是在給定的時隙內(nèi)發(fā)送給第一層各自的簇頭。第二層的節(jié)點依據(jù)能量和距離選出下一跳節(jié)點進行數(shù)據(jù)轉(zhuǎn)發(fā),直至第二層的簇頭或直接與基站通信,第二層簇頭節(jié)點經(jīng)過二次數(shù)據(jù)融合后,發(fā)送數(shù)據(jù)至基站。
3 算法分析和仿真結(jié)果
利用Matlab工具對LEACH,EBAC和CAED算法進行仿真比較,各項參數(shù)設置如下:假設無線傳感器網(wǎng)絡由300個相同的節(jié)點組成,隨機拋撒在200 m×200 m的區(qū)域內(nèi),遠程基站的坐標是(x==100 m,y=350 m)。每個節(jié)點的初始能量為E0=1 J,發(fā)送和接收電路的損耗為ETX=ERX=50 nJ/b,數(shù)據(jù)融合消耗為EDA=5 nJ/b,εfs=10 pJ/(b?m-2)時dd0。其中,d0為常數(shù),數(shù)據(jù)包長度為4 200 b,廣播包長度為60 b,簇頭個數(shù)kopt=5。節(jié)點能量低于Eth=0.000 1 J時,認為其死亡,假設數(shù)據(jù)融合率為100%,且在轉(zhuǎn)發(fā)過程中無數(shù)據(jù)包丟失。沒有誤碼率。
評論