王 軍, 馬德朋, 徐萬一, 張亞君
(沈陽化工大學 計算機科學與技術學院, 遼寧 沈陽 110142)
無線傳感器網(wǎng)絡WSN(Wireless Sensor Network)是由部署在監(jiān)測區(qū)域內大量的廉價微型傳感器節(jié)點組成,通過無線通信方式形成一個多跳的自組織的網(wǎng)絡系統(tǒng).它的目的是協(xié)作地感知、采集和處理網(wǎng)絡覆蓋區(qū)域中被感知對象的信息,并發(fā)送給觀察者.傳感器、感知對象和觀察者構成了無線傳感器的3個要素[1].由于WSN具有節(jié)點可以大規(guī)模部署、自組織網(wǎng)絡、動態(tài)性的網(wǎng)絡拓撲結構、數(shù)據(jù)和傳輸?shù)目煽啃砸约皞鞲衅鞴?jié)點高度集成的特點,使其在軍事監(jiān)控、環(huán)境監(jiān)測、地震與氣候預測、搶險救災、地下、深水以及外層空間探索等許多方面都具有廣泛的應用前景[2-3].
當今WSN路由協(xié)議的研究已經(jīng)成為國內外備受關注的熱點[4].傳感器節(jié)點的能量消耗問題直接影響著無線傳感器網(wǎng)絡的生命周期[5-6].本文是在原有LEACH路由協(xié)議的基礎上,提出XX_LEACH路由協(xié)議.改進后的路由協(xié)議很大程度地延長了無線傳感器網(wǎng)絡的生命周期,提高了數(shù)據(jù)傳輸?shù)男?
無線傳感器網(wǎng)絡網(wǎng)絡層路由協(xié)議執(zhí)行效率的高低對傳感器節(jié)點收發(fā)信息有直接的影響,進而影響到傳感器節(jié)點的能量消耗,最終影響到整個WSN的性能[7].因此,網(wǎng)絡層的路由協(xié)議是當今WSN研究的重要方向[8].這類協(xié)議主要是使監(jiān)測區(qū)域節(jié)點和目的節(jié)點(sink)之間的數(shù)據(jù)得到最優(yōu)化路徑傳輸[9].
LEACH是一種基于聚類的路由協(xié)議,是最早的路由協(xié)議[10-11].LEACH協(xié)議主要分為類準備和就緒兩個階段.在類準備階段,LEACH協(xié)議隨機地選取一個傳感器節(jié)點作為簇頭節(jié)點.類形成之后進入就緒階段,簇頭節(jié)點開始接收簇內節(jié)點采集的數(shù)據(jù),經(jīng)過數(shù)據(jù)融合技術的處理,將整合之后的數(shù)據(jù)傳輸給目的節(jié)點(sink)[12-13].
首先在每個節(jié)點中選取0~1之間的隨機數(shù),與閾值T(n)比較,小于閾值的作為簇頭.簇頭向節(jié)點廣播自己成為了簇頭的消息,節(jié)點根據(jù)收到信號的強弱選擇簇頭,并回復簇頭.其中T(n)的計算公式為:
(1)
其中:p是簇頭占所有節(jié)點百分比;rmod(1/p)代表一輪循環(huán)中當選簇頭節(jié)點的個數(shù);G是最近1/p輪中還沒有當選過簇頭節(jié)點的集合;r是目前循環(huán)的輪數(shù);n為節(jié)點的總數(shù).
圖1為LEACH協(xié)議算法的流程,主要分為簇的建立、簇的形成、簇的路由、簇的循環(huán)幾個步驟[14].
圖1 LEACH協(xié)議算法流程Fig.1 LEACH Protocol algorithm flowchart
在LEACH路由協(xié)議中,為了減慢簇內節(jié)點的能量損耗,提高數(shù)據(jù)傳輸?shù)臏蚀_性,使簇內節(jié)點的能量消耗更均勻且緩慢,提高節(jié)點的能量利用效率,設計了XX_LEACH路由協(xié)議.改進的LEACH路由協(xié)議主要是通過評估簇內各節(jié)點與簇內中心的距離和節(jié)點能量剩余以及節(jié)點溫度的綜合值來作為選取簇頭的參考,進而使簇內邊緣節(jié)點傳遞的數(shù)據(jù)更加可靠,避免簇內少數(shù)節(jié)點出現(xiàn)過早死亡的現(xiàn)象,有效地增強了無線傳感器網(wǎng)絡節(jié)點數(shù)據(jù)傳遞的全面性和真實性.
3.1.1 節(jié)點向心性
節(jié)點的向心性指的是簇建成之后簇內各個節(jié)點距簇中心的距離.通常在簇頭選舉時用來衡量是否可以作為簇頭的標準.
3.1.2 算法的基本思想
XX_LEACH協(xié)議算法的環(huán)境與LEACH協(xié)議的環(huán)境相同:(1)初始化網(wǎng)絡節(jié)點都屬于同種類型;(2)初始能量相同;(3)各節(jié)點在每一幀(Frame)中都有數(shù)據(jù)傳送;(4)節(jié)點靜止;(5)基站固定并遠離WSN.假設初始值都為1,經(jīng)過一次循環(huán)后,簇內節(jié)點的能量損耗各不相同,下一輪開始前,計算出每一個節(jié)點的位置距離簇內中心位置的距離、剩余能量和節(jié)點溫度的綜合值作為下一輪簇頭選舉的條件.
由LEACH路由協(xié)議,在第一輪結束時計算出簇內各節(jié)點位置的向心性、能量剩余和節(jié)點溫度的綜合值.將綜合值和其他數(shù)據(jù)發(fā)送給簇頭節(jié)點,由簇頭經(jīng)過數(shù)據(jù)融合之后傳送給基站.再由基站計算出當前各簇內節(jié)點位置的向心程度、能量剩余和節(jié)點溫度的綜合值,并與第一輪的綜合值比較,如果差值大于閾值T(n)時,在網(wǎng)絡模型中刪除該節(jié)點,再把剩余的節(jié)點依據(jù)LEACH路由協(xié)議中規(guī)定T(n)的選舉下一輪的簇頭.實驗結果表明:該過程可以提高網(wǎng)絡數(shù)據(jù)傳輸?shù)目煽啃裕娱L網(wǎng)絡生命周期.
3.1.3 計算方法
(1) 計算節(jié)點的剩余能量
當節(jié)點n將k位的數(shù)據(jù)傳送的距離為d時,剩余的能量公式為:
En(k,d)=Ec-(Efkd+Ejk)
(2)
其中,En(k,d)表示節(jié)點剩余的能量,k表示報文的長度,d表示傳輸?shù)木嚯x,Ec表示節(jié)點初始能量,Ef表示節(jié)點發(fā)送單位數(shù)據(jù)時消耗的能量,Ej表示節(jié)點接收單位數(shù)據(jù)時消耗的能量.通過計算簇內節(jié)點的剩余能量,將其作為評估節(jié)點是否可以作為簇頭的條件之一,從而可以延長網(wǎng)絡的生命周期.
(2) 計算節(jié)點的向心性
通過計算節(jié)點n的位置坐標(Si,Se)與簇內中心坐標(Za,Zb)的距離,解決節(jié)點邊緣化帶來的數(shù)據(jù)傳輸不準確、不及時的問題.其計算公式為:
Dn(S,Z)=(Si-Za)2+(Se-Zb)2
(3)
其中,Dn(S,Z)表示簇內節(jié)點到簇內中心的距離,Si表示節(jié)點的橫坐標,Se表示節(jié)點的縱坐標,Za表示簇內中心的橫坐標,Zb表示簇內中心的縱坐標.在無線傳感器網(wǎng)絡中,計算節(jié)點的向心性,將其作為評估節(jié)點是否可以成為簇首的另一個條件.節(jié)點向心性有效地提高了節(jié)點數(shù)據(jù)傳輸?shù)目煽啃?,避免了不良位置?jié)點傳輸數(shù)據(jù)的片面性和單一性.
(3) 計算節(jié)點的溫度
無線傳感器網(wǎng)絡在運行的過程中,節(jié)點n隨著能量消耗EX的變化,節(jié)點溫度的計算公式為:
(4)
其中,Hn(t)表示節(jié)點的溫度值;EX表示節(jié)點的消耗能量;EC表示節(jié)點的初始能量;β表示節(jié)點容熱值的權值,其值根據(jù)實際應用選??;βEX/EC即表示溫度的變化系數(shù);HC表示節(jié)點的初始溫度.通過計算無線傳感器網(wǎng)絡中節(jié)點的溫度,將其作為簇首選擇時的一個條件,可以更好地解決簇內節(jié)點負載過大時,能耗多的節(jié)點過早死亡的問題,有效地使簇內節(jié)點的能量均勻消耗,使網(wǎng)絡的生命周期得到延長.
(4) 計算節(jié)點n的剩余能量、節(jié)點向心性以及節(jié)點溫度的綜合值
綜合評估節(jié)點的剩余能量、節(jié)點的向心性和節(jié)點溫度,作為最終節(jié)點可以選為簇頭的條件.其計算公式為:
Pn=α1En(k,d)+α2Dn(S,Z)+α3Hn(t)
(5)
其中,α1、α2、α3分別表示節(jié)點剩余能量、節(jié)點的向心性和節(jié)點溫度的權重值,具體權重值在應用中根據(jù)實際情況選取.
在真實環(huán)境里的無線傳感器網(wǎng)絡中,簇首選舉往往不能保證能量的均勻消耗以及簇內節(jié)點過渡邊緣化造成的節(jié)點過早死亡、傳輸?shù)臄?shù)據(jù)不可靠等問題.XX_LEACH路由協(xié)議改進簇首選舉的評估機制,通過計算簇形成后各節(jié)點到簇內中心的距離和節(jié)點的剩余能量以及節(jié)點溫度的綜合值來作為選擇簇頭的條件.該算法可以很大程度地提升數(shù)據(jù)傳輸?shù)恼鎸嵭?,延長網(wǎng)絡的生命周期,可以解決實際環(huán)境中無線傳感器網(wǎng)絡存在的問題.其具體的算法流程如圖2所示.
圖2 XX_LEACH協(xié)議算法流程Fig.2 XX_LEACH protocol algorithm flowchart
由XX_LEACH路由協(xié)議的算法流程,設計出算法的偽代碼,可以更直觀地看出該算法的執(zhí)行過程.具體編寫如下:
Begin
輸入P1,Pn-1,Pn
輸入T(n)
IFPn-Pn-1>=T(n)
則刪除該節(jié)點,執(zhí)行LEACH路由協(xié)議
否則執(zhí)行LEACH路由協(xié)議
Print循環(huán)此過程
End
在仿真環(huán)境中,為了更清晰地了解改進后的LEACH路由協(xié)議,XX_LEACH設置的仿真參數(shù)如表1所示.
表1 仿真參數(shù)Table 1 Simulation parameters
使用OPNET網(wǎng)絡仿真工具進行仿真,同時使用MATLAB數(shù)據(jù)分析軟件進行數(shù)據(jù)結果比較分析,從無線傳感器網(wǎng)絡中網(wǎng)絡的剩余能量和節(jié)點的存活數(shù)對LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議進行對比[15].
在LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議中,各自的節(jié)點剩余能量變化如圖3所示.
圖3 3種協(xié)議剩余能量的比較Fig.3 Comparison of residual energy of three protocols
在0~79輪時,LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議節(jié)點的剩余能量幾乎相同;在79輪之后,隨著時間的增加,3種協(xié)議下節(jié)點所剩的能量開始出現(xiàn)差距,LEACH協(xié)議和NPT_LEACH協(xié)議中節(jié)點的消耗能量增多,XX_LEACH協(xié)議中節(jié)點的剩余能量明顯多于LEACH協(xié)議和NPT_LEACH協(xié)議中節(jié)點剩余能量.研究結果表明:改進的XX_LEACH能夠減少能量的消耗,延長網(wǎng)絡的生命周期.
觀察LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議,3種協(xié)議在相同時間內,存活節(jié)點數(shù)的變化如圖4所示.當最初都為100個節(jié)點存活時,LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議在600輪之后,XX_LEACH協(xié)議存活的節(jié)點個數(shù)明顯高于LEACH協(xié)議和NPT_LEACH協(xié)議存活的節(jié)點個數(shù);LEACH協(xié)議和NPT_LEACH協(xié)議在1 600輪時,節(jié)點全部死亡,而XX_LEACH協(xié)議直到1 800輪時才全部死亡.改進結果表明:XX_LEACH協(xié)議比LEACH協(xié)議和NPT_LEACH協(xié)議性能更好;XX_LEACH協(xié)議使節(jié)點存活的個數(shù)顯著增多,能延長無線傳感器網(wǎng)路的生命周期.
圖4 3種協(xié)議存活節(jié)點的比較Fig.4 Comparison of survival nodes of three protocols
LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議中節(jié)點的分布情況如圖5~圖7所示.
圖5 LEACH協(xié)議節(jié)點的分布Fig.5 LEACH protocols node map
圖6 NPT_LEACH協(xié)議節(jié)點分布Fig.6 NPT_LEACH protocols node map
圖7 XX_LEACH協(xié)議節(jié)點分布Fig.7 XX_LEACH protocols node map
從圖5、圖6中可以清楚地看到:LEACH協(xié)議節(jié)點和NPT_LEACH協(xié)議節(jié)點與簇頭之間的距離比較分散,邊緣節(jié)點時刻存在,造成簇頭的負載不均衡,能量消耗不均勻等結果.而通過改進的XX_LEACH協(xié)議與LEACH協(xié)議和NPT_LEACH協(xié)議相比,可以明顯地看出節(jié)點與簇頭之間的距離趨近于均勻分布(見圖7),能更好地實現(xiàn)節(jié)點的能耗均勻,數(shù)據(jù)傳輸更有效.
根據(jù)仿真結果比較LEACH協(xié)議、NPT_LEACH協(xié)議和XX_LEACH協(xié)議的性能.從路由策略、以數(shù)據(jù)為中心、最優(yōu)路徑、穩(wěn)定性和可靠性5個方面分析[9],得出的結論如表2所示.
表2 3種路由協(xié)議性能的比較Table 2 Comparison of three routing protocols
基于節(jié)點向心性的路由協(xié)議簇首選舉,在LEACH協(xié)議的基礎之上,提出了XX_LEACH路由協(xié)議.以節(jié)點的向心性和節(jié)點的剩余能量以及節(jié)點溫度綜合值作為簇首選舉的標準,有效解決了無線傳感器網(wǎng)絡中各節(jié)點,尤其是邊緣節(jié)點數(shù)據(jù)傳輸時能量消耗不均勻的問題.XX_LEACH路由協(xié)議算法的提出,能夠提高各節(jié)點的能量利用效率,延長網(wǎng)絡的生命周期,解決LEACH路由協(xié)議簇首選取方法的不足.通過OPNET網(wǎng)絡仿真工具,使用MATLAB進行數(shù)據(jù)分析比較,對新型的無線傳感器路由協(xié)議XX_LEACH進行仿真.仿真結果表明:XX_LEACH協(xié)議與LEACH協(xié)議相比,能更好地減緩無線傳感器網(wǎng)絡中節(jié)點的能量消耗,延長網(wǎng)絡的生命周期,該算法比LEACH的簇頭選擇方法更可靠.為了更好地解決無線傳感器網(wǎng)絡分簇路由的問題,對于 XX_LEACH路由協(xié)議,在以后簇頭選取的研究中不能只局限于節(jié)點的向心性、節(jié)點的剩余能量和節(jié)點溫度3個因素,還需要考慮簇頭到基站的距離,以及節(jié)點的密集程度等因素.XX_LEACH協(xié)議的提出,在無線傳感器網(wǎng)絡的理論指導和實際發(fā)展中有著重大的意義.