魏艷婷 張玉霞 李道全
(青島理工大學(xué)信息與控制工程學(xué)院 青島 266033)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks)作為新一代的傳感器網(wǎng)絡(luò),因其節(jié)點分布面積廣、網(wǎng)絡(luò)拓?fù)湫阅軓?、自組織網(wǎng)路[1]等特點,在智能家居、醫(yī)療、軍事、農(nóng)林牧業(yè)、地震監(jiān)測等領(lǐng)域影響深遠(yuǎn)。一些發(fā)達(dá)國家非常重視WSNs的發(fā)展,其中IEEE也在推進WSNs的發(fā)展。但是現(xiàn)存的無線傳感器網(wǎng)絡(luò)由于節(jié)點分布廣泛,節(jié)點能量[2]有限且傳輸數(shù)據(jù)需要多跳轉(zhuǎn)發(fā),這大大限制了無線傳感器網(wǎng)絡(luò)在日常生活中的應(yīng)用。為提高網(wǎng)絡(luò)收發(fā)數(shù)據(jù)的效率,延長網(wǎng)路生存周期[3],部分學(xué)者提出使用移動sink節(jié)點[4~9]進行數(shù)據(jù)收集,文獻[10]采用二分法設(shè)定sink節(jié)點的移動軌跡,但是在收集過程中簇頭直接進行發(fā)送數(shù)據(jù)使得簇頭節(jié)點過早死亡;文獻[11]將網(wǎng)絡(luò)劃分為多個相等的柵格,每個柵格的中心為sink節(jié)點移動和停留的點,雖然多個移動sink提高數(shù)據(jù)收集的效率,但是多個sink節(jié)點的移動規(guī)則復(fù)雜,容易收集到冗余的數(shù)據(jù)。結(jié)合移動sink節(jié)點和柵格分區(qū)域[12]的優(yōu)勢,提出使用固定sink和多個移動sink[13]相結(jié)合,劃分網(wǎng)絡(luò)區(qū)域,并在簇頭之間生成最短徑樹[14]等方式來提高WSNs收發(fā)數(shù)據(jù)的效率,實現(xiàn)網(wǎng)絡(luò)能量均衡。
假設(shè)無線傳感器網(wǎng)絡(luò)為M*M的矩形區(qū)域,其中隨機分布N個不可移動節(jié)點,網(wǎng)絡(luò)中有一個固定sink和多個移動sink節(jié)點。除了sink節(jié)點外,網(wǎng)絡(luò)中的其余節(jié)點初始能量均相等,sink節(jié)點可以隨時補充能量。其中,網(wǎng)絡(luò)中劃分的網(wǎng)格區(qū)域的總數(shù)Csum由N決定,如式(1)所示。
在WSN中,各個區(qū)域的邊長為Cl,如式(2)所示。
依據(jù)式(1)和式(2),網(wǎng)絡(luò)中區(qū)域劃分如圖1所示,區(qū)域中隨機分布N個網(wǎng)絡(luò)節(jié)點,固定sink節(jié)點位于網(wǎng)絡(luò)的中心。
圖1 網(wǎng)絡(luò)區(qū)域劃分
在網(wǎng)絡(luò)工作中,采用Heinzelman模型[10]作為耗能計算依據(jù),具體形式如式(3)所示。
式(3)中,l的單位是bit,指節(jié)點發(fā)送數(shù)據(jù)包的長度;εfs和εmp指節(jié)點間不同距離的功率放大系數(shù),Eelec指節(jié)點內(nèi)每單位數(shù)據(jù)處理消耗能量;dij指兩個節(jié)點之間的距離大小,用式(4)表示,d0表示一個閥值,用式(5)表示,節(jié)點i到節(jié)點j接收數(shù)據(jù)過程消耗能量如式(6)所示:
在WSNs中使用移動sink節(jié)點收集數(shù)據(jù)[15~17]已經(jīng)成為當(dāng)前熱點,而移動sink的運行軌跡[18]更是關(guān)系著網(wǎng)絡(luò)收發(fā)數(shù)據(jù)效率。本文采用二分法,根據(jù)網(wǎng)絡(luò)區(qū)域面積大小,以a-b-c-d為運行軌跡,劃分為大小相等的S1和S2兩部分,4個移動sink同時在兩個區(qū)域的交匯軌跡以一定的速度進行移動,網(wǎng)絡(luò)邊緣與移動軌跡交匯點a,b,c,d的坐標(biāo)依次為(0,M/2),(M/2,M),(M,M/2),(M/2,0)。
在移動sink節(jié)點以一定的速度移動至交匯點時,就完成了一次數(shù)據(jù)收集,隨后計算每個區(qū)域的節(jié)點存活率,當(dāng)S1區(qū)域的存活率ξ<ε時,那么移動sink改變移動軌跡,沿著a1-b1-c1-d1移動,否則多個移動sink會同時以同樣的速度沿反方向的軌跡移動。
圖2 多移動sink移動軌跡
判斷節(jié)點是否存活主要依據(jù)的是sink節(jié)點是否接收到其發(fā)送的數(shù)據(jù),存活率計算公式如式(7)所示。
式(7)中,αi表示在S1區(qū)域內(nèi)節(jié)點的存活數(shù)量,ns1表示本輪收集數(shù)據(jù)初始時的節(jié)點總數(shù)。
網(wǎng)絡(luò)分成許多面積相等的區(qū)域后,在每個區(qū)域按照Leach協(xié)議[19]進行分簇,分簇后,區(qū)域中的簇頭之間根據(jù)Dijkstra算法[14]形成最短徑樹,那么祖先節(jié)點就成為區(qū)頭來收集每個簇頭的事件,在移動sink經(jīng)過時將融合后的信息發(fā)送給sink節(jié)點。網(wǎng)絡(luò)節(jié)點分簇并形成最短徑樹過程如圖(3)所示,圖中的節(jié)點表示分簇后的簇頭節(jié)點,主要介紹簇頭之間根據(jù)距離sink節(jié)點遠(yuǎn)近選出區(qū)頭,從而形成最短徑樹的過程。
圖3 數(shù)據(jù)收集過程圖
其中,數(shù)據(jù)收集規(guī)則主要為,找到距離固定sink節(jié)點或移動sink節(jié)點軌跡最近的簇頭作為區(qū)頭,直接將收集的興趣事件發(fā)送給固定sink或在該軌跡移動的sink節(jié)點,如果兩段距離相等,則隨機選取其一。同時,在sink節(jié)點移動的過程中,達(dá)到發(fā)送數(shù)據(jù)距離的區(qū)頭會將信息發(fā)送給sink節(jié)點,未達(dá)到發(fā)送數(shù)據(jù)距離的區(qū)頭則處于睡眠狀態(tài)。
本文使用MatlabR2014a進行仿真實驗,在200*200的區(qū)域內(nèi)隨機分布400個節(jié)點進行仿真,每個節(jié)點的初始能量為0.5J,分別在節(jié)點存活率和能量消耗方面對比LEACH算法[20]和MMBCD協(xié)議進行對比。
在表1中,GCPDMM協(xié)議在不同時段節(jié)點存活率遠(yuǎn)遠(yuǎn)大于同時段的Leach協(xié)議,因為在GCPDMM協(xié)議中,同時使用多個移動sink進行數(shù)據(jù)收集,所以節(jié)省了簇頭通過多跳的形式傳送給距離較遠(yuǎn)的sink的能量,故節(jié)點會剩余較多能量從而存活更久的時間。
表1 節(jié)點存活率比較
圖4顯示了節(jié)點在不同時間段總能量的消耗情況,由于GCPDMM協(xié)議中固定sink和多個移動sink節(jié)點同時收集數(shù)據(jù)且在移動sink為到達(dá)的情況下,發(fā)送消息的簇頭節(jié)點處于休眠狀態(tài)等原因,GCPDMM協(xié)議的能量消耗大大低于Leach協(xié)議,實現(xiàn)了延長網(wǎng)絡(luò)生命周期的目的。
圖4 能量消耗對比
本文結(jié)合二分法、網(wǎng)絡(luò)柵格分區(qū)、固定sink和移動sink節(jié)點相結(jié)合以及最小徑樹等方法進行數(shù)據(jù)收集,在WSNs能量消耗和節(jié)點存活時間等方面有明顯的改進,同時多個sink節(jié)點同時進行數(shù)據(jù)收集也能減少網(wǎng)絡(luò)延遲,提高整個網(wǎng)絡(luò)的工作效率。由于移動sink節(jié)點成為WSNs熱點問題,所以更好地利用移動sink成為時下解決網(wǎng)絡(luò)問題更好的選擇。