◆于俊勇 譚敏生 向 婷 江君祥
一種基于LEACH算法的無線傳感網絡節能研究與改進
◆于俊勇 譚敏生 向 婷 江君祥
(南華大學計算機科學與技術學院 湖南 421001)
無線傳感網絡的能耗問題是目前亟待解決的。基于LEACH協議的研究是最普遍的。但是這些研究大都主要幾種在節點的剩余能量,簇頭的個數研究,但是簇頭分布的均勻性和各個簇間的普通節點過量的冗余,卻很少顧及。本文首先通過平均能量分組的方法產生分組,再在每個組內選擇合適的簇頭,然后讓簇內的部分不同節點選擇行的進行休眠。這樣來減少普通節點的的能耗、減少簇頭的數據融合能耗,進而減少整個網絡的能耗。實驗證明,這種方法能夠很好的延長網絡的生存時間。
無線傳感網絡;LEACH;簇頭選舉;能量消耗
無線傳感網絡(Wireless Sensor Networks,WSN)[1],[2]是部署在監控區域內大量的廉價的傳感器節點通過無線通信的的方式形成的多跳自組織網絡。傳感器的節點的體積小于1立方厘米[3],因此每個節點攜帶的能量是有限的。由于其在監控區域數量多、分布廣,這樣為其能量的補充增加了難度。延長網絡的生存時間,成為了無線傳感網絡研究的重點。路由協議的研究是常見的,特別是分層路由協議。典型的是LEACH協議[4]。
在LEACH協議下,首先提到“輪”的概念。不再是通過泛洪進行數據的交換,答題包括簇頭的選舉和簇的建立以及穩定階段數據采集、傳輸。
1.1 LEACH簇頭的選舉和簇的建立
首先要進行簇頭的選舉。該算法進行簇頭選擇的方法如下:在每輪開始時,節點隨機產生一個[0,1]的隨機數,該隨機數和閥值T(n)進行比較,如果小于該閥值就成為該輪的簇頭,反之就準備加入相應的簇。
其中:P為節點成為簇頭節點的概率,r為當前輪數,G為在最近的1/p輪中未當選簇頭的節點集合。簇頭節點選定以后,向周圍廣播自己成為簇頭的消息,節點根據接受到的信號的強度來決定要加入的簇。然后,簇頭節點采用TDMA的方式為簇內的所有的成員分配傳送數據的時隙。這樣就完成了簇的建立。
在穩定階段,傳感器節點在相應的時隙將采集到的數據先發送到簇頭,簇頭對接收到數據進行分析、數據融合再將數據傳送到匯集節點,匯聚節點最后將數據傳送到監控中心進行數據的處理。至此,一輪已經完成,網絡重新進入下一輪的簇的重建,不斷循環。
1.2 LEACH算法的不足
LEACH算法選擇簇頭節點一定時不能均勻分布。向簇頭傳輸數據造成大量的信息冗余,并且簇頭的融合也要消耗能量[5]。針對以上不足,提出了一下改進:使簇頭的分布更加均勻;成簇的規模更加合理。
2.1 網絡模型
本文采用的傳感器網絡模型具有以下性質:
(1)所有的傳感器的節點在一個正方形區域中;
(2)基站是固定的、可維護的、并且有足夠的能量;
(3)所有的傳感器的節點的能量是有限的,每個節點都知道自身的位置信息;
(4)所有的傳感器的節點都具有功率控制能力,可以改變自己的發射功率;
(5)所有的傳感器的節點都具有相同的配置,都可以進行數據的融合,都可以根據一定的條件改變自己的發射功率。
2.2 能量消耗模型
本文采用如下無線通信能耗模型。節點發射l位的數據到距離為d的位置消耗的能量ETX(l,d)由發射電路的消耗和功率放大的損耗組成,功率放大的消耗則根據發送者和接收者的距離分別采用自由空間模型和多路徑衰減模型,即:
式中Eelec為發射每位數據電路的消耗能量。εfs、εamp分別是2種通信信道模型下功率放大所需要的能量。若傳輸距離d小于閥值d0(d0為常數),功率放大消耗采用自由空間模型,當d大于閥值d0時,采用多路徑衰減模型。
與LEACH算法類似的,該算法也是周期性的。每輪循環包括簇的建立階段和穩定的工作階段。
3.1 簇頭的選取
假設一個區域內隨機分布n個傳感器節點,首先基站向該區域內發送一個消息(ACTION),區域內的節點收到這個消息以后,報告自己現在的能量Ei( i=1,2,...n)(剛開始時每個節點的能量完全相等),并且返回一個確認的消息(DEAL),當基站收到每個節點的確認消息以后簇頭的選取流程開始。基站計算出該輪應該產生出的簇頭的個數K,基站根據接收到的每個節點的能量計算出每個簇的平均的能量Eavg=Etotal/k ,然后最后一個響應的節點i成為第一個組頭,基站向該節點發送消息包括分組的編號H1、分組的個數K,能量閥值Eavg,該節點接收到消息以后就向周圍廣播成為組頭的消息,節點收到信號后假如該組。當接收未分組的能量高于閥值時,該節點成為第二個組頭節點。同樣的上個組頭節點將向該節點發送消息包括分組的編號H2、分組的個數K,能量閥值Eavg,該組頭繼續按照上面的方式成組,如此循環知道形成k個組。
3.2 簇的形成
不再像以前的算法那樣每個簇中的普通節點都要進行數據的采集并且傳遞給簇頭節點。下面選擇出該論實際工作的m節點,首先在該簇內選擇一個節點,與簇頭節點的距離在一定的閥值范圍內,然后偏移一定的角度再選擇一個節點,同樣滿足節點距離在一定的范圍內。這樣本輪工作的m個節點就選擇出來了,簇內的其他節點本輪關機。
4.1 數據源
本文采用MATLAB作為仿真工具。以隨機的方式在N*N的區域內部署傳感器節點。試驗中的各個參數取值如下: