吳佳楠,賀曼利,邸煥雙,2,謝廣明
(1.長春大學網絡安全學院,吉林長春,130000;2.長春理工大學法學院,吉林長春,130000;3.北京大學工學院湍流與復雜系統(tǒng)國家重點實驗室,智能仿生設計實驗室,北京,100871)
21世紀是人類開發(fā)利用海洋的世紀,而水下機器人是人類開發(fā)、利用海洋的主要手段之一[1]。自主式水下航行器(autonomous underwater vehicle,AUV)被廣泛用于如海洋勘探與測深、搜索和救援、環(huán)境監(jiān)測和考古調查等任務[2?4],而具有自主操縱器系統(tǒng)的干預AUV 被用于自???、搜索和取回物體等任務[5]。
多AUV 具有高度并行性、冗余性的優(yōu)點,是單個AUV 所無法比擬的[6],組網是多AUV 更好的合作十分重要的舉措之一,然而,由于水下環(huán)境的特殊性,傳統(tǒng)通信方法難以適用于水下。目前的水下通信方法主要有水下聲通信、水下光通信和水下電場通信等。
1)水下聲通信是水下通信中使用最廣泛的技術,可以實現(xiàn)長達數(shù)十千米的長距離連接[7?8]。但是聲學鏈路的傳輸數(shù)據(jù)速率相對較低[9],且聲學鏈路有嚴重的通信延遲,不能支持大量數(shù)據(jù)實時交換,聲學收發(fā)器通常體積大,成本高且耗能大并不經濟[10]。此外,海洋生物利用聲波完成通信和導航[11],聲學技術也會影響海洋生物的通信和生活。
2)與聲學方法相比,光學方法具有高傳輸數(shù)據(jù)速率,低鏈路延遲的特點,可以實現(xiàn)水下大容量數(shù)據(jù)傳輸。但是極易受到海水、懸浮顆粒、浮游生物等對光波的吸收衰減、散射等因素的影響,該方法的使用環(huán)境受到限制[12]。
3)水下電場通信速率高、延遲小,且相比于聲學和光學通信來說既不需要體積大的收發(fā)器,又不受水流、水質等水下環(huán)境因素的影響。
短距離無線高數(shù)據(jù)速率水下通信系統(tǒng)變得越來越重要,研究人員模擬OFDM 調制光進行無線水下通信,實現(xiàn)短距離無線高數(shù)據(jù)傳輸[13]。FRATER 等[14]通過仿真比較了在大量小型AUV 集群中使用電磁和聲波信號獲得的網絡吞吐量,發(fā)現(xiàn)對于相同的原始信道比特率,使用電磁信號比使用聲信號獲得的吞吐量最多可以高1個量級。
與水聲通信相比,利用水下電場實現(xiàn)水下近距離的無線通信具有一定的優(yōu)勢[15]。水下電場通信的原理是當發(fā)射端電流形成的交變電磁場的變化頻率滿足準靜態(tài)場條件時,放置其附近在一定范圍內的接收端能檢測到電勢差變化,從而通過濾波、放大電路還原出發(fā)送端的信息[16]。由于發(fā)射電極板周圍必須形成電場,接收電極板才能檢測到電勢差,而且接收電極板與發(fā)送電極板之間的角度也對電勢差有影響,通信功耗較大。同時由于電場強度與其距離的立方成反比,在距離遠的地方,電場信號微弱,在具有噪聲干擾的情況下難以有效檢測電場信號,只有在近距離情況下,才具備通信的可能性[15]。且電場通信本身會受到實際水域的電導率影響,低電導率海水的電場幅度要明顯高于高電導率海水的電場幅度[17]。
北京大學機器魚課題組[18?20]受弱電魚啟發(fā)設計的仿箱鲀機器魚使用水下電場進行通信,其通信距離能達到3~10 m。水下電場通信不僅速率高,延遲小,而且所需設備體積較小,適合小型AUV搭配使用。但是大量AUV 利用水下電場通信時,通信距離限制是不得不考慮的一個問題,同時對于小型AUV 來說,由于水下環(huán)境復雜,在完成任務的過程中充電是十分困難的,能量表征了網絡的生命周期?;诖耍搿胺执亍彼枷?,將網絡劃分為簇,可以方便網絡的資源管理,靈活地分配各種資源,可擴展性好,適用于大規(guī)模網絡。分簇機制減少了節(jié)點之間的控制信息開銷和路由開銷,更加容易控制拓撲結構的變化,降低了節(jié)點能量消耗,增加了網絡容量和生命周期[21?22]。分簇算法大量應用于無線傳感器網絡(wireless sensor network,WSN)中,如減小匯聚點簇首壓力,考慮能量均衡的非均勻分簇思想[23?26],除此之外,針對無線自組織網絡的多權值成簇算法也非常多[27?28]。
前期研究重點多是水下通信技術、分簇算法研究以及AVU 的形狀、姿態(tài)和運動控制等,未考慮到實際水域環(huán)境電導率影響水下電場通信的AUV 通信控制。本文作者提出一種考慮實際水域電導率和節(jié)點剩余能量的水下電場通信自適應調整多權值成簇算法。使用節(jié)點度、通信成本和剩余能量3個參數(shù)綜合考量節(jié)點權值,在電場通信距離的限制之下,將大群分成小簇,簇首管理控制簇內部事務,網關節(jié)點負責轉發(fā)簇與簇間的消息,此外還增加副簇首,在簇首退出網絡時,副簇首迅速代替簇首,減少重新選簇首期間的消息傳遞次數(shù),節(jié)省能量消耗。同時,設計水域電導率和節(jié)點剩余能量組合而成的開關S,針對網絡環(huán)境改變,系統(tǒng)能夠根據(jù)S 和相應門限值進行自適應調整,降低系統(tǒng)的能量消耗,完成任務。
假設網絡在部署時,節(jié)點都處于同一平面內,隨機布置N個節(jié)點,其應用場景是節(jié)點統(tǒng)一從出發(fā)點到達目的點。用Vi來表示第i個節(jié)點,相應的節(jié)點集為V={V1,V2,V3,…,Vn},|V|=N,假設:
1)所有的節(jié)點都是同構的,具備數(shù)據(jù)融合的功能,每個節(jié)點都有一個唯一的標識(ID);
2)鏈路是對稱的,Vi到Vj的鏈路狀態(tài)與Vj到Vi的鏈路狀態(tài)一致。
同時,為網絡中的節(jié)點設計4種角色。
1)簇首:用于領導和決策整個簇的行為;
2)副簇首:便于快速更換簇首;
3)網關:用于簇間交流的節(jié)點;
4)成員:簇內的普通成員。
網絡的拓撲結構如圖1所示,由圖1可見:每個簇由角色分別為簇首、副簇首、網關和普通成員的多個節(jié)點構成,其中,簇首負責簇內通信;副簇首在簇首能量耗盡或者失聯(lián)的情況下迅速成為新簇首,縮短系統(tǒng)重新成簇的時間并減少在重新成簇期間發(fā)送的大量報文,減少能量消耗;網關節(jié)點則是通過“簇A?網關節(jié)點?簇B”的模式實現(xiàn)簇間通信。
圖1 分簇路由協(xié)議拓撲結構Fig.1 Cluster routing protocol topology
算法主要分成3個部分,即簇形成、簇更新和維護、自適應調整方案。
簇形成階段包括簇首選舉、副簇首和網關節(jié)點的確立。節(jié)點成簇流程如圖2所示。選用節(jié)點可用度Dv、節(jié)點的通信成本Cv和節(jié)點的消耗能量Ev這3個參數(shù)組成節(jié)點的權值。為了避免參數(shù)單位不同而導致的某一參數(shù)對簇首選舉起主導作用的問題,統(tǒng)一對3個參數(shù)進行歸一化處理。根據(jù)節(jié)點的權值選舉出簇首,周圍的節(jié)點入簇并得到自己的角色,形成簇。此外,還增加了副簇首提高系統(tǒng)穩(wěn)定性,網關節(jié)點的設計也導致整個網絡互聯(lián)互通。相比較基于權值的成簇算法,本算法的優(yōu)勢如下:
圖2 簇形成流程圖Fig.2 Flowchart of cluster formation
1)節(jié)點理想度可進行自適應調整,通過網絡中存活節(jié)點的度數(shù),取其平均值為節(jié)點理想度,計算簡單方便。
2)引入了副簇首的概念,在簇區(qū)域發(fā)生改變時,副簇首能迅速成為簇首,減少引發(fā)的重新成簇過程中節(jié)點發(fā)送的消息數(shù)量,縮短成簇時間,減少能耗。
2.1.1 節(jié)點權值計算
1)可用度計算。節(jié)點Vi確定鄰居節(jié)點數(shù)di,并獲取鄰居節(jié)點的信息(定義一跳返回的節(jié)點為鄰居節(jié)點)。
對每節(jié)點Vi的可用度,計算其度數(shù)與節(jié)點自適應理想度δ之差,進行歸一化處理記為
式中:di為節(jié)點Vi的度數(shù);δ為節(jié)點Vi自適應的理想度數(shù)。
若節(jié)點理想度大,則形成的簇數(shù)目會減少,但有可能會造成網絡擁堵,同時,簇首的網絡負載也會較大,縮短簇首的壽命;若節(jié)點理想度小,則形成的簇數(shù)目較多,有可能造成網絡資源的嚴重浪費。本算法設計的節(jié)點自適應理想度δ不同于之前大多數(shù)人所考慮到節(jié)點理想度數(shù),而是通過節(jié)點的平均節(jié)點數(shù)和節(jié)點自身能量,計算節(jié)點理想度數(shù),稱之為節(jié)點自適應理想度數(shù),記為
式中:n為存活的總節(jié)點個數(shù)。
2)通信成本計算。對節(jié)點Vi,計算其到所有鄰居節(jié)點的距離的總和C(i)v,并進行歸一化處理,這表征節(jié)點的覆蓋范圍,以此表示節(jié)點的通信成本。
式中:N(vi)為節(jié)點Vi的鄰居節(jié)點表;area(vi)為節(jié)點的通信范圍;xi和yi為節(jié)點的二維坐標;xj和yj為節(jié)點鄰居節(jié)點的二維坐標;R為節(jié)點的通信半徑。
3)剩余能量計算。不同于以往簡單地將節(jié)點充當簇首的時間相加,根據(jù)網絡的通信機制并考慮節(jié)點消耗能量的方式,計算節(jié)點剩余能量,除了節(jié)點均有的監(jiān)聽和移動的能量消耗,簇首節(jié)點的能量消耗與簇內成員通信之外,增加了簇首與簇外網關節(jié)點之間的通信能量消耗,相應地,網關節(jié)點需要考慮簇內簇首和簇外簇首這2類簇首的通信能量消耗,而普通成員節(jié)點只考慮與簇首之間的通信能量消耗。同樣對剩余能量做歸一化處理,記為
式中:Ec為節(jié)點Vi的初始能量;tm,em和dm分別為節(jié)點第m次擔當簇首的時間、能量消耗和可計算消耗度;tn,en和dn分別為節(jié)點第n次擔當網關的時間、能量消耗和可計算消耗度數(shù);tk和ek分別為節(jié)點第k次擔當普通節(jié)點的時間和能量消耗。
計算節(jié)點Vi的組合權重W(i)v:
式中:w1,w2和w3分別為節(jié)點Vi的可用度、通信成本以及剩余能量的權重。
2.1.2 簇首選舉
1)節(jié)點初始化。節(jié)點計算自身權重,初始化狀態(tài)為“未成簇”,并發(fā)送Hello 廣播報文,與相鄰節(jié)點建立連接。
2)未成簇節(jié)點構成備選簇首表。
3)查詢備選簇首表中的節(jié)點是否符合選舉簇首的標準,即比較該節(jié)點與鄰居中可用度不為0的節(jié)點的權值;若為最大,且自身可用度不為0,則更改角色為“簇首”,并將狀態(tài)修改為“已入簇”。
4)從備選簇首表刪除該節(jié)點信息,轉步驟3),直至備選簇首表為空時轉步驟5)。
5)未成簇節(jié)點加入鄰居節(jié)點中通信代價較小、ID 較小且可用度不為0 的簇首所在簇,并標記為“已入簇”,相應簇首可用度減1,若所有鄰居簇首可用度均為0,則自身成簇,更改角色為“簇首”,并將狀態(tài)修改為“已入簇”。
6)重復步驟5),直到所有節(jié)點成簇為止。
2.1.3 副簇首和網關節(jié)點確立
當所有節(jié)點入簇之后,需要確定副簇首和網關節(jié)點。
1)簇首查找成員表,選擇簇內權值第二小的節(jié)點作為副簇首,節(jié)點角色標記為副簇首并將此信息同步給簇內成員;
2)簇首查找鄰居節(jié)點表,若表中存在屬于其他簇的節(jié)點,則簇首選擇其中通信代價較小的節(jié)點作為網關節(jié)點,以“簇首A?網關節(jié)點?簇首B”模式實現(xiàn)簇間通信。
簇的更新和維護分為2種情況:1)節(jié)點能量耗盡時,網絡拓撲發(fā)生改變引起的簇維護;2)新節(jié)點進入簇首通信范圍之內引起的簇更新。
2.2.1 節(jié)點能量耗盡
節(jié)點能量耗盡時需要退出簇,節(jié)點的鄰居節(jié)點需從鄰居表中刪除其信息,系統(tǒng)的網絡拓撲將發(fā)生改變。此時,節(jié)點的角色不同會導致算法有所差別。
1)若節(jié)點是簇首,則副簇首成為新簇首,接管在其通信范圍內的所有原簇首成員,通信范圍外的成員節(jié)點則觸發(fā)重新成簇過程,加入新簇;
2)若節(jié)點是副簇首,則簇首選擇新副簇首;
3)若節(jié)點是網關節(jié)點,則此節(jié)點所在簇間通信鏈路選擇新網關節(jié)點;
4)若節(jié)點是普通節(jié)點,則簇首及其鄰居節(jié)點刪除此節(jié)點的信息。
2.2.2 新節(jié)點入簇
1)在新節(jié)點進入簇首通信范圍之內時會引起簇更新,網絡拓撲結構相應發(fā)生變化。則新節(jié)點與簇首比較權值,若新節(jié)點權值小于簇首,則新節(jié)點成為新簇首,原簇首成為副簇首,網絡更新信息。轉步驟4);
2)若新節(jié)點權值大于簇首小于副簇首,則新節(jié)點成為新副簇首,原副簇首回歸為普通節(jié)點,網絡更新信息。轉步驟3);否則,新節(jié)點入簇為普通成員節(jié)點,網絡更新信息。
3)收到更新信息的簇首判斷是否更新簇間通信鏈路。
水下環(huán)境復雜多變,節(jié)點在水下不可能總是處于理想情況,節(jié)點勢必會受到水下環(huán)境的影響。水下電場通信本身會受到實際水域的電導率影響,低電導率海水的電場要明顯高于高電導率海水的電場。在實際水域中若電導率突然變化,節(jié)點網絡拓撲可能會發(fā)生變化。
圖3所示為簡化的電場通信物理模型[16],2 塊接收電極板P1和P2的電勢差E(r,q)為
圖3 簡化的電場通信物理模型Fig.3 Simplified physical model of electric field communication
式中:和分別為發(fā)射電極附近P點極坐標下徑向和方位角向的單位電場強度;d1為2個發(fā)送電極板之間的距離;d2為2 個接收電極板之間的距離;r為P點到2個發(fā)送電極板中點的距離;θ為P點的極坐角;I0為流經發(fā)射電極的電流。
從式(8)可見:水體電導率σ和節(jié)點間的距離r對接收電極板的電勢差有影響,本文主要從實際水域的電導率和節(jié)點剩余能量出發(fā),考慮節(jié)點的自適應調整方案。在網絡運行過程中,簇首節(jié)點會根據(jù)當前的電導率和自身剩余能量級別grade按照相應的權重得出一個開關值,簇首依據(jù)此開關值判斷此時是否要縮小簇規(guī)模,即斷開通信代價較大的節(jié)點,減少簇總體能量消耗,延長網絡生命周期。本文將電導率和節(jié)點剩余能量結合起來,引入g為分級參數(shù),g與節(jié)點剩余能量有關,表征此時的能量級別,將電導率和能量級別按照一定權重關系組成一個開關S,如式(9)所示。
式中:S為此時簇內通信代價,簇首通過判斷S衡量通信代價,采取相應措施;wa和wb分別為電導率和節(jié)點間距離的權重;Ec為節(jié)點剩余能量;Eori為節(jié)點初始能量;σc為鹽度精確地為35‰的海水的電導率;Eori為節(jié)點的初始能量。
自適應調整的具體措施如下:
1)簇首計算開關S;
2)簇首判斷S與通信代價級別T1和T2大?。?/p>
3)若S≤T1,則保持原有通信狀態(tài)不變;若T13 仿真實驗
實驗以Matlab 為平臺,驗證本文算法的有效性以及自適應調整的合理性。實驗分為2 個部分,第1 部分驗證算法的功能,第2 部分選取在WSN中應用最廣泛的低功耗自適應集簇分層型協(xié)議(low energy adaptive clustering hierarchy algorithm,LEACH)算法與本文算法進行比較,LEACH 協(xié)議是基于簇的路由協(xié)議,簇頭負責簇內其他傳感器節(jié)點的數(shù)據(jù)傳輸任務,而且LEACH還采用節(jié)點輪換當選簇頭的輪轉法選擇簇頭,均衡能耗。本文使用網絡生命周期和網絡能量消耗2個指標,驗證在水下電場條件下算法在延長生命周期和降低能量消耗方面的性能。
實驗中節(jié)點分為4種角色:簇首、副簇首、網關節(jié)點和普通節(jié)點。實驗環(huán)境為節(jié)點在長×寬為200 m×200 m的區(qū)域內移動,節(jié)點最大通信距離為10 個單位長度,節(jié)點初始能量為1 J,簇首節(jié)點單位時間內與單位成員節(jié)點之間以及屬于其他簇的網關節(jié)點的通信消耗均為0.002 J,普通成員節(jié)點單位時間的能量損耗為0.001 J,網關節(jié)點單位時間內與簇首節(jié)點之間的通信損耗為0.002 J。具體參數(shù)配置見表1。
表1 參數(shù)配置表Table 1 parameter configuration table
根據(jù)以上參數(shù)配置,進行仿真實驗。
1)簇形成。以點代表節(jié)點,節(jié)點初始分布的區(qū)域長×寬為25 m×25 m,圖4所示為簇形成圖。由圖4可見:100 個節(jié)點分成5 個簇,其中,簇首管理成員節(jié)點,實現(xiàn)簇內通信,簇間通信則由“簇首A?網關節(jié)點?簇首B”模式實現(xiàn)。
圖4 簇形成圖Fig.4 Cluster formation graph
2)簇首更換。圖5所示為不同時刻下網絡同一部分簇結構圖。由圖5可見:t2時刻,原簇首能量耗盡退出簇,當原副簇首成為新簇首時,此簇完成簇首更換。
圖5 不同時刻下網絡同一部分簇結構圖Fig.5 Cluster structure diagram of the same part of network at different times
3)網絡生命周期。圖6所示為網絡中隨時間的死亡節(jié)點個數(shù)變化。由圖6可見:隨著電導率增加,不論是LEACH算法還是本文算法網絡中節(jié)點死亡速率均有所增加,這說明電導率增大會減小網絡的生命周期。LEACH 協(xié)議的死亡節(jié)點數(shù)在大概45 r時極速上升,而本文算法的節(jié)點死亡率始終保持較和緩的趨勢,相較而言本文算法更加穩(wěn)定。這是因為LEACH每輪都需要執(zhí)行選舉簇首和重新成簇的操作,且簇首是隨機選取的,節(jié)點能量消耗巨大,因而節(jié)點死亡數(shù)量短期內急劇增多。本文算法的簇首選取綜合考慮節(jié)點度、覆蓋范圍和節(jié)點剩余能量,能量較小的節(jié)點難以競爭成為簇首,副簇首的設計能夠有效減少簇首退出簇時重新成簇過程中的消息數(shù)量,降低了系統(tǒng)能量消耗??梢?,本文算法能有效延長網絡的生命周期。
圖6 死亡節(jié)點數(shù)隨時間的變化Fig.6 Number variation of dead nodes over time
圖7所示為不同電導率下有無自適應調整策略的網絡生命周期對比。由圖7可見:在2組不同電導率實驗下,有自適應調整策略的網絡相較于無自適應調整策略的網絡生命周期更長,這是由于采用了自適應調整策略之后,在能量消耗較高時簇首決策斷開多余成員節(jié)點縮小簇規(guī)模,減少發(fā)包數(shù)量以降低能量消耗,延長了網絡的生命周期。
圖7 不同電導率下有無自適應調整策略的網絡生命周期對比Fig.7 Comparison of network life cycle with or without adaptive strategy under different conductivity
4)網絡能量消耗。圖8所示為網絡的剩余能量和時間的關系,由圖8可見:隨著時間延長,網絡剩余能量逐漸減少。這是因為節(jié)點持續(xù)不斷工作,消耗能量。不論是LEACH算法還是本文算法,在電導率升高情況下,能量消耗速率均有所增加。但使用LEACH算法的網絡能量消耗率極高,而本文算法雖然在前期能量消耗率較大,但是相較于LEACH 算法更平緩。本文算法在成簇期間消息數(shù)量較多,但是一旦成簇,簇穩(wěn)定之后能量消耗有所減緩,不需像LEACH 那樣每輪都要重新成簇,且隨機選擇簇首,消耗大量能量。
圖8 網絡剩余能量隨時間變化Fig.8 Remaining network energy versus time
圖9所示為不同電導率下有無自適應調整策略的網絡剩余能量對比。由圖9可見:增加自適應調整策略之后,系統(tǒng)能量消耗方面也有較好表現(xiàn),這是因為本文算法使用自適應調整方案,縮小簇規(guī)模以維持簇內良好通信和降低能量消耗的策略起到效果,有效延長網絡生命周期。
圖9 不同電導率下有無自適應調整策略的網絡剩余能量對比Fig.9 Comparison of remaining network energy with or without adaptive strategy under different conductivity
1)提出了一種考慮實際水域電導率和節(jié)點剩余能量的水下電場通信的自適應多權值成簇算法。
2)為網絡中的節(jié)點設計了簇首、副簇首、網關和普通成員4 種角色,其中簇首管理簇內事務,副簇首提高簇穩(wěn)定性和減小能耗,網關節(jié)點加強網絡連通性。簇首選舉時考量多個關鍵參數(shù),簇形成之后,系統(tǒng)能夠實現(xiàn)簇內通信和簇間通信。
3)根據(jù)電導率和剩余能量提出了自適應調整方案,在網絡通信環(huán)境較差時,降低因維持簇結構而導致的大開銷,減少能量消耗,提高網絡生命周期。
4)在不同電導率環(huán)境下,該算法較穩(wěn)定,能實現(xiàn)較好分簇效果,達到節(jié)省能量、延長網絡生命周期的目的。