一種成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法
【專利摘要】本發(fā)明公開了一種成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,每個簇至多由三個簇頭,即主簇頭MCH、從簇頭SCH、融合簇頭FCH負(fù)責(zé)管理,其中,F(xiàn)CH負(fù)責(zé)簇內(nèi)數(shù)據(jù)匯聚與融合,MCH和SCH組成協(xié)同通信節(jié)點對負(fù)責(zé)簇間通信,SCH根據(jù)簇間通信環(huán)境決定是否參與簇間通信;成簇方法包括簇形成、簇內(nèi)發(fā)射功率調(diào)整及簇間發(fā)射功率調(diào)整與通信模式選擇。本發(fā)明能夠有效降低剩余能量值很大但最大通信覆蓋范圍很小的節(jié)點成為簇頭的概率,并能根據(jù)網(wǎng)絡(luò)中節(jié)點最大通信覆蓋范圍分布的變化而自適應(yīng)地調(diào)整成簇范圍,從而確保簇間總能連通;通過引入一個FCH來分擔(dān)簇內(nèi)MCH的負(fù)載,以略微增加的簇形成控制開銷取得了簇結(jié)構(gòu)壽命的較大提升。
【專利說明】
一種成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于計算機(jī)網(wǎng)絡(luò)應(yīng)用和虛擬ΜΙΜΟ通信領(lǐng)域,涉及一種多簇頭簇內(nèi)負(fù)載分 擔(dān)、成簇范圍與簇間通信模式能夠自適應(yīng)通信環(huán)境狀況變化的改進(jìn)成簇技術(shù)。
【背景技術(shù)】
[0002] 多輸入多輸出(Multi-Input Multi-Output,Μπω)技術(shù)能夠提高無線網(wǎng)絡(luò)容量、 減少能量消耗、改善無線網(wǎng)絡(luò)覆蓋質(zhì)量,但是,網(wǎng)絡(luò)中的無線設(shè)備必須裝備多根天線才能利 用這些優(yōu)點。諸如傳感器這樣的小型無線設(shè)備大多無法達(dá)到這樣的要求。于是,研究者們提 出了虛擬Μ頂0技術(shù),通過多個單天線設(shè)備的協(xié)同發(fā)射與接收來模擬真實Μ頂0的效果。
[0003] 通常有四種通信模式比較常用,除了ΜΜ0外,還有單輸入單輸出(Single-Input Single-Output,SI SO)、單輸入多輸出(Single-Input Multi-Output,SIM0)、多輸入單輸出 (Multi-Input Single-Output, MI SO) 〇 一些典型工作(如Clustering and Cooperative Protocol(CCP)[1]和Cooperative MM0(CMIM0)[2])充分利用了這四種模式的優(yōu)點,能夠根 據(jù)不同的通信條件進(jìn)行靈活的切換。CCP可以根據(jù)通信條件優(yōu)化協(xié)同的節(jié)點數(shù)量,而CMIM0 則限制了協(xié)同節(jié)點的數(shù)量至多為2。
[0004] 文獻(xiàn)[3]的作者得出了兩個結(jié)論:第一,SM0、MIS0和ΜΜ0模式比SIS0模式的能量 效率更高;第二,在很多情況下,2X2(MM0)模式比lXl(SIS0)、3X3(MM0WP4X4(]\nM0) 等模式更節(jié)省能量。在虛擬ΜΙΜΟ中,若更多節(jié)點進(jìn)行協(xié)作發(fā)射,很難獲得精確的時間同步效 果,對節(jié)點進(jìn)行高效管理也變得更困難 [4]。因此,協(xié)同節(jié)點的數(shù)量不超過2是一種能效最優(yōu) 化與維護(hù)管理高效化之間的一種合理折中。
[0005] CMIM0方案是這種折中考慮的典型代表,但仍存在一些亟待解決的問題:第一,在 簇頭選舉中,未考慮候選節(jié)點最大通信覆蓋范圍的差異性,且其成簇范圍預(yù)先指定,無法根 據(jù)無線通信條件的變化自動調(diào)節(jié);第二,未根據(jù)簇內(nèi)成員與簇頭間位置的不同相應(yīng)優(yōu)化其 發(fā)射功率;第三,主簇頭承擔(dān)簇內(nèi)數(shù)據(jù)匯聚與融合、與從簇頭協(xié)同進(jìn)行簇間通信、充當(dāng)信標(biāo) 簇頭等工作,負(fù)擔(dān)過重,極易出現(xiàn)主簇頭過早死亡現(xiàn)象。因此,急需提出一種應(yīng)對上述問題 的新方法。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所解決的技術(shù)問題是,針對現(xiàn)有技術(shù)的不足,給出了一種成簇范圍與簇間 通信模式雙自適應(yīng)的改進(jìn)成族方法,即ICV_MIM0(Improved Clustering scheme for Virtual MIM〇-based topology construction),不僅能最小化簇間通信時的總能量消耗 (即發(fā)射能耗和電路能耗),而且能改善簇內(nèi)通信的能耗均衡性以及自適應(yīng)確定成簇范圍。
[0007] 本發(fā)明的技術(shù)方案為:
[0008] 每個簇至多由三個簇頭,即主簇頭(Master Cluster Head,MCH)、從簇頭(Slave Cluster Head,SCH)、融合族頭(Fusion Cluster Head,FCH)負(fù)責(zé)管理,其中,F(xiàn)CH負(fù)責(zé)族內(nèi) 數(shù)據(jù)匯聚與融合,MCH和SCH組成協(xié)同通信"節(jié)點對"負(fù)責(zé)簇間通信,SCH也可根據(jù)簇間通信環(huán) 境決定是否參與簇間協(xié)作通信。
[0009] 該方案可用于無線傳感器節(jié)點靜態(tài)組網(wǎng)進(jìn)行環(huán)境狀態(tài)監(jiān)測的應(yīng)用場景,當(dāng)簇內(nèi)成 員感知到狀態(tài)信息時,將其傳輸?shù)酱貎?nèi)的FCH節(jié)點進(jìn)行融合處理,再發(fā)送給簇內(nèi)的MCH/SCH "節(jié)點對",該MCH/SCH"節(jié)點對"負(fù)責(zé)通過簇間通信以多跳的方式或直接傳輸?shù)交?。若出現(xiàn) FCH節(jié)點先于同一簇內(nèi)的MCH節(jié)點死亡的情況,則MCH節(jié)點接替FCH節(jié)點承擔(dān)簇內(nèi)數(shù)據(jù)匯聚與 融合工作,即這時的工作過程與CM頂0方案類似。
[0010] 本發(fā)明的成簇方法包括簇形成、簇內(nèi)發(fā)射功率調(diào)整、簇間發(fā)射功率調(diào)整與通信模 式選擇三個階段,其中,簇間發(fā)射功率調(diào)整與通信模式選擇與文獻(xiàn)[2]的操作一致,不再闡 述,下面詳細(xì)闡述前兩個階段的操作過程。
[0011 ]在簇形成階段,需要依次執(zhí)行鄰居發(fā)現(xiàn)、MCH選舉、SCH選舉、簇成員關(guān)聯(lián)與FCH選舉 四個算法,具體描述如下:
[0012]為了獲得鄰居的相關(guān)信息,需要定義如下消息格式以便于相互交換信息:[IDt,et, pt,max , dt,max , Lt,nei - {???,(10土,6,*),."}],其中,10* ,θ? , pt, max , dt, max和Lt, Μi分別是節(jié)點t的 標(biāo)識符【一般節(jié)點的標(biāo)示符默認(rèn)為節(jié)點的地址,而地址是一個定長的比特串,由組網(wǎng)協(xié)議規(guī) 定,在組建的網(wǎng)絡(luò)中,具有唯一性,可以比較大小】、剩余電池量、最大發(fā)射功率、近似最大通 信覆蓋范圍和鄰居列表;節(jié)點t的鄰居列表L t,nei中的表項(IDi,di,t)由該鄰居i的標(biāo)識符IDi 和它到節(jié)點t的距離cU, t組成;任意兩個節(jié)點間的距離cU,河使用公式(1)得到:
[0014] 在公式(1)中,pYj是節(jié)點i向節(jié)點j發(fā)射數(shù)據(jù)時的發(fā)射功率,p1^,」是節(jié)點i向節(jié)點j 發(fā)射數(shù)據(jù)時節(jié)點j的接收功率;Gt和Gr分別為發(fā)射天線和接收天線增益;ht和h r分別為發(fā)射 天線和接收天線高度;λ為載波信號波長;L為系統(tǒng)損耗因子;dcrciss_ r表示交叉距離,可使用 公
[0015] 式⑵計算:
[0017]算法1:鄰居發(fā)現(xiàn)
[0018]下列步驟運(yùn)行在任一節(jié)點(如u)上
[0019]輸入?yún)?shù):Nmax(-個預(yù)設(shè)常數(shù),用于控制算法結(jié)束)
[0020] 輸出結(jié)果:所有鄰居的標(biāo)識符和近似最大通信范圍
[0021] 步驟1.1 :初始化變量Lu,nei為空,du,max和計數(shù)變量N分別為0;
[0022] 步驟1.2:節(jié)點u使用CSMA/CA競爭接入信道,若成功接入到信道,則用最大發(fā)射功 率?11,_廣播消息"[10 11,611,?11,_,(111,_,1^1^]";設(shè)置定時器"的值為&,并且初始化布爾 變量FLAGjPFLAG 2的值分別為"假",進(jìn)入步驟1.3;若沒有成功接入信道,則重新進(jìn)行步驟 1.2;所述FLAGjPFLAG 2均為控制標(biāo)識,通過控制標(biāo)識的狀態(tài)控制算法的執(zhí)行步驟;
[0023] 步驟1.3:在預(yù)設(shè)的時間Δ內(nèi),若節(jié)點u收到任一節(jié)點v的消息"[IDv,ev,pv,m ax, dv,max,Lv,nel]",且V不在Lu,nel中,則記錄接收功率p\ u并使用公式(1)計算距離dv,u.,并且將 (^,^添加到^^沖丨若丄坪小于計算出來的扎^則將^武值給丄^如并且置?!^^ 值為"真";
[0024] 步驟1.4:在預(yù)設(shè)的時間Δ內(nèi),若節(jié)點u收到任一節(jié)點v的消息"[IDv,ev,pv,m ax, dv,max,Lv,nei]",且u不在L v,nei中,則置FLAG2的值為"真";
[0025] 步驟1.5:若FLAG2的值為"真",則將N的值增加1;
[0026] 步驟1.6:若N小于Nmax且FLAG^值或者FLAG2的值中任一個為真,則返回步驟1.2; 否則算法結(jié)束,并輸出節(jié)點u的所有鄰居的標(biāo)識符。
[0027] 通過執(zhí)行算法1得到的節(jié)點u的所有鄰居的標(biāo)識符信息,使用公式(3)和(4)計算節(jié) 點u的成簇半徑Ru, intra,并且使用公式(5)計算節(jié)點u的MCH度量值MMU;
[0031] 在公式(3)中,1?_表示節(jié)點u鄰域范圍內(nèi)所有節(jié)點的近似最大通信覆蓋范圍的平 均值,|Lu,ne31|表示節(jié)點u的鄰居列表中的鄰居數(shù)量;若節(jié)點u成為MCH,它將使用公式(4)計算 它所在簇的簇半徑R u,intra;
[0032] 在公式(4)中,μ是一個折扣系數(shù),取值范圍為0〈μ〈1,通常μ近似取1/3。
[0033] 在公式(5)中,和wr分別是能量權(quán)值和通信覆蓋范圍權(quán)值,其取值范圍為0〈^〈1, 0〈wr〈l, We3+Wr=l ;errf和drrf分別是參考能量值和參考覆蓋范圍值,其取值見表1 ;MMU用于表 示節(jié)點u競選MCH的競爭力大??;
[0034] 選擇具有最大MCH度量值的節(jié)點作為MCH;具體步驟為算法2。
[0035] 算法2:MCH選舉
[0036]下列步驟運(yùn)行在任一節(jié)點(如u)上 [0037]輸入?yún)?shù):所有的鄰居信息
[0038] 輸出結(jié)果:一個指示節(jié)點是否成為MCH的標(biāo)記變量(如su)
[0039] 步驟2.1:定義一個指示節(jié)點u是否成為MCH的標(biāo)記變量su,初始化變量su的值為 "undecided",針對L u,nei中每個表項(IDv,dv, u),初始化其對應(yīng)的標(biāo)記變量sv為 "undecided" ;使用公式(3)和(4)計算節(jié)點u的成簇半徑Ru,intra,并且使用公式(5)計算節(jié)點 u的MCH度量值MM U;
[0040] 步驟2.2:節(jié)點u初始化布爾變量FLAG^值為"真";
[0041] 步驟2.3:針對Lu,nei中每個表項(10^心,11)進(jìn)行判斷,若8 ¥的狀態(tài)為未選舉 "undecided"且dv,u不大于Ru,intra,則使用公式(5)計算節(jié)點v的MCH度量值MM V;若MM、于或 等于MMV,且IDU大于IDV,則置FLAG !的值為"假";
[0042]步驟2.4:若FLAG:的值為"真",則確定自身,即節(jié)點u成為MCH并更新su的狀態(tài)為選 舉為簇頭"decided MCH",并且廣播更新的~到所有鄰居,算法結(jié)束;否則若FLAG:的值為 "假",則設(shè)置定時器匕的值為τ和初始化布爾變量FLAG^值為"真",進(jìn)入到步驟2.5;
[0043]步驟2.5:在預(yù)設(shè)的時間τ內(nèi),如果節(jié)點u收到任一節(jié)點v的狀態(tài)變量sv,且狀態(tài)變量 sv的值為"decided MCH",則更新狀態(tài)變量su的值為"decided non-MCH",然后廣播更新的su 到所有鄰居,并且置FLAG2的值為"假";否則將保存在節(jié)點u處的狀態(tài)變量sv的初始值更新為 非族頭 "decided non-MCH";
[0044] 步驟2.6:若FLAG2的值為"真",則返回步驟2.2,否則,結(jié)束。
[0045] MCH選舉完成后,每個MCH節(jié)點u使用公式(6)計算它每個鄰居j的SCH度量值:
[0047] 從中選擇具有最大SCH度量值的節(jié)點充當(dāng)SCH,具體步驟為算法3。
[0048] 算法3:SCH選舉
[0049 ] 下列步驟運(yùn)行在任一MCH節(jié)點(如u)上 [0050]輸入?yún)?shù):所有的鄰居信息
[0051 ]輸出結(jié)果:SCH確認(rèn)消息步驟3.1:針對Lu,nei中每個表項(IDV,d v,u),初始化其對應(yīng) 的標(biāo)簽變量lv的狀態(tài)為未邀請"uninvited" ;
[0052]步驟3.2:定義變量SMmax用于保存所有非簇頭節(jié)點的SCH度量值中的最大值,定義 變量IDsc;h用于保存具有最大SCH度量值的非簇頭節(jié)點的標(biāo)識符;初始化SMmax為0,初始化 ID sch為系統(tǒng)(即節(jié)點運(yùn)行的應(yīng)用系統(tǒng)及其支撐環(huán)境)最大值;
[0053] 步驟3.3:針對1^1^中每個表項(10^心,11),若心, 11不大于1^1^且變量1¥的狀態(tài)為 "uninvited",則使用公式(6)計算節(jié)點v的SCH度量值SMV,U;
[0054] 如果SMmax小于或等于SMV,U,且IDV小于ID sch,則將SMv.jPIDv分別賦值給SMmax和 IDsch;否則SMmax和IDsch的值保持不變;
[0055]步驟3.4 :MCH節(jié)點u發(fā)送"SCH邀請消息"給標(biāo)識符為IDsch的鄰居;
[0056]步驟3.5:若節(jié)點u監(jiān)聽到一個尚未接受它的邀請的鄰居IDsc;h的"SCH接受消息",則 更新被邀請節(jié)點的標(biāo)簽變量的狀態(tài)為已邀請"invited",返回到步驟3.2;
[0057]步驟3.6:若節(jié)點u收到一個已接受它的邀請的鄰居IDsch的"SCH接受消息",則使用 最大發(fā)射功率廣播"SCH確認(rèn)消息"。
[0058]下列步驟運(yùn)行在任一非MCH節(jié)點(如v)上:
[0059]輸入?yún)?shù):所有的鄰居信息 [0060]輸出結(jié)果:SCH接受消息
[0061 ]步驟3.7:定義一個臨時變量(1_用于保存一個簇內(nèi)的非MCH節(jié)點與該簇內(nèi)MCH節(jié)點 之間距離的最小值;如果非MCH節(jié)點v收到任一MCH節(jié)點w的第一個"SCH邀請消息",則置dmin 等于dv,w,置ID?h等于IDW,設(shè)置定時器?ζ的值為ζ,進(jìn)入步驟3.8;
[0062] 步驟3.8:在預(yù)設(shè)的時間(內(nèi),若收到任一101節(jié)點11的"501邀請消息",并且(^小于 dmin,則置dmin等于d v, u,置IDmch等于 IDu ;
[0063] 步驟3.9:發(fā)送"SCH接受消息"給標(biāo)識符為IDmch的鄰居,設(shè)置定時器te的值為Θ并且 初始化布爾變量FLAG的值為"真",進(jìn)入步驟3.10;其中FLAG為控制標(biāo)識,通過控制標(biāo)識的狀 態(tài)控制算法的執(zhí)行步驟;
[0064]步驟3.10:在預(yù)設(shè)的時間Θ內(nèi),若從接受自己為SCH的MCH處收到"SCH確認(rèn)消息",則 置FLAG的值為"假";
[0065]步驟3.11:若FLAG的值為"真",則進(jìn)入算法4;若FLAG的值為"假",則跳過算法4。
[0066]在算法4中,主要進(jìn)行簇成員關(guān)系的確認(rèn),并附帶選舉一個簇成員充當(dāng)FCH。簇成員 的FCH度量值由公式(7)計算,具有最大FCH度量值的簇成員被選舉為FCH節(jié)點。
[0068] 在公式⑴中,F(xiàn)MW,V,^示節(jié)點w的FCH度量值,該值由MCH節(jié)點u計算,并與MCH節(jié)點u 對應(yīng)的SCH節(jié)點v的位置相關(guān);〇w,v,u是表示節(jié)點w,v,u三者中兩兩之間距離的均方差,可使用 公式(8)計算:
[0070] 在公式⑶中,dw,v,u表示dw,u,dw,v和d u,v這三個距離的平均值。
[0071] 算法4:簇成員關(guān)聯(lián)與FCH選舉
[0072] 下列步驟運(yùn)行在任一非簇頭節(jié)點(如w)上 [0073]輸入?yún)?shù):所有的鄰居信息
[0074]輸出結(jié)果:成員關(guān)聯(lián)請求消息步驟4.1 :針對非簇頭節(jié)點W的Lw, nei中每個表項(IDU , du,w),若標(biāo)記變量~的狀態(tài)為"decide d MCH",則初始化標(biāo)識變量匕為未請求 "unrequested";
[0075] 步驟4.2 :初始化變量dmir^PIDmah分別為系統(tǒng)的最大實數(shù)和最大整數(shù);
[0076] 步驟4 · 3:針對Lw,nei中每個表項(IDu,du,w),若fu等于"unrequested"且du,w小于或 等于dmin,且ID U小于IDmch,則將du, ?和瓜分別賦值給dmin和IDmch;
[0077] 步驟4.4:發(fā)送"成員關(guān)聯(lián)請求消息"給標(biāo)識符為IDmch的MCH節(jié)點;
[0078] 步驟4.5:若收到來自標(biāo)識符為IDKh的MCH節(jié)點y的"成員關(guān)聯(lián)列表消息",且發(fā)現(xiàn)自 身標(biāo)識符,即節(jié)點w的ID不在"成員關(guān)聯(lián)列表消息"中,并且重傳次數(shù)未超過預(yù)設(shè)值,則將f y 置為已請求"requested",然后返回步驟4.2〇
[0079 ]下列步驟運(yùn)行在任一MCH節(jié)點(如u,其對應(yīng)的SCH節(jié)點為v)上,
[0080] 輸入?yún)?shù):所有的鄰居信息
[0081] 輸出結(jié)果:成員關(guān)聯(lián)列表消息4.6:若收到來自任一非簇頭節(jié)點w的第一個"成員關(guān) 聯(lián)請求消息",則使用公式(7)計算節(jié)點w的FCH度量值FM W,v, u,并且定義變量FMmax用于保存所 有非簇頭節(jié)點的FCH度量值中的最大值,定義變量ID fc;h用于保存具有最大FCH度量值的非簇 頭節(jié)點的標(biāo)識符;置FMmax等于FMW, v,u,置IDfc;h等于IDW,并將IDW加入"成員關(guān)聯(lián)列表消息",設(shè) 置定時器U的值為Φ,進(jìn)入步驟4.7;否則如果新的非簇頭節(jié)想加入給定MCH所在簇,且簇成 員數(shù)量小于閾值,則更新TDMA方案以便接納新成員并加入"成員關(guān)聯(lián)列表消息",并且廣播 更新后的"成員關(guān)聯(lián)列表消息";
[0082]步驟4.7:在預(yù)設(shè)的時間Φ內(nèi),如果收到來自任一非簇頭節(jié)點X的"成員關(guān)聯(lián)請求消 息",若簇成員數(shù)量小于預(yù)設(shè)值,則將IDX加入"成員關(guān)聯(lián)列表消息"并且使用公式(7)計算節(jié) 點X的FCH度量值FM x,v,u;gFMmax小于或等于FMX, V,U,且IDX小于IDfch,則置FMmax等于FM X,V,U,置 IDfch等于IDX,進(jìn)入步驟4.8;
[0083]步驟4.8:將宣布10純?yōu)?01節(jié)點的信息加入"成員關(guān)聯(lián)列表消息"中,設(shè)計了01^方 案,并加入"成員關(guān)聯(lián)列表消息"并且廣播"成員關(guān)聯(lián)列表消息"。【設(shè)計TDMA方案,即新建 TDMA方案,也就是規(guī)定簇內(nèi)每個節(jié)點可以進(jìn)行發(fā)送操作的時間槽】
[0084] 在算法4中的步驟4.4,任一非簇頭節(jié)點給指定MCH節(jié)點發(fā)送"成員關(guān)聯(lián)請求消息" 時,需要將自己與指定MCH節(jié)點對應(yīng)的SCH節(jié)點的距離附帶上,以便于指定MCH節(jié)點為其計算 FCH度量值。
[0085] 在簇形成過程完成后,可以使用公式(9)來調(diào)整簇內(nèi)發(fā)射功率,包括FCH與MCH/SCH 之間的發(fā)射功率調(diào)整,以及簇內(nèi)成員與FCH之間的發(fā)射功率調(diào)整。
[0087] 其中,為節(jié)點j的接收靈敏度,可取值為-85毫分貝。
[0088] 算法5 :FCH的發(fā)射功率調(diào)整,即FCH與MCH/SCH之間的發(fā)射功率調(diào)整
[0089] 下列步驟運(yùn)行在任一MCH節(jié)點(如u)上
[0090] 輸入?yún)?shù):Nmax(-個預(yù)設(shè)常數(shù),用于控制算法結(jié)束)
[0091] 輸出結(jié)果:無步驟5.1 :MCH節(jié)點u初始化計數(shù)變量N為0;
[0092] 步驟5.2:發(fā)送"功率調(diào)整請求包"給同一簇內(nèi)的FCH節(jié)點w,并且設(shè)置定時器t。的值 為
[0093] 步驟5.3:在預(yù)設(shè)的時間σ內(nèi),若收到來自同一簇內(nèi)的FCH節(jié)點w的"功率調(diào)整響應(yīng) 包",則結(jié)束;
[0094] 步驟5.4:若N〈Nmax,則將變量Ν增1并返回步驟5.2;否則結(jié)束;
[0095]下列步驟運(yùn)行在任一 SCH節(jié)點(如ν)上
[0096] 輸入?yún)?shù):Nmax(-個預(yù)設(shè)常數(shù),用于控制算法結(jié)束)
[0097] 輸出結(jié)果:無步驟5.5:若監(jiān)聽到來自同一簇內(nèi)的MCH節(jié)點u的"功率調(diào)整請求包", 則初始化變量N為0;否則重新回到步驟5.5;
[0098] 步驟5.6:發(fā)送"功率調(diào)整請求包"給同一簇內(nèi)的FCH節(jié)點w并且設(shè)置定時器tP的值 為P,進(jìn)入步驟5.7;
[0099] 步驟5.7:在預(yù)設(shè)的時間P內(nèi),若收到同一簇內(nèi)的FCH節(jié)點w的"功率調(diào)整響應(yīng)包",則 結(jié)束;否則,進(jìn)入步驟5.8;
[0100] 步驟5.8:若N小于Nmax,則將變量N增1并返回步驟5.6;否則結(jié)束;
[0101 ]下列步驟運(yùn)行在任一 FCH節(jié)點(如w)上
[0102] 輸入?yún)?shù):所有的鄰居信息和一個很小的正實數(shù)ε
[0103] 輸出結(jié)果:調(diào)整后的能連通FCH與MCH/SCH的發(fā)射功率
[0104] 步驟5.9:若節(jié)點收到來自同一簇內(nèi)的MCH節(jié)點u的"功率調(diào)整請求包",則根據(jù)公式 (9)調(diào)整發(fā)射功率ptw, u并初始化布爾變量FLAG的值為"真",并且設(shè)置定時器U的值為Φ;進(jìn)入 步驟5.10;
[0105] 步驟5.10:在預(yù)設(shè)的時間Φ內(nèi),若收到來自同一簇內(nèi)的SCH節(jié)點ν的"功率調(diào)整請求 包",則根據(jù)公式(9)調(diào)整發(fā)射功率ρ\, ν;若ptw,u大于計算出來的ρ\,ν,則使用功率pt w,u廣播 "功率調(diào)整響應(yīng)包"并置FLAG的值為"假",否則使用功率ρ\,ν廣播"功率調(diào)整響應(yīng)包"并置 FLAG的值為"假";
[0106] 步驟5.11:若FLAG的值為"真",則使用功率ptw,u廣播"功率調(diào)整響應(yīng)包";
[0107] 步驟5.12:若節(jié)點W收到來自MCH節(jié)點u或SCH節(jié)點V的重復(fù)"功率調(diào)整請求包",此時 若FLAG為真,則將p\, u增加ε,并使用更新的功率ρ\, u廣播"功率調(diào)整響應(yīng)包";否則若FLAG為 假,且ptw,u大于pVv,則將pVu增加ε,并使用更新的功率pVu廣播"功率調(diào)整響應(yīng)包",若 FLAG為假,且于ρ\, ν,將ρ\,ν增加ε,并使用功率ρ\,ν廣播"功率調(diào)整響應(yīng)包"。
[0108] 算法6:簇內(nèi)成員的發(fā)射功率調(diào)整,即簇內(nèi)成員與FCH之間的發(fā)射功率調(diào)整
[0109] 下列步驟運(yùn)行在任一 FCH節(jié)點(如w)上
[0110] 輸入?yún)?shù):所有的鄰居信息 [0111]輸出結(jié)果:無
[0112] 步驟6.1:廣播"功率調(diào)整請求包"到所有簇內(nèi)成員;
[0113] 步驟6.2:若收到來自任一簇內(nèi)成員χ"功率調(diào)整響應(yīng)包",則進(jìn)入步驟6.3;
[0114] 步驟6.3:將該簇內(nèi)成員的標(biāo)識符IDX加入"功率確認(rèn)列表",并且設(shè)置定時器U的 值為Φ,進(jìn)入步驟6.4;
[0115]步驟6.4:在預(yù)設(shè)的時間Φ內(nèi),若收到來自任一簇內(nèi)成員y"功率調(diào)整響應(yīng)包",則將 該簇內(nèi)成員的標(biāo)識符IDy加入"功率確認(rèn)列表";
[0116] 步驟6.5:使用最大發(fā)射功率廣播"功率確認(rèn)列表";
[0117] 步驟6.6:若任一簇內(nèi)成員X的"功率調(diào)整響應(yīng)包"在時間段Φ后到達(dá),則返回步驟 6.3;
[0118] 下列步驟運(yùn)行在任一簇內(nèi)成員(如X)上
[0119] 輸入?yún)?shù):所有的鄰居信息和一個很小的正實數(shù)ε【ε可取十萬分之一】;
[0120] 輸出結(jié)果:調(diào)整后的能連通簇內(nèi)成員X與FCH的發(fā)射功率
[0121 ]步驟6.7 :若收到來自同一簇內(nèi)的FCH節(jié)點w的"功率調(diào)整請求包",則根據(jù)公式(9) 調(diào)整發(fā)射功率p\,w,并且使用功率ptx,w發(fā)送"功率調(diào)整響應(yīng)包"給FCH節(jié)點w;
[0122] 步驟6.8:若收到來自同一簇內(nèi)的FCH節(jié)點w的"功率確認(rèn)列表",并且如果自身,即 節(jié)點X的標(biāo)識符IDx不在"功率確認(rèn)列表"中,則將p\,w增加ε,并使用功率pt x,w發(fā)送"功率調(diào)整 響應(yīng)包"給FCH節(jié)點w,否則結(jié)束。
[0123] 在本發(fā)明中,若融合簇頭FCH先于主簇頭MCH死亡,則主簇頭可以承擔(dān)數(shù)據(jù)融合簇 頭的工作,無需重新成簇。由算法4描述可知,一個簇內(nèi)的成員本來就由該簇的主簇頭來確 認(rèn)的,這確保了簇成員與它們的主簇頭一定能連通。只有主簇頭死亡,簇結(jié)構(gòu)才會被破壞, 這時才需要重新成簇。
[0124] 有益效果
[0125] 本發(fā)明的有益效果具體體現(xiàn)在以下幾個方面:
[0126] 1)本發(fā)明能夠有效降低剩余能量值很大但最大通信覆蓋范圍很小的節(jié)點成為簇 頭的概率,并能根據(jù)網(wǎng)絡(luò)中節(jié)點最大通信覆蓋范圍分布的變化而自適應(yīng)地調(diào)整成簇范圍, 從而確保簇間總能連通。
[0127] 2)本發(fā)明減輕了主通信簇頭的負(fù)載、延長了其能量值高于閾值的持續(xù)時間,從而 降低了重成簇頻率、節(jié)省了重成簇開銷。
[0128] 3)本發(fā)明通過額外引入一個數(shù)據(jù)融合簇頭來分擔(dān)簇內(nèi)主通信簇頭的負(fù)載,以略微 增加的簇形成控制開銷取得了簇結(jié)構(gòu)壽命的較大提升。
【附圖說明】:
[0129]圖1為平均發(fā)射功率隨固定區(qū)域中節(jié)點數(shù)量的變化趨勢 [0130]圖2為平均路徑跳數(shù)隨固定區(qū)域中節(jié)點數(shù)量的變化趨勢
[0131] 圖3為網(wǎng)絡(luò)壽命隨固定區(qū)域中節(jié)點數(shù)量的變化趨勢
[0132] 圖4為網(wǎng)絡(luò)連通率隨固定區(qū)域中節(jié)點數(shù)量的變化趨勢
【具體實施方式】
[0133] 下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明。
[0134] 本發(fā)明(為方便表述,稱為ICV-M頂0)與CM頂0方案在如下四個方面進(jìn)行仿真比較: (1)非簇頭節(jié)點的平均發(fā)射功率;(2)非簇頭節(jié)點到基站的平均路徑跳數(shù);(3)網(wǎng)絡(luò)壽命(以 第一個主通信簇頭死亡時,該簇內(nèi)成員向基站發(fā)送數(shù)據(jù)的輪數(shù)為度量單位;在每一輪中,每 個非簇頭節(jié)點可以發(fā)送5個數(shù)據(jù)包,每個包長度為2000比特);(4)網(wǎng)絡(luò)連通率(以已連通的 非簇頭節(jié)點數(shù)與總節(jié)點數(shù)之比來度量)。簇間通信模式的選擇要滿足公式(10)計算的值最 小化要求。
[0136]在公式(10)中,< 和Rb分別表示在簇間鏈路x-y上傳輸1比特數(shù)據(jù)所消耗的總能 量和數(shù)據(jù)傳輸比特率,dx,y和ax,y*別是簇間鏈路χ-y的長度和路徑損耗指數(shù),M t和Mr分別是 發(fā)射天線和接收天線的數(shù)量,y(Mt,Mr)是四種通信模式之一的信噪比(Signal to Noise Rat io,SNR)閾值,&,C2,C3,C4是特定電路參數(shù),可由公式(11)得到。
[0138]公式(11)中的參數(shù)含義及取值參見表1描述。鏈路x-y上發(fā)射節(jié)點X和接收節(jié)點y 的每比特數(shù)據(jù)能耗分別由公式(12)和(13)計算得到。
[0141] 簇內(nèi)通信的節(jié)點能耗也使用公式(12)和(13)計算,但由于通信距離較短,通常采 用四種通信模式之一的SIS0模式。
[0142] CMIM0方案的成簇半徑分別取100、80和60米等三種值,因此分別表示為CMIM0-L、 CM頂〇-M、CM頂0-S。在本發(fā)明中,參數(shù)y、w e和wr分別取0.33、0.5和0.5。無線傳感器節(jié)點隨機(jī) 部署在800米的方形平面區(qū)域內(nèi),一個基站位于該區(qū)域的最右邊的中央,其它仿真參數(shù)見表 1〇
[0143]表1仿真參數(shù)設(shè)置
[0146] 采用0MNeT++4.1網(wǎng)絡(luò)仿真器得到圖1至圖4所示結(jié)果。圖1顯示了平均發(fā)射功率受 節(jié)點數(shù)量影響的變化趨勢。從中可以看到,三種CMIMO方案幾乎不受影響,原因在于所有簇 內(nèi)成員都是分別采用了固定的成簇半徑對應(yīng)的功率。本發(fā)明方案的平均發(fā)射功率隨節(jié)點數(shù) 量增多而略呈減小趨勢,這是因為本發(fā)明方案對簇內(nèi)成員的發(fā)射功率根據(jù)其距簇頭的距離 進(jìn)行了優(yōu)化,且當(dāng)同一區(qū)域內(nèi)節(jié)點數(shù)量更多時,距離簇頭更近的節(jié)點越多,因而簇內(nèi)成員的 平均發(fā)射功率會更小一些。
[0147] 本發(fā)明方案的平均發(fā)射功率明顯小于CMIM0-L方案,原因在于本發(fā)明方案的平均 簇半徑明顯小于CMHTO-L方案,且簇內(nèi)成員的發(fā)射功率也進(jìn)行了優(yōu)化調(diào)整,其平均值小于成 簇半徑對應(yīng)的發(fā)射功率。但與CMM0-S方案相比,優(yōu)勢明顯縮小,這是因為本發(fā)明方案的平 均簇半徑明顯大于CMnro-s方案。本發(fā)明方案與CMM0-M方案的成簇半徑比較接近,因此,這 兩者的平均發(fā)射功率更具可比性。從中可以看到,本發(fā)明方案明顯勝過CMM0-M方案,并且 優(yōu)勢隨節(jié)點數(shù)的增多而更加明顯。
[0148] 圖2顯示節(jié)點數(shù)量的變化對平均路徑跳數(shù)的影響很小,但是成簇半徑卻對平均路 徑跳數(shù)有較大影響??梢钥吹剑?dāng)采用更小的成簇半徑時,平均路徑跳數(shù)更小一些(如 CMIM0-S方案),這是因為更小的成簇半徑會產(chǎn)生更多的簇,在主通信簇頭覆蓋能力分布比 較一致的條件下,網(wǎng)絡(luò)中存在更多的簇意味著每個簇的主通信簇頭可能擁有更多鄰居主通 信簇頭,因而可能存在到基站的更多和更短路徑。本發(fā)明方案的平均路徑跳數(shù)在四種比較 方案中是最短的,這是因為其它三種方案選擇的主通信簇頭的最大通信覆蓋能力可能不理 想,如選擇了剩余能量值很充足但最大通信覆蓋能力很弱的節(jié)點充當(dāng)主簇頭,導(dǎo)致簇間鄰 居數(shù)量的減少,因而到基站路徑的選擇余地減少。
[0149] 圖3比較了本發(fā)明方案和三種cmhto方案所生成的簇結(jié)構(gòu)的使用壽命。從中可以看 到,本發(fā)明方案生成的簇結(jié)構(gòu)的使用壽命最長,這是因為本發(fā)明方案能夠使得網(wǎng)絡(luò)中各節(jié) 點的能耗更加均衡,特別是數(shù)據(jù)融合由一個專門的融合簇頭負(fù)責(zé),因而均衡了同一簇內(nèi)各 個簇頭之間的負(fù)載,避免了主通信簇頭過早死亡。在其它三種方案中,成簇半徑最小的方案 (如CMIM0-S方案)的網(wǎng)絡(luò)壽命相對最長,這主要是因為小的成簇半徑導(dǎo)致的簇增多有利于 均衡網(wǎng)絡(luò)能耗。
[0150]圖4顯示了四種方案的網(wǎng)絡(luò)連通性都達(dá)到了 1〇〇%。即使這樣,cmhto方案由于需要 事先指定成簇半徑,當(dāng)指定值過大時,網(wǎng)絡(luò)連通性可能無法達(dá)到100%。主要原因是,第一, 當(dāng)CMM0方案的成簇半徑很大時,確保簇間連通的平均簇間通信距離也將很大,然而,CM頂0 方案依據(jù)最大RBL值來選擇主通信簇頭,可能存在選擇的主通信簇頭盡管RBL值最大但通信 覆蓋范圍很小,因而無法確保簇間一定連通。第二,更大的成簇半徑會增加通信覆蓋能力弱 的節(jié)點無法與簇頭連通的概率,尤其是當(dāng)這樣的節(jié)點位于簇的邊緣區(qū)域時。本發(fā)明方案能 根據(jù)網(wǎng)絡(luò)中節(jié)點最大通信覆蓋能力分布的實時信息自適應(yīng)確定成簇半徑,無需事先指定, 因而總能確保網(wǎng)絡(luò)連通性達(dá)到了 100%。
[0151] 參考文獻(xiàn)
[0152] [1]D .N.Nguyen and Μ.Krunz.A cooperative clustering protocol for energy constrained networks. In Proceedings of the 8th IEEE Communications Society Conference on Sensor,Mesh and Ad Hoc Communications and Networks (SEC0N),Jun·2011,pp·574-582·
[0153] [2]Krunz M.,Siam M.Z.,Nguyen D.N..Clustering and power management for virtual ΜΙΜΟ communications in wireless sensor networks,Ad Hoc Networks,2013, 11(5):1571-1587.
[0154] [3]H.Sajid , A.Anwarul, and H.P. Jong . Energy efficient virtual ΜΙΜΟ communication for wireless sensor networks.Telecommun,Systems,vol.42,nos.1-2, pp.139-149,2009.
[0155] [4]H. Xu ,L. Huang ,C. Qiao ,Y. Zhang , and Q. Sun . Bandwidth-power aware cooperative multipath routing for wireless multimedia sensor networks,IEEE Trans.Wireless Commun., issue 99,pp.l-12Feb.13,2012.
【主權(quán)項】
1. 一種成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征在于,每個簇至多 由三個簇頭,即主簇頭MCH、從簇頭SCH、融合簇頭FCH負(fù)責(zé)管理,其中,F(xiàn)CH負(fù)責(zé)簇內(nèi)數(shù)據(jù)匯聚 與融合,MCH和SCH組成協(xié)同通信"節(jié)點對"負(fù)責(zé)簇間通信,SCH根據(jù)簇間通信環(huán)境決定是否參 與簇間通信; 成簇方法包括簇形成、簇內(nèi)發(fā)射功率調(diào)整及簇間發(fā)射功率調(diào)整與通信模式選擇三個階 段。2. 根據(jù)權(quán)利要求1所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,在簇形成階段依次執(zhí)行鄰居發(fā)現(xiàn)、MCH選舉、SCH選舉、簇成員關(guān)聯(lián)與FCH選舉四個算 法; 走乂如下消息格式以便于相互父換?曰息:[IDt,et,Pt, max,dt, max,Lt,nei = {···,(IDi, (^),~}],其中,瓜,^,?^,心,_和1^-分別是節(jié)點七的標(biāo)識符、剩余電池量、最大發(fā)射 功率、近似最大通信覆蓋范圍和鄰居列表;節(jié)點t的鄰居列表L t,nei中的表項(IDi,di,t)由該 鄰居i的標(biāo)識符ID 1和它到節(jié)點t的距離cU,t組成;任意兩個節(jié)點i和j間的距離du可使用公 式Π )得至Il:(丨, 在公式(1)中,是節(jié)點i向節(jié)點j發(fā)射數(shù)據(jù)時的發(fā)射功率,, j是節(jié)點i向節(jié)點j發(fā)射數(shù) 據(jù)時節(jié)點j的接收功率;Gt和Gr分別為發(fā)射天線和接收天線增益;ht和hr分別為發(fā)射天線和 接收天線高度;λ為載波信號波長;L為系統(tǒng)損耗因子;(1_ 88。胃表示交叉距離,使用公式(2) 計算:(2): 所述鄰居發(fā)現(xiàn)算法為: 在任一節(jié)點u上運(yùn)行下列步驟: 步驟1.1:輸入控制參數(shù)Nmax;初始化變量Une3i為空,du, max和計數(shù)變量N分別為O; 步驟1.2:節(jié)點u使用CSMA/CA競爭接入信道,若成功接入到信道,則用最大發(fā)射功率 ?11,_廣播消息"[1011,611,?11,_,(1 11,_,1^1^]",設(shè)置定時器。的值為八,并且初始化布爾變 量FLAGjPFLAG 2的值分別為"假",進(jìn)入步驟1.3;若沒有成功接入信道,則重新進(jìn)行步驟1.2; 步驟1.3 :在預(yù)設(shè)的時間Δ內(nèi),若節(jié)點U收到任一節(jié)點V的消息" [ID V,e V,P V, maX,d V, maX, Lv,nel]",且V不在Unel中,則記錄接收功率p 1:v,u并使用公式⑴計算距離dv,u.,并且將(ID v, dv,u)添加到Unei中;若du, max小于計算出來的dv,u,則將dv,u賦值給du, max,并且置FLAG1的值為 "真"; 步驟1.4:在預(yù)設(shè)的時間Δ內(nèi),若節(jié)點U收到任一節(jié)點V的消息" [ID V,e V,P V, maX,d V, maX, Lv,nei]",且u不在Lv,nei中,則置FLAG2的值為"真"; 步驟1.5:若FLAG2的值為"真",則將N的值增加1; 步驟1.6:若N小于Nmax且FLAG1的值或者FLAG2的值中任一個為真,則返回步驟1.2;否則 結(jié)束,并輸出節(jié)點u的所有鄰居的標(biāo)識符; 所述MCH選舉算法基于執(zhí)行鄰居發(fā)現(xiàn)算法得到的節(jié)點u的所有鄰居的標(biāo)識符信息,使用 公式(3)和(4)計算節(jié)點u的成簇半徑Ru,intra,并且使用公式(5)計算節(jié)點u的MCH度量值MM u; 選擇具有最大MCH度量值的節(jié)點作為MCH;(3) (5) 在公式(3)中,Ru,^表示節(jié)點u鄰域范圍內(nèi)所有節(jié)點的近似最大通信覆蓋范圍的平均值, I表示節(jié)點u的鄰居列表中的鄰居數(shù)量;若節(jié)點u成為MCH,它將使用公式(4)計算它所 在簇的簇半徑RU,lntra;在公式(4)中,μ是一個折扣系數(shù),取值范圍為0〈μ〈1,通常μ近似取1/ 3;在公式(5)中,W f3和Wr分別是能量權(quán)值和通信覆蓋范圍權(quán)值,其取值范圍為0〈We3〈l,0〈 Wr〈 I,We3+Wr = I; errf和drrf分別是參考能量值和參考覆蓋范圍值; 所述SCH選舉算法為:在MCH選舉完成后,每個MCH節(jié)點u使用公式(6)計算它每個鄰居j 的SCH度量值,從中選擇具有最大SCH度量值的節(jié)點充當(dāng)SCH;(6) 所述簇成員關(guān)聯(lián)與FCH選舉算法,用于進(jìn)行簇成員關(guān)系的確認(rèn),并由公式(7)計算簇成 員的FCH麼量佶·詵港旦有昜大FCH度量值的簇成員作為FCH節(jié)點;(7) 在公式(7)中,F(xiàn)Mw,v,^示節(jié)點w的FCH度量值,該值由MCH節(jié)點u計算,并與MCH節(jié)點u對應(yīng) 的SCH節(jié)點V的位置相關(guān);〇w,v,u是表示節(jié)點w,v,u三者中兩兩之間距離的均方差。3.根據(jù)權(quán)利要求2所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,所述MCH選舉算法包括以下步驟: 在任一節(jié)點u上運(yùn)行下列步驟: 步驟2.1:輸入節(jié)點u的所有鄰居信息;定義一個指示節(jié)點u是否成為MCH的標(biāo)記變量su, 初始化變量Su的值為未選舉"undecided",針對Unei中每個表項(IDv,d v,u),初始化其對應(yīng) 的標(biāo)記變量Sv為"undecided" ;使用公式(3)和(4)計算節(jié)點u的成簇半徑Ru,intra,并且使用公 式(5)計算節(jié)點u的MCH度量值MMu; 步驟2.2:節(jié)點u初始化布爾變量FLAG^值為"真"; 步驟2.3:針對Lu, nei中每個表項(IDv,dv, u)進(jìn)行判斷,若Sv的狀態(tài)為"undecided"且dv, u不 Jk ~f Ru ,intra, 則使用公式(5)計算節(jié)點V的MCH度量值MMv;若MMu小于或等于MMv,且I Du大于 IDV,則置FLAG :的值為"假"; 步驟2.4:若FLAG1的值為"真",則確定自身,即節(jié)點u成為MCH并更新~的狀態(tài)為選舉為 簇頭"decided MCH",并且廣播更新的&到所有鄰居,算法結(jié)束;否則若FLAG1的值為"假",則 設(shè)置定時器L的值為τ和初始化布爾變量FLAG2的值為"真",進(jìn)入到步驟2.5; 步驟2.5:在預(yù)設(shè)的時間τ內(nèi),如果節(jié)點u收到任一節(jié)點V的狀態(tài)變量sv,且狀態(tài)變量Sv的 值為"decided MCH",則更新狀態(tài)變量&的值為非簇頭"decided non-MCH",然后廣播更新 的^到所有鄰居,并且置FLAG2的值為"假";否則將保存在節(jié)點u處的狀態(tài)變量 Sv的初始值更 新為 "decided non-MCH"; 步驟2.6:若FLAG2的值為"真",則返回步驟2.2,否則,結(jié)束。4. 根據(jù)權(quán)利要求3所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,所述SCH選舉算法包括以下步驟: (A) 在任一 MCH節(jié)點u上運(yùn)行下列步驟: 步驟3.1:輸入節(jié)點u的所有鄰居信息,節(jié)點u針對U nei中每個表項(IDv,dv, u ),初始化其 對應(yīng)的標(biāo)簽變量Iv的狀態(tài)為未邀請"uninvited" ; 步驟3.2:定義變量SMmax用于保存所有非簇頭節(jié)點的SCH度量值中的最大值,定義變量 IDsch用于保存具有最大SCH度量值的非簇頭節(jié)點的標(biāo)識符;初始化SMmax為0,初始化ID sch為 系統(tǒng)最大值; 步驟3.3:針對1^,1^中每個表項(10^心,11),若心, 11不大于1^,^^且變量1¥的狀態(tài)為 "uninvited",則使用公式(6)計算節(jié)點V的SCH度量值SMV,U; 如果SMmax小于或等于SMv, u,且IDv小于IDsch,則將SMv, JPIDv分別賦值給SMmax和IDsch;否 則SMmax和IDsch的值保持不變; 步驟3.4 :MCH節(jié)點u發(fā)送"SCH邀請消息"給標(biāo)識符為IDsd1的鄰居; 步驟3.5:若節(jié)點u監(jiān)聽到一個尚未接受它的邀請的鄰居IDsc;h的"SCH接受消息",則更新 被邀請節(jié)點的標(biāo)簽變量的狀態(tài)為已邀請"invited",返回到步驟3.2; 步驟3.6:若節(jié)點u收到一個已接受它的邀請的鄰居IDsch的"SCH接受消息",則使用最大 發(fā)射功率廣播"SCH確認(rèn)消息"; (B) 在任一非MCH節(jié)點V上運(yùn)行下列步驟: 步驟3.7 :輸入節(jié)點V的所有鄰居信息;定義一個臨時變量^^用于保存一個簇內(nèi)的非 MCH節(jié)點與該簇內(nèi)MCH節(jié)點之間距離的最小值;如果非MCH節(jié)點V收到任一 MCH節(jié)點w的第一個 "SCH邀請消息",則置dmin等于dv,w,置ID? h等于IDW,設(shè)置定時器U的值為ζ,進(jìn)入步驟3.8; 步驟3.8:在預(yù)設(shè)的時間ζ內(nèi),若收到任一MCH節(jié)點u的"SCH邀請消息",并且dv,u小于dmin, 則置dmin等于dv,u,置IDmdi等于IDu; 步驟3.9:發(fā)送"SCH接受消息"給標(biāo)識符為IDmch的鄰居,設(shè)置定時器te的值為Θ并且初始 化布爾變量FLAG的值為"真",進(jìn)入步驟3.10; 步驟3.10:在預(yù)設(shè)的時間Θ內(nèi),若從接受自己為SCH的MCH處收到"SCH確認(rèn)消息",則置 FLAG的值為"假"; 步驟3.11:若FLAG的值為"真",則進(jìn)行后續(xù)的簇成員關(guān)聯(lián)與FCH選舉算法;若FLAG的值 為"假",則跳過后續(xù)的簇成員關(guān)聯(lián)與FCH選舉算法。5. 根據(jù)權(quán)利要求4所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,所述簇成員關(guān)聯(lián)與FCH選舉算法包括以下步驟: (A)在任一非簇頭節(jié)點w上運(yùn)行下列步驟: 步驟4.1:輸入節(jié)點w的所有鄰居信息,針對非簇頭節(jié)點w的Lw,ne3i中每個表項(ID u,du,w), 若標(biāo)記變量Su的狀態(tài)為"decided MCH",則初始化標(biāo)識變量fu為未請求"unrequested" ; 步驟4.2:初始化變量cUdPID^h分別為系統(tǒng)的最大實數(shù)和最大整數(shù); 步驟4.3:針對Lw,nei中每個表項(IDu,du,w),若fu等于"unrequested"且du,w小于或等于 drnin,且 IDu小于 IDmch,則將du, ?和 IDAIj賦值給dmin和 IDmch; 步驟4.4:發(fā)送"成員關(guān)聯(lián)請求消息"給標(biāo)識符為IDmA的MCH節(jié)點; 步驟4.5:若收到來自標(biāo)識符為IDKh的MCH節(jié)點y的"成員關(guān)聯(lián)列表消息",且發(fā)現(xiàn)自身標(biāo) 識符,即節(jié)點w的ID不在"成員關(guān)聯(lián)列表消息"中,并且重傳次數(shù)未超過預(yù)設(shè)值,則將fy置為 已請求"requested",然后返回步驟4.2; (B)在任一 MCH節(jié)點上運(yùn)行下列步驟: 設(shè)MCH節(jié)點為節(jié)點u,其對應(yīng)的SCH節(jié)點為V; 步驟4.6:輸入節(jié)點u的所有鄰居信息;若收到來自任一非簇頭節(jié)點w的第一個"成員關(guān) 聯(lián)請求消息",則使用公式(7)計算節(jié)點w的FCH度量值FMw,V, u,并且定義變量FMmax用于保存所 有非簇頭節(jié)點的FCH度量值中的最大值,定義變量IDm用于保存具有最大FCH度量值的非簇 頭節(jié)點的標(biāo)識符;置FM max等于FMw,v,u,置IDfd1等于ID W,并將IDw加入"成員關(guān)聯(lián)列表消息",設(shè) 置定時器U的值為Φ,進(jìn)入步驟4.7;否則如果新的非簇頭節(jié)想加入給定MCH所在簇,且簇成 員數(shù)量小于閾值,則更新TDMA方案以便接納新成員并加入"成員關(guān)聯(lián)列表消息",并且廣播 更新后的"成員關(guān)聯(lián)列表消息"; 步驟4.7:在預(yù)設(shè)的時間Φ內(nèi),如果收到來自任一非簇頭節(jié)點X的"成員關(guān)聯(lián)請求消息", 若簇成員數(shù)量小于預(yù)設(shè)值,則將IDx加入"成員關(guān)聯(lián)列表消息"并且使用公式(7)計算節(jié)點X 的FCH度量值FM x, v,u; SFMmax小于或等于FMx, v,u,且IDx小于IDfc;h,則置FM max等于FMx, v,u,置 IDf Ch等于IDx,進(jìn)入步驟4.8; 步驟4.8:將宣布IDfd1為FCH節(jié)點的信息加入"成員關(guān)聯(lián)列表消息"中,設(shè)計TDMA方案,并 加入"成員關(guān)聯(lián)列表消息"并且廣播"成員關(guān)聯(lián)列表消息"。6. 根據(jù)權(quán)利要求5所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,簇形成階段完成后,使用公式(9)調(diào)整簇內(nèi)發(fā)射功率,包括調(diào)整FCH與MCH/SCH之間的 索·?固敕丨)丨M德由也M [今問的分MtIt索.(9) 其中,pf為節(jié)點j的接收靈敏度。7. 根據(jù)權(quán)利要求6所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,F(xiàn)CH與MCH/SCH之間的發(fā)射功率調(diào)整包括以下步驟: (A)在任一 MCH節(jié)點u上運(yùn)行下列步驟: 步驟5.1:輸入控制參數(shù)Nmax; MCH節(jié)點u初始化計數(shù)變量N為O; 步驟5.2:發(fā)送"功率調(diào)整請求包"給同一簇內(nèi)的FCH節(jié)點w,并且設(shè)置定時器t。的值為〇; 步驟5.3:在預(yù)設(shè)的時間σ內(nèi),若收到來自同一簇內(nèi)的FCH節(jié)點w的"功率調(diào)整響應(yīng)包",則 結(jié)束; 步驟5.4:若N〈Nmax,則將變量N增1并返回步驟5.2;否則結(jié)束; (B) 在任一 SCH節(jié)點V上運(yùn)行下列步驟: 步驟5.5:輸入控制參數(shù)Nmax;若監(jiān)聽到來自同一簇內(nèi)的MCH節(jié)點u的"功率調(diào)整請求包", 則初始化變量N為O;否則重新回到步驟5.5; 步驟5.6:發(fā)送"功率調(diào)整請求包"給同一簇內(nèi)的FCH節(jié)點w并且設(shè)置定時器tP的值為P,進(jìn) 入步驟5.7; 步驟5.7 :在預(yù)設(shè)的時間P內(nèi),若收到同一簇內(nèi)的FCH節(jié)點w的"功率調(diào)整響應(yīng)包",則結(jié) 束;否則,進(jìn)入步驟5.8; 步驟5.8:若N小于Nmax,則將變量N增1并返回步驟5.6;否則結(jié)束; (C) 在任一 FCH節(jié)點w上運(yùn)行下列步驟: 步驟5.9:輸入節(jié)點w的所有鄰居信息和一個很小的正實數(shù)ε;若節(jié)點收到來自同一簇內(nèi) 的MCH節(jié)點u的"功率調(diào)整請求包",則根據(jù)公式(9)調(diào)整發(fā)射功率Ptw,u并初始化布爾變量 FLAG的值為"真",并且設(shè)置定時器U的值為Φ;進(jìn)入步驟5.10; 步驟5.10:在預(yù)設(shè)的時間Φ內(nèi),若收到來自同一簇內(nèi)的SCH節(jié)點V的"功率調(diào)整請求包", 貝帳據(jù)公式(9)調(diào)整發(fā)射功率ρ\,V;若p\,u大于計算出來的p\,v,則使用功率p\,u廣播"功率 調(diào)整響應(yīng)包"并置FLAG的值為"假",否則使用功率ρ\,V廣播"功率調(diào)整響應(yīng)包"并置FLAG的 值為"假"; 步驟5.11:若FLAG的值為"真",則使用功率ρ\,u廣播"功率調(diào)整響應(yīng)包"; 步驟5.12 :若節(jié)點w收到來自MCH節(jié)點u或SCH節(jié)點V的重復(fù)"功率調(diào)整請求包",此時若 FLAG為真,則將ρ\, u增加ε,并使用更新的功率Ptw, u廣播"功率調(diào)整響應(yīng)包";否則若FLAG為 假,且Ptw,u大于pVv,則將PVu增加ε,并使用更新的功率PVu廣播"功率調(diào)整響應(yīng)包",若 FLAG為假,且ρ\,4、于P tw,v,將ρ\,V增加ε,并使用功率ρ\,V廣播"功率調(diào)整響應(yīng)包"。8.根據(jù)權(quán)利要求7所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇方法,其特征 在于,簇內(nèi)成員與FCH之間的發(fā)射功率調(diào)整方法包括以下步驟: (A) 在任一 FCH節(jié)點w上運(yùn)行下列步驟: 步驟6.1:輸入節(jié)點w的所有鄰居信息;廣播"功率調(diào)整請求包"到所有簇內(nèi)成員; 步驟6.2:若收到來自任一簇內(nèi)成員X "功率調(diào)整響應(yīng)包",則進(jìn)入步驟6.3; 步驟6.3:將該簇內(nèi)成員的標(biāo)識符IDx加入"功率確認(rèn)列表",并且設(shè)置定時器U的值為 Φ,進(jìn)入步驟6.4; 步驟6.4:在預(yù)設(shè)的時間Φ內(nèi),若收到來自任一簇內(nèi)成員y"功率調(diào)整響應(yīng)包",則將該簇 內(nèi)成員的標(biāo)識符IDy加入"功率確認(rèn)列表"; 步驟6.5:使用最大發(fā)射功率廣播"功率確認(rèn)列表"; 步驟6.6:若任一簇內(nèi)成員X的"功率調(diào)整響應(yīng)包"在時間段Φ后到達(dá),則返回步驟6.3; (B) 在任一簇內(nèi)成員節(jié)點X上運(yùn)行下列步驟: 步驟6.7 :輸入節(jié)點X的所有鄰居信息和正實數(shù)ε ;若收到來自同一簇內(nèi)的F C H節(jié)點w的 "功率調(diào)整請求包",則根據(jù)公式(9)調(diào)整發(fā)射功率p\,w,并且使用功率p\,w發(fā)送"功率調(diào)整響 應(yīng)包"給FCHfAw; 步驟6.8:若收到來自同一簇內(nèi)的FCH節(jié)點w的"功率確認(rèn)列表",并且如果自身,即節(jié)點X 的標(biāo)識符IDx不在"功率確認(rèn)列表"中,則將p\,w增加ε,并使用功率Ptx,w發(fā)送"功率調(diào)整響應(yīng) 包"給FCH節(jié)點w,否則結(jié)束。9.根據(jù)權(quán)利要求1~8中任一項所述的成簇范圍與簇間通信模式雙自適應(yīng)的改進(jìn)成簇 方法,其特征在于,若融合簇頭FCH先于主簇頭MCH死亡,則主簇頭承擔(dān)融合簇頭FCH的工作。
【文檔編號】H04W84/18GK106028416SQ201610287272
【公開日】2016年10月12日
【申請日】2016年5月3日
【發(fā)明人】桂勁松, 周凱, 余瓊, 鄧曉衡
【申請人】中南大學(xué)