常鐵原,張 炎,閆藝萍,李會(huì)雅
(河北大學(xué) 電子信息工程學(xué)院,河北 保定 071000)
無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)作為新興的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)之一,是由多個(gè)具備通訊和計(jì)算能力的傳感器節(jié)點(diǎn)設(shè)備通過(guò)無(wú)線通信的方式隨機(jī)分布在某一待測(cè)區(qū)域從而組成的區(qū)域型自組織網(wǎng)絡(luò),其用途是進(jìn)行數(shù)據(jù)的采集,融合和傳輸,最終把處理過(guò)的數(shù)據(jù)傳送至基站(Sink)[1],目前WSN已經(jīng)廣泛應(yīng)用在農(nóng)業(yè)、生態(tài)和軍事等領(lǐng)域中.由于傳感器節(jié)點(diǎn)體積逐步微型化,節(jié)點(diǎn)內(nèi)部存儲(chǔ)的電池能量受節(jié)點(diǎn)體積的影響導(dǎo)致能量十分受限,且不能重復(fù)供電,因此,如何平衡網(wǎng)絡(luò)區(qū)域的能耗,延長(zhǎng)網(wǎng)絡(luò)的使用周期成為了無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議急需解決的熱點(diǎn)問(wèn)題[2].
分簇是解決WSN能耗問(wèn)題的有效方法之一.早期的分簇路由協(xié)議大多采用由簇頭節(jié)點(diǎn)收集普通節(jié)點(diǎn)采集的數(shù)據(jù)加以整合直接發(fā)送到基站的形式.其中層次型路由協(xié)議中最典型的是2000年由Heinzelman等人提出的LEACH[3]協(xié)議(低能耗自適應(yīng)分簇路由算法).但該協(xié)議缺點(diǎn)同樣明顯,隨機(jī)選舉的簇頭并沒有考慮節(jié)點(diǎn)的綜合情況,并且簇頭與基站的通信采用單跳傳輸模式進(jìn)一步加劇了簇頭節(jié)點(diǎn)的能耗,導(dǎo)致距離基站較遠(yuǎn)的簇頭節(jié)點(diǎn)過(guò)早死亡導(dǎo)致網(wǎng)絡(luò)區(qū)域斷裂,從而整體上縮短了整個(gè)網(wǎng)絡(luò)的壽命.
研究表明,簇頭將處理后的數(shù)據(jù)傳輸至基站采用多跳傳輸模式更能節(jié)約能量[4],由于多跳傳輸需要距離基站較近的簇頭節(jié)點(diǎn)充當(dāng)轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)距離基站較遠(yuǎn)的簇頭節(jié)點(diǎn)數(shù)據(jù),因此會(huì)造成距離基站較近的簇頭節(jié)點(diǎn)承擔(dān)繁重的數(shù)據(jù)流量,從而加快其能耗.為了解決網(wǎng)絡(luò)區(qū)域能耗不平衡問(wèn)題,提出非均勻成簇的思想.南京大學(xué)提出的EEUC算法核心思想是網(wǎng)絡(luò)非均勻成簇和節(jié)點(diǎn)多跳通信傳輸數(shù)據(jù)[5],每個(gè)普通節(jié)點(diǎn)以相同的概率成為候選節(jié)點(diǎn)并比較剩余能量選出最終的簇頭節(jié)點(diǎn).EEUC協(xié)議規(guī)定節(jié)點(diǎn)越靠近基站,其通信半徑會(huì)越小,簇頭節(jié)點(diǎn)的簇群規(guī)模就越小,因此通過(guò)減小近距離簇頭節(jié)點(diǎn)的簇群規(guī)模來(lái)平衡該節(jié)點(diǎn)的流量負(fù)載能耗.但是EEUC協(xié)議構(gòu)建的簇群規(guī)模不夠理想,節(jié)點(diǎn)競(jìng)爭(zhēng)半徑僅僅考慮到節(jié)點(diǎn)與基站的距離單一的因素,簇頭的選舉過(guò)程和簇群建立的規(guī)模不夠理想.韓國(guó)首爾國(guó)立大學(xué)提出的LUCA協(xié)議與EEUC協(xié)議類似[6],提出了基于簇頭與基站距離的最優(yōu)聚類分析,系統(tǒng)的闡明了非均勻成簇的核心思想.山東大學(xué)提出的EADUC協(xié)議進(jìn)一步改進(jìn)了EEUC協(xié)議的缺點(diǎn)[7],在設(shè)計(jì)競(jìng)爭(zhēng)半徑時(shí)綜合考慮了距離與節(jié)點(diǎn)能量?jī)蓚€(gè)要素,使得簇群規(guī)模構(gòu)建更加合理.但是EADUC協(xié)議忽略了節(jié)點(diǎn)分布的問(wèn)題,節(jié)點(diǎn)在不均勻部署下構(gòu)建的網(wǎng)絡(luò)拓?fù)洳荒芎芎玫膬?yōu)化能耗.基于EADUC協(xié)議存在的問(wèn)題,山東大學(xué)和香港大學(xué)提出了ECDC協(xié)議[8],該協(xié)議根據(jù)不同的應(yīng)用環(huán)境,設(shè)計(jì)了不同的節(jié)點(diǎn)覆蓋方法,綜合考慮了節(jié)點(diǎn)的剩余能量和覆蓋范圍.通過(guò)較少的控制信息,構(gòu)造出更優(yōu)的聚類拓?fù)浣Y(jié)構(gòu),更低的能耗和更好的覆蓋性能.為了進(jìn)一步優(yōu)化非均勻成簇算法的簇群規(guī)模,曲阜師范大學(xué)提出的IDUC協(xié)議進(jìn)一步在ECDC協(xié)議基礎(chǔ)改進(jìn)了節(jié)點(diǎn)的競(jìng)爭(zhēng)半徑[9],該協(xié)議綜合考慮了節(jié)點(diǎn)與基站的距離,節(jié)點(diǎn)的剩余能量和區(qū)域節(jié)點(diǎn)密度三個(gè)要素.距離基站越近,剩余能量越少,節(jié)點(diǎn)密度越大,則簇頭節(jié)點(diǎn)成立的簇群規(guī)模就越小,進(jìn)一步優(yōu)化了簇群拓?fù)浣Y(jié)構(gòu)和規(guī)模并通過(guò)構(gòu)建路由樹進(jìn)一步優(yōu)化節(jié)點(diǎn)多跳傳輸?shù)哪芎?
針對(duì)ECDC協(xié)議和IDUC協(xié)議在節(jié)點(diǎn)時(shí)間競(jìng)爭(zhēng)機(jī)制中僅考慮到節(jié)點(diǎn)當(dāng)前剩余能量的問(wèn)題,并沒有針對(duì)節(jié)點(diǎn)歷史能耗,簇頭節(jié)點(diǎn)與鄰居節(jié)點(diǎn)的平均距離和在節(jié)點(diǎn)分布較密集的區(qū)域存在簇頭節(jié)點(diǎn)能耗加快的問(wèn)題進(jìn)行分析,同時(shí)IDUC協(xié)議頻繁的換簇也會(huì)帶來(lái)大量的控制消息能耗,因此本文提出了一種新型能耗優(yōu)化的非均勻分簇路由算法(UCNE).算法在節(jié)點(diǎn)競(jìng)選簇頭過(guò)程中采用了歷史能耗因子和綜合距離因子,優(yōu)先選擇歷史能耗低和綜合距離小的節(jié)點(diǎn)當(dāng)選簇頭,設(shè)立副簇頭承擔(dān)數(shù)據(jù)的中繼轉(zhuǎn)發(fā),降低主簇頭節(jié)點(diǎn)的能耗負(fù)擔(dān).為了減少頻繁換簇帶來(lái)的控制能耗,設(shè)立新的能量門限值進(jìn)行簇群更換的標(biāo)準(zhǔn),減少頻繁換簇帶來(lái)的不必要的控制能耗.實(shí)驗(yàn)表明,該算法與EEUC、ECDC、EADUC和IDUC協(xié)議相比,UCNE能夠更好的延長(zhǎng)網(wǎng)絡(luò)壽命,均衡節(jié)點(diǎn)的能耗.
本文算法假設(shè)無(wú)線傳感器網(wǎng)絡(luò)具備以下特征:1)節(jié)點(diǎn)靜止分布且能量受限,基站部署在節(jié)點(diǎn)區(qū)域之外且可以再次供電;2)每個(gè)節(jié)點(diǎn)電池儲(chǔ)備電量相同;3)節(jié)點(diǎn)可以根據(jù)接收信號(hào)強(qiáng)度的大小計(jì)算與源節(jié)點(diǎn)的距離,并且可以控制自己的收發(fā)功率;4)在不需要進(jìn)行數(shù)據(jù)傳輸時(shí),節(jié)點(diǎn)的收發(fā)器可以進(jìn)入休眠模式;5)基站可以與任一節(jié)點(diǎn)進(jìn)行通信.
由于無(wú)線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸時(shí)的能耗遠(yuǎn)比其他功能的能耗要大,本文采用與文獻(xiàn)[9]相同的能耗模型.
發(fā)送數(shù)據(jù)時(shí),其能耗公式如下:
(1)
節(jié)點(diǎn)接收k比特?cái)?shù)據(jù)的能耗為:
ERX(k)=kEelec
(2)
為了簡(jiǎn)化問(wèn)題,我們只考慮同一簇群內(nèi)數(shù)據(jù)融合問(wèn)題,節(jié)點(diǎn)融合數(shù)據(jù)的能耗為:
Ec=nikEDA
(3)
式中,ni為簇群內(nèi)節(jié)點(diǎn)個(gè)數(shù),EDA為單位數(shù)據(jù)融合的能耗.
由上述公式可以看出,在數(shù)據(jù)長(zhǎng)度相同的情況下傳感器節(jié)點(diǎn)的能耗大小主要由點(diǎn)與點(diǎn)的傳輸距離和鄰居節(jié)點(diǎn)的數(shù)量等因素決定.因此如何降低節(jié)點(diǎn)之間的傳輸距離和降低簇群節(jié)點(diǎn)的密度成為了無(wú)線傳感器網(wǎng)絡(luò)非均勻成簇的研究熱點(diǎn)問(wèn)題.
本文算法采用周期方式運(yùn)行,每個(gè)運(yùn)行周期稱為“輪”,每輪分為簇頭選舉階段和數(shù)據(jù)傳輸階段.簇群形成后簇頭節(jié)點(diǎn)會(huì)給成員節(jié)點(diǎn)分配TDMA時(shí)序表,節(jié)點(diǎn)分配到的時(shí)隙到來(lái)時(shí)才能與簇頭節(jié)點(diǎn)通信,其余時(shí)隙節(jié)點(diǎn)為了節(jié)省能量處于休眠狀態(tài)不再接收與傳輸數(shù)據(jù).
圖1 算法基本原理圖Fig.1 Algorithm basic schematic
在簇頭選舉階段,節(jié)點(diǎn)根據(jù)距離、剩余能量和節(jié)點(diǎn)密度三個(gè)要素來(lái)設(shè)置競(jìng)爭(zhēng)半徑,達(dá)到非均勻分簇的目的.在數(shù)據(jù)傳輸階段,以簇頭的剩余能量、簇頭到基站的距離和簇頭簇群規(guī)模為權(quán)值建立最優(yōu)的傳輸路徑,進(jìn)一步降低網(wǎng)絡(luò)的能耗.圖1是本文算法的基本原理圖,圖中的圓圈代表每個(gè)簇頭節(jié)點(diǎn)構(gòu)建的簇群規(guī)模.同時(shí)為了降低簇頭能耗,設(shè)立副簇頭作為中繼轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)簇頭加工的數(shù)據(jù),降低簇頭直接轉(zhuǎn)發(fā)給另一個(gè)簇頭的傳輸距離.圖中的黑線表示數(shù)據(jù)流量傳輸,黑線數(shù)量越多表示節(jié)點(diǎn)的流量負(fù)載越大,因此為了彌補(bǔ)簇間通信帶來(lái)的流量負(fù)載,降低臨近基站的簇頭節(jié)點(diǎn)的簇群規(guī)模以達(dá)到減少簇頭節(jié)點(diǎn)進(jìn)行數(shù)據(jù)融合產(chǎn)生的能耗.
在節(jié)點(diǎn)部署完成后,網(wǎng)絡(luò)初始化階段傳感器節(jié)點(diǎn)需要與基站進(jìn)行一次信息交互從而計(jì)算出自身與基站的距離,基站也在信息交互階段中獲得節(jié)點(diǎn)的信息.在簇頭選舉進(jìn)行之前,首先進(jìn)行數(shù)據(jù)收集階段,我們規(guī)定數(shù)據(jù)收集階段維持的時(shí)間為T1,每個(gè)節(jié)點(diǎn)在其通信范圍R內(nèi)向其鄰居節(jié)點(diǎn)發(fā)送Node_Msg消息,消息內(nèi)容包括節(jié)點(diǎn)的ID和剩余能量.我們?cè)O(shè)定ni表示i節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù),每個(gè)節(jié)點(diǎn)會(huì)計(jì)算其鄰居節(jié)點(diǎn)的平均剩余能量Eiavg:
(4)
式中Ek表示i節(jié)點(diǎn)通信范圍內(nèi)的鄰居節(jié)點(diǎn)剩余能量.節(jié)點(diǎn)在等待ti時(shí)刻后廣播Head_Msg消息,等待時(shí)間公式如下所示:
(5)
(6)
(7)
當(dāng)競(jìng)爭(zhēng)時(shí)間ti結(jié)束,節(jié)點(diǎn)會(huì)在自己競(jìng)爭(zhēng)半徑范圍后廣播Head_Msg消息,接收到Head_Msg消息的節(jié)點(diǎn)放棄簇頭競(jìng)爭(zhēng),成為簇內(nèi)普通節(jié)點(diǎn),并向簇頭節(jié)點(diǎn)發(fā)送Join_Msg消息加入該簇群.當(dāng)簇頭節(jié)點(diǎn)競(jìng)爭(zhēng)半徑范圍內(nèi)的所有節(jié)點(diǎn)向簇頭節(jié)點(diǎn)發(fā)送Join_Msg消息后,該簇頭節(jié)點(diǎn)成立的簇群構(gòu)建完畢,并向所有的成員節(jié)點(diǎn)發(fā)送TDMA時(shí)序表,給每一個(gè)成員節(jié)點(diǎn)分配發(fā)送數(shù)據(jù)的時(shí)隙.如果節(jié)點(diǎn)沒有接收到Head_Mgs消息,當(dāng)節(jié)點(diǎn)內(nèi)置的等待時(shí)間到來(lái)后,節(jié)點(diǎn)自動(dòng)成為簇頭節(jié)點(diǎn).簇頭選舉偽代碼如下所示:
ClusterheadAlgorithm:
Begin:
1. for every nodeni:
2. Broadcast the Node information
3.while(T1)
4. receive Node information
5. Compute neighborhood set N[ ]
6.endwhile
7. Compute waiting timetiforniaccording Eq(5)
8.while(T2)
9.ifti=0
10.ifnot receive Head information from set N[]
11.N[i].state=true
12.else
13.Continue
14.endif
15.else if receive Head information from set N[]
16. N[i].state=false
17.competeRcaccording Eq(8)
18.Broadcast the Head information
19.endif
20.endwhile
為了實(shí)現(xiàn)節(jié)點(diǎn)的非均勻分簇的目標(biāo),每個(gè)節(jié)點(diǎn)都設(shè)置了自己的競(jìng)爭(zhēng)半徑RC:
(8)
其中α,β,γ為從[0,1]取值的權(quán)重因子,并且滿足α+β+γ≤1,Rmax為節(jié)點(diǎn)的最大通信半徑,ni表示i節(jié)點(diǎn)的鄰居數(shù),N為最大節(jié)點(diǎn)數(shù).從該式可以看出,節(jié)點(diǎn)的競(jìng)爭(zhēng)半徑RC綜合考慮了節(jié)點(diǎn)與基站的距離,節(jié)點(diǎn)的剩余能量和節(jié)點(diǎn)的鄰居個(gè)數(shù).當(dāng)節(jié)點(diǎn)越靠近基站、剩余能量越低和節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)越多時(shí),節(jié)點(diǎn)的通信半徑約小,此時(shí)簇頭節(jié)點(diǎn)的成簇群規(guī)模就越小,降低了簇群節(jié)點(diǎn)的密度,實(shí)現(xiàn)了網(wǎng)絡(luò)的非均勻分簇,平衡了由簇間通信帶來(lái)的數(shù)據(jù)流量能耗.
為了盡可能的減少簇頭節(jié)點(diǎn)的能耗,我們建立副簇頭節(jié)點(diǎn)作為數(shù)據(jù)中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)簇頭節(jié)點(diǎn)的數(shù)據(jù)給前向簇群的簇頭節(jié)點(diǎn).通過(guò)減少簇頭節(jié)點(diǎn)與其他簇頭節(jié)點(diǎn)的傳輸距離進(jìn)而降低簇頭節(jié)點(diǎn)能耗.每個(gè)節(jié)點(diǎn)計(jì)算自己的副簇頭選舉函數(shù)值Pah:
(9)
需要注意的是,為了盡可能的減少副簇頭的能耗,我們默認(rèn)副簇頭相比主簇頭更加靠近基站.α,β為調(diào)節(jié)因子,當(dāng)節(jié)點(diǎn)計(jì)算出Pah后,通過(guò)一次握手交換彼此的函數(shù)值,Pah最小的節(jié)點(diǎn)當(dāng)選副簇頭節(jié)點(diǎn),并向簇頭節(jié)點(diǎn)發(fā)送信息,承擔(dān)轉(zhuǎn)發(fā)由主簇頭加工過(guò)的數(shù)據(jù).
當(dāng)簇群構(gòu)建完成后,由于基站位于網(wǎng)絡(luò)區(qū)域外部,若網(wǎng)絡(luò)拓?fù)洳蛔?,隨著網(wǎng)絡(luò)的運(yùn)行,會(huì)導(dǎo)致臨近基站的簇頭節(jié)點(diǎn)和距離基站較遠(yuǎn)的簇頭節(jié)點(diǎn)之間能量消耗不平衡,但是如果每輪都進(jìn)行簇頭選舉與簇群構(gòu)建,又會(huì)產(chǎn)生大量的控制消息能耗,縮短整個(gè)網(wǎng)絡(luò)的壽命.因此本文算法設(shè)置新的能量閾值作為網(wǎng)絡(luò)是否重新分簇的標(biāo)準(zhǔn).我們引用文獻(xiàn)[10]提出的節(jié)點(diǎn)單跳門限距離DIST,即當(dāng)中繼轉(zhuǎn)發(fā)的副簇頭節(jié)點(diǎn)與基站的距離小于DIST時(shí),該節(jié)點(diǎn)可直接發(fā)送數(shù)據(jù)到基站,否則副簇頭節(jié)點(diǎn)需要尋找下一跳的中繼簇頭節(jié)點(diǎn).
分簇的依據(jù)是計(jì)算與基站的距離小于DIST的所有簇頭成立簇群的平均剩余能量和其他簇頭節(jié)點(diǎn)成立簇群的平均剩余能量的比值RE(r):
(10)
式中的N為所有距離小于DIST的節(jié)點(diǎn)集合,n和m分別是各個(gè)簇群規(guī)模內(nèi)節(jié)點(diǎn)的數(shù)量.RE(r)越小說(shuō)明臨近基站的簇頭節(jié)點(diǎn)承載較大的數(shù)據(jù)流量負(fù)載,臨近基站的簇群平均能耗要大于距離基站較遠(yuǎn)的簇群平均能耗.為了避免距離基站較近的簇頭節(jié)點(diǎn)過(guò)早死亡,同時(shí)為了平衡遠(yuǎn)、近區(qū)域的簇群的能耗,此時(shí)需要重新選舉更優(yōu)的簇頭節(jié)點(diǎn)并成立新的簇群來(lái)平衡網(wǎng)絡(luò)的能耗.相比IDUC協(xié)議的每輪都進(jìn)行重新分簇的情況,本文算法減少了分簇的次數(shù)和分簇帶來(lái)的控制消息能耗,同時(shí)又防止了簇頭節(jié)點(diǎn)因?yàn)樨?fù)載過(guò)重而過(guò)早死亡的情況.當(dāng)簇頭選舉階段完成,簇群建立完成后,簇頭選舉階段結(jié)束,網(wǎng)絡(luò)進(jìn)入數(shù)據(jù)傳輸階段.
數(shù)據(jù)傳輸階段分為兩步.第一步是簇群簇內(nèi)通信階段,即簇群內(nèi)的普通節(jié)點(diǎn)將采集到的數(shù)據(jù)直接傳輸給簇頭節(jié)點(diǎn);第二步是簇頭節(jié)點(diǎn)之間的簇間通信階段,采用單跳和多跳混合通信模式.無(wú)線傳感器網(wǎng)絡(luò)非均勻分簇路由協(xié)議規(guī)定距離基站較遠(yuǎn)的簇頭節(jié)點(diǎn)無(wú)法直接和基站進(jìn)行通信,必須尋找中繼轉(zhuǎn)發(fā)節(jié)點(diǎn)來(lái)轉(zhuǎn)發(fā)數(shù)據(jù).為了延長(zhǎng)節(jié)點(diǎn)壽命,中繼轉(zhuǎn)發(fā)的節(jié)點(diǎn)應(yīng)該具備高剩余能量,小簇群規(guī)模和臨近目的節(jié)點(diǎn)等特點(diǎn),因此本文通過(guò)權(quán)值比較來(lái)選擇中繼轉(zhuǎn)發(fā)節(jié)點(diǎn),同時(shí)考慮到簇首之間的距離、簇首剩余能量和簇首的簇群規(guī)模大小等因素來(lái)確定中繼權(quán)值wij:
(11)
結(jié)論1.假設(shè)網(wǎng)絡(luò)共部署了N個(gè)傳感器節(jié)點(diǎn),其中產(chǎn)生了K個(gè)簇頭節(jié)點(diǎn)和K個(gè)副簇頭節(jié)點(diǎn),則網(wǎng)絡(luò)中的消息量復(fù)雜度為O(N),時(shí)間復(fù)雜度為O(1).
證明:UCNE算法初始階段所有傳感器節(jié)點(diǎn)廣播節(jié)點(diǎn)消息,共廣播了N條Node_Msg消息.在分簇階段,普通節(jié)點(diǎn)向簇頭節(jié)點(diǎn)發(fā)送Join_Msg消息,簇頭節(jié)點(diǎn)發(fā)送Head_Msg和Schedule_Msg,副簇頭發(fā)送Route_Msg消息.假設(shè)網(wǎng)絡(luò)共產(chǎn)生K個(gè)簇頭節(jié)點(diǎn)和K個(gè)副簇頭節(jié)點(diǎn),則普通節(jié)點(diǎn)數(shù)量為N-K,整個(gè)網(wǎng)絡(luò)的消息數(shù)為N+(N-K)+K+K+K=2N+2K,因此,網(wǎng)絡(luò)的控制信息的消息復(fù)雜度為O(N).
由于UCNE算法采用分布式聚類方法,因而整個(gè)網(wǎng)絡(luò)的時(shí)間復(fù)雜度等于單個(gè)節(jié)點(diǎn)O(1)的時(shí)間復(fù)雜度.換句話說(shuō),時(shí)間復(fù)雜性是一個(gè)常數(shù),與網(wǎng)絡(luò)大小無(wú)關(guān).
結(jié)論2.UCNE算法生成的簇頭可以覆蓋整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn).
證明:根據(jù)公式(5),每個(gè)節(jié)點(diǎn)計(jì)算自己的等待時(shí)間ti,并且無(wú)論Ei>Eiavg還是Ei≤Eiavg,節(jié)點(diǎn)的等待時(shí)間ti 采用OMNET++4.6仿真軟件對(duì)本文算法、EEUC、EADUC、ECDC和IDUC算法針對(duì)網(wǎng)絡(luò)能耗與生命周期等性能指標(biāo)進(jìn)行比較模擬仿真.實(shí)驗(yàn)共設(shè)置100個(gè)傳感器節(jié)點(diǎn),實(shí) 圖2 網(wǎng)絡(luò)節(jié)點(diǎn)分布示意圖Fig.2 Network node distribution diagram 驗(yàn)待測(cè)區(qū)域?yàn)?00m*200m的正方形區(qū)域,基站位于節(jié)點(diǎn)分布區(qū)域之外,網(wǎng)絡(luò)節(jié)點(diǎn)分布如圖2所示,實(shí)驗(yàn)采用的相關(guān)參數(shù)如表1所示. 表1 網(wǎng)絡(luò)參數(shù) 參數(shù)名 數(shù) 值 節(jié)點(diǎn)數(shù)量100基站坐標(biāo)(250m,100m)起始能量0.5J數(shù)據(jù)包大小4000bitEelec50nJ/bitεfs10pJ/(bit·m2)εmp0.0013pJ/(bit·m4)α,β,γ0.3,0.3,0.4DIST70m 傳感器節(jié)點(diǎn)在工作狀態(tài)下其能量隨著輪數(shù)的增加而減少,若節(jié)點(diǎn)能量為零,則認(rèn)為該節(jié)點(diǎn)已經(jīng)死亡,無(wú)法正常工作.本文同時(shí)與EEUC協(xié)議、EADUC協(xié)議、ECDC協(xié)議和IDUC協(xié)議進(jìn)行了對(duì)比,記錄了存活節(jié)點(diǎn)與運(yùn)行輪數(shù)的關(guān)系,協(xié)議存活節(jié)點(diǎn)對(duì)比如圖3所示.從圖3可以看出,本文算法在簇頭選舉階段考慮到了節(jié)點(diǎn)的歷史能耗因子和綜合距離因子,同時(shí)設(shè)置副簇頭充當(dāng)中繼轉(zhuǎn)發(fā)節(jié)點(diǎn)減少簇頭節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的傳輸距離,設(shè)置了新的能量閾值RE(r)作為重新分簇的標(biāo)準(zhǔn),減少了每輪成簇時(shí)不必要的控制消息產(chǎn)生的能耗,相比于EEUC、EADUC、ECDC和IDUC協(xié)議,本文算法網(wǎng)絡(luò)壽命更長(zhǎng),能耗更加均衡.從表2可以看出,EEUC協(xié)議首個(gè)節(jié)點(diǎn)死亡出現(xiàn)在第328輪,EADUC出現(xiàn)在第405輪,ECDC出現(xiàn)在第428輪,IDUC出現(xiàn)在第631輪,UCNH算法首個(gè)死亡節(jié)點(diǎn)出現(xiàn)在第792輪,相比IDUC協(xié)議,本文算法在節(jié)點(diǎn)生命周期上提升了114%. 圖3 網(wǎng)絡(luò)節(jié)點(diǎn)存活數(shù)量統(tǒng)計(jì)圖Fig.3 Network node survival number statistics 表2 協(xié)議死亡時(shí)間對(duì)比 協(xié)議FNDMNDEEUC328605EADUC405718ECDC428765IDUC631874UCNH792977 為了防止偶然性,實(shí)驗(yàn)共進(jìn)行了10次,分別記錄了5個(gè)協(xié)議的生命周期,如圖4所示,可以看出UCNH協(xié)議網(wǎng)絡(luò)平均周期維持在970輪左右,其余4個(gè)協(xié)議的網(wǎng)絡(luò)周期也相對(duì)穩(wěn)定. 圖4 實(shí)驗(yàn)次數(shù)與生命周期統(tǒng)計(jì)Fig.4 Number of experiments and life cycle statistics 本文采用能量閾值RE(r)作為網(wǎng)絡(luò)重新分簇的依據(jù),目的是平衡各個(gè)簇群之間的能耗,降低頻繁換簇帶來(lái)的不必要的控制能耗.RE(r)取值結(jié)果如圖5所示,橫坐標(biāo)為RE(r)的取值,縱坐標(biāo)為網(wǎng)絡(luò)壽命.由圖5可以看出RE(r)取值為0.7時(shí),網(wǎng)絡(luò)的能耗最為均衡,網(wǎng)絡(luò)壽命最大,因此我們?cè)O(shè)定RE(r)的門限值0.7.當(dāng)RE(r)低于0.7時(shí),說(shuō)明距離基站較近的簇群和距離基站較遠(yuǎn)的簇群消耗的能量不平衡,此時(shí)需要重新?lián)Q簇,重新選取性能參數(shù)更好的節(jié)點(diǎn)當(dāng)選簇頭節(jié)點(diǎn)并成立新的簇群. 為了檢驗(yàn)加入RE(r)后對(duì)網(wǎng)絡(luò)能耗的優(yōu)化程度,本文實(shí)驗(yàn)對(duì)比了每輪都進(jìn)行分簇的網(wǎng)絡(luò)整體能耗數(shù)據(jù)和加入RE(r)重新分簇依據(jù)后的網(wǎng)絡(luò)整體能耗數(shù)據(jù),網(wǎng)絡(luò)能耗對(duì)比如圖6所示.從數(shù)據(jù)中對(duì)比中可分析出網(wǎng)絡(luò)每輪都進(jìn)行分簇產(chǎn)生的大量控制消息能耗極大地浪費(fèi)了節(jié)點(diǎn)的能量,縮短了網(wǎng)絡(luò)壽命. 圖5 RE與網(wǎng)絡(luò)壽命的關(guān)系Fig.5 Relationship between RE and network life 圖6 網(wǎng)絡(luò)能耗對(duì)比Fig.6 Network energy consumption comparison 為了緩解由于非均勻成簇帶來(lái)的能耗不均衡問(wèn)題,本文在EEUC、EADUC、ECDC、IDUC協(xié)議的基礎(chǔ)之上提出了結(jié)合歷史能耗因子和綜合距離因子的新型非均勻成簇路由協(xié)議.該協(xié)議首先在簇頭選舉階段引入歷史能耗因子和綜合距離因子,優(yōu)先選舉綜合能耗較小的節(jié)點(diǎn)當(dāng)選簇頭,選舉副簇頭節(jié)點(diǎn)作為中繼轉(zhuǎn)發(fā)節(jié)點(diǎn)平衡主簇頭節(jié)點(diǎn)的能耗負(fù)擔(dān),同時(shí)引入了能量閾值RE(r)作為是否重新分簇的依據(jù),減少了每輪都要分簇帶來(lái)的不必要的控制消息能耗.最后在簇間通信階段,中繼轉(zhuǎn)發(fā)節(jié)點(diǎn)由權(quán)值選擇,綜合考慮到簇頭的能量、節(jié)點(diǎn)之間的距離和簇群規(guī)模,以選擇出最優(yōu)的中繼節(jié)點(diǎn).實(shí)驗(yàn)表明,UCNE算法在延長(zhǎng)網(wǎng)絡(luò)壽命,均衡網(wǎng)絡(luò)的負(fù)載上性能更優(yōu).5.2 實(shí)驗(yàn)仿真
Table 1 Network parameters
Table 2 Agreement death time comparison6 結(jié)束語(yǔ)