羅丹霞 湖南工學院計算機與信息科學學院
LEACH 路由協議是分層的傳感器網絡路由協議。該算法的基本思想是[1]:在簇生成階段,各節點(SN)隨機選取一個介于(0,1)之間的值,若該值小于閾值T(n),則該節點成為簇頭(CH)。閾值T(n)的計算公式如下:

公式1:閾值計算公式
由于簇頭選取的隨機性,有以下四個缺點:
(1)簇頭分布不能保證均衡。(2)每輪簇頭數量隨機。(3)簇頭的選取沒有考慮節點的剩余能量。(4)簇頭與BS 通信采用單跳的方式。
在 L E A C H 協議算法中,采用第一順序無線電信道模型。
根據此模型,傳感器節點發送Kbit 字節的能量消耗為:

一般認為BS 距離節點較遠,所以采用多徑衰減模型即d4進行計算。

每個非簇頭節點僅僅需要將自己的數據傳輸給簇頭節點。由于簇頭節點和非簇頭節點間的距離相對較近,所以能量消耗遵循自由空間衰減信道模型。每個非簇頭節點消耗的能量為:

這樣,一個簇在一幀內的能耗為




圖1 節點分布圖
本文采用九宮格區域劃分法,假設基站位于區域上方(50,100)的位置。初始化時每個節點根據自己的位置判斷所在方格,保存自身到基站的距離。算法如下:
for i=1:i:n
if(i 的坐標位于區域1)
s(i).area_id=1;

……..
if(i 的坐標位于區域9)

為了修正原來算法中簇頭選取沒有考慮節點的剩余能量,結合最優簇頭數,本文修正簇頭選舉閾值公式2 為:

公式2 改進后的閾值公式
簇頭選擇偽碼如下:
IF 輪數r 為奇數
For i=1:1:n
If 節點i 格子編號在2,6,6,8,5&&節點i 的剩余能量大于該區域平均能量&&該區域未有簇頭
該節點當選簇頭
Else
For i=1:1:n
If 節點i 格子編號在1,3,5,7,9&&節點i 的剩余能量大于該區域平均能量&&該區域未有簇頭 該節點當選簇頭
本文使用MATLAB[5]對LEACH-EN 進行了仿真,并和LEACH協議進行了對比,仿真主要參數如表1:

表1 仿真參數
數據包的大小為2000 bit,簇頭的數據壓縮率為 0.7,即有 2 000 bit 數據發送到簇頭,經簇頭處理之后就將1400 bit 傳給簇頭中繼。數據融合消耗的能量為 5 J/bit/message,傳輸的能量為 50 nJ/bit。
圖2 的結果是因為改進后的LEACH-EN 才用了多跳于單挑相結合的通信方式,使得簇頭有節點較為有效地節約了能量。另外分簇結構更合理,使得網絡總的信息處理量要小,故而節約了能量。

圖2 總能量消耗對比
圖3 所示改進后的協議在提高網絡生存時間上有所提高。這是因為合理的分簇能夠有效地均衡網絡能量,使得整個網絡生命周期得以延長。

圖3 網絡生存時間對比