李蘭英,蔣維成,何 勇,李華兵
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂山 614000)
無線傳感器常布置在野外,實現(xiàn)對某一任務(wù)的監(jiān)測,能量對無線傳感器網(wǎng)絡(luò)的運行十分重要[1-4]。由于無線傳感器網(wǎng)絡(luò)在軍事、醫(yī)療、生產(chǎn)和生活中的重要作用,引起了廣泛的研究[5-7]。簇樹結(jié)構(gòu)是無線傳感網(wǎng)絡(luò)的一種常用網(wǎng)絡(luò),文獻[8]設(shè)計不平衡的分簇,采用調(diào)度算法進行傳輸任務(wù)的分配來保證傳輸時延滿足條件。文獻[9]采用自適應(yīng)信標交換算法和基于過渡帶思想的貪婪轉(zhuǎn)發(fā)策略,提出了一種實時可靠的貪婪路由算法,提高了數(shù)據(jù)實時傳輸?shù)目煽啃浴_@些文獻側(cè)重研究實時數(shù)據(jù)的延遲。
為了對無線傳感器網(wǎng)絡(luò)中的節(jié)點進行管理,LEACH算法[10-12]采用分簇的方式,把無線傳感器網(wǎng)絡(luò)中的節(jié)點分為簇頭節(jié)點和普通成員節(jié)點,每個節(jié)點以一定的概率當選為簇頭。簇頭負責數(shù)據(jù)的轉(zhuǎn)發(fā)和簇內(nèi)節(jié)點的管理,普通成員節(jié)點進行數(shù)據(jù)的采集。由于簇頭能量消耗比較多,經(jīng)過一段時間要進行簇頭輪換。然而LEACH算法的分簇是隨機進行的,不足在于簇頭聚集在一起。
為了充分利用區(qū)域中無線傳感器節(jié)點能量,使得各節(jié)點能量的消耗均衡化,提出了一種能量均衡的地理位置監(jiān)測方法。
文獻[13]指出無線傳感器在不同狀態(tài)下的能量消耗存在某種關(guān)系,在空閑狀態(tài)、數(shù)據(jù)接收和數(shù)據(jù)發(fā)送時的能量消耗是1∶1∶5。
為了研究無線傳感器網(wǎng)絡(luò)中各種不同狀態(tài)下任務(wù)量之間的關(guān)系,定義一個標準任務(wù)。
定義1:標準任務(wù)是對無線傳感器所執(zhí)行的眾多任務(wù)的抽象,用來衡量其他任務(wù)的任務(wù)量大小,用S0表示。
無線傳感器在執(zhí)行各種不同任務(wù)時可以通過標準任務(wù)量來衡量任務(wù)的大小。無線傳感器在執(zhí)行數(shù)據(jù)采集任務(wù)時的任務(wù)量可以表示為:S1=α·S0,其中α為比例系數(shù),表示數(shù)據(jù)采集的任務(wù)量與標準任務(wù)之間的關(guān)系。無線傳感器在執(zhí)行接收數(shù)據(jù)任務(wù)時的任務(wù)量可以表示為:S2=β·S0,其中β為比例系數(shù),表示接收數(shù)據(jù)的任務(wù)量與標準任務(wù)之間的關(guān)系。無線傳感器在執(zhí)行發(fā)送數(shù)據(jù)任務(wù)時的任務(wù)量可以表示為S3=γ·S0,其中γ為比例系數(shù),表示發(fā)送數(shù)據(jù)的任務(wù)量與標準任務(wù)之間的關(guān)系。
定義2:能量窗口指無線傳感器的剩余能量與標準任務(wù)之間的乘積。
若能量窗口用W表示,則有:
W=E·S0
(1)
其中,E表示無線傳感器的剩余能量。
能量窗口反映無線傳感器節(jié)點在剩余時間里所能完成的任務(wù)量的多少。能量窗口越大,節(jié)點所能完成的任務(wù)量越多;反之,則越少。
無線傳感器在執(zhí)行一定的任務(wù)之后,就將能量窗口減少一定的量Δθ。如圖1所示,無線傳感器在執(zhí)行某任務(wù)之后,能量窗口由θ1變成θ2。
圖1 能量窗口
有了能量窗口之后,就可以清楚地知道區(qū)域內(nèi)各節(jié)點的能量窗口大小,在分配任務(wù)時就可以根據(jù)任務(wù)量的大小選擇不同的執(zhí)行節(jié)點,也可以優(yōu)先把任務(wù)分配給能量窗口大的無線傳感器,這些無線傳感器可以完成更多的任務(wù)。
無線傳感器的監(jiān)測范圍是有限的。距離事發(fā)點位置越近的無線傳感器,監(jiān)測效果越佳。設(shè)事件發(fā)生位置的中心O坐標為(x0,y0),無線傳感器i的位置坐標為(xi,yi),那么無線傳感器i到O的距離為:
(2)
取距離的倒數(shù)F為:
(3)
其中,f0為監(jiān)測允許范圍的最小值。由式3可知,F(xiàn)的值越大,無線傳感器離事發(fā)中心的距離越近,監(jiān)測效果越好。
選取F和W作為參考量,構(gòu)建能距關(guān)系式,表示為:
(4)
其中,k1,k2為比例系數(shù),表示F和W所占的比例。通過系數(shù)k1,k2在D和W之間進行折衷和權(quán)衡來選擇區(qū)域中的無線傳感器作為任務(wù)的執(zhí)行節(jié)點,將滿足條件的無線傳感器構(gòu)成一個集合,把監(jiān)測的任務(wù)分擔給集合中的節(jié)點,來執(zhí)行監(jiān)測任務(wù)。使得任務(wù)監(jiān)測的能量消耗分散在區(qū)域中的不同節(jié)點之間。
由式4可知,在能量窗口相同的情況下,任務(wù)的執(zhí)行優(yōu)先選擇距離事發(fā)地點較近位置的無線傳感器,隨著任務(wù)監(jiān)測的進行,節(jié)點的能量不斷消耗,使得G值減小,當減少到一定量后,選擇其他節(jié)點來執(zhí)行任務(wù)。
如圖2所示,事件發(fā)生的中心位置位于O點,任務(wù)執(zhí)行節(jié)點首先選擇與O點較近的節(jié)點i,隨著能量的消耗,E值不斷減小,從而G值不斷減小,在O點附件存在比i點G值更大的無線傳感器j,從而使得j成為任務(wù)執(zhí)行節(jié)點,當j的能量消耗到一定量后,又由k節(jié)點擔任任務(wù)的監(jiān)測。從而對O的監(jiān)測能耗分散在不同的節(jié)點之間,避免了節(jié)點提前死亡。
圖2 節(jié)點選擇
定義3:分配樹是由無線傳感器的F值和W值構(gòu)成的有序樹,用來對無線傳感器進行任務(wù)分配。
在分配樹中,中間節(jié)點均是無線傳感器的G值,并且滿足如下性質(zhì):第一,每個左子樹或者為空,或者左子樹上的所有節(jié)點小于它的父節(jié)點;第二,每個右子樹或者為空,或者不小于它的父節(jié)點。分配樹中所有的葉子節(jié)點均為無線傳感器的F值或W值,如果該葉子節(jié)點位于某子樹的左葉子位置,則為該無線傳感器的F值,位于右葉子位置則為該無線傳感器的W值。
如圖3所示,無線傳感器i1和i2的能量窗口W均為0.5,i1與事發(fā)中心的距離為50 m,其F值為0.02,G值為0.224;無線傳感器i2與事發(fā)中心的距離為14 m,其F值為0.07,G值為0.232;由于i2的G值比i1大,所以i1位于i2的左側(cè)。無線傳感器i3和i4與事發(fā)中心的距離均為10 m,F(xiàn)值為0.1,i3的能量窗口W為0.7,G值為0.326,i4的能量窗口W為0.8,G為0.369,由于i4的G值比i3大,所以i4位于i3的右側(cè)。
根據(jù)分配樹的性質(zhì),任務(wù)的執(zhí)行可以選擇分配樹的右子樹所對應(yīng)的無線傳感器,因為右子樹的G值更大。在圖3所示的分配樹中,優(yōu)先選擇右側(cè)的節(jié)點,可以選擇無線傳感器i4執(zhí)行任務(wù)。
圖3 分配樹
為了使處理簡單和減少執(zhí)行任務(wù)過程中節(jié)點的頻繁變換,若t1時刻的G值為G1,t2時刻的為G2,其中t2>t1。設(shè)置一個閾值h0,當|G2-G1|≤h0時視為不變,只有當|G2-G1|>h0時,才認為發(fā)生改變,此刻進行節(jié)點間的輪換。
由于區(qū)域中的無線傳感器數(shù)量比較多,考慮實際的G值之間的差異,將無線傳感器進行聚類處理,把G值相同的無線傳感器歸為一類,這樣就可以簡化操作。
根據(jù)區(qū)域中無線傳感器G值的分布情況進行劃分。設(shè)Gn是某一類G值中數(shù)量較多無線傳感器的中心值,那么可以根據(jù)式5計算屬于該類的無線傳感器。
(5)
其中,ρ為閾值,表示無線傳感器允許偏離中心值Gn的范圍。根據(jù)式5可以將區(qū)域中的無線傳感器劃分成不同的類,每一類無線傳感器中的節(jié)點是等效的。在實際應(yīng)用中,可以根據(jù)具體情況,針對G值進行不同的劃分。
對區(qū)域中的無線傳感器進行聚類處理之后,無線傳感器節(jié)點就屬于不同的集合,同一集合中的無線傳感器均是等效的,對于同一集合中的節(jié)點就可以按某種概率進行選擇。若集合中有n個元素,那么選擇該集合中的某一無線傳感器節(jié)點i的概率為:
(6)
這樣就可以將任務(wù)分配給這n個節(jié)點。一方面將能量消耗分散在這n個節(jié)點之間,另外,由于這n個節(jié)點是等效的,也提高了系統(tǒng)的可靠性。
為了研究文中算法的性能,采用Matlab對文中算法和Leach算法構(gòu)建模型,進行仿真實驗。
從圖4可以看出,文中算法的死亡出現(xiàn)時間要比LEACH算法晚,在相同時間條件下,文中算法在無線傳感器死亡數(shù)量上也較LEACH算法少。這主要因為文中算法將數(shù)據(jù)監(jiān)測的任務(wù)分配給符合條件的無線傳感器節(jié)點集合,使得能量的消耗均衡化,減少了節(jié)點的過度能耗。
圖4 死亡數(shù)
任務(wù)的執(zhí)行是通過無線傳感器完成的,區(qū)域中一定數(shù)量的存活無線傳感器是保證任務(wù)的完成的前提[14]。在相同條件下,文中算法和LEACH算法中的節(jié)點存活數(shù)隨時間的變化如圖5所示??梢钥闯?,在相同時間條件下,文中算法的節(jié)點存活數(shù)比LEACH算法要多,因而文中算法比LEACH算法有更長的網(wǎng)絡(luò)生存期。
圖5 存活數(shù)
為了充分利用該無線傳感器的能量,提出了能量窗口的概念,在監(jiān)測效果允許范圍內(nèi),構(gòu)建監(jiān)測距離和能量窗口關(guān)系式,在能量窗口和監(jiān)測距離之間進行權(quán)衡選擇,把能量消耗分散在眾多等效無線傳感器節(jié)點之間。根據(jù)監(jiān)測距離和能量窗口構(gòu)建任務(wù)分配樹,實現(xiàn)對無線傳感器的快速指派,同時,根據(jù)無線傳感器節(jié)點的特性,將區(qū)域內(nèi)的無線傳感器進行聚類處理,把共同特性的無線傳感器歸為一類,簡化操作,提高算法的可靠性。最后,通過仿真實驗驗證了該算法的正確性。