張俊濤, 李 媛, 陳曉莉
(陜西科技大學(xué) 電氣與信息工程學(xué)院, 陜西 西安 710021)
無(wú)線傳感網(wǎng)絡(luò)是基于無(wú)線通信、微電機(jī)系統(tǒng)等學(xué)科發(fā)展起來(lái)的一個(gè)短距離無(wú)線通信技術(shù),是由部署在監(jiān)測(cè)區(qū)域內(nèi)大量微型傳感器節(jié)點(diǎn)組成的,通過(guò)無(wú)線通信方式形成的一個(gè)多跳的自組織網(wǎng)絡(luò)系統(tǒng),目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中感知對(duì)象的信息并發(fā)送給觀察者[1].
依照應(yīng)用模式的不同,無(wú)線傳感網(wǎng)絡(luò)分為時(shí)間觸發(fā)型和事件驅(qū)動(dòng)型.時(shí)間觸發(fā)型網(wǎng)絡(luò)持續(xù)監(jiān)測(cè)被觀測(cè)量,并以恒定速率發(fā)送數(shù)據(jù);而事件驅(qū)動(dòng)型則僅在被觀測(cè)量發(fā)生突變時(shí)才傳送數(shù)據(jù).TEEN是為事件驅(qū)動(dòng)型無(wú)線傳感網(wǎng)絡(luò)而設(shè)計(jì)的路由協(xié)議.針對(duì)TEEN協(xié)議在應(yīng)用中的不足,本文提出了一種基于TEEN路由協(xié)議的改進(jìn)型數(shù)據(jù)融合算法.
TEEN協(xié)議采用類似LEACH協(xié)議的分簇算法.不同的是,隨著簇首節(jié)點(diǎn)的選定,基站通過(guò)簇首節(jié)點(diǎn)使用TDMA方法實(shí)現(xiàn)數(shù)據(jù)的調(diào)度,并向簇內(nèi)成員廣播有關(guān)數(shù)據(jù)的硬閾值(HT)和軟閾值(ST)兩個(gè)參數(shù),只有同時(shí)滿足兩個(gè)門限時(shí)節(jié)點(diǎn)才發(fā)送數(shù)據(jù)[2,3].TEEN路由協(xié)議的拓?fù)浣Y(jié)構(gòu)如圖1所示.
圖1 TEEN協(xié)議的拓?fù)浣Y(jié)構(gòu)
每個(gè)傳感器節(jié)點(diǎn)從0到1的隨機(jī)數(shù)中任意選擇一個(gè)數(shù)值,若當(dāng)前輪中這個(gè)數(shù)值小于設(shè)定的閾值T(n),則該節(jié)點(diǎn)成為簇首,并向周圍節(jié)點(diǎn)廣播自己成為簇首的消息以及硬閾值和軟閾值.網(wǎng)絡(luò)中的非簇首節(jié)點(diǎn)根據(jù)接收信號(hào)的強(qiáng)度決定加入哪個(gè)簇,并通知相關(guān)簇首.T(n)的計(jì)算公式為:
(1)
其中,p為簇首占所有節(jié)點(diǎn)的百分比,r為已完成的輪數(shù),G為前1/p輪中未成為簇首的節(jié)點(diǎn)集[2].
簇首選定后向簇內(nèi)節(jié)點(diǎn)廣播硬閾值、軟閾值和TDMA規(guī)劃.
傳感器節(jié)點(diǎn)不斷的采集周圍的環(huán)境數(shù)據(jù),當(dāng)采集到的數(shù)據(jù)值到達(dá)硬閾值時(shí)就將此數(shù)據(jù)傳送到簇首節(jié)點(diǎn).之后如果該節(jié)點(diǎn)再次采集的數(shù)據(jù)大于硬閾值并且與前一次發(fā)送的數(shù)據(jù)之差大于等于軟閾值,則會(huì)再次打開(kāi)收發(fā)裝置,發(fā)送新檢測(cè)到的數(shù)據(jù).硬閾值與軟閾值在每次新簇建立時(shí)由簇首設(shè)定[4].這一機(jī)制使得網(wǎng)絡(luò)能對(duì)突發(fā)事件做出快速反應(yīng),而不必等到基站來(lái)定期查詢,再?gòu)牟樵兊臄?shù)據(jù)中提取緊要事件.
TEEN協(xié)議在實(shí)際應(yīng)用中也存在缺點(diǎn),主要體現(xiàn)在以下幾個(gè)方面:
(1)簇首節(jié)點(diǎn)選擇算法隨機(jī)性過(guò)大.在每輪的簇首選擇階段,任何節(jié)點(diǎn)成為簇首的概率相同,當(dāng)能量較低的節(jié)點(diǎn)當(dāng)選為簇首時(shí)必然會(huì)導(dǎo)致其能量的快速耗散以至死亡,影響網(wǎng)絡(luò)的生存時(shí)間.
(2)簇首節(jié)點(diǎn)與基站間距離較大時(shí),若仍采用一跳的形式進(jìn)行通信,則能量消耗很大.
(3)不適合應(yīng)用在需要周期性采集的系統(tǒng)中,如果網(wǎng)絡(luò)中節(jié)點(diǎn)采集的數(shù)據(jù)長(zhǎng)時(shí)間達(dá)不到硬閾值或不滿足軟閾值,那么節(jié)點(diǎn)就不會(huì)與基站進(jìn)行通信,用戶無(wú)法得到網(wǎng)絡(luò)的任何數(shù)據(jù).
(4)沒(méi)有提出具體的數(shù)據(jù)融合方法.
針對(duì)TEEN協(xié)議的不足,本文提出了一種基于TEEN路由協(xié)議的改進(jìn)型數(shù)據(jù)融合算法,目的在于降低能耗,延長(zhǎng)系統(tǒng)壽命.
為了延長(zhǎng)系統(tǒng)壽命,提出新的簇首選擇改進(jìn)算法如下,每個(gè)傳感器節(jié)點(diǎn)從0到1的隨機(jī)數(shù)中任意選擇一個(gè)數(shù)值,若當(dāng)前輪中這個(gè)數(shù)值小于設(shè)定的閾值T(n),則該節(jié)點(diǎn)成為簇首,并向周圍節(jié)點(diǎn)廣播自己成為簇首的消息以及硬閾值和軟閾值.T(n)的計(jì)算如下所示:
(2)
其中,p為簇首占所有節(jié)點(diǎn)的百分比,r為已完成的輪數(shù),G為前1/p輪中未成為簇首的節(jié)點(diǎn)集,Erest、Eused、Eaverage分別代表節(jié)點(diǎn)上一輪的剩余能量、節(jié)點(diǎn)上一輪使用的能量和節(jié)點(diǎn)所屬簇內(nèi)所有節(jié)點(diǎn)上一輪的平均剩余能量.在第r輪時(shí),如果當(dāng)Erest 在網(wǎng)絡(luò)建立階段,基站以一個(gè)給定的發(fā)送功率向網(wǎng)絡(luò)內(nèi)廣播一個(gè)信號(hào),每個(gè)傳感器節(jié)點(diǎn)在接收到此信號(hào)后,根據(jù)接收信號(hào)的強(qiáng)度計(jì)算它到基站的近似距離.當(dāng)簇首節(jié)點(diǎn)與基站之間的距離d小于簇的最大范圍R時(shí),簇首直接與基站進(jìn)行通信.當(dāng)簇首節(jié)點(diǎn)與基站之間的距離d大于簇的最大范圍R時(shí),簇首采用多跳路由方式與基站進(jìn)行通信.在路由算法開(kāi)始時(shí),每個(gè)簇首節(jié)點(diǎn)向整個(gè)網(wǎng)絡(luò)廣播一條消息,每個(gè)節(jié)點(diǎn)都根據(jù)接收到消息信號(hào)的強(qiáng)弱計(jì)算與其的距離[7,8]. 在TEEN協(xié)議中定義一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器能夠使得即使在所采集的數(shù)據(jù)沒(méi)達(dá)到硬閾值或不滿足軟閾值的情況下也能周期性發(fā)送數(shù)據(jù),即只要計(jì)數(shù)器滿足或者達(dá)到閾值條件都會(huì)觸發(fā)數(shù)據(jù)發(fā)送,并且每次發(fā)送數(shù)據(jù)時(shí)清零計(jì)數(shù)器.這樣系統(tǒng)不但可以感知突發(fā)情況,也可以定時(shí)向監(jiān)控中心傳回系統(tǒng)數(shù)據(jù). 本文采用分批估計(jì)算法,它是一種基于Kalman濾波的融合方法,是由Kalman濾波公式遞推出來(lái)的.分批估計(jì)就是先將數(shù)據(jù)進(jìn)行分批處理,然后再進(jìn)行目標(biāo)的最優(yōu)狀態(tài)估計(jì),因?yàn)檫x取的線性系統(tǒng)和傳感器的噪聲是高斯分布的白噪聲,所以就采用Kalman濾波進(jìn)行目標(biāo)的狀態(tài)估計(jì)和預(yù)測(cè).至于分批方式可按照節(jié)點(diǎn)屬性進(jìn)行分批[9-11]. 以測(cè)量濕度為例,在一片果園內(nèi)隨機(jī)放置20個(gè)濕度傳感器節(jié)點(diǎn).將20個(gè)測(cè)量值平均分為2組,其中第1組濕度序列為Ha1,Ha2,…,Ha10,第2組濕度序列為Hb1,Hb2,…,Hb10,則兩組數(shù)據(jù)的平均值分別為: (3) (4) 對(duì)應(yīng)的方差分別為: (5) (6) 假設(shè)濕度的真實(shí)值為HH,則濕度的測(cè)量方程為H=UHH+V,其中H是濕度的測(cè)量值,U為系數(shù)矩陣,V為測(cè)量噪聲.采用分批估計(jì)的算法,則測(cè)量方程可變?yōu)椋?/p> (7) (8) 分批估計(jì)時(shí),在測(cè)量之前沒(méi)有任何有關(guān)濕度的統(tǒng)計(jì)資料,因此P-=∞,(P-)-1=0.則濕度融合值的方差為: P+=[(P-)-1+UTR-1U]-1= (9) 分批估計(jì)濕度數(shù)據(jù)融合值為: (10) (11) 簇首節(jié)點(diǎn)將進(jìn)行完分批估計(jì)的濕度數(shù)據(jù)融合值傳送至基站. 本文采用NS-2網(wǎng)絡(luò)模擬器對(duì)TEEN協(xié)議和改進(jìn)型TEEN協(xié)議在節(jié)點(diǎn)存活數(shù)目、網(wǎng)絡(luò)數(shù)據(jù)通信量和網(wǎng)絡(luò)能量消耗3個(gè)方面進(jìn)行比較,以此檢驗(yàn)改進(jìn)型TEEN協(xié)議的性能[12]. 仿真模擬系統(tǒng)是由250個(gè)無(wú)線傳感器節(jié)點(diǎn)組成.節(jié)點(diǎn)分布在(x=0,y=0)和(x=200,y=200)的200×200 m2的正方形區(qū)域內(nèi),節(jié)點(diǎn)放置后不移動(dòng),基站所在位置的坐標(biāo)為(x=150,y=250),傳感器節(jié)點(diǎn)初始能量為25 J,仿真時(shí)間為4 500 s. 采用改進(jìn)的TEEN協(xié)議對(duì)傳感器節(jié)點(diǎn)進(jìn)行簇首的選擇與分簇.以下為程序的主要代碼. void selectcluster() {if(node.Energy>0 && node.G<=0) //確定候選簇首 … rand=_mparam.Rand.NextDouble(); //選取隨機(jī)數(shù) tmp=Math.Round(1.0/p); prob=p*((_mroud+1)%tmp); prob=p/(1.0-prod); e=(node.Energy.rest-node.Energy.used)/ (node.Energy.aver-node.Energy.used); tn= prob*tmp*e if(rand node.NodeState= Node.State.Cluster; //設(shè)為簇首 … } 在仿真過(guò)程中對(duì)網(wǎng)絡(luò)中節(jié)點(diǎn)存活數(shù)目、數(shù)據(jù)通信量和能量消耗3個(gè)方面進(jìn)行記錄.圖2為兩種數(shù)據(jù)融合算法網(wǎng)絡(luò)中存活節(jié)點(diǎn)個(gè)數(shù)的對(duì)比.圖3為兩種數(shù)據(jù)融合算法網(wǎng)絡(luò)中數(shù)據(jù)通信量的對(duì)比,其中采用基站成功接收的數(shù)據(jù)包數(shù)量作為衡量網(wǎng)絡(luò)中數(shù)據(jù)通信量的依據(jù).圖4為兩種數(shù)據(jù)融合算法的網(wǎng)絡(luò)能耗對(duì)比. 圖2 網(wǎng)絡(luò)中節(jié)點(diǎn)存活數(shù)目 圖3 網(wǎng)絡(luò)中數(shù)據(jù)通信量 圖4 網(wǎng)絡(luò)中能量消耗 通過(guò)圖2可以看出,使用TEEN協(xié)議時(shí),在2 900秒左右時(shí)所有節(jié)點(diǎn)全部“死亡”.而使用改進(jìn)型TEEN協(xié)議,網(wǎng)絡(luò)中所有節(jié)點(diǎn)“死亡”的時(shí)間大概是在4 300秒.即采用改進(jìn)型TEEN協(xié)議的節(jié)點(diǎn)存活率高于TEEN協(xié)議.通過(guò)圖3可以看出,改進(jìn)型TEEN協(xié)議能夠有效地減少網(wǎng)絡(luò)中的數(shù)據(jù)通信量,節(jié)省網(wǎng)絡(luò)中的能量消耗.通過(guò)圖4可以看出,改進(jìn)前TEEN協(xié)議在網(wǎng)絡(luò)運(yùn)行到3 300秒時(shí),節(jié)點(diǎn)能量幾乎耗盡,而改進(jìn)型TEEN協(xié)議在網(wǎng)絡(luò)運(yùn)行到4 200秒左右才耗盡所有能量.所以,改進(jìn)型TEEN協(xié)議可以有效的延長(zhǎng)網(wǎng)絡(luò)的生命周期. 本文在TEEN協(xié)議的基礎(chǔ)上進(jìn)行改進(jìn),提出了一種基于TEEN路由協(xié)議的改進(jìn)型數(shù)據(jù)融合算法.改進(jìn)主要體現(xiàn)在以下幾個(gè)方面:首先,在簇首選擇算法上加入了能量控制機(jī)制,讓剩余能量高的節(jié)點(diǎn)有更高幾率當(dāng)選為簇首.其次,將簇首到基站的單跳改為多跳,降低了與基站過(guò)遠(yuǎn)的簇首能量的消耗.第三,加入數(shù)據(jù)周期性采集的策略,完善了周期查詢與特殊事件相應(yīng)的機(jī)制,集中了時(shí)間觸發(fā)型網(wǎng)絡(luò)與事件驅(qū)動(dòng)型網(wǎng)絡(luò)的優(yōu)點(diǎn).最后,采用了基于分批估計(jì)算法的數(shù)據(jù)融合策略,降低信息的傳輸量.在NS-2上的仿真結(jié)果證明,基于TEEN路由協(xié)議的改進(jìn)型數(shù)據(jù)融合算法可以降低無(wú)線傳感器網(wǎng)絡(luò)的整體能耗,有效地延長(zhǎng)網(wǎng)絡(luò)的生存期. [1] 尚鳳軍.無(wú)線傳感器網(wǎng)絡(luò)通信協(xié)議[M].北京:電子工業(yè)出版社,2011. [2] 李善倉(cāng),張克旺.無(wú)線傳感器網(wǎng)絡(luò)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008. [3] 王宇翔.無(wú)線傳感網(wǎng)絡(luò)中路由協(xié)議的研究[D].南京:南京郵電大學(xué),2011. [4] Manjeshwar A,Dharma P.TEEN:A routing protocol for enhanced effciency in wireless sensor networks[C]//The 15th International Parallel & Distributed Processing Symposium.San Francisco:California,2001:23-27. [5] 姚光順,溫衛(wèi)敏.改進(jìn)的無(wú)線傳感器網(wǎng)絡(luò)簇首選擇策略及其路由算法[J].計(jì)算機(jī)應(yīng)用,2013,33(4):108-911. [6] 李飛燕.無(wú)線傳感器網(wǎng)絡(luò)分簇路由簇首選擇算法研究[D].長(zhǎng)沙:長(zhǎng)沙理工大學(xué),2012. [7] 屈 斌,胡訪宇.高效節(jié)能的無(wú)線傳感器網(wǎng)絡(luò)路由協(xié)議研究[J].計(jì)算機(jī)仿真,2008,25(5):113-116. [8] 洪 剛,湯寶平,裴 勇.基于最低能耗路徑的分簇路由算法[J].計(jì)算機(jī)仿真,2012,29(10):177-180. [9] 康耀紅.數(shù)據(jù)融合理論與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006. [10] 張西良,孫 優(yōu).無(wú)線傳感器網(wǎng)絡(luò)基于定向擴(kuò)散與分批估計(jì)的數(shù)據(jù)融合算法[J].微計(jì)算機(jī)信息,2006,35(25):173-179. [11] 邱 爽.無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)融合算法研究[D].武漢:武漢理工大學(xué),2008. [12] 陶 駿.WSN中LEACH路由算法的改進(jìn)及應(yīng)用研究[D].蘇州:蘇州大學(xué),2010.2.2 簇首間多跳路徑的建立
2.3 數(shù)據(jù)的周期性采集
2.4 數(shù)據(jù)融合策略
3 仿真實(shí)驗(yàn)
3.1 仿真參數(shù)設(shè)置與程序編寫
3.2 仿真結(jié)果分析
4 結(jié)束語(yǔ)