羅丹霞 湖南工學院計算機與信息科學學院
LEACH 路由協(xié)議是分層的傳感器網(wǎng)絡路由協(xié)議。該算法的基本思想是[1]:在簇生成階段,各節(jié)點(SN)隨機選取一個介于(0,1)之間的值,若該值小于閾值T(n),則該節(jié)點成為簇頭(CH)。閾值T(n)的計算公式如下:
公式1:閾值計算公式
由于簇頭選取的隨機性,有以下四個缺點:
(1)簇頭分布不能保證均衡。(2)每輪簇頭數(shù)量隨機。(3)簇頭的選取沒有考慮節(jié)點的剩余能量。(4)簇頭與BS 通信采用單跳的方式。
在 L E A C H 協(xié)議算法中,采用第一順序無線電信道模型。
根據(jù)此模型,傳感器節(jié)點發(fā)送Kbit 字節(jié)的能量消耗為:
一般認為BS 距離節(jié)點較遠,所以采用多徑衰減模型即d4進行計算。
每個非簇頭節(jié)點僅僅需要將自己的數(shù)據(jù)傳輸給簇頭節(jié)點。由于簇頭節(jié)點和非簇頭節(jié)點間的距離相對較近,所以能量消耗遵循自由空間衰減信道模型。每個非簇頭節(jié)點消耗的能量為:
這樣,一個簇在一幀內(nèi)的能耗為
圖1 節(jié)點分布圖
本文采用九宮格區(qū)域劃分法,假設基站位于區(qū)域上方(50,100)的位置。初始化時每個節(jié)點根據(jù)自己的位置判斷所在方格,保存自身到基站的距離。算法如下:
for i=1:i:n
if(i 的坐標位于區(qū)域1)
s(i).area_id=1;
……..
if(i 的坐標位于區(qū)域9)
為了修正原來算法中簇頭選取沒有考慮節(jié)點的剩余能量,結(jié)合最優(yōu)簇頭數(shù),本文修正簇頭選舉閾值公式2 為:
公式2 改進后的閾值公式
簇頭選擇偽碼如下:
IF 輪數(shù)r 為奇數(shù)
For i=1:1:n
If 節(jié)點i 格子編號在2,6,6,8,5&&節(jié)點i 的剩余能量大于該區(qū)域平均能量&&該區(qū)域未有簇頭
該節(jié)點當選簇頭
Else
For i=1:1:n
If 節(jié)點i 格子編號在1,3,5,7,9&&節(jié)點i 的剩余能量大于該區(qū)域平均能量&&該區(qū)域未有簇頭 該節(jié)點當選簇頭
本文使用MATLAB[5]對LEACH-EN 進行了仿真,并和LEACH協(xié)議進行了對比,仿真主要參數(shù)如表1:
表1 仿真參數(shù)
數(shù)據(jù)包的大小為2000 bit,簇頭的數(shù)據(jù)壓縮率為 0.7,即有 2 000 bit 數(shù)據(jù)發(fā)送到簇頭,經(jīng)簇頭處理之后就將1400 bit 傳給簇頭中繼。數(shù)據(jù)融合消耗的能量為 5 J/bit/message,傳輸?shù)哪芰繛?50 nJ/bit。
圖2 的結(jié)果是因為改進后的LEACH-EN 才用了多跳于單挑相結(jié)合的通信方式,使得簇頭有節(jié)點較為有效地節(jié)約了能量。另外分簇結(jié)構(gòu)更合理,使得網(wǎng)絡總的信息處理量要小,故而節(jié)約了能量。
圖2 總能量消耗對比
圖3 所示改進后的協(xié)議在提高網(wǎng)絡生存時間上有所提高。這是因為合理的分簇能夠有效地均衡網(wǎng)絡能量,使得整個網(wǎng)絡生命周期得以延長。
圖3 網(wǎng)絡生存時間對比