張彥虎, 鄢麗娟
(廣東松山職業(yè)技術學院 計算機與信息工程學院, 廣東 韶關 512126)
無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)是將被監(jiān)測區(qū)域內需要獲取的感知對象的信息通過采集、發(fā)送、融合簡化、處理等一系列相關操作傳送給信息采集者的一種能夠實現(xiàn)自組織的無線網(wǎng)絡[1],傳感器節(jié)點的能量供應目前主要靠電池供給[2],而定期去更換節(jié)點電池又不現(xiàn)實,因此,對無線傳感器網(wǎng)絡而言,使用怎樣的技術能實現(xiàn)在保證通信可靠的前提下,使得整個無線傳感器網(wǎng)絡的使用壽命更長,成為無線傳感器網(wǎng)絡領域的研究熱點之一。
WSN[4]路由協(xié)議分為平面、層次兩種路由協(xié)議。平面路由協(xié)議一般適用于小規(guī)模網(wǎng)絡;另外一種層次路由協(xié)議也稱為分簇路由協(xié)議,采用以簇頭為核心,周邊的普通傳感器將信息傳送至簇頭節(jié)點,由簇頭節(jié)點對其所收集的簇成員節(jié)點信息進行數(shù)據(jù)融合,通過一跳或者多跳的方式傳送給基站[3]。分簇路由協(xié)議最具代表性的一種協(xié)議是LEACH協(xié)議,在此基礎上許多學者對其進行了多方面的優(yōu)化及改進,如黃利曉等[4]提出的LEACH-improved協(xié)議;彭蕾等[5]提出一種適用大規(guī)模網(wǎng)絡的基于LEACH算法的混合無線傳感網(wǎng)絡節(jié)能路由算法;胡中棟等[6]提出一種基于最優(yōu)分簇的能量異構無線傳感器網(wǎng)絡路由協(xié)議OCRP。本研究在深入分析LEACH分簇算法基礎上提出一種基于平均剩余能量進行簇頭選舉的分簇路由協(xié)議。
LEACH是一種能實現(xiàn)自適應分簇的拓撲算法,該算法是以周期輪回的方式循環(huán)重構簇群[7]。該算法的核心關鍵是減少節(jié)點與基站在直接通信過程中產(chǎn)生的能耗,降低網(wǎng)絡能量損耗,延長無線網(wǎng)絡的生存周期。
在無線網(wǎng)絡的成簇階段中,主要有簇頭選舉和成員加入兩個過程,其中簇頭選舉是核心[8]。在簇頭選舉中,各節(jié)點在規(guī)定的時間片區(qū)產(chǎn)生一個[0~1]之間的隨機數(shù),若隨機數(shù)小于閾值T(n),則當選簇頭,閾值T(n)的計算過程,如式(1)。
(1)
式中,p表示簇頭百分比;r表示當前輪數(shù);G表示在第r輪之前沒有做過簇頭節(jié)點的集合[9]。
簇頭選舉完成后,簇頭節(jié)點向周圍廣播,其他非簇頭節(jié)點選擇所接收到的信號最強的簇頭并向其發(fā)送入簇請求。
該階段主要工作是進行數(shù)據(jù)傳輸,構建成簇之后,成員節(jié)點將所采集的數(shù)據(jù)傳送給簇頭,簇頭對數(shù)據(jù)按照一定規(guī)則融合后轉發(fā)給基站,完成數(shù)據(jù)傳輸任務;通信時段結束之后,返回1.1進入新一輪次的簇頭選舉及成簇階段。
本研究采用與文獻[10]所提能耗模型相同的無線通信能量消耗模型,各節(jié)點的能耗分為3個部分:發(fā)送信息的能耗、接收信息的能耗、數(shù)據(jù)融合的能耗。該模型,如圖1所示。
圖1 無線電通信模型
在無線電通信模型下,如果信號的傳輸間距d小于閾值dt,功率放大器的能耗與傳輸距離d的平方成線比關系;否則,能耗與間距d的四次方成正比。εfs、εmp為以上兩種模型下功率放大器的能量消耗參數(shù)。閾值dt的計算過程,如式(2)。
(2)
當傳輸距離為d,傳感器發(fā)送大小為kbit的信息,其消耗的能量ET(k,d)的計算式,如式(3)。
(3)
式中,Etx表示傳感器發(fā)送1 bit信息的能耗;Erx表示其發(fā)送同樣大小信息的能耗,發(fā)送設備傳送kbit信息的能量消耗ET-elec=kEtx;ET-amp(k,d)表示如果傳輸間距為d,功率放大器發(fā)送kbit數(shù)據(jù)的能量消耗。
接收設備接收同樣大小kbit信息的能量消耗Erx(k)=kErx,對大小為kbit的數(shù)據(jù)進行融合所產(chǎn)生的能量消耗E(k)=kEda,其中Eda表示融合1 bit信息的能耗。節(jié)點接收kbit信息所需要的能耗,如式(4)。
ER(k)=k*Eelec
(4)
式中,Eelec表示發(fā)射電路的能耗;ER(k)表示接受kbit信息消耗的能量。
LEACH及相關的改進算法,從全局的角度來講,仍然存在能量消耗不均勻的情況,針對這一特點,提出一種基于基站獲悉全網(wǎng)絡中所有節(jié)點剩余能量、位置坐標等信息,并根據(jù)全傳感器網(wǎng)絡當前的實際情況,對網(wǎng)絡中的簇頭節(jié)點進行設置。
全無線傳感器網(wǎng)絡中所有的簇頭節(jié)點都由基站的函數(shù)F(x)產(chǎn)生,基站確定全無線傳感器網(wǎng)絡的所有簇頭之后,廣播給全域網(wǎng)絡,全網(wǎng)絡節(jié)點接收到信息之后核查自己是否被選定為簇頭,然后做出相應的設置及操作,以達到進一步均衡全網(wǎng)剩余能量的效果,基于上述描述,提出一種AREB(Average Remaining Energy Based on Whole Network Node,AREB)算法。
為實現(xiàn)上述功能,對AREB算法的網(wǎng)絡通信模式進行如下規(guī)劃,對一個普通節(jié)點而言,其生命周期內的運行過程,如圖2所示。
圖2 網(wǎng)絡通信模型
(1) 網(wǎng)絡首次組網(wǎng)簇頭采用LEACH算法隨機產(chǎn)生;
(2) 首次組網(wǎng)之后,在下一次組網(wǎng)周期之前,各簇頭收集并計算本簇平均剩余能量ECi,并發(fā)送給基站,其中ECi為當前簇內所有節(jié)點的平均剩余能量;
(3) 基站運行F(x)函數(shù)得到全無線傳感器網(wǎng)絡下一輪簇頭的集Si,并發(fā)送給全網(wǎng)絡,其中Si為下一輪的簇頭集合;
(4) 網(wǎng)絡節(jié)點接收基站發(fā)送的下一輪簇頭集合數(shù)據(jù)包Si,本輪當前簇頭接收到Si之后,轉發(fā)至本簇;所有節(jié)點接收到數(shù)據(jù)包后檢查自己是否在Si內,如果在則說明已被選定為下一輪的簇頭節(jié)點,在下一輪的無線傳感器網(wǎng)絡組網(wǎng)開始時,將自己設置為簇頭節(jié)點,否則,設置為普通節(jié)點;
(5) 進入新一輪的組網(wǎng);
(6) 組網(wǎng)完成之后,進入數(shù)據(jù)傳輸狀態(tài),并繼續(xù)循環(huán)上述(2)至(6)的過程。
本算法中,最核心的部分是簇頭的產(chǎn)生機制,該工作由F(x)函數(shù)產(chǎn)生,因此對該函數(shù)在此展開描述。
2.2.1F(x)函數(shù)相關參數(shù)
(1) 最小剩余能量閾值EOvall
為了保證所選中簇頭節(jié)點的剩余能量大于大多數(shù)節(jié)點的剩余能量,定義其運算過程如下。
① 全網(wǎng)節(jié)點平均剩余能量,如式(5)。
(5)
式中,ECi表示節(jié)點Si的剩余能量;n表示全網(wǎng)無線傳感器節(jié)點的數(shù)量;EAVall表示全網(wǎng)節(jié)點平均剩余能量。
② 能量大于EAVall節(jié)點的平均值,如式(6)。
(6)
式中,EAvi表示剩余能量大于全網(wǎng)絡平均剩余能量EAvall的節(jié)點Sj的剩余能量;M表示全網(wǎng)內剩余能量大于EAvall的節(jié)點集合。
(2) 最優(yōu)簇頭數(shù)量Kopt
在M*M的區(qū)域內,令最優(yōu)簇頭的計算過程,如式(7)。
(7)
式中,N表示全無線網(wǎng)絡存活節(jié)點的數(shù)量;M表示正方形區(qū)域的邊長;dtoBS表示簇頭到基站的距離;εfs、εmp分別表示無線發(fā)送器的系數(shù)。
(3) 簇頭之間的最小間距d0
為了防止簇頭過于集中的產(chǎn)生在某一個區(qū)域,造成能量消耗的浪費,對簇頭與簇頭最小間距做限制,定義為d0,計算過程,如式(8)。
(8)
2.2.2F(x)函數(shù)的計算過程
基站獲取到全網(wǎng)絡各節(jié)點的剩余能量、各簇平均剩余能量及各節(jié)點的地理位置后,根據(jù)上述信息運行F(x)算法產(chǎn)生簇頭集合C。
(1) 根據(jù)式(5)、式(6),計算EOvall;根據(jù)式(7)計算Kopt;式(8)計算d0;
(2) 對全網(wǎng)絡內所有節(jié)點進行遍歷,凡是符合剩余能量大于等于EOvall的節(jié)點,都加入集合SO。
(3) 對集合SO的所有節(jié)點進行遍歷,凡是節(jié)點到已選定的簇頭集合C(初始值為null)的所有已選簇頭的最小距離dmin小于d0,則將該節(jié)點加入到集合C。
(4) 對下一周期簇頭的成員節(jié)點數(shù)量做限制,為了防止平均剩余能量較低的區(qū)域過多的消耗能量,令當前簇CNow平均剩余能量最低簇的簇成員數(shù)量不得大于平均值。
(5) 當集合C中節(jié)點數(shù)量大于等于Kopt時,結束F(x)的運算,得到集合C,即為函數(shù)F(x)所選定的簇頭節(jié)點集合。
為驗證本文路由算法效果,使用MATLAB R2016模擬仿真軟件分別對LEACH、文獻[5]所述算法、本文算法在M*M區(qū)域的平面上進行了模擬實驗,M為100 m。使用模擬軟件在該區(qū)域內隨機產(chǎn)生100個節(jié)點,基站位于平面的中心位置。對各對比算法分別進行100次的實驗,每次運行3 000輪,測試環(huán)境的參數(shù)設置,如圖3所示。
參數(shù)名參數(shù)值初始能量/J0.5數(shù)據(jù)包/bit2 000控制包/bit100p0.10Etx/nJ/bit50Erx/nJ/bit50Eda/nJ/bit5εfs/pJ/bit/m210εmp/pJ/bit/m40.001 3
(1) 網(wǎng)絡生命周期
將各算法各輪次存活節(jié)點數(shù)進行對比分析,如圖4所示。
圖4 存活節(jié)點對比圖
發(fā)現(xiàn)本文算法首個死亡節(jié)點出現(xiàn)的輪數(shù)更晚,首個死亡節(jié)點出現(xiàn)在1 607輪,較LEACH算法提升25.74%,較文獻[5]提升9.23%,說明使用本文算法能有效提高無線傳感器網(wǎng)絡的網(wǎng)絡生命周期。
(2) 網(wǎng)絡吞吐量
將兩個算法仿真實驗結果的數(shù)據(jù)傳輸量進行網(wǎng)絡吞吐量情況對比,如圖5所示。
圖5 網(wǎng)絡吞吐量對比
由圖5可知本文算法延長無線傳感器網(wǎng)絡生命周期的同時,增加了基站接收到的數(shù)據(jù)量,其網(wǎng)絡吞吐量更大。
通過仿真實驗表明,本研究提出的算法,在網(wǎng)絡生存周期、能耗均衡性、網(wǎng)絡吞吐量等有更優(yōu)異的表現(xiàn)。本文算法在基站中產(chǎn)生全無線傳感器網(wǎng)絡的所有簇頭節(jié)點,通過設定閾值、最優(yōu)簇頭數(shù)、各簇頭間最小距離等策略,使簇頭的分布更均勻,優(yōu)化了LEACH路由協(xié)議簇頭分布不均等缺點,均衡了各節(jié)點的能量損耗,延長了網(wǎng)絡的生命周期,增加了網(wǎng)絡的吞吐量。本研究存在的不足之處是未能實現(xiàn)更細致的為每個簇頭指定具體的傳感器節(jié)點,后期將以該方向為重點開展相關研究。