本發(fā)明屬于無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于移動(dòng)匯聚節(jié)點(diǎn)的無線傳感網(wǎng)絡(luò)數(shù)據(jù)傳輸方法。
背景技術(shù):
隨著信息技術(shù)的高速發(fā)展,掌握即時(shí)有效的信息對人們有著至關(guān)重要的作用。因而收集信息與數(shù)據(jù)的手段和技術(shù)得到了廣泛的開發(fā)與應(yīng)用,很多新興的信息收集技術(shù)與策略也隨之誕生。無線傳感器網(wǎng)絡(luò)(wirelesssensornetworks,wsn)就是當(dāng)前最為熱門的數(shù)據(jù)收集技術(shù)之一。無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)有諸多優(yōu)點(diǎn):能量消耗低、易于分布在任何環(huán)境中、造價(jià)成本低廉和可以自組織地形成無線網(wǎng)絡(luò)等。這些優(yōu)點(diǎn)使無線信息感知與采集變得空前的簡單與方便。因此,其在當(dāng)今的無線信息感知領(lǐng)域引起了一場變革,無線傳感器網(wǎng)絡(luò)在現(xiàn)實(shí)生活中得到了廣泛的應(yīng)用,如在氣溫、壓力、定位等方面對周圍環(huán)境的檢測有著很高的應(yīng)用前景。
無線傳感器網(wǎng)絡(luò)作為一個(gè)整體,為了保證各個(gè)傳感器節(jié)點(diǎn)之間能夠相互傳遞信息,通常在監(jiān)測區(qū)域部署大量的傳感器節(jié)點(diǎn),以冗余保證通信,這樣做可以避免無線傳感器網(wǎng)絡(luò)被分成幾個(gè)孤立的網(wǎng)絡(luò)而無法完成通信。典型的無線傳感器網(wǎng)絡(luò)由密集部署的靜態(tài)傳感器節(jié)點(diǎn)和一個(gè)靜態(tài)匯聚節(jié)點(diǎn),各靜態(tài)傳感器節(jié)點(diǎn)采用多跳的方式把數(shù)據(jù)傳遞給靜態(tài)匯聚節(jié)點(diǎn)。多跳通信方式在節(jié)約傳感器節(jié)點(diǎn)能量的同時(shí)也帶來了一些問題,例如:距離匯聚節(jié)點(diǎn)較近的傳感器節(jié)點(diǎn)在發(fā)送自己數(shù)據(jù)的同時(shí)還要轉(zhuǎn)發(fā)其它傳感器節(jié)點(diǎn)的數(shù)據(jù),這些距離匯聚節(jié)點(diǎn)較近的傳感器節(jié)點(diǎn)的能量消耗會(huì)比其它傳感器節(jié)點(diǎn)快,形成能量空洞現(xiàn)象,以致更早地死亡,無法轉(zhuǎn)發(fā)其它傳感器節(jié)點(diǎn)數(shù)據(jù),導(dǎo)致大量的傳感器節(jié)點(diǎn)無法發(fā)揮其作用,最終使得整個(gè)無線傳感器網(wǎng)絡(luò)處于失效狀態(tài)。為此,可以在監(jiān)測區(qū)域設(shè)置一個(gè)可以移動(dòng)匯聚節(jié)點(diǎn)(sink),當(dāng)移動(dòng)匯聚節(jié)點(diǎn)移動(dòng)到一個(gè)地點(diǎn),就發(fā)出收集信息的命令,收到命令的傳感器節(jié)點(diǎn)若在移動(dòng)移動(dòng)匯聚節(jié)點(diǎn)的單跳范圍內(nèi),就將數(shù)據(jù)發(fā)送給移動(dòng)移動(dòng)匯聚節(jié)點(diǎn),由于是單跳通信,該傳感器節(jié)點(diǎn)不需要轉(zhuǎn)發(fā)其它傳感器節(jié)點(diǎn)的數(shù)據(jù)從而節(jié)省了能量,延長了整個(gè)無線傳感器網(wǎng)絡(luò)的生命周期。同時(shí),移動(dòng)匯聚節(jié)點(diǎn)附近的傳感器節(jié)點(diǎn)隨著時(shí)間的變化而變化,在某種程度上平衡了整個(gè)無線傳感器網(wǎng)絡(luò)的能量消耗,相比了靜態(tài)匯聚節(jié)點(diǎn)大大延長了無線傳感器網(wǎng)絡(luò)的生命周期。
目前,基于移動(dòng)匯聚節(jié)點(diǎn)的路由協(xié)議在平衡能量消耗和延長無線傳感網(wǎng)絡(luò)生命周期取得了很好的效果,但是依然存在一些缺陷,例如:第一,有些基于移動(dòng)匯聚節(jié)點(diǎn)的路由協(xié)議采用隨機(jī)移動(dòng)策略,增加了數(shù)據(jù)采集路徑維護(hù)開銷,會(huì)消耗大量能量;第二,有些基于移動(dòng)匯聚節(jié)點(diǎn)的路由協(xié)議采用劃分網(wǎng)格或分簇的方法,但沒有考慮所劃分的網(wǎng)格數(shù)或簇?cái)?shù)是否為最優(yōu),傳感器節(jié)點(diǎn)在通信過程中會(huì)浪費(fèi)很多不必要的能量;第三,有些路由協(xié)議中移動(dòng)匯聚節(jié)點(diǎn)頻繁地移出自適應(yīng)區(qū)域,其位置信息則需要在整個(gè)網(wǎng)絡(luò)進(jìn)行洪泛,位置更新會(huì)產(chǎn)生較大的能耗和時(shí)延。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提出一種具有移動(dòng)匯聚節(jié)點(diǎn)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,消除了能量空洞的現(xiàn)象,減輕了網(wǎng)絡(luò)流量負(fù)載,提高了整個(gè)無線傳感器網(wǎng)絡(luò)的吞吐量,延長了傳感器網(wǎng)絡(luò)的生命周期。
為了解決上述技術(shù)問題,本發(fā)明提出一種具有移動(dòng)匯聚節(jié)點(diǎn)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,運(yùn)用粒子群算法將無線傳感器網(wǎng)絡(luò)劃分為若干個(gè)區(qū)域,使用類似聚類算法在每個(gè)區(qū)域的傳感器節(jié)點(diǎn)中選出一個(gè)傳感器節(jié)點(diǎn)作為簇頭,然后通過hello、message-s和message-h報(bào)文三種數(shù)據(jù)報(bào)文確定與移動(dòng)匯聚節(jié)點(diǎn)通信的簇頭。
較佳地,選簇頭的方法為:
s1根據(jù)每個(gè)簇中各傳感器節(jié)點(diǎn)的坐標(biāo)計(jì)算出該簇所在區(qū)域的重心坐標(biāo),計(jì)算簇內(nèi)各傳感器節(jié)點(diǎn)到重心坐標(biāo)的距離;同時(shí)計(jì)算每個(gè)簇內(nèi)所有傳感器節(jié)點(diǎn)的平均剩余能量;
s2將與重心距離最近的傳感器節(jié)點(diǎn)的剩余能量與簇內(nèi)所有傳感器節(jié)點(diǎn)的平均剩余能量進(jìn)行比較,若所述傳感器節(jié)點(diǎn)的剩余能量大于或等于所述平均剩余能量,則將所述傳感器節(jié)點(diǎn)選為簇頭;否則,丟棄所述傳感器節(jié)點(diǎn);
s3在剩余的各傳感器節(jié)點(diǎn)中找出下一個(gè)與重心距離最近的傳感器節(jié)點(diǎn),然后重復(fù)步驟s2。
較佳地,移動(dòng)匯聚節(jié)點(diǎn)在移動(dòng)過程中廣播hello消息包,接收到hello包的簇頭計(jì)算其簇內(nèi)傳感器節(jié)點(diǎn)的平均剩余能量,并將其簇所對應(yīng)的區(qū)域號以及自身位置信息放入hello包中返回給移動(dòng)匯聚節(jié)點(diǎn);移動(dòng)匯聚節(jié)點(diǎn)通過收到的hello消息包比較各個(gè)簇的平均剩余能量,選擇平均剩余能量最大的簇進(jìn)行數(shù)據(jù)傳輸。
較佳地,移動(dòng)匯聚節(jié)點(diǎn)與簇頭進(jìn)行數(shù)據(jù)傳輸時(shí),移動(dòng)匯聚節(jié)點(diǎn)廣播message-s消息包,message-s消息包包含所選簇頭所在的區(qū)域號;接收到message-s包的簇頭比較message-s包中的區(qū)域號和自己的區(qū)域號是否相同,如果不同,丟棄該message-s包;如果相同,則向簇內(nèi)其余傳感器節(jié)點(diǎn)廣播信息,按照時(shí)分多址方法分配時(shí)隙表;簇內(nèi)其余傳感器節(jié)點(diǎn)在時(shí)分多址方法分配時(shí)隙表分給自己的時(shí)隙中發(fā)送message-h數(shù)據(jù)包給自己的簇頭,在其余時(shí)間關(guān)閉自己的電臺,處于休眠的狀態(tài);簇頭對收集到的所有數(shù)據(jù)信息進(jìn)行數(shù)據(jù)累積和融合;當(dāng)移動(dòng)匯聚節(jié)點(diǎn)移動(dòng)到該簇頭附近時(shí),該簇頭把數(shù)據(jù)傳送給移動(dòng)匯聚節(jié)點(diǎn)。
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)在于,(1)在構(gòu)建網(wǎng)絡(luò)虛擬分簇時(shí),該協(xié)議釆用粒子群算法思想,構(gòu)建若干個(gè)均衡的虛擬簇,并考慮了各個(gè)簇組均勻度和節(jié)點(diǎn)的剩余能量,因此,本發(fā)明路由協(xié)議可以在盡量減少整體能耗的同時(shí)均衡各節(jié)點(diǎn)的能耗;(2)在每輪通信時(shí)根據(jù)類似聚類的算,,結(jié)合離簇的重心距離和簇內(nèi)節(jié)點(diǎn)的平均能量選擇簇頭,以此使各個(gè)簇上的節(jié)點(diǎn)均衡地消耗能量;(3)考慮到移動(dòng)匯聚節(jié)點(diǎn)和各個(gè)簇頭直接的通信,減少網(wǎng)絡(luò)的延時(shí)。
附圖說明
圖1是適用本發(fā)明的無線傳感器網(wǎng)絡(luò)示意圖;
圖2是本發(fā)明hello數(shù)據(jù)報(bào)文結(jié)構(gòu)示意圖;
圖3是本發(fā)明中message-s數(shù)據(jù)報(bào)文結(jié)構(gòu)示意圖;
圖4是本發(fā)明中message-h數(shù)據(jù)報(bào)文結(jié)構(gòu)示意圖。
具體實(shí)施方式
容易理解,依據(jù)本發(fā)明的技術(shù)方案,在不變更本發(fā)明的實(shí)質(zhì)精神的情況下,本領(lǐng)域的一般技術(shù)人員可以想象出本發(fā)明具有移動(dòng)匯聚節(jié)點(diǎn)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法的多種實(shí)施方式。因此,以下具體實(shí)施方式和附圖僅是對本發(fā)明的技術(shù)方案的示例性說明,而不應(yīng)當(dāng)視為本發(fā)明的全部或者視為對本發(fā)明技術(shù)方案的限制或限定。
本發(fā)明具有移動(dòng)匯聚節(jié)點(diǎn)的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,首先,運(yùn)用粒子群算法將無線傳感器網(wǎng)絡(luò)劃分為若干個(gè)區(qū)域,使用類似聚類算法在每個(gè)區(qū)域的傳感器節(jié)點(diǎn)中選出一個(gè)傳感器節(jié)點(diǎn)作為簇頭,確定簇頭時(shí)結(jié)合傳感器節(jié)點(diǎn)與簇所在區(qū)域重心的距離和簇所在區(qū)域內(nèi)傳感器節(jié)點(diǎn)剩余能量的大小;然后通過hello、message-s和message-h報(bào)文三種數(shù)據(jù)報(bào)文確定與移動(dòng)匯聚節(jié)點(diǎn)通信的簇頭。
一、分簇
步驟a、使用粒子群算法對無線傳感器網(wǎng)絡(luò)進(jìn)行虛擬分簇:
假設(shè)整個(gè)無線傳感器網(wǎng)絡(luò)共有n個(gè)傳感器節(jié)點(diǎn),計(jì)劃將整個(gè)無線傳感器網(wǎng)絡(luò)分割為m個(gè)簇,則每個(gè)簇中含有n/m個(gè)傳感器節(jié)點(diǎn)。分簇前,無線傳感器網(wǎng)絡(luò)中所有傳感器節(jié)點(diǎn)向基站廣播自己的狀態(tài)報(bào)文信息,包括位置信息和能量信息;基站收到狀態(tài)報(bào)文信息后,根據(jù)各傳感器節(jié)點(diǎn)的位置信息和能量信息使用粒子群算法對網(wǎng)絡(luò)進(jìn)行分簇。具體過程為:
首先,用分割線將整個(gè)無線傳感器網(wǎng)絡(luò)分割成具有相同傳感器節(jié)點(diǎn)數(shù)目的區(qū)域,所述分割線表達(dá)如公式(1)所示:
l=(x,y,θx,θy)(1)
公式(1)中,x,y,θx,θy分別為粒子的四個(gè)參數(shù),(x,y)為位于分割線上的傳感器節(jié)點(diǎn)的橫坐標(biāo)和縱坐標(biāo);θx為分割線與x軸的夾角;θy為分割線與y軸的夾角;
對分割線的四個(gè)參數(shù)隨機(jī)賦予k組值,共由式(1)確定k個(gè)分割線。
然后,利用粒子群算法在k個(gè)分割線中去頂確定一條最優(yōu)的分割線,過程為:
s1,定義k個(gè)粒子,k個(gè)粒子代表k個(gè)分割線;確定k個(gè)不同的適應(yīng)值f,與上次搜索得到的最小的適應(yīng)值f進(jìn)行比較并取最小值,與最小值對應(yīng)的粒子可以作為全局極值ρgd;同理,比較單個(gè)粒子的適應(yīng)值,取最小適應(yīng)值對應(yīng)的粒子作為個(gè)體極值ρid,然后通過下式更新四個(gè)參數(shù);
xxid(t+1)=xxid(t)+vxid(t)
xyid(t+1)=xyid(t)+vyid(t)(2)
其中,xxid,xyid為粒子的位置;xθid為分割線與x軸的夾角;vxid,vyid,vθid為粒子在x,y,θx,θy四個(gè)維度上的搜索速度,t為迭代次數(shù),由下式可以確定:
vxid(t+1)=ωvxid(t)+c1rand()(ρid(t)-xxid(t))+c2rand()(ρgd(t)-xxid(t))
vyid(t+1)=ωvyid(t)+c1rand()(ρid(t)-xyid(t))+c2rand()(ρgd(t)-xyid(t))
(3)
其中,c1,c2為學(xué)習(xí)因子,通常c1=c2=2;rand()為(0,1)之間的隨機(jī)數(shù);ρid為局部最小適應(yīng)值;ρgd為全局最小適應(yīng)值;ω為權(quán)重因子。
s2,粒子得到新的(x,y,θx,θy)后,代入公式(1)進(jìn)行搜索,直至滿足公式(4)值為0或者達(dá)到最大搜索次數(shù)時(shí)退出。此時(shí)可以整個(gè)無線傳感器網(wǎng)絡(luò)感知區(qū)域被最優(yōu)分割成兩個(gè)規(guī)模相等的子區(qū)域。
其中,ci(i=1,2)為無線傳感器網(wǎng)絡(luò)感知區(qū)域i中的節(jié)點(diǎn)數(shù)目,mi為區(qū)域i期望的簇頭節(jié)點(diǎn)數(shù)目,esum為傳感器節(jié)點(diǎn)的總能量,ei為區(qū)域i中傳感器節(jié)點(diǎn)總能量。
s3,將整個(gè)無線傳感器網(wǎng)絡(luò)感知區(qū)域首次分割成兩個(gè)規(guī)模相等的子區(qū)域后,重復(fù)步驟s1和s2,直至將整個(gè)無線傳感器網(wǎng)絡(luò)感知區(qū)域劃分為m個(gè)子區(qū)域,獲得m個(gè)簇。
二、選簇頭
傳感器網(wǎng)絡(luò)被分為m個(gè)簇后,需在每個(gè)簇中選擇一個(gè)簇頭。具體過程為:
首先,根據(jù)每個(gè)簇(區(qū)域)中各傳感器節(jié)點(diǎn)的坐標(biāo)計(jì)算出該區(qū)域的重心坐標(biāo)(xc,yc),計(jì)算方法如式(6),
其中,(xi,yi)為簇中各個(gè)傳感器節(jié)點(diǎn)的坐標(biāo)。
其次、計(jì)算簇內(nèi)各傳感器節(jié)點(diǎn)到重心節(jié)點(diǎn)的距離,設(shè)簇內(nèi)各個(gè)傳感器節(jié)點(diǎn)的坐標(biāo)為(xi,xj),則節(jié)點(diǎn)到重心的距離d的計(jì)算方法見式(7),
最后、對于k個(gè)簇,分別計(jì)算各個(gè)簇內(nèi)所有傳感器節(jié)點(diǎn)的平均剩余能量,取出與重心距離最近的傳感器節(jié)點(diǎn),然后將此傳感器節(jié)點(diǎn)的剩余能量與簇內(nèi)所有傳感器節(jié)點(diǎn)的平均剩余能量進(jìn)行比較,若此傳感器節(jié)點(diǎn)剩余能量大于或等于簇內(nèi)所有傳感器節(jié)點(diǎn)平均剩余能量,則此將此傳感器節(jié)點(diǎn)選為簇頭;否則,放棄該傳感器節(jié)點(diǎn),取出下一個(gè)與重心距離最近的傳感器節(jié)點(diǎn)進(jìn)行前述比較,直至找出一個(gè)傳感器節(jié)點(diǎn)滿足其本身剩余能量大于簇內(nèi)所有傳感器節(jié)點(diǎn)的平均剩余能量為止,此傳感器節(jié)點(diǎn)當(dāng)選簇頭;
三、移動(dòng)匯聚節(jié)對簇頭的訪問
當(dāng)移動(dòng)匯聚節(jié)點(diǎn)訪問完所有的簇頭后,則一輪數(shù)據(jù)傳輸結(jié)束,為了平衡網(wǎng)絡(luò)能耗,需要在各簇中重新選出簇頭,進(jìn)行下一輪的數(shù)據(jù)傳輸。匯聚節(jié)點(diǎn)訪問到所有簇頭的每一輪數(shù)據(jù)傳輸周期為t,周期t的計(jì)算方法見公式(8),
其中,其中(xi,yi)為簇頭坐標(biāo),k為簇頭的個(gè)數(shù),v是移動(dòng)匯聚節(jié)點(diǎn)的移動(dòng)速度。
這樣,一個(gè)無線傳感網(wǎng)絡(luò)就構(gòu)建完成了。
本發(fā)明中移動(dòng)匯聚節(jié)點(diǎn)通過以步驟實(shí)現(xiàn)數(shù)據(jù)傳輸:
1、移動(dòng)匯聚節(jié)點(diǎn)的移動(dòng)方式:
當(dāng)移動(dòng)匯聚節(jié)點(diǎn)靠近一個(gè)分簇的區(qū)間時(shí),移動(dòng)匯聚節(jié)點(diǎn)靜止地接收和發(fā)送數(shù)據(jù);移動(dòng)匯聚節(jié)點(diǎn)采用能量可控移動(dòng)策略且在有限跳數(shù)范圍內(nèi)廣播消息;
2、移動(dòng)匯聚節(jié)點(diǎn)廣播消息包,將進(jìn)行如下操作:
移動(dòng)匯聚節(jié)點(diǎn)廣播hello消息包,接收到hello包的簇頭計(jì)算其簇內(nèi)的平均剩余能量,并將其簇所對應(yīng)的區(qū)域號以及自身位置信息放入hello包中,再返回給移動(dòng)匯聚節(jié)點(diǎn);
移動(dòng)匯聚節(jié)點(diǎn)通過hello包比較各個(gè)簇的平均剩余能量,選擇平均剩余能量最大的簇進(jìn)行數(shù)據(jù)傳輸;
3、移動(dòng)匯聚節(jié)點(diǎn)與簇頭進(jìn)行數(shù)據(jù)傳輸時(shí),將進(jìn)行如下操作:
移動(dòng)匯聚節(jié)點(diǎn)廣播message-s消息包,message-s消息包包含所選簇頭所在的區(qū)域號;
接收到message-s包的簇頭比較message-s包中的區(qū)域號和自己的區(qū)域號是否相同,如果不同,丟棄該message-s包;如果相同則進(jìn)行如下操作:
向該簇內(nèi)其余普通傳感器節(jié)點(diǎn)周圍廣播信息,按照時(shí)分多址方法分配時(shí)隙表;
簇內(nèi)成員采集信息,并在時(shí)分多址方法分配時(shí)隙表分給自己的時(shí)隙中,發(fā)送message-h數(shù)據(jù)包給自己的簇頭,在其余時(shí)間關(guān)閉自己的電臺,處于休眠的狀態(tài);
簇頭立即對收集到的所有的數(shù)據(jù)信息進(jìn)行數(shù)據(jù)的累積和融合,將單個(gè)信號合成一個(gè)整體信號,這樣能夠加強(qiáng)公共信號和削弱信號間的不相干噪聲;
當(dāng)移動(dòng)匯聚節(jié)點(diǎn)移動(dòng)到簇頭附近時(shí),該簇頭把數(shù)據(jù)傳送給移動(dòng)匯聚節(jié)點(diǎn)。