廖棟森,祝長鴻,黃業(yè)恒,覃團(tuán)發(fā)
(廣西大學(xué) a.計算機(jī)與電子信息學(xué)院;b.多媒體通信與網(wǎng)絡(luò)技術(shù)重點(diǎn)實(shí)驗(yàn)室,南寧530004)
無線體域網(wǎng)(Wireless Body Area Networks,WBAN)是由監(jiān)測人體健康狀態(tài)和人體所處環(huán)境的傳感器節(jié)點(diǎn)(Sensor Node,SN)、Hub和遠(yuǎn)程服務(wù)中心所組成的網(wǎng)絡(luò)[1-2]。SN根據(jù)執(zhí)行功能不同安裝在固定的人體位置,人體在活動過程中SN位置頻繁變化使得WBAN路由協(xié)議性能嚴(yán)重下降。現(xiàn)有的路由協(xié)議集中于優(yōu)化人體處于相對穩(wěn)定狀態(tài)時WBAN的功耗,延長網(wǎng)絡(luò)的壽命。文獻(xiàn)[3]提出了基于代價函數(shù)的路由策略,通過輪轉(zhuǎn)策略和代價函數(shù)選擇距離最近和剩余能量最多的節(jié)點(diǎn)承擔(dān)中繼任務(wù),平衡負(fù)載。文獻(xiàn)[4]提出了一種鏈路感知和能量有效的路由策略,通過選擇最小跳數(shù)和最小路徑損耗的路由傳輸數(shù)據(jù)。文獻(xiàn)[5]考慮人體處于靜態(tài)狀態(tài)下網(wǎng)絡(luò)能耗最優(yōu)化時節(jié)點(diǎn)的安裝位置,通過安裝中繼節(jié)點(diǎn),優(yōu)化WBAN的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),延長節(jié)點(diǎn)可持續(xù)工作時間。文獻(xiàn)[6]提出了基于貪心策略的鏈路和熱點(diǎn)感知的自適應(yīng)路由算法,在SigFox網(wǎng)絡(luò)基礎(chǔ)上考慮了人體健康狀態(tài)限制和節(jié)點(diǎn)能量限制。文獻(xiàn)[7]提出了基于熵和模糊邏輯的低特定波段吸收率(Specific Absorption Rate,SAR)路由策略,通過使用動態(tài)簇頭使網(wǎng)絡(luò)具有更小的計算復(fù)雜度。文獻(xiàn)[8]通過對節(jié)點(diǎn)剩余能量和鏈路質(zhì)量選擇最佳中繼節(jié)點(diǎn),考慮了模糊處理,模糊干擾和解模糊過程。文獻(xiàn)[9]提出了基于網(wǎng)格的多中繼路由算法,使得每個檢測節(jié)點(diǎn)的負(fù)載達(dá)到平衡并降低了簇頭的負(fù)載。
上述文獻(xiàn)提出的路由算法提高了WBAN的服務(wù)質(zhì)量,但文獻(xiàn)[5]提出的拓?fù)鋬?yōu)化是基于人體靜態(tài)條件下WBAN的拓?fù)浣Y(jié)構(gòu),實(shí)用性較小,而文獻(xiàn)[6,8-9]均通過構(gòu)建優(yōu)化模型來得出最佳路由策略,計算復(fù)雜度高,對數(shù)據(jù)的實(shí)時性敏感度高,缺乏對人體處于動態(tài)時有針對性的優(yōu)化。因此,本文在上述文獻(xiàn)的基礎(chǔ)上,針對WBAN拓?fù)浣Y(jié)構(gòu)頻繁發(fā)生變化導(dǎo)致服務(wù)質(zhì)量下降和網(wǎng)絡(luò)性能衰減等問題,在人體形態(tài)學(xué)基礎(chǔ)上對拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化,通過添加中繼節(jié)點(diǎn)的方式建立WBAN的主干網(wǎng),并在此基礎(chǔ)上設(shè)計了一種適用于人體處于動態(tài)時的WBAN路由策略(Routing Protocol Based on Topology Optimization and Link Awareness,R-TOLA),包含了網(wǎng)絡(luò)拓?fù)涓兄突阪溌犯兄穆酚蓞f(xié)議。仿真結(jié)果驗(yàn)證了該方案的有效性。
WBAN網(wǎng)絡(luò)模型如圖1所示。N個傳感器節(jié)點(diǎn)S={p1,p2,…,pi,…,pn} 根據(jù)功能不同安裝于不同的人體部位,pi表示其中第i個傳感器節(jié)點(diǎn)。SN由于體積小,攜帶的能量和計算資源有限,對數(shù)據(jù)進(jìn)行粗處理后,傳輸至Hub。Hub一般易于充能且具有較高的運(yùn)算和存儲能力,可以承擔(dān)復(fù)雜的計算任務(wù)。數(shù)據(jù)經(jīng)過Hub壓縮、編碼等處理后通過Internet傳輸至醫(yī)院并備份于數(shù)據(jù)中心。
圖1 WBAN網(wǎng)絡(luò)模型Fig.1 Network model of WBAN
區(qū)別于自由空間中的通信模型,WBAN不同位置節(jié)點(diǎn)之間由于衣服、肢體動作等影響,通信信道具有不同的特征,可分為植入-植入、植入-體外、體表-體表、體表-體外4種信道。本文主要研究體表-體表信道,可劃分為視距(Line of Sight,LOS)信道和非視距(Non-line of Sight,NLOS)信道,信道模型如下所示:
(1)
式中:LP為路徑損耗,單位dB;d0表示觀測節(jié)點(diǎn)和Hub之間的參考距離;d表示觀測節(jié)點(diǎn)和Hub的當(dāng)前距離;f表示頻率;c表示光速;X表示均值為0的高斯隨機(jī)變量;σ表示X的方差;n表示路徑損耗指數(shù)。路徑損耗指數(shù)根據(jù)SN和Hub之間是否為視距傳輸有不同的取值范圍,在LOS條件下,n取3~4;在NLOS條件下,n取5~7.4。
設(shè)p為S中任一觀測節(jié)點(diǎn),其有效通信范圍為Rp,通信范圍內(nèi)包含的所有節(jié)點(diǎn)構(gòu)成有序節(jié)點(diǎn)向量ORp,ORp(k)表示距離p第k遠(yuǎn)的節(jié)點(diǎn)。為區(qū)分節(jié)點(diǎn)之間的連接狀態(tài),本文以xi,j表示有序向量ORi中的節(jié)點(diǎn)i和節(jié)點(diǎn)j建立連接,使用pk,N表示節(jié)點(diǎn)k和Hub直接進(jìn)行通信,使用fi,j表示中繼節(jié)點(diǎn)之間相互通信,如式(2)~(4)所示:
(2)
(3)
(4)
WBAN匯聚節(jié)點(diǎn)一般作為與外部通信的接口,能量充足,且易于更換電池,故考慮WBAN網(wǎng)絡(luò)整體功耗時忽略Hub功耗。WBAN功耗包括數(shù)據(jù)采集功耗、數(shù)據(jù)處理功耗和節(jié)點(diǎn)間通信功耗。由于節(jié)點(diǎn)感知和處理數(shù)據(jù)所消耗的能量遠(yuǎn)小于節(jié)點(diǎn)傳輸數(shù)據(jù)所消耗的能量,為簡化傳輸模型,本文只考慮節(jié)點(diǎn)之間數(shù)據(jù)傳輸帶來的能量損耗,忽略節(jié)點(diǎn)在采集和處理數(shù)據(jù)過程中所產(chǎn)生的能量損耗。
數(shù)據(jù)傳輸分為接收數(shù)據(jù)能量損耗和發(fā)送數(shù)據(jù)能量損耗,分別用ERx和ETx來表示。發(fā)送數(shù)據(jù)包含了放大器消耗的能量和電路板固有能量損耗,故有以下等式成立:
(5)
ERx=Erx-elec×k
(6)
式中:di,j表示節(jié)點(diǎn)i和j之間的距離;nij表示損耗參數(shù);EAmp表示發(fā)送單位比特數(shù)據(jù)放大器所消耗的能量;Etx-elec表示發(fā)送單位比特信息電路的固有損耗;Erx-elec表示接收單位比特信息電路的固有損耗;k表示節(jié)點(diǎn)i和j之間發(fā)送的數(shù)據(jù)總量。
本文對WBAN每一時刻的路由進(jìn)行建模,并以最小化系統(tǒng)能耗為優(yōu)化目標(biāo)。WBAN網(wǎng)絡(luò)總能耗分為節(jié)點(diǎn)和中繼節(jié)點(diǎn)通信的能量損耗、中繼節(jié)點(diǎn)和中繼節(jié)點(diǎn)的通信能量損耗、中繼節(jié)點(diǎn)和Hub通信的能量損耗。
根據(jù)1.1~1.4節(jié)的模型,節(jié)點(diǎn)發(fā)送給中繼節(jié)點(diǎn)的能耗為
(7)
式中:riN表示節(jié)點(diǎn)i需要發(fā)送給匯聚節(jié)點(diǎn)的數(shù)據(jù)量。
中繼節(jié)點(diǎn)接收傳感器信息的總能耗為中繼節(jié)點(diǎn)接收數(shù)據(jù)能耗和中繼節(jié)點(diǎn)發(fā)送數(shù)據(jù)產(chǎn)生的能耗,則有
(8)
式中:fiN為具有中繼功能的節(jié)點(diǎn)所發(fā)送的給中繼節(jié)點(diǎn)的數(shù)據(jù)。
具有中繼功能的檢測節(jié)點(diǎn)和直接發(fā)送給匯聚節(jié)點(diǎn)的檢測節(jié)點(diǎn)發(fā)送數(shù)據(jù)消耗的能量為
(9)
式中:tiN為節(jié)點(diǎn)直接發(fā)送給Hub的數(shù)據(jù)總量,并忽略Hub收集數(shù)據(jù)的能耗。
故優(yōu)化的總體目標(biāo)為式(10),并滿足約束條件(11)~(15)。
Min{E=Esensor-relay+Erelay-relay+Esensor-hub-Tx}
(10)
式(11)限制節(jié)點(diǎn)最多連接一個中繼節(jié)點(diǎn)或Hub,且節(jié)點(diǎn)之間不能循環(huán)發(fā)送:
(11)
式(12)限制當(dāng)一個節(jié)點(diǎn)作為承擔(dān)中繼任務(wù)時,其接收數(shù)據(jù)和發(fā)送數(shù)據(jù)之差為節(jié)點(diǎn)自身產(chǎn)生數(shù)據(jù)量:
(12)
式(13)表示發(fā)送給Hub的數(shù)據(jù)等于各個檢測節(jié)點(diǎn)所產(chǎn)生的數(shù)據(jù):
(13)
式(14)表示直接發(fā)送給Hub的數(shù)據(jù)等于中繼節(jié)點(diǎn)發(fā)送給節(jié)點(diǎn)的數(shù)據(jù)和節(jié)點(diǎn)自身產(chǎn)生的數(shù)據(jù):
(14)
式(15)對變量進(jìn)行取值約束:
xij,wij,piN∈{0,1},riN>0
(15)
由以上約束條件可知,系統(tǒng)能耗最小化模型是集合覆蓋和多商品流問題的特例,是NP-hard類型問題,問題規(guī)模隨著節(jié)點(diǎn)數(shù)的增加呈指數(shù)型增加,在實(shí)際運(yùn)行過程中只具有理論上的指導(dǎo)意義。因此,本文首先對WBAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化,解決節(jié)點(diǎn)之間的距離和信道無法預(yù)測的問題;然后在WBAN拓?fù)鋬?yōu)化的基礎(chǔ)上,提出網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)感知算法和基于鏈路感知的路由策略。
優(yōu)化問題(10)的限制條件決定了SN和Hub節(jié)點(diǎn)之間的通信路徑具有隨機(jī)性,SN既承擔(dān)中繼功能又承擔(dān)數(shù)據(jù)感知功能,這使得節(jié)點(diǎn)可能由于頻繁的肢體動作、衣服遮蔽等因素使得節(jié)點(diǎn)和Hub之間通信路徑損耗較大,網(wǎng)絡(luò)壽命和服務(wù)質(zhì)量下降較快。為提高節(jié)點(diǎn)的壽命,限制SN承擔(dān)中繼功能;為提高網(wǎng)絡(luò)的服務(wù)質(zhì)量,通過安裝固定中繼節(jié)點(diǎn)的方式優(yōu)化網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),使得肢體某一部位的節(jié)點(diǎn)盡可能和固定的中繼節(jié)點(diǎn)進(jìn)行通信。圖2為WBAN拓?fù)鋬?yōu)化示意圖。
圖2 拓?fù)鋬?yōu)化示意Fig.2 Schematic of topology optimization
圖2(a)表示W(wǎng)BAN節(jié)點(diǎn)分布圖,具有以下特點(diǎn):①WBAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)根據(jù)人體的動作而不斷改變,節(jié)點(diǎn)之間的通信關(guān)系由NLOS到LOS,或LOS到NLOS轉(zhuǎn)變頻率很高,節(jié)點(diǎn)的路徑損耗系數(shù)變化大;②WBAN中的節(jié)點(diǎn)受限于SAR,節(jié)點(diǎn)的通信范圍有限;③WBAN節(jié)點(diǎn)體積小,所攜帶的能量少,若頻繁通信,節(jié)點(diǎn)可持續(xù)工作時間短。
由此可知,拓?fù)浣Y(jié)構(gòu)頻繁變化、節(jié)點(diǎn)攜帶能量有限是WBAN路由機(jī)制復(fù)雜和能耗成本高的主要原因。為提供穩(wěn)定且有效的通信服務(wù),本文通過添加中繼節(jié)點(diǎn)的方式建立WBAN主干網(wǎng)。安裝的固定中繼節(jié)點(diǎn)的候選位置應(yīng)滿足以下條件:一是固定的中繼節(jié)點(diǎn)和Hub之間的路徑損耗系數(shù)變化頻率應(yīng)盡可能地小;二是固定的中繼節(jié)點(diǎn)和其所在范圍內(nèi)的節(jié)點(diǎn)之間的路徑損耗系數(shù)變化應(yīng)盡可能地小。
由人體的形態(tài)可知,人體在運(yùn)動和靜止?fàn)顟B(tài)過程中,軀干所在的位置和形態(tài)是相對穩(wěn)定的,其變化的頻率遠(yuǎn)小于其他身體部分變化的幅度。由圖2(b)可知,其大致相當(dāng)于一個長方形,并按照虛線劃分可將其分為a,b,c,d 4個部分,而人體活動范圍最大的部分為手臂和腿部,因此,軀干分別與手臂和腿部的連接位置具有候選中繼位置的特點(diǎn),如圖中黑色圓圈所示。圖中候選中繼位置與對應(yīng)區(qū)域中大部分位置為LOS信道,同時候選中繼位置處的節(jié)點(diǎn)和Hub的通信信道均為LOS信道,路徑損耗小,傳輸質(zhì)量較好。由此本文將圖2(b)中4個黑色節(jié)點(diǎn)和Hub構(gòu)成的拓?fù)浣Y(jié)構(gòu)稱為WBAN主干網(wǎng),可抽象為圖2(c)所示的拓?fù)浣Y(jié)構(gòu),其中虛線表示SN和中繼節(jié)點(diǎn)可相互連接。優(yōu)化后的拓?fù)浣Y(jié)構(gòu)可表示人體在頻繁活動時,節(jié)點(diǎn)通過主干網(wǎng)絡(luò)傳輸數(shù)據(jù)可得到的最低服務(wù)質(zhì)量。
為進(jìn)一步優(yōu)化WBAN性能,本文提出R-TOLA路由策略,包含網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)感知算法和基于鏈路感知的路由算法。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)感知算法用于初始化網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)Hub對網(wǎng)絡(luò)拓?fù)渲泄?jié)點(diǎn)能量和位置的感知;基于鏈路感知的路由算法在保證服務(wù)質(zhì)量的前提下,優(yōu)化WBAN網(wǎng)絡(luò)的能耗和網(wǎng)絡(luò)壽命。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)感知算法基于泛洪算法,主要目的是對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行初始化,為第4節(jié)中基于鏈路感知的路由算法提供準(zhǔn)確的某一時刻的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、節(jié)點(diǎn)狀態(tài),即承擔(dān)校準(zhǔn)功能。該算法分為3個階段:第一個階段為節(jié)點(diǎn)感知階段,對某一時刻可直接和Hub通信的節(jié)點(diǎn)進(jìn)行感知;第二個階段為節(jié)點(diǎn)發(fā)現(xiàn)階段,通過Hub和已經(jīng)感知到的節(jié)點(diǎn)通過中繼的方式發(fā)現(xiàn)某一時刻未能和Hub直接進(jìn)行通信的節(jié)點(diǎn);第三個階段為節(jié)點(diǎn)確認(rèn)階段,對發(fā)現(xiàn)的節(jié)點(diǎn)進(jìn)行位置和狀態(tài)確認(rèn)。
Hub以最大功率向所有節(jié)點(diǎn)廣播HELLO()數(shù)據(jù)包,數(shù)據(jù)包攜帶的信息包含了Hub的狀態(tài)和信號發(fā)射功率的大小。SN在接收到數(shù)據(jù)包后,解析出數(shù)據(jù)包中所包含的數(shù)據(jù),并根據(jù)接收信號強(qiáng)度(Receive Signal Strength Indicator,RSSI)來估計檢測節(jié)點(diǎn)和Hub的距離。節(jié)點(diǎn)在接收到HELLO()數(shù)據(jù)包后,將自身的狀態(tài)和位置向Hub匯報。由于Hub只有一個接收機(jī),不同節(jié)點(diǎn)在發(fā)送ACK()數(shù)據(jù)包時可能出現(xiàn)信號重疊,后到達(dá)的ACK()數(shù)據(jù)包被丟棄,以及距離較遠(yuǎn)的節(jié)點(diǎn)傳輸ACK()數(shù)據(jù)包到達(dá)Hub時可能由于距離較近的節(jié)點(diǎn)干擾,Hub無法準(zhǔn)確地接收數(shù)據(jù)包。為解決上述問題,本文假設(shè)Hub以slot為周期發(fā)送HELLO()數(shù)據(jù)包,具體過程如圖3所示。
圖3 節(jié)點(diǎn)感知示意Fig.3 Schematic of node perception
步驟1在第一個slot期間,信道質(zhì)量較好且能夠被Hub準(zhǔn)確接收的P個節(jié)點(diǎn)在接收到HELLO()數(shù)據(jù)包后,立即發(fā)送ACK()確認(rèn)數(shù)據(jù)包;Hub在接收到P個節(jié)點(diǎn)發(fā)送的ACK()數(shù)據(jù)包后,立即屏蔽所有的傳輸信號,將所接收到的節(jié)點(diǎn)狀態(tài)信息記錄在節(jié)點(diǎn)信息表中。
步驟2在第二個slot期間,將對P個節(jié)點(diǎn)的確認(rèn)信息添加至HELLO()數(shù)據(jù)包中,第一個slot期間所接收到的P個節(jié)點(diǎn)在接收到添加信息的HELLO()數(shù)據(jù)包后,確認(rèn)節(jié)點(diǎn)已被加入到Hub的節(jié)點(diǎn)信息表中,并在隨后的slot周期中始終保持靜默狀態(tài),不再發(fā)送ACK()確認(rèn)數(shù)據(jù)包;HELLO()數(shù)據(jù)包中確認(rèn)信息不包含的節(jié)點(diǎn),在接收到HELLO()數(shù)據(jù)包后繼續(xù)向Hub發(fā)送ACK()確認(rèn)數(shù)據(jù),Hub在此階段收到K個節(jié)點(diǎn)的ACK()數(shù)據(jù)包。
步驟3在第三個slot期間,添加上第二個slot期間收到的K個節(jié)點(diǎn)的信息,再次發(fā)送出去,循環(huán)執(zhí)行步驟2直至最后一個slot時間段Hub未收到任何節(jié)點(diǎn)的ACK()數(shù)據(jù)包。
Hub以固定頻率發(fā)送HELLO()數(shù)據(jù)包一段時間后,與Hub可直接通信的節(jié)點(diǎn)已全部被納入Hub信息表中,而未能和Hub直接通信的節(jié)點(diǎn)尚未被納入節(jié)點(diǎn)信息表中。Hub向已在節(jié)點(diǎn)信息表中的每一個節(jié)點(diǎn)發(fā)送find()指令,節(jié)點(diǎn)在接收到find()指令后,以最大功率廣播帶有節(jié)點(diǎn)自身標(biāo)識符和節(jié)點(diǎn)狀態(tài)的HELLO()數(shù)據(jù)包。階段1所有能直接和Hub通信的節(jié)點(diǎn)已被納入到Hub信息表中,Hub發(fā)送確認(rèn)信息時,附帶有Hub信息表,因此能夠和Hub直接通信的節(jié)點(diǎn)在收到帶有對方標(biāo)識符和節(jié)點(diǎn)狀態(tài)的HELLO()數(shù)據(jù)包后,直接丟棄,而未和Hub直接通信的節(jié)點(diǎn)在收到HELLO()數(shù)據(jù)包后,將其記錄在自身的節(jié)點(diǎn)信息表中。節(jié)點(diǎn)發(fā)現(xiàn)具體流程如圖4所示。
圖4 節(jié)點(diǎn)發(fā)現(xiàn)流程Fig.4 Flowchart of node search
未在Hub信息表中的節(jié)點(diǎn)根據(jù)階段2所獲得的節(jié)點(diǎn)信息表中候選節(jié)點(diǎn)的狀態(tài)信息,選擇中繼節(jié)點(diǎn),將帶有自身狀態(tài)和節(jié)點(diǎn)標(biāo)志的ACK()數(shù)據(jù)包定向發(fā)送到該中繼節(jié)點(diǎn);中繼節(jié)點(diǎn)將該信息發(fā)送至Hub,Hub在收到ACK()數(shù)據(jù)包后,將該節(jié)點(diǎn)信息記錄在節(jié)點(diǎn)信息表中,并向中繼節(jié)點(diǎn)定向發(fā)送Confirm()+find()數(shù)據(jù)包,中繼節(jié)點(diǎn)再定向發(fā)送至目標(biāo)節(jié)點(diǎn),節(jié)點(diǎn)確認(rèn)數(shù)據(jù)包并執(zhí)行find()指令,直到Hub不再接收到ACK()數(shù)據(jù)包。
本文在優(yōu)化后的WBAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上提出了基于鏈路感知的路由算法,包括路由策略和時隙分配策略兩部分。路由策略解決節(jié)點(diǎn)傳輸路線問題,時隙分配策略解決WBAN網(wǎng)絡(luò)干擾和資源分配問題。
對于通信范圍包含Hub且和Hub通信信道為LOS的節(jié)點(diǎn),鏈路感知基于RSSI預(yù)測,SN根據(jù)時間窗中每個時刻的RSSI估計當(dāng)前時刻的RSSI,若當(dāng)前時刻接收到的RSSI和預(yù)測的RSSI符合預(yù)設(shè),則表示鏈路質(zhì)量在當(dāng)前時刻維持穩(wěn)定;若不符合預(yù)設(shè),則Hub對SN進(jìn)行問詢(若節(jié)點(diǎn)超出Hub的通信范圍;則納入主干網(wǎng)的通信范圍;若未超出Hub的通信范圍,則重新根據(jù)RSSI估計節(jié)點(diǎn)距離和信道類型);對于通信范圍內(nèi)不包含Hub的節(jié)點(diǎn)或和Hub通信信道為NLOS的節(jié)點(diǎn),鏈路感知基于代價函數(shù),選擇代價函數(shù)最小的路由進(jìn)行通信。
路由策略算法(算法1)具體步驟如下:
1)若SN的通信范圍內(nèi)包含Hub,且SN和Hub的通信信道為LOS信道,SN根據(jù)接收到的RSSI與SN預(yù)測的RSSI信號強(qiáng)度作比較。RSSI 預(yù)測值計算基于指數(shù)加權(quán)滑動平均法(Exponentially Weighted Moving Average,EWMA),如下式所示:
(16)
(17)
式中:cost(i)j表示節(jié)點(diǎn)j和候選節(jié)點(diǎn)之間的代價;res(i)表示中繼節(jié)點(diǎn)i的剩余能量;Dist(i,j)表示節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的距離。節(jié)點(diǎn)應(yīng)選擇剩余能量最多和距離最近的節(jié)點(diǎn)作為中繼,即選擇代價函數(shù)最小的節(jié)點(diǎn)作為中繼傳輸數(shù)據(jù)。
2)若SN的通信范圍內(nèi)不包含Hub,若SN基于代價函數(shù)最小且信道為LOS信道進(jìn)行通信的主干網(wǎng)節(jié)點(diǎn)(其中代價函數(shù)優(yōu)先級大于信道優(yōu)先級),中繼節(jié)點(diǎn)轉(zhuǎn)運(yùn)SN數(shù)據(jù)至Hub。
算法1的偽代碼如下:
1 輸入:n個節(jié)點(diǎn)的位置和剩余能量
2 輸出:節(jié)點(diǎn)路由選擇策略
3 for each SN do
6 if dist(SN,Hub) 7 if SN和Hub間信道為LOS信道 then 8 SN和Hub直接進(jìn)行數(shù)據(jù)傳輸 9 else 10 對于每一個在range(SN)中的node do 11 if dist(node,Hub) 12 計算代價函數(shù)cost(i)j=Dist(i,j)/res(i) 13 SN選擇代價最小的節(jié)點(diǎn)為中繼節(jié)點(diǎn)傳輸數(shù)據(jù) 14 else 15 do nothing 16 else 17 SN根據(jù)代價函數(shù)和信道類型選擇最優(yōu)主干網(wǎng)節(jié)點(diǎn)為中繼節(jié)點(diǎn)傳輸數(shù)據(jù) 18 else 19 Hub發(fā)送周期性問詢數(shù)據(jù),重新計算節(jié)點(diǎn)之間的距離和信道類型并根據(jù)節(jié)點(diǎn)之間的距離和信道類型選擇中繼節(jié)點(diǎn)傳輸 WBAN不僅需要考慮單個個體所攜帶傳感器所組成的網(wǎng)絡(luò),同時需要考慮不同個體WBAN之間的相互影響。由于不同WBAN之間缺乏相互協(xié)調(diào)的機(jī)制,如果數(shù)據(jù)傳輸協(xié)議采用CDMA,則會由于頻譜資源有限,WBAN之間有較大的干擾。因此,本文假設(shè)MAC層使用的是無競爭的TDMA協(xié)議,并使用超幀傳輸數(shù)據(jù)。超幀的模型如圖5所示,Pilots為超幀頭,表示一個超幀的開始,剩余部分由N個時隙組成,每一個時隙表示TDMA協(xié)議規(guī)定的時隙長度。 圖5 超幀示意Fig.5 Schematic of superframe 在一個超幀時間中,節(jié)點(diǎn)除了執(zhí)行檢測功能外,還可能包含以下3種活動:若節(jié)點(diǎn)為中繼節(jié)點(diǎn),則接收來自感知節(jié)點(diǎn)的數(shù)據(jù);向匯聚節(jié)點(diǎn)傳輸節(jié)點(diǎn)自身檢測的數(shù)據(jù)和緩存中其他節(jié)點(diǎn)的傳輸數(shù)據(jù);節(jié)點(diǎn)處于睡眠狀態(tài)。由于每一個節(jié)點(diǎn)最多有一個中繼節(jié)點(diǎn),為簡化分析,假設(shè)中繼節(jié)點(diǎn)的緩存能夠滿足源節(jié)點(diǎn)一個超幀內(nèi)發(fā)送的數(shù)據(jù)量。假設(shè)節(jié)點(diǎn)以固定速率傳輸數(shù)據(jù),則數(shù)據(jù)傳輸至目標(biāo)節(jié)點(diǎn)的時延包括傳輸時延和傳播時延,體域網(wǎng)中節(jié)點(diǎn)與節(jié)點(diǎn)之間的距離不超過2 m,傳播時延可以忽略不計,因此節(jié)點(diǎn)的時延為 Tdelay=Datai/DRi (18) 式中:Datai表示一個幀長度內(nèi)節(jié)點(diǎn)感知的數(shù)據(jù)量;DRi表示節(jié)點(diǎn)的數(shù)據(jù)傳輸速率。因此可得節(jié)點(diǎn)需要分配的時隙個數(shù)為Tdelay/slot,其中slot表示一個時隙的時間長度。 本文基于人體理想比例對節(jié)點(diǎn)位置進(jìn)行標(biāo)定,忽略人體的厚度,表1為仿真參數(shù)。假設(shè)Hub位于坐標(biāo)系的原點(diǎn),并用h表示人體的身高,則中繼節(jié)點(diǎn)坐標(biāo)為A=(-0.12h,0.25h,0),B=(-0.12h,-0.15h,0),C=(0.12h,-0.15h,0),D=(0.12h,0.25h,0),部署于人體的11個傳感器節(jié)點(diǎn)坐標(biāo)為u1=(0.075h,0.125h,0),u2=(-0.05h,0.1h,0),u3=(-0.05h,-0.02h,0),u4=(-0.15h,0.15h,0),u5=(-0.18h,-0.05h,0),u6=(0.15h,0.15h,0),u7=(0.18h,-0.05h,0),u8=(-0.1h,-0.25h,0),u9=(-0.08h,-0.45h,0),u10=(0.1h,-0.3h,0),u11=(0,0.35h,0)。 表1 仿真參數(shù)Tab.1 Simulation parameters 人體的基本動作包括了站立、走和坐。在3種動作中,人體軀干和四肢連接點(diǎn)沿四肢方向的軸向距離保持不變,如上臂和肩關(guān)節(jié),但小臂和肩關(guān)節(jié)的位置具有一定的隨機(jī)性,故WBAN網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的隨機(jī)性在于四肢節(jié)點(diǎn)隨著肢體動作的變化。在3種動作中,主干網(wǎng)相對于Hub的位置只具有隨機(jī)性抖動,仿真分析中假設(shè)主干網(wǎng)服從高斯分布,節(jié)點(diǎn)沿四肢軸向方向和最近關(guān)節(jié)連接點(diǎn)處的距離保持不變。人體的肢體運(yùn)動狀態(tài)包括了角運(yùn)動和直線運(yùn)動。角運(yùn)動是環(huán)繞自身的運(yùn)動,在本文中忽略不計。直線運(yùn)動包含了水平移動和豎直移動。人體在站立和坐時,WBAN網(wǎng)絡(luò)變化的頻率遠(yuǎn)小于人體在走時網(wǎng)絡(luò)變化頻率,因此,本文只討論人體在走時的情況。由于走路時人體的基準(zhǔn)位置是人體站立的位置,故在本文中生成兩個獨(dú)立的服從均勻分布的隨機(jī)數(shù)分別表示水平移動距離和豎直移動距離,均值為0,并在此基礎(chǔ)上添加一個高斯分布以模擬肢體的隨機(jī)性抖動。另外,假設(shè)人體一半時間為活動狀態(tài),另一半時間為相對靜止?fàn)顟B(tài),并交錯發(fā)生。同時,為簡化節(jié)點(diǎn)之間信道的判斷,若兩個節(jié)點(diǎn)處于不同的從屬部位,當(dāng)節(jié)點(diǎn)之間的距離超過40 cm時為NLOS信道,否則為LOS信道。 為分析本文所提出算法的性能,本文在網(wǎng)絡(luò)壽命、網(wǎng)絡(luò)穩(wěn)定性、網(wǎng)絡(luò)吞吐量和網(wǎng)絡(luò)剩余能量4個方面對網(wǎng)絡(luò)進(jìn)行仿真分析[11],同時將本文提出的R-TOLA和拓?fù)鋬?yōu)化前基于感知的路由算法(Routing Based on Sensing,RBS)、基于節(jié)點(diǎn)中繼的路由策略E-HARP[12],基于代價函數(shù)的路由策略SIMPLE[3]進(jìn)行了對比。本文將最后一個節(jié)點(diǎn)死亡的輪數(shù)記為網(wǎng)絡(luò)的壽命,第一個節(jié)點(diǎn)死亡的輪數(shù)記為網(wǎng)絡(luò)的穩(wěn)定時間。 圖6為4種算法的網(wǎng)絡(luò)壽命對比,圖7為4種算法的網(wǎng)絡(luò)穩(wěn)定對比。由圖可知,SIMPLE算法由于代價函數(shù)中只考慮剩余能量和距離,缺乏對節(jié)點(diǎn)狀態(tài)的感知,對于人體處于不穩(wěn)定狀態(tài)時適應(yīng)性較差,第一個節(jié)點(diǎn)死亡的時間點(diǎn)最早,為4 541輪,但采用了平衡機(jī)制,相比其他算法,大部分節(jié)點(diǎn)死亡時間點(diǎn)在5 000~7 000輪之間,網(wǎng)絡(luò)壽命為10 098輪;E-HARP算法由于采用雙Hub機(jī)制進(jìn)行數(shù)據(jù)傳輸,節(jié)點(diǎn)根據(jù)信噪比和節(jié)點(diǎn)剩余能量選擇簇頭,簇頭作為中繼將數(shù)據(jù)傳輸至最近的Hub,降低了節(jié)點(diǎn)的傳輸損耗,網(wǎng)絡(luò)穩(wěn)定時間為7 781輪,網(wǎng)絡(luò)壽命為13 437輪,相比于其他算法,節(jié)點(diǎn)死亡數(shù)大致呈線性增長。RBS算法是R-TOLA在未進(jìn)行網(wǎng)絡(luò)拓?fù)鋬?yōu)化時基于鏈路感知的路由算法,節(jié)點(diǎn)位置動態(tài)變化使得節(jié)點(diǎn)和Hub之間的信道為NLOS時節(jié)點(diǎn)的路徑損耗增大,處于人體四肢處的活動范圍最大且距離最遠(yuǎn)的節(jié)點(diǎn)最先消耗完能量,但處在人體軀干上的節(jié)點(diǎn)由于位置變化不大,節(jié)點(diǎn)壽命大幅度增加,RBS算法網(wǎng)絡(luò)壽命為15 293,穩(wěn)定時間為6 703。 圖6 網(wǎng)絡(luò)壽命對比Fig.6 Comparison of network lifetime 本文提出的R-TOLA算法較好地適應(yīng)了人體動態(tài)時節(jié)點(diǎn)可能出現(xiàn)的狀態(tài),在網(wǎng)絡(luò)拓?fù)鋬?yōu)化后,節(jié)點(diǎn)在大部分情況下和Hub之間的通信路由為LOS信道,第一個節(jié)點(diǎn)死亡輪數(shù)最長為9 327輪,網(wǎng)絡(luò)壽命最長為17 174輪,大部分節(jié)點(diǎn)在15 000~17 000輪之間死亡。因此,本文提出的R-TOLA路由策略相比于其他算法網(wǎng)絡(luò)的穩(wěn)定性更高,網(wǎng)絡(luò)壽命更長。 圖8為4種算法的吞吐量對比,吞吐量和存活的節(jié)點(diǎn)數(shù)呈正相關(guān)。由圖可知,在0~4 000轉(zhuǎn)時由于每個節(jié)點(diǎn)均正常工作,算法之間的吞吐量相當(dāng),差距僅限于控制信息的大小;隨著節(jié)點(diǎn)的死亡,不同算法的吞吐量差異性顯著增加,SIMPLE算法吞吐量最低,E-HARP算法和RBS算法吞吐量相當(dāng),R-TOLA算法吞吐量最大。 圖8 網(wǎng)絡(luò)吞吐量對比Fig.8 Comparison of network throughput 圖9為4種算法的網(wǎng)絡(luò)節(jié)點(diǎn)剩余能量對比。由圖可知,SIMPLE算法網(wǎng)絡(luò)剩余能量在0~4 000轉(zhuǎn)時快速下降,這是由于SIMPLE算法只考慮不同節(jié)點(diǎn)的均衡機(jī)制,而未考慮節(jié)點(diǎn)之間的通信關(guān)系,代價函數(shù)的選取具有片面性。E-HARP算法采用的雙Hub機(jī)制,節(jié)點(diǎn)可根據(jù)自身和兩個Hub之間的狀態(tài)選取最好的進(jìn)行數(shù)據(jù)傳輸,有效地降低了網(wǎng)絡(luò)損耗。RBS算法和E-HARP相當(dāng),但由于較遠(yuǎn)節(jié)點(diǎn)死亡后,節(jié)點(diǎn)和Hub的通信信道在大部分情況下為LOS信道,在10 000~14 000輪之間能量的損耗相較于E-HARP算法更低。本文提出的R-TOLA算法相比于其他3種算法,在拓?fù)鋬?yōu)化條件下,節(jié)點(diǎn)和Hub直接的通信信道和中繼信道大部分均為LOS信道,能量損耗更小。 圖9 網(wǎng)絡(luò)剩余節(jié)點(diǎn)能量對比Fig.9 Comparison of network residual energy 綜上所述,本文提出的R-TOLA算法在網(wǎng)絡(luò)壽命、網(wǎng)絡(luò)穩(wěn)定性、網(wǎng)絡(luò)吞吐量和網(wǎng)絡(luò)剩余能量4個方面相較于對比的算法更具有優(yōu)勢。 本文根據(jù)人體動作頻繁變化時軀干相對于肢體具有相對穩(wěn)定性的特征,提出了WBAN主干網(wǎng)以優(yōu)化網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并在此基礎(chǔ)上提出了適用于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)優(yōu)化后的R-TOLA路由策略。該算法相較于對比的算法保障了最低網(wǎng)絡(luò)通信質(zhì)量,在仿真環(huán)境下具有更好的性能,降低了WBAN能量損耗,為WBAN規(guī)模化應(yīng)用提供了參考。但在本文仿真過程中,對人體軀干位置的隨機(jī)性模擬忽略了肢體之間的相關(guān)性(如人體的肱骨移動時,前臂會隨著肱骨上升而上升),這將對算法的性能產(chǎn)生一定的影響,因此后續(xù)將對這一特性進(jìn)行研究。4.2 時隙分配策略
5 仿真分析
5.1 參數(shù)設(shè)置
5.2 性能分析
6 結(jié)束語