標籤:style blog http ar 使用 sp strong on 資料
基於能量水平的無線感應器網路拓撲控制研究
摘要:在無線感應器網路的規劃和設計中,減少節點的能量消耗、延長其工作時間並最大化網路的生命週期是首先要解決的重要問題。本文設計了一種基於節點能量水平的拓撲控制策略,該策略針對匯聚節點附近節點的能量消耗過多而設計,避免了這些節點因能量過早耗盡而導致的網路失效,該機制使網路中的節點能量消耗更加均衡,延長了網路的壽命。最後通過程式模擬驗證了該方法的有效性。
關鍵詞:無線感應器網路,能量水平,網路拓撲
一. 提出問題
最小能量消耗路由是從資料來源到匯聚節點的所有路徑中選擇節點能耗之和最少的路徑;最少跳數路由是選取從資料來源到匯聚節點跳數最少的路徑。但在無線感應器網路中,如果頻繁使用同一條路徑傳輸資料,就會造成該路徑上的節點因能量消耗過快而過早失效,從而使整個網路分割成互不相連的孤立部分,減少整個網路的生存期。為了平衡網路負載和節點能耗,當某些節點的能耗較大,而另外一些節點幾乎沒有什麼能耗時,應採用相應措施使節點的能耗相對平均,避免由於某些能耗較大的關鍵節點(如sink節點或簇前端節點)失效而導致整個網路癱瘓。為此,很多研究者從均衡節點能量消耗的角度給出了大量的拓撲控制演算法。
本文設計了一種基於節點能量水平的拓撲控制策略, 避免了這些節點因能量過早耗盡而導致的網路失效, 延長了網路的壽命。
二. 系統模型 2.1 網路模型 本文中N個感應器節點隨機分布在一個方形地區A內,並且該感應器網路具有以下性質: (1) 惟一的基站部署在地區A以外的較遠的位置;
(2) 每個節點有惟一的標識;
(3) 每個節點的初始能量基本相同;
(4) 感應器節點部署後不再移動;
(5) 節點的地理位置資訊可知;
(6) 發射節點與不同距離的接收節點通訊時,可以調整發射功率;
(7) 每輪中節點的能量消耗不統一。
2.2 無線通訊模型
本文中,採用目前比較常用的一階無線能量模型:融合N個Kbit資訊再傳輸到d遠處,所消耗的能量為:
(1)接收資料耗費能量為:
(2)發送資料耗費能量為:
此外,大部分協議和演算法都採用了資料彙總技術來減少發送和接收的資料量,
從而達到節省能量的目的。本文的策略同樣採用資料彙總技術來減少能量損耗。
此外,本文假設無線通道是對稱的,即從節點口傳送訊息加到節點b消耗的能量等於從節點b傳送訊息m到節點口消耗的能量。
三. 拓撲控制策略描述 3.1 節點設定層ID
該策略將感應器網路中的所有節點按距離基站的遠近分層,在系統初始化時
為每個節點設定一個層ID。具有相同層ID的節點處於同一層,它們到基站的距離基本上相同,與基站通訊的能量開銷也相近。距離基站越近則節點的層ID越小,在策略中,層ID小的節點稱為上層節點,層ID大的節點稱為下層節點,層ID相同的節點稱為同層節點。系統在初始化時將整個網路中的感應器節點根據到基站的距離遠近劃分為多個層次。在分層過程中,基站首先向網路中所有節點發送LAYER訊息。每個節點根據LAYER訊息的訊號強弱來確定自己距離基站的遠近。本文採用自由空間的衰
減模型:
其中,為基站發送功率,為接收到訊號的功率,d為發送距離,是衰
減係數,通常設定為常量,因此感應器節點到基站的距離可以用式計算:
其中,為常量,設d為層半徑大小(通常取),若
,
則節點將自己的ID層記為k。
3.2 層節點成鏈
對任意節點的基本資料包括節點ID、層ID、剩餘能量ResEnergy、能量門限值ThresEnegry和下一個節點NextNode,即五元組:
broadcast(NodeID,LayerID,ResEnergy,ThresEnegry,NextNode)
節點ID是統一編碼的。層ID表示節點距離基站的距離,在系統初始化時設定。剩餘能量則記錄節點當前剩餘的能量。能量門限值用於判斷節點是否具備充足的能量用來作為本層的leader節點。節點ID、層ID和NextNode在感應器節點生命週期裡都不改變。剩餘能量將隨節點的能量消耗動態改變,能量門限值則由基站不定期廣播。
層ID確定後,每層中的所有節點向本層節點廣播broadcast,從而確定本層中能量最高的節點作為本層的第一個leader節點並初始化節點資訊,節點發送訊息broadcast(NodeID,LayerID,ResEnergy, ThresEnegry, NextNode),本層中距離最近節點接受此報文,並反饋自己的節點標識NodeID資訊,這時節點再初始化其NextNode節點為的NodeID。同樣,節點也向距離自己最近的節點發送broadcast,收到資訊的節點也同樣反饋其NodeID為的NextNode,以此類推,直到連結本層的所有節點,需要注意的是,本層的最後一個節點沒有下一個節點,因此其NextNode為空白。
3.3 層節點間資料傳遞
網路連接資訊記錄與上層leader感應器節點的連結的基本資料,包括節點ID,層ID及剩餘能量ResEnergy。串連資訊用3個隊列表示:父節點隊列(parents)、兄弟節點隊列(siblings)和子節點隊列(children)。這3個隊列在系統初始化時構建,父隊列存放層ID比自己小的上層鄰接節點,兄弟隊列存放層ID和自己相同的同層鄰接節點,子隊列存放層ID比自己大的下層鄰接節點。
每層的所有節點都把感應器收集的資訊發送給本層的leader節點。同時,也收集下層節點的leader節點融合的資料,然後把資料融合起來發送給上層節點。以此類推,直到把資料發送給sink節點。
可想而知,由於leader節點接受和發送大量的資料,故能量將消耗的更快。
為了能量的均衡消耗,當leader節點的剩餘能量ResEnergy小於ThresEnegry時,本層的leader節點將換為NextNode節點。
隨著節點能量消耗,當本層中所有節點的剩餘能量都小於ThresEnegry時,層leader節點將於下層的leader節點邏輯上兌換順序,即把本層的節點收集的感應器訊號發送給下層節點,本層的下層leader節點將發送資料給本層的上層的leader節點。
3.4 頂層節點遷移
和sink節點直接通訊的節點稱為頂層節點。頂層節點同時滿足下列兩個條件:1)父節點隊列為空白;2)節點本身剩餘能量大於預設定的閾值。
因為頂層節點直接和基站通訊,其能量消耗比非頂層節點快。當頂層節點中
leader節點的能量小於預先設定的閾值ThresEnegry時,它不再具備和基站通訊的資格。在這種情況下,該策略把與基站通訊的任務轉交給距離基站稍遠但能量充足的leader節點,這種機制稱為頂層節點遷移。通過頂層節點遷移,系統能夠均勻地把能量損耗分布到網路中所有節點。在頂層節點遷移的情況下,頂層節點將自己與下層鄰接節點的父子對換。節點先接收來自子節點的資料,然後將所接收到的資料與自身資料彙總。
如果節點收到多個HEADER訊息,則選擇能量水平最高的訊息轉寄,將能量水平低的訊息丟棄。當某項層節點的能量不足,並且其兄弟隊列中所有鄰接節點的能量也都小於設定的閾值時,該節點需要與鄰接的下層節點對換父子關係:
(1) 將該節點子隊列中的鄰接下層節點轉移到父隊列中;
(2) 將該節點從對應下層節點的父隊列中轉移到子隊列中。
當節點本身或兄弟隊列中的同層節點能量充足時,資料在本層節點平行傳遞;當節點本身及兄弟隊列中的同層節點能量不足時,對換本節點與下層節點的
父子關係。
隨著網路能量不斷消耗,頂層節點將由最靠近基站的節點遷移到最遠離基站
的節點。最後,系統中所有節點的能量都小於能量門限值ThresEnegry。因為在發送給基站的資料包中包含發送節點的剩餘能量值,當基站發現發送節點的能量值小於ThresEnegry時,將ThresEnegry乘:
然後基站將新的門限值廣播給所有節點,所有節點將自己的ThresEnegry乘。距離基站0層節點重新變回頂層節點。系統又開始下一輪的頂層節點遷移,直到網路能量耗盡。
3.5 策略的步驟如下:
1):每個節點初始化層ID,剩餘能量ResEnergy。根據距離擷取每個的所在層LayerID。
2):每個節點在本層廣播一個broadcast(NodeID,LayerID,ResEnergy,NULL,NULL)資訊,獲得本層的最高能量節點作為本層的leader節點。
3):以leader節點為鏈頭,以最短距離為尺度把本層的所有節點串連成鏈。
4):各leader節點接收下層leader節點的資料並與自身在本層擷取的資料進行融合後傳向上一層的leader節點。
5): 當與sink節點直接通訊的頂層leader節點的剩餘能量ResEnergy低於ThresEnegry時,通過頂層遷移節點交換頂層leader節點和下層leader節點的父子關係。如果所有leader節點的剩餘能量ResEnergy都低於ThresEnegry,則,轉到4)。
四. 程式模擬 4.1 模擬環境
本模擬程式平台:Window7+VS2012+OpenCV2.4.4。OpenCV2.4.4的具體配置方法請參考官網:http://wiki.opencv.org.cn/index.php 。
4.2 具體步驟
1) 在600*600像素圖片中隨機產生NODENUM=100個節點,其中左上方的點為sink節點,其座標為(0,0)。1:
圖1
2)根據與sink節點的距離擷取每個的所在層LayerID。
圖2
3)獲得每層的leader節點,本程式以每層最左邊的節點作為層leader節點,應該可以假設開始所以節點的能量基本相同。3(左邊的5個綠色節點代表每層的leader節點):
圖3
4) 以每層的leader節點為鏈頭,以最短距離為尺度把本層的所有節點串連成鏈,4:
圖4
5) leader節點在本層中遷移。假設每層中發送訊號消耗的能量與距離成平方關係。
圖5 圖6
圖7 圖8
圖9 圖10
其中,節點的顏色表示節點的剩餘能量ResEnergy:
藍色: ResEnergy > 80%
黃色: 80% > ResEnergy > 60%
橙色: 60% > ResEnergy > 40%
紅色: 40% > ResEnergy > 20%
灰色: 20% > ResEnergy > 10%
黑色: 10% > ResEnergy > 0
大黑點代表最先電量耗盡的感應器節點。
4.3 結果比較
變功率發送訊號(圖10)和恒定功率發送訊號(圖11)的比較:
圖10 圖11
可以看出:圖10頂層能量基本耗盡,而圖11的能量消耗不均勻,還有很多橙色節點和黃色節點。
從圖12與圖13比較可知,變功率發送訊號的層leader節點遷移更能節省能量。
圖12 圖13
4.4 原始碼
見附錄。
五. 總結
本章借鑒了LEACH演算法、TEEN演算法、PEGASIS演算法、PEDAP演算法等幾種經典演算法的優點,給出了基於節點能量水平的拓撲控制策略,該策略將網路中的節點按照距離sink節點的遠近劃分成不同的層次,每層中選擇能量水平高的節點和相鄰層間進行通訊,然後選擇距離sink節點最近的且剩餘能量大於給定閥值的節點直接和sink節點通訊,從而避免sink節點附近的節點過早死亡,而導致網路死亡。該策略使網路中的節點能量消耗更加均衡,從而延長網路的壽命。
基於能量水平的無線感應器網路拓撲控制研究