無線傳感器網(wǎng)絡的動態(tài)拓撲能量有效成簇算法
1 引言
無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)作為下一代的信息獲取技術(shù)引起了世界各國的重視,日漸成為國內(nèi)外學術(shù)機構(gòu)的研究熱點。無線傳感器網(wǎng)絡通常是由大量傳感器節(jié)點通過射頻通信形成的一個自組織網(wǎng)絡系統(tǒng)。它通過對被監(jiān)測對象目標信息的感知,獲取和處理,提供給管理者以有用的信息,可以廣泛地應用于智能家居、醫(yī)療衛(wèi)生、工業(yè)控制、農(nóng)業(yè)種植、軍事預警以及防洪救災等特殊場合。但是,WSN與移動Ad Hoc網(wǎng)絡(MANET)是有著很大區(qū)別的,它們的通信方式、通信目的和網(wǎng)絡拓撲很不相同,尤其在能量來源方面,WSN是采用電池供電,路由算法對傳感器網(wǎng)絡的存活周期起著重要的影響,所以移動Ad Hoc網(wǎng)絡的路由協(xié)議不能完全適應于WSN,我們需要單獨研究適合于無線傳感器網(wǎng)絡的通信協(xié)議。
2動態(tài)拓撲能量有效成簇算法
針對層次路由協(xié)議中存在的各種問題,本文提出了適用于WSN的動態(tài)拓撲能量有效成簇算法(DTEE)。此算法引入基于能量因子的低復雜度的簇頭選擇機制,同時通過協(xié)議的設計使其支持節(jié)點部分離去或有新節(jié)點加入的拓撲動態(tài)傳感器網(wǎng)絡。在簇間數(shù)據(jù)傳輸上通過多跳算法使數(shù)據(jù)以最優(yōu)路徑傳向匯聚節(jié)點,系統(tǒng)能耗很小,網(wǎng)絡的生命周期最大化。
3.1網(wǎng)絡模型
本文中假設傳感器節(jié)點隨機分布在一個長方形形監(jiān)測區(qū)域內(nèi),并且該傳感器網(wǎng)絡具有以下性質(zhì):
1) 網(wǎng)絡中所有傳感器節(jié)點都是同構(gòu)的,具有相同的初始能量,并且能量有限;
2) 傳感器節(jié)點的發(fā)送功率可以進行離散調(diào)節(jié),可以根據(jù)傳輸距離的遠近來調(diào)節(jié)其發(fā)射功率
3) 匯聚節(jié)點具有較強的計算能力和較大的存儲容量,且能量無限制,其無線信號可以覆蓋整個傳感器網(wǎng)絡。
4) 傳感器網(wǎng)絡部署以后,可以出現(xiàn)部分節(jié)點隨著時間的推移而移動;
5) 傳感器節(jié)點具有數(shù)據(jù)融合功能。
6) 位置上相鄰的節(jié)點采集到的數(shù)據(jù)具有很大的關聯(lián)性。
3.2能量模型
在無線傳輸中,信號強度隨著傳輸距離的增加而呈指數(shù)衰減。文獻[3]提出了兩種信道模型:自由空間(free space)模型和多路衰減(multi-path fading)模型。當發(fā)射器與接收器的距離d小于閾值時,采用自由空間模型,信號功率呈d2衰減;否則采用多路衰減模型,信號功率呈d4 衰減。
3.3成簇策略
在LEACH算法中執(zhí)行過程是周期性進行的,每一輪包括簇的建立階段和穩(wěn)定的數(shù)據(jù)傳輸階段。在簇的建立階段,通過選舉使某個節(jié)點成為簇首節(jié)點,成為簇首的節(jié)點向周圍節(jié)點廣播消息,其他節(jié)點根據(jù)接收到的廣播消息的強度來選擇它所要加入的簇,并告知相應的簇首。在本文提出的DTEE算法中,也是以輪為形式周期進行的,但在簇頭選舉引入了能量因子,同時第一輪和以后輪的算法過程是不同的,從第二輪開始在成簇階段可以不用計算公式,相比LEACH及一些改進算法需要計算復雜公式的開銷,降低了復雜度,使簇頭選舉能量開銷最低,成簇過程中采用的非均勻成簇方法更是使網(wǎng)絡能量分布更加均衡。
由于本文采用的是簇內(nèi)單跳,簇間多跳的數(shù)據(jù)傳輸,因此離Sink節(jié)點遠的簇頭節(jié)點,數(shù)據(jù)轉(zhuǎn)發(fā)量越少,能量消耗的慢;而離Sink節(jié)點越近的簇頭,其所承擔的數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務越多,消耗能量越大,所以更容易出現(xiàn)能量耗盡而死亡的情況。為此,本文拋棄了傳統(tǒng)算法中采用的均勻分簇的方法,而是采用非均勻成簇的策略。使離Sink節(jié)點越近的簇,其規(guī)模越小一些,從而這些簇其簇內(nèi)路由及數(shù)據(jù)融合開銷小,又因為其所承擔的簇頭間數(shù)據(jù)轉(zhuǎn)發(fā)開銷多,綜合起來無論離Sink遠還是近的簇頭都將能量相對均衡消耗,網(wǎng)絡生命周期得以最大化。
非均勻分簇的實現(xiàn)過程是這樣的:首先,Sink節(jié)點向網(wǎng)絡所在區(qū)域廣播一個NOTICE報文,網(wǎng)絡中所有節(jié)點根據(jù)接收到的此報文能量強度信息確定自己與Sink節(jié)點的距離d(i)。根據(jù)監(jiān)測區(qū)域范圍、傳感器節(jié)點個數(shù)以及能量自由空間模型確定網(wǎng)絡分層數(shù)n, 然后,本文采用文獻[14]中的均勻分層的方法,各節(jié)點所在的層號i=d(i)*n/R,R為監(jiān)測區(qū)域半徑。因為靠近Sink節(jié)點的簇規(guī)模小,簇內(nèi)節(jié)點少,也就是所在不同層次的節(jié)點成為簇頭的概率不一樣,各節(jié)點成為簇頭的最佳概率為pi=p/(i*i)。其中p為第一層節(jié)點成為簇頭的概率。將傳感區(qū)域進行劃分這個動作只出現(xiàn)在第一輪循環(huán)開始的時候,以后的循環(huán)過程不用再進行傳感區(qū)域劃分。
3.4簇頭選擇
之后開始第一輪的選舉,各節(jié)點產(chǎn)生一個隨機數(shù) r(n) ,并與T(n)進行比較,若r(n)小于T(n),則節(jié)點自選舉成為簇頭。
G為這一輪循環(huán)中未成為簇首的節(jié)點的集合。
當節(jié)點成為簇頭后,以適當?shù)陌霃絉C廣播簇頭加入消息,周圍的節(jié)點根據(jù)接收信號強度決定加入哪個簇并發(fā)送一個請求加入消息。之后簇頭在接收到相關節(jié)點的請求加入消息后,建立TDMA調(diào)度表并廣播出去。簇內(nèi)節(jié)點在收到此消息后,在屬于自己的時隙內(nèi)打開無線電模塊開始數(shù)據(jù)傳送,在其它不屬于自己的時隙內(nèi)關掉通信功能以最大限度節(jié)省能量。在簇內(nèi)節(jié)點向簇頭發(fā)送數(shù)據(jù)報文時,在其中加入一個本節(jié)點此刻剩余能量的數(shù)據(jù)信息,供之后算法使用。
第二輪及以后輪的簇頭產(chǎn)生過程中,首先是上一輪的舊簇頭對收到各節(jié)點報文中含有的各節(jié)點能量信息及自己的剩余能量進行比較,從中選出剩余能量最大的節(jié)點為新簇頭,之后舊簇頭以半徑RC發(fā)出new_CH報文,報文中包括報文類型及新簇頭的ID,當指定的新簇頭收到此報文后發(fā)現(xiàn)ID與之相匹配,就廣播簇頭加入報文,其余節(jié)點再根據(jù)接收信號強度決定加入哪個簇頭,之后過程與第一輪相同。但在實際應用中,網(wǎng)絡節(jié)點有可能意外被移動了,或者出故障死亡了,這樣指定的新簇頭就可能不存在了,從而這一簇范圍內(nèi)節(jié)點由于沒收到簇頭加入報文就會整體停止工作,使網(wǎng)絡出現(xiàn)死區(qū)。考慮此方面,本文設定舊簇頭節(jié)點在一定的時間閾值內(nèi)若沒有指定的新節(jié)點發(fā)來的簇頭加入報文,它就確認指定的新節(jié)點被意味移動走了,從而它指定剩余能量第二多的節(jié)點為新節(jié)點,并發(fā)送新的new_CH報文。這樣新算法就支持了部分節(jié)點移動或者有新節(jié)點加入的動態(tài)拓撲的網(wǎng)絡。
同時本文設計所有節(jié)點在任一輪循環(huán)中,從收到簇頭加入報文或new_CH報文開始,啟動一個計時器Timer,若在最大時限Tmax內(nèi)沒有收到新的簇頭加入報文或new_CH報文,則啟動從第一輪開始新的簇頭選擇過程,相對于大多數(shù)算法只支持靜態(tài)網(wǎng)絡,本文的算法支持了小范圍地理位置變動的傳感器網(wǎng)絡。
評論