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