基于區(qū)域劃分的傳感網(wǎng)節(jié)能離取改進方法
【專利摘要】基于區(qū)域劃分的傳感網(wǎng)節(jié)能離取改進算法,主要用于解決無線傳感器網(wǎng)絡(luò)能量有限的問題。通過使用本發(fā)明所提出的方法可以提高無線傳感器網(wǎng)絡(luò)的能量利用率,延長網(wǎng)絡(luò)的生存周期,同時還可以改善離取算法簇頭節(jié)點分布不均勻的缺陷。本發(fā)明是在原有的離取算法的基礎(chǔ)上,實現(xiàn)網(wǎng)絡(luò)能量高效利用、改善離取算法缺陷的算法。本算法在無線傳感器網(wǎng)絡(luò)能量有限的情況下,減少了數(shù)據(jù)在數(shù)據(jù)融合和數(shù)據(jù)傳輸?shù)入A段的能量消耗,同時優(yōu)化了簇頭節(jié)點在網(wǎng)絡(luò)中的布局,進一步提高了能量的利用率,延長了網(wǎng)絡(luò)的生存時間。本發(fā)明在保證數(shù)據(jù)采集和數(shù)據(jù)傳輸都能正確有效實現(xiàn)的情況下,優(yōu)化了無線傳感器網(wǎng)絡(luò)的結(jié)構(gòu),實現(xiàn)了網(wǎng)絡(luò)中能量的合理高效的利用。
【專利說明】基于區(qū)域劃分的傳感網(wǎng)節(jié)能離取改進方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是一種基于區(qū)域劃分的傳感網(wǎng)節(jié)能離取(LEACH(Low Energy AdaptiveClustering Hierarchy),中譯名為“離取”)改進方法,主要用于解決無線傳感器網(wǎng)絡(luò)能量利用率低、離取算法簇頭分布不均勻和延長網(wǎng)絡(luò)生存周期的問題,屬于無線傳感器網(wǎng)絡(luò)研究領(lǐng)域。
【背景技術(shù)】
[0002]無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量價格低廉的具有數(shù)據(jù)采集感知能力和計算能力的傳感器節(jié)點通過自組織所形成網(wǎng)絡(luò)通信系統(tǒng),在網(wǎng)絡(luò)的覆蓋區(qū)域內(nèi)可以完成對復雜事件的監(jiān)測任務(wù)。隨著無線通信及微電子技術(shù)的快速發(fā)展,無線傳感器網(wǎng)絡(luò)在工業(yè)、農(nóng)業(yè)、軍事等傳統(tǒng)領(lǐng)域和以智能家居、醫(yī)療保健、城市交通為代表的新興領(lǐng)域展現(xiàn)出廣泛的應用前景。對于無線傳感器網(wǎng)絡(luò)而言,拓撲控制是無線傳感器網(wǎng)絡(luò)研究的核心技術(shù)之一,它可以自動生成良好的網(wǎng)絡(luò)拓撲結(jié)構(gòu),能夠提高路由協(xié)議和MAC (Mu 11 ip I eAccess Control,MAC)協(xié)議的效率,可為數(shù)據(jù)融合、時間同步和目標定位等很多方面奠定基礎(chǔ),有利于節(jié)省節(jié)點的能量,從而延長網(wǎng)絡(luò)的生命周期。拓撲控制可分為節(jié)點功率控制和層次型拓撲組織兩個方面。功率控制機制調(diào)節(jié)網(wǎng)絡(luò)中每個節(jié)點的發(fā)射功率,在滿足網(wǎng)絡(luò)連通度的前提下,減少節(jié)點的發(fā)射功率,均衡節(jié)點單跳可達的鄰居數(shù)目。層次型拓撲組織利用分簇機制,讓一些節(jié)點作為簇首節(jié)點,由簇首節(jié)點形成一個處理并轉(zhuǎn)發(fā)數(shù)據(jù)的骨干網(wǎng),其他非骨干網(wǎng)節(jié)點可以暫時關(guān)閉通信模塊,進入休眠狀態(tài)以節(jié)省能量。離取算法作為最具代表性的層次型拓撲組織分簇算法,其后出現(xiàn)的大部分層次型拓撲組織算法都是在其基礎(chǔ)上發(fā)展而來的,所以對其進行研究和改進具有特別重要的意義。離取算法是一種低功耗自適應分簇算法,其基本思想是通過等概率地隨機循環(huán)選擇簇頭,將整個網(wǎng)絡(luò)的能量負載平均分配到每個傳感器節(jié)點,從而達到降低網(wǎng)絡(luò)整體能耗、延長網(wǎng)絡(luò)生存周期的目的。該算法將整個網(wǎng)絡(luò)劃分成若干個簇,每個簇由I個簇頭節(jié)點和若干成員節(jié)點(簇內(nèi)節(jié)點)組成,如圖1所示。離取算法節(jié)約能量的主要原因在于它運用了數(shù)據(jù)壓縮技術(shù)和動態(tài)分簇路由技術(shù),通過本地的聯(lián)合工作來提高網(wǎng)絡(luò)的可擴展性和魯棒性,通過數(shù)據(jù)融合來減少發(fā)送的數(shù)據(jù)量,通過把節(jié)點隨機的設(shè)置成簇頭節(jié)點來達到在網(wǎng)絡(luò)內(nèi)部負載均衡的目的,防止簇頭節(jié)點能量的過快消耗,延長網(wǎng)絡(luò)的生存周期。
[0003]離取算法的執(zhí)行過程是周期性的,每輪循環(huán)分為簇的建立階段和穩(wěn)定的數(shù)據(jù)通信階段。在簇的建立階段,相鄰節(jié)點動態(tài)地形成簇,隨機產(chǎn)生簇頭,成為簇頭的節(jié)點向周圍節(jié)點發(fā)送廣播消息,其他節(jié)點根據(jù)接收到的廣播消息的強度來選擇它所要加入的簇,并告知相應的簇頭。在穩(wěn)定的數(shù)據(jù)傳輸階段,簇內(nèi)節(jié)點把數(shù)據(jù)發(fā)送給簇頭,簇頭進行數(shù)據(jù)融合并把結(jié)果發(fā)送給匯聚節(jié)點。簇頭工作任務(wù)比較繁重,需要完成數(shù)據(jù)融合,還要與匯聚節(jié)點通信,所以能量消耗較大。離取算法選舉出的簇頭分布不均勻,且簇頭節(jié)點和簇內(nèi)節(jié)點相比能量消耗較大,降低了網(wǎng)絡(luò)的生命周期。
[0004]發(fā)明目的[0005]技術(shù)問題:本發(fā)明的目的是提出一種基于區(qū)域劃分的節(jié)能離取改進算法,來降低網(wǎng)絡(luò)整體的能量消耗,實現(xiàn)網(wǎng)絡(luò)內(nèi)節(jié)點的負載均衡,延長網(wǎng)絡(luò)的生存周期。同時,改進的離取算法可以使簇頭節(jié)點均勻地分布在整個網(wǎng)絡(luò)中,保證了網(wǎng)絡(luò)的覆蓋范圍和生存時間。
[0006]技術(shù)方案:本發(fā)明提出的是一種策略方法,分簇算法的選擇和應用直接影響整個網(wǎng)絡(luò)的能量消耗和網(wǎng)絡(luò)生存周期。主要用于解決離取算法能量利用率低、簇頭分布不均勻和延長網(wǎng)絡(luò)生存周期的問題。改進的離取算法將整個區(qū)域劃分成多個區(qū)域,采用靜態(tài)的分簇方式,利用多跳向基站BS(Base Station,BS)發(fā)送數(shù)據(jù),以節(jié)省簇頭節(jié)點能量的消耗提高節(jié)點能量有效性。具體包含步驟如下:
[0007]步驟I)設(shè)基站BS在整個傳感區(qū)域之外,并且位于距離整個傳感區(qū)域較遠的位置,傳感器節(jié)點將自己的地理位置信息發(fā)送給BS,BS收到傳感區(qū)域內(nèi)各個傳感器節(jié)點發(fā)來的位置信息后,根據(jù)這些信息計算出區(qū)域中距離自己最近節(jié)點的距離mind和距離自己最遠節(jié)點的距離maxd ;設(shè)BS將整個區(qū)域劃分為2*k+l個部分,其中k>0且為整數(shù),則將maxd-mind分為2*k+l段,每一段的距離為d= (maxd-mind) / (2*k+l),然后以BS為圓心,以minr+d*n為半徑畫圓,其中η>=1且n〈=k,被圈在同一圓內(nèi)的傳感器節(jié)點就屬于同一部分區(qū)域;設(shè)k=l,則將整個區(qū)域可以劃分為三個部分區(qū)域,以mind+d為半徑畫圓,被圓圈起來的區(qū)域作為一級簇域GID=I,然后以mind+2*d為半徑再畫圓,被圈起來的部分減去一級簇域的部分,剩下的那部分作為二級簇域GID=2,最后以mind+3*d為半徑再畫圓,被圈起來的部分減去二級簇域的部分,剩下的部分區(qū)域作為三級簇域GID=3,
[0008]步驟2)如果傳感區(qū)域內(nèi)所有傳感器節(jié)點初始能量均相等,需要將選舉簇頭的門限值Thresh設(shè)置為各個區(qū)域預先設(shè)置好的成為簇頭的概率值;在二級簇域中成為簇首的概率為P,所以該區(qū)域選舉成為簇首的門限值Thresh就設(shè)置為P;節(jié)點產(chǎn)生一個O至I之間的隨機數(shù),如果這個數(shù)小于P,則該節(jié)點就被選為簇頭;如果節(jié)點初始能量不相等,那么需要將簇頭選舉和節(jié)點能量聯(lián)系起來,能量相對多的節(jié)點成為簇首的概率應該更大;在二級簇域中,應用幾何關(guān)系,可以得出該簇域內(nèi)節(jié)點的數(shù)量,假設(shè)該二級簇域內(nèi)有η個節(jié)點,那么該Thresh值就應該設(shè)置為E (i) /E (total) *nP,其中E (i)為節(jié)點i當前的能量值,E (total)為簇域內(nèi)所有節(jié)點能量的總和,這種情況下成為簇首的概率為P,該簇域內(nèi)簇頭個數(shù)的期望值為nP ;同樣地,節(jié)點產(chǎn)生一個O至I之間的隨機數(shù),如果這個數(shù)小于門限值Thresh,即為E (i)/E (total) *nP,則該節(jié)點就被選為簇頭;簇頭選舉出來之后,將簇頭的ID記錄到自己簇域的全局變量region_center_list中,最終得到的region_center_list就是該簇域內(nèi)所有簇頭節(jié)點ID的列表;
[0009]步驟3)當簇頭節(jié)點全部選舉出來之后,簇頭節(jié)點發(fā)布通告消息告知其他節(jié)點自己是新的簇頭;同區(qū)域內(nèi)的非簇頭節(jié)點接收到該消息后,根據(jù)自己與簇頭節(jié)點之間的距離來選擇加入哪個簇,當同區(qū)域內(nèi)的非簇頭節(jié)點選定自己要加入的簇后,向該簇的簇頭節(jié)點發(fā)送加入該簇的消息,然后簇頭節(jié)點需要根據(jù)簇內(nèi)節(jié)點的數(shù)目建立TDMA調(diào)度,并將該調(diào)度發(fā)送給各個簇內(nèi)節(jié)點,當簇內(nèi)節(jié)點向簇頭節(jié)點發(fā)送數(shù)據(jù)時,就必須要按照該時間調(diào)度進行數(shù)據(jù)發(fā)送,以避免數(shù)據(jù)發(fā)送時產(chǎn)生沖突;
[0010]步驟4)組建簇頭多跳路徑,使簇頭融合數(shù)據(jù)之后將數(shù)據(jù)以多跳方式發(fā)送給BS,減少了數(shù)據(jù)傳輸時的能量消耗;在簇頭節(jié)點選舉的時候,已經(jīng)將選為簇頭節(jié)點的節(jié)點ID記錄到了 region_center_list列表中,通過簇域的region_center_list列表可以得到下一跳簇域內(nèi)所有節(jié)點的ID列表,該列表就相當于下一跳的候選列表;利用隨機自治的方式來確定簇頭節(jié)點的多跳路徑,簇頭節(jié)點只需從這些候選節(jié)點中隨機選出一個節(jié)點作為自己的下一跳節(jié)點,這樣就建立了各個簇頭節(jié)點的多跳路徑;
[0011]步驟5)由于簇頭節(jié)點擔負的任務(wù)比非簇頭節(jié)點重,所以消耗的能量多,這樣就容易導致簇頭節(jié)點能量耗盡而死亡;為了保持網(wǎng)絡(luò)內(nèi)節(jié)點能量均衡分布,采用輪換簇頭節(jié)點的方法;采用靜態(tài)分簇的方法,由于在首輪循環(huán)中已經(jīng)進行了簇的劃分,所以以后每輪循環(huán)階段不再重新劃分簇,只需要更新簇頭節(jié)點;除了首輪循環(huán)之外,在以后的循環(huán)過程中,現(xiàn)任簇頭節(jié)點根據(jù)簇內(nèi)節(jié)點的剩余能量來進行新的簇頭節(jié)點的選定,選定新的簇頭節(jié)點之后現(xiàn)任簇頭節(jié)點向所有簇內(nèi)節(jié)點發(fā)布廣播消息,通知所有簇內(nèi)節(jié)點當前新的簇頭節(jié)點的ID,同時,現(xiàn)任簇頭節(jié)點需將自己設(shè)置為非簇頭節(jié)點,并將自己當前的簇頭節(jié)點設(shè)置為新簇頭節(jié)點的ID ;簇內(nèi)節(jié)點接收到現(xiàn)任簇頭節(jié)點發(fā)來的廣播消息后,將廣播消息中的新簇頭節(jié)點的節(jié)點ID值與自己的ID進行比較,如果相等,則說明自己在下一輪中將以簇頭的身份存在,如果不相等,則將自己的當前簇頭節(jié)點的ID設(shè)置為收到的廣播消息中的ID ;當前簇頭節(jié)點的另外一個任務(wù)是重新建立簇內(nèi)節(jié)點發(fā)送數(shù)據(jù)的時隙表,即TDMA調(diào)度表,并將其廣播給簇內(nèi)節(jié)點,簇內(nèi)成員節(jié)點接收到該消息后,計算自己發(fā)送數(shù)據(jù)的時間,在輪到自己發(fā)送數(shù)據(jù)的時候便發(fā)送數(shù)據(jù),否則進入睡眠狀態(tài)以節(jié)省能量;
[0012]步驟6)由于新的一輪循環(huán)中對簇頭節(jié)點進行了更新操作,該簇域內(nèi)相應的region_center_list列表也會隨之發(fā)生更新,在重新確立了簇頭節(jié)點之后,新的簇頭節(jié)點利用隨機自治的方法,從更新后的region_center_list列表中隨機選擇出一個簇頭節(jié)點作為自己的下一跳節(jié)點,從而建立起新的簇頭多跳路徑,為實現(xiàn)數(shù)據(jù)的多跳傳輸提供條件;
[0013]步驟7)數(shù)據(jù)多跳傳輸主要分為兩個過程,一是簇內(nèi)節(jié)點與簇頭節(jié)點之間的數(shù)據(jù)通信,二是簇頭多跳路徑中簇頭之間的數(shù)據(jù)通信,以及最后和BS之間的數(shù)據(jù)通信;在第一個過程中,簇內(nèi)節(jié)點在指定時隙內(nèi)將采集到的數(shù)據(jù)發(fā)送給簇頭節(jié)點,在處于其他時隙時,簇內(nèi)節(jié)點就處于休眠狀態(tài),并關(guān)閉無線電模塊,當再次輪到自己發(fā)送數(shù)據(jù)時再開啟無線電模塊向簇頭節(jié)點發(fā)送數(shù)據(jù);簇內(nèi)節(jié)點兩次向簇頭節(jié)點發(fā)送數(shù)據(jù)之間的時間間隔Stime=簇內(nèi)節(jié)點個數(shù)*節(jié)點發(fā)送數(shù)據(jù)所需時間;在第二個過程中,簇頭節(jié)點接收到所有簇內(nèi)節(jié)點的數(shù)據(jù)之后,對數(shù)據(jù)進行融合,然后將融合后的數(shù)據(jù)發(fā)送給自己的下一跳節(jié)點,下一跳節(jié)點收到來自上一跳的數(shù)據(jù)之后,便將自己收到的簇內(nèi)節(jié)點發(fā)來的數(shù)據(jù)與上一跳發(fā)來的數(shù)據(jù)融合,數(shù)據(jù)融合完成之后再發(fā)給自己的下一跳節(jié)點,以此類推直至下一跳節(jié)點為基站BS,最后將融合得到的數(shù)據(jù)發(fā)送給BS,完成數(shù)據(jù)的傳輸。
[0014]有益效果:本發(fā)明方法提出了一種基于區(qū)域劃分的節(jié)能離取改進算法,主要用于解決無線傳感器網(wǎng)絡(luò)能量利用率低、離取算法簇頭分布不均勻和延長網(wǎng)絡(luò)生存周期的問題,通過使用本發(fā)明提出的方法可以減少網(wǎng)絡(luò)整體的能量消耗,實現(xiàn)網(wǎng)絡(luò)內(nèi)節(jié)點負載均衡,使簇頭均勻地分布在網(wǎng)絡(luò)中,延長了網(wǎng)絡(luò)的生存周期,實現(xiàn)了能量的高效利用。下面給出具體說明:
[0015]離取算法能夠保證各個節(jié)點等概率地擔任簇頭,使得網(wǎng)絡(luò)中的節(jié)點相對平衡地消耗能量。本發(fā)明所提出的算法是對離取算法進行進一步的研究和改進后得到的,和離取算法相比,能量有效性得到了進一步的提高,簇頭節(jié)點也分布的更為均勻。本發(fā)明采用的是靜態(tài)分簇的方式只在首輪循環(huán)的時候進行分簇,以后的循環(huán)中僅僅需要更新簇頭,不需要再重新分簇,比離取算法節(jié)省一部分額外開銷,提高了網(wǎng)絡(luò)能量利用率,為延長網(wǎng)絡(luò)的生命周期做出了一定的貢獻。同時,本發(fā)明利用多跳實現(xiàn)數(shù)據(jù)的穩(wěn)定傳輸,如果在多跳路徑上,當前簇頭沒有上一跳節(jié)點時,該簇頭收齊了簇內(nèi)所有成員的數(shù)據(jù)后就開始融合數(shù)據(jù)這一點與離取相同,但接下來簇頭并不是直接將融合后的數(shù)據(jù)發(fā)送給BS,而是將其發(fā)送給已經(jīng)選定的下一跳節(jié)點。另外,如果存在上一跳,需要等待上一跳節(jié)點發(fā)來數(shù)據(jù)后才能開始融合數(shù)據(jù),然后繼續(xù)將融合后的數(shù)據(jù)發(fā)送給自己的下一跳節(jié)點,如圖4所示。這種數(shù)據(jù)的多跳傳輸在一定程度上節(jié)省了網(wǎng)絡(luò)的能量。
【專利附圖】
【附圖說明】
[0016]圖1是離取算法分簇示意圖,白色點為簇內(nèi)節(jié)點,黑色點為簇頭節(jié)點,
[0017]圖2是區(qū)域劃分示意圖,基站BS的坐標為(50,175),
[0018]圖3是各簇域內(nèi)成為簇首的概率計算方法示意圖,
[0019]圖4是簇頭多跳路徑示意圖。
【具體實施方式】
[0020]本發(fā)明是一種基于區(qū)域劃分的節(jié)能離取改進算法,主要通過傳感區(qū)域劃分、靜態(tài)分簇和數(shù)據(jù)多跳傳輸?shù)姆椒▉硖岣呔W(wǎng)絡(luò)能量的利用率,實現(xiàn)簇頭節(jié)點在網(wǎng)絡(luò)中的均勻分布,延長網(wǎng)絡(luò)的生存周期。
[0021]步驟I)假設(shè)基站BS在整個傳感區(qū)域之外,并且位于距離整個傳感區(qū)域較遠的位置。傳感器節(jié)點將自己的地理位置信息發(fā)送給BS,BS收到傳感區(qū)域內(nèi)各個傳感器節(jié)點發(fā)來的位置信息后,根據(jù)這些信息計算出區(qū)域中距離自己最近節(jié)點的距離mind和距離自己最遠節(jié)點的距離maxd。假設(shè)BS將整個區(qū)域劃分為2*k+l個部分,其中k>0且為整數(shù),則將maxd-mind分為2*k+l段,每一段的距離為d= (maxd-mind) / (2*k+l)。然后以BS為圓心,以minr+d*n為半徑畫圓,其中η>=1且n〈=k,被圈在同一圓內(nèi)的傳感器節(jié)點就屬于同一部分區(qū)域。假設(shè)k=l,則將整個區(qū)域可以劃分為三個部分區(qū)域,以mind+d為半徑畫圓,被圓圈起來的區(qū)域作為一級簇域(GID=I),然后以mind+2*d為半徑再畫圓,被圈起來的部分減去一級簇域的部分,剩下的那部分作為二級簇域(GID=2),最后以mind+3*d為半徑再畫圓,被圈起來的部分減去二級簇域的部分,剩下的部分區(qū)域作為三級簇域(GID=3),如圖2所示。
[0022]步驟2)改進的離取算法簇頭選舉方法與離取算法基本相同。如果傳感區(qū)域內(nèi)所有傳感器節(jié)點初始能量均相等,需要將選舉簇頭的門限值Thresh設(shè)置為各個區(qū)域預先設(shè)置好的成為簇頭的概率值,如圖3所示。以二級簇域為例,假設(shè)在二級簇域中成為簇首的概率為P,所以該區(qū)域選舉成為簇首的門限值Thresh就設(shè)置為P。節(jié)點產(chǎn)生一個O至I之間的隨機數(shù),如果這個數(shù)小于P,則該節(jié)點就被選為簇頭。如果節(jié)點初始能量不相等,那么需要將簇頭選舉和節(jié)點能量聯(lián)系起來,能量相對多的節(jié)點成為簇首的概率應該更大。以二級簇域為例,應用幾何關(guān)系,可以得出該簇域內(nèi)節(jié)點的數(shù)量,假設(shè)該二級簇域內(nèi)有η個節(jié)點,那么該Thresh值就應該設(shè)置為E (i) /E (total) *nP,其中E (i)為節(jié)點i當前的能量值,E (total)為簇域內(nèi)所有節(jié)點能量的總和,這種情況下成為簇首的概率為P,該簇域內(nèi)簇頭個數(shù)的期望值為nP。同樣地,節(jié)點產(chǎn)生一個O至I之間的隨機數(shù),如果這個數(shù)小于門限值Thresh,即為E(i)/E(total)*nP,則該節(jié)點就被選為簇頭。簇頭選舉出來之后,將簇頭的ID記錄到自己簇域的全局變量region_center_list中,最終得到的region_center_list就是該簇域內(nèi)所有簇頭節(jié)點ID的列表。
[0023]步驟3)當簇頭節(jié)點全部選舉出來之后,簇頭節(jié)點發(fā)布通告消息告知其他節(jié)點自己是新的簇頭。同區(qū)域內(nèi)的非簇頭節(jié)點接收到該消息后,根據(jù)自己與簇頭節(jié)點之間的距離來選擇加入哪個簇。當同區(qū)域內(nèi)的非簇頭節(jié)點選定自己要加入的簇后,向該簇的簇頭節(jié)點發(fā)送加入該簇的消息,然后簇頭節(jié)點需要根據(jù)簇內(nèi)節(jié)點的數(shù)目建立TDMA調(diào)度,并將該調(diào)度發(fā)送給各個簇內(nèi)節(jié)點。當簇內(nèi)節(jié)點向簇頭節(jié)點發(fā)送數(shù)據(jù)時,就必須要按照該時間調(diào)度進行數(shù)據(jù)發(fā)送,以避免數(shù)據(jù)發(fā)送時產(chǎn)生沖突。
[0024]步驟4)組建簇頭多跳路徑的主要目的是使簇頭融合數(shù)據(jù)之后將數(shù)據(jù)以多跳方式發(fā)送給BS,減少了數(shù)據(jù)傳輸時的能量消耗。在簇頭節(jié)點選舉的時候,已經(jīng)將選為簇頭節(jié)點的節(jié)點ID記錄到了 region_center_list列表中,通過簇域的region_center_list列表可以得到下一跳簇域內(nèi)所有節(jié)點的ID列表,該列表就相當于下一跳的候選列表。利用隨機自治的方式來確定簇頭節(jié)點的多跳路徑,簇頭節(jié)點只需從這些候選節(jié)點中隨機選出一個節(jié)點作為自己的下一跳節(jié)點,這樣就建立了各個簇頭節(jié)點的多跳路徑,如圖4所示。
[0025]步驟5)由于簇頭節(jié)點擔負的任務(wù)比非簇頭節(jié)點重,所以消耗的能量多,這樣就容易導致簇頭節(jié)點能量耗盡而死亡。為了保持網(wǎng)絡(luò)內(nèi)節(jié)點能量均衡分布,所以采用輪換簇頭節(jié)點的方法。采用靜態(tài)分簇的方法,由于在首輪循環(huán)中已經(jīng)進行了簇的劃分,所以以后每輪循環(huán)階段不再重新劃分簇,只需要更新簇頭節(jié)點。除了首輪循環(huán)之外,在以后的循環(huán)過程中,現(xiàn)任簇頭節(jié)點根據(jù)簇內(nèi)節(jié)點的剩余能量來進行新的簇頭節(jié)點的選定。選定新的簇頭節(jié)點之后現(xiàn)任簇頭節(jié)點向所有簇內(nèi)節(jié)點發(fā)布廣播消息,通知所有簇內(nèi)節(jié)點當前新的簇頭節(jié)點的ID,同時,現(xiàn)任簇頭節(jié)點需將自己設(shè)置為非簇頭節(jié)點,并將自己當前的簇頭節(jié)點設(shè)置為新簇頭節(jié)點的ID。簇內(nèi)節(jié)點接收到現(xiàn)任簇頭節(jié)點發(fā)來的廣播消息后,將廣播消息中的新簇頭節(jié)點的節(jié)點ID值與自己的ID進行比較,如果相等,則說明自己在下一輪中將以簇頭的身份存在,如果不相等,則將自己的當前簇頭節(jié)點的ID設(shè)置為收到的廣播消息中的ID。當前簇頭節(jié)點的另外一個任務(wù)是重新建立簇內(nèi)節(jié)點發(fā)送數(shù)據(jù)的時隙表,即TDMA調(diào)度表,并將其廣播給簇內(nèi)節(jié)點,簇內(nèi)成員節(jié)點接收到該消息后,計算自己發(fā)送數(shù)據(jù)的時間,在輪到自己發(fā)送數(shù)據(jù)的時候便發(fā)送數(shù)據(jù),否則進入睡眠狀態(tài)以節(jié)省能量。
[0026]步驟6)由于新的一輪循環(huán)中對簇頭節(jié)點進行了更新操作,所以該簇域內(nèi)相應的region_center_list列表也會隨之發(fā)生更新,在重新確立了簇頭節(jié)點之后,新的簇頭節(jié)點利用隨機自治的方法,從更新后的region_center_list列表中隨機選擇出一個簇頭節(jié)點作為自己的下一跳節(jié)點,從而建立起新的簇頭多跳路徑,為實現(xiàn)數(shù)據(jù)的多跳傳輸提供條件。
[0027]步驟7)數(shù)據(jù)多跳傳輸主要分為兩個過程,一是簇內(nèi)節(jié)點與簇頭節(jié)點之間的數(shù)據(jù)通信,二是簇頭多跳路徑中簇頭之間的數(shù)據(jù)通信,以及最后和BS之間的數(shù)據(jù)通信。在第一個過程中,簇內(nèi)節(jié)點在指定時隙內(nèi)將采集到的數(shù)據(jù)發(fā)送給簇頭節(jié)點,在處于其他時隙時,簇內(nèi)節(jié)點就處于休眠狀態(tài),并關(guān)閉無線電模塊,當再次輪到自己發(fā)送數(shù)據(jù)時再開啟無線電模塊向簇頭節(jié)點發(fā)送數(shù)據(jù)。簇內(nèi)節(jié)點兩次向簇頭節(jié)點發(fā)送數(shù)據(jù)之間的時間間隔Stime=簇內(nèi)節(jié)點個數(shù)*節(jié)點發(fā)送數(shù)據(jù)所需時間。在第二個過程中,簇頭節(jié)點接收到所有簇內(nèi)節(jié)點的數(shù)據(jù)之后,對數(shù)據(jù)進行融合,然后將融合后的數(shù)據(jù)發(fā)送給自己的下一跳節(jié)點,下一跳節(jié)點收到來自上一跳的數(shù)據(jù)之后,便將自己收到的簇內(nèi)節(jié)點發(fā)來的數(shù)據(jù)與上一跳發(fā)來的數(shù)據(jù)融合,數(shù)據(jù)融合完成之后再發(fā)給自己的下一跳節(jié)點,以此類推直至下一跳節(jié)點為基站BS,最后將融合得到的數(shù)據(jù)發(fā)送給BS,完成數(shù)據(jù)的傳輸。
【權(quán)利要求】
1.一種基于區(qū)域劃分的傳感網(wǎng)節(jié)能離取改進方法,其特征在于該方法具體包含如下步驟: 步驟I)設(shè)基站BS在整個傳感區(qū)域之外,并且位于距離整個傳感區(qū)域較遠的位置,傳感器節(jié)點將自己的地理位置信息發(fā)送給BS,BS收到傳感區(qū)域內(nèi)各個傳感器節(jié)點發(fā)來的位置信息后,根據(jù)這些信息計算出區(qū)域中距離自己最近節(jié)點的距離mind和距離自己最遠節(jié)點的距離maxd ;設(shè)BS將整個區(qū)域劃分為2*k+l個部分,其中k>0且為整數(shù),則將maxd-mind分為2*k+l段,每一段的距離為d= (maxd-mind) / (2*k+l),然后以BS為圓心,以minr+d*n為半徑畫圓,其中η>=1且n〈=k,被圈在同一圓內(nèi)的傳感器節(jié)點就屬于同一部分區(qū)域;設(shè)k=l,則將整個區(qū)域可以劃分為三個部分區(qū)域,以mind+d為半徑畫圓,被圓圈起來的區(qū)域作為一級簇域GID=I,然后以mind+2*d為半徑再畫圓,被圈起來的部分減去一級簇域的部分,剩下的那部分作為二級簇域GID=2,最后以mind+3*d為半徑再畫圓,被圈起來的部分減去二級簇域的部分,剩下的部分區(qū)域作為三級簇域GID=3, 步驟2)如果傳感區(qū)域內(nèi)所有傳感器節(jié)點初始能量均相等,需要將選舉簇頭的門限值Thresh設(shè)置為各個區(qū)域預先設(shè)置好的成為簇頭的概率值;在二級簇域中成為簇首的概率為P,所以該區(qū)域選舉成為簇首的門限值Thresh就設(shè)置為P ;節(jié)點產(chǎn)生一個O至I之間的隨機數(shù),如果這個數(shù)小于P,則該節(jié)點就被選為簇頭;如果節(jié)點初始能量不相等,那么需要將簇頭選舉和節(jié)點能量聯(lián)系起來,能量相對多的節(jié)點成為簇首的概率應該更大;在二級簇域中,應用幾何關(guān)系,可以得出該簇域內(nèi)節(jié)點的數(shù)量,假設(shè)該二級簇域內(nèi)有η個節(jié)點,那么該Thresh值就應該設(shè)置為E (i)/E (total) *ηΡ,其中E (i)為節(jié)點i當前的能量值,E (total)為簇域內(nèi)所有節(jié)點能量的總和,這種情況下成為簇首的概率為P,該簇域內(nèi)簇頭個數(shù)的期望值為nP ;同樣地,節(jié)點產(chǎn)生一個O至I之間的隨機數(shù),如果這個數(shù)小于門限值Thresh,即為E (i)/E (total) *nP,則該節(jié)點就被選為簇頭;簇頭選舉出來之后,將簇頭的ID記錄到自己簇域的全局變量region_center_list中,最終得到的region_center_list就是該簇域內(nèi)所有簇頭節(jié)點ID的列表; 步驟3)當簇頭節(jié)點全部選舉出來之后,簇頭節(jié)點發(fā)布通告消息告知其他節(jié)點自己是新的簇頭;同區(qū)域內(nèi)的非簇頭節(jié)點接收到該消息后,根據(jù)自己與簇頭節(jié)點之間的距離來選擇加入哪個簇,當同區(qū)域內(nèi)的非簇頭節(jié)點選定自己要加入的簇后,向該簇的簇頭節(jié)點發(fā)送加入該簇的消息,然后簇頭節(jié)點需要根據(jù)簇內(nèi)節(jié)點的數(shù)目建立TDMA調(diào)度,并將該調(diào)度發(fā)送給各個簇內(nèi)節(jié)點,當簇內(nèi)節(jié)點向簇頭節(jié)點發(fā)送數(shù)據(jù)時,就必須要按照該時間調(diào)度進行數(shù)據(jù)發(fā)送,以避免數(shù)據(jù)發(fā)送時產(chǎn)生沖突; 步驟4)組建簇頭多跳路徑,使簇頭融合數(shù)據(jù)之后將數(shù)據(jù)以多跳方式發(fā)送給BS,減少了數(shù)據(jù)傳輸時的能量消耗;在簇頭節(jié)點選舉的時候,已經(jīng)將選為簇頭節(jié)點的節(jié)點ID記錄到了region_center_list列表中,通過簇域的region_center_list列表可以得到下一跳簇域內(nèi)所有節(jié)點的ID列表,該列表就相當于下一跳的候選列表;利用隨機自治的方式來確定簇頭節(jié)點的多跳路徑,簇頭節(jié)點只需從這些候選節(jié)點中隨機選出一個節(jié)點作為自己的下一跳節(jié)點,這樣就建立了各個簇頭節(jié)點的多跳路徑; 步驟5)由于簇頭節(jié)點擔負的任務(wù)比非簇頭節(jié)點重,所以消耗的能量多,這樣就容易導致簇頭節(jié)點能量耗盡而死亡;為了保持網(wǎng)絡(luò)內(nèi)節(jié)點能量均衡分布,采用輪換簇頭節(jié)點的方法;采用靜態(tài)分簇的方法,由于在首輪循環(huán)中已經(jīng)進行了簇的劃分,所以以后每輪循環(huán)階段不再重新劃分簇,只需要更新簇頭節(jié)點;除了首輪循環(huán)之外,在以后的循環(huán)過程中,現(xiàn)任簇頭節(jié)點根據(jù)簇內(nèi)節(jié)點的剩余能量來進行新的簇頭節(jié)點的選定,選定新的簇頭節(jié)點之后現(xiàn)任簇頭節(jié)點向所有簇內(nèi)節(jié)點發(fā)布廣播消息,通知所有簇內(nèi)節(jié)點當前新的簇頭節(jié)點的ID,同時,現(xiàn)任簇頭節(jié)點需將自己設(shè)置為非簇頭節(jié)點,并將自己當前的簇頭節(jié)點設(shè)置為新簇頭節(jié)點的ID;簇內(nèi)節(jié)點接收到現(xiàn)任簇頭節(jié)點發(fā)來的廣播消息后,將廣播消息中的新簇頭節(jié)點的節(jié)點ID值與自己的ID進行比較,如果相等,則說明自己在下一輪中將以簇頭的身份存在,如果不相等,則將自己的當前簇頭節(jié)點的ID設(shè)置為收到的廣播消息中的ID ;當前簇頭節(jié)點的另外一個任務(wù)是重新建立簇內(nèi)節(jié)點發(fā)送數(shù)據(jù)的時隙表,即TDMA調(diào)度表,并將其廣播給簇內(nèi)節(jié)點,簇內(nèi)成員節(jié)點接收到該消息后,計算自己發(fā)送數(shù)據(jù)的時間,在輪到自己發(fā)送數(shù)據(jù)的時候便發(fā)送數(shù)據(jù),否則進入睡眠狀態(tài)以節(jié)省能量; 步驟6)由于新的一輪循環(huán)中對簇頭節(jié)點進行了更新操作,該簇域內(nèi)相應的region_center_list列表也會隨之發(fā)生更新,在重新確立了簇頭節(jié)點之后,新的簇頭節(jié)點利用隨機自治的方法,從更新后的region_center_list列表中隨機選擇出一個簇頭節(jié)點作為自己的下一跳節(jié)點,從而建立起新的簇頭多跳路徑,為實現(xiàn)數(shù)據(jù)的多跳傳輸提供條件; 步驟7)數(shù)據(jù)多跳傳輸主要分為兩個過程,一是簇內(nèi)節(jié)點與簇頭節(jié)點之間的數(shù)據(jù)通信,二是簇頭多跳路徑中簇頭之間的數(shù)據(jù)通信,以及最后和BS之間的數(shù)據(jù)通信;在第一個過程中,簇內(nèi)節(jié)點在指定時隙內(nèi)將采集到的數(shù)據(jù)發(fā)送給簇頭節(jié)點,在處于其他時隙時,簇內(nèi)節(jié)點就處于休眠狀態(tài),并關(guān)閉無線電模塊,當再次輪到自己發(fā)送數(shù)據(jù)時再開啟無線電模塊向簇頭節(jié)點發(fā)送數(shù)據(jù);簇內(nèi)節(jié)點兩次向簇頭節(jié)點發(fā)送數(shù)據(jù)之間的時間間隔Stime=簇內(nèi)節(jié)點個數(shù)*節(jié)點發(fā)送數(shù)據(jù)所需時間;在第二個過程中,簇頭節(jié)點接收到所有簇內(nèi)節(jié)點的數(shù)據(jù)之后,對數(shù)據(jù)進行融合,然后將融合后的數(shù)據(jù)發(fā)送給自己的下一跳節(jié)點,下一跳節(jié)點收到來自上一跳的數(shù)據(jù)之后,便 將自己收到的簇內(nèi)節(jié)點發(fā)來的數(shù)據(jù)與上一跳發(fā)來的數(shù)據(jù)融合,數(shù)據(jù)融合完成之后再發(fā)給自己的下一跳節(jié)點,以此類推直至下一跳節(jié)點為基站BS,最后將融合得到的數(shù)據(jù)發(fā)送給BS,完成數(shù)據(jù)的傳輸。
【文檔編號】H04W52/02GK103987100SQ201410119444
【公開日】2014年8月13日 申請日期:2014年3月27日 優(yōu)先權(quán)日:2014年3月27日
【發(fā)明者】肖甫, 蔡俊鈺, 王汝傳, 黃海平, 沙超, 蔣凌云, 黃俊杰 申請人:南京郵電大學