本發(fā)明涉及水下無線傳感器網(wǎng)絡(luò)領(lǐng)域,特別是涉及一種水下無線傳感器網(wǎng)絡(luò)最短路徑路由算法。
背景技術(shù):
水下無線傳感器網(wǎng)絡(luò)廣泛的應(yīng)用于水下環(huán)境監(jiān)測、地震探測、資源發(fā)現(xiàn)等領(lǐng)域,無線電信號和光信號在水下傳輸中吸收嚴(yán)重,在水面上的接收傳感器節(jié)點裝有無線電調(diào)制器和水聲調(diào)制器,無線電調(diào)制器用來調(diào)制從接收傳感器節(jié)點到數(shù)據(jù)中心的通信,水聲調(diào)制器負(fù)責(zé)水下傳感器節(jié)點到接收傳感器節(jié)點的通信。由于水下傳感器節(jié)點和接收傳感器節(jié)點隨水流的移動而移動,使得水下傳感器節(jié)點和接收傳感器節(jié)點的位置不固定,會隨時變化,從而使水下無線傳感器網(wǎng)絡(luò)的結(jié)構(gòu)形成了動態(tài)的拓?fù)浣Y(jié)構(gòu)。
所以,陸地?zé)o線傳感器網(wǎng)絡(luò)中使用的路由算法無法直接在水下無線傳感器網(wǎng)絡(luò)中使用,在現(xiàn)有技術(shù)中,以獲取水下無線傳感器網(wǎng)絡(luò)的全局位置信息為前提,以節(jié)省能量的指標(biāo)得出水下無線傳感器網(wǎng)絡(luò)最短路徑路由算法,但是由于水的流動,無法獲取水下無線傳感器網(wǎng)絡(luò)的全局位置信息,所以亟需一種在無法獲取水下無線傳感器網(wǎng)絡(luò)的全局位置信息的基礎(chǔ)上,適用于水下無線傳感器網(wǎng)絡(luò)最短路徑路由算法。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種水下無線傳感器網(wǎng)絡(luò)最短路徑路由算法。
為實現(xiàn)上述目的,本發(fā)明提供了如下方案:
一種水下無線傳感器網(wǎng)絡(luò)最短路徑路由計算方法,水下無線傳感器網(wǎng)絡(luò)由K級節(jié)點的路由器連接形成,其中,所述計算方法包括:
根據(jù)第i級節(jié)點的深度值大于i+1級節(jié)點的深度值以及第i+1級節(jié)點的剩余能量值大于設(shè)定能量閾值,初次篩選出第i+1級節(jié)點集合;其中,i=0,1,...,K-1;
計算所述第i級節(jié)點從發(fā)出對應(yīng)級別命令包到接收到所述第i+1級節(jié)點集合中各所述第i+1級節(jié)點反饋的對應(yīng)級別響應(yīng)命令包的往返時間;
根據(jù)所述第i級節(jié)點的深度值、初次篩選后的第i+1級節(jié)點集合中各所述第i+1級節(jié)點的深度值和對應(yīng)的所述往返時間計算所述第i級節(jié)點到多個所述第i+1級節(jié)點的方向與豎直方向的夾角的余弦值;
判斷所述余弦值是否相等,如果相等,繼續(xù)進(jìn)行;否則,選擇對應(yīng)余弦值最小的路徑;
判斷所述第i+1級節(jié)點的所述剩余能量值是否相等,如果是,繼續(xù)進(jìn)行;否則,選擇對應(yīng)所述剩余能量值最大的路徑;
篩選出大于所述鏈路質(zhì)量的質(zhì)量閾值的各所述路徑的鏈路質(zhì)量,并從中選擇對應(yīng)鏈路質(zhì)量最大值的路徑;
對所述K級節(jié)點按照上述步驟操作,獲得由K個節(jié)點連接構(gòu)成的所述水下無線傳感器網(wǎng)絡(luò)最短路徑。
可選的,根據(jù)所述第i級節(jié)點的深度值、初次篩選后的第i+1級節(jié)點集合中各所述第i+1級節(jié)點的深度值和對應(yīng)的所述往返時間計算所述第i級節(jié)點到多個所述第i+1級節(jié)點的方向與豎直方向的夾角的余弦值的步驟具體包括:
根據(jù)公式(1)獲得所述第i級節(jié)點與所述第i+1級節(jié)點的深度差Δd,
其中,d1表示所述第i級節(jié)點的深度值,d2表示所述第i+1級節(jié)點的深度值,p1表示所述第i級節(jié)點的壓力值,p2表示所述第i+1級節(jié)點的壓力值,g表示重力加速度,ρ表示水的密度;
根據(jù)公式(2)獲得所述命令包傳播的距離s,
s=Δtv0 (2);
其中,Δt表示所述往返時間,v0表示所述命令包在水中的傳播速度;
根據(jù)公式(3)得出所述余弦值pri,
其中,Δd表示所述第i級節(jié)點與所述第i+1級節(jié)點深度差,s表示所述命令包傳播的距離。
可選的,每個所述節(jié)點都設(shè)置有計時器和壓力傳感器。
可選的,所述第i+1級節(jié)點還包括空白節(jié)點,所述計算方法還包括:
判斷所述第i+1級節(jié)點是否為空白節(jié)點,如果是,啟動恢復(fù)算法;否則繼續(xù)發(fā)送至下一級節(jié)點。
可選的,當(dāng)所述第i+1級節(jié)點為空白節(jié)點,將所述第i+1級節(jié)點反饋的對應(yīng)級別的第i+1級數(shù)據(jù)包的標(biāo)志位設(shè)置為“1”,所述恢復(fù)算法具體包括:
當(dāng)所述第i級節(jié)點收到第i+1級響應(yīng)命令包時,所述第i級數(shù)據(jù)包的標(biāo)志位為“1”時,刪除對應(yīng)的所述第i級節(jié)點到所述空白節(jié)點的路徑;
當(dāng)所述第i+1級節(jié)點收到所述第i級節(jié)點發(fā)送的對應(yīng)級別的第i級數(shù)據(jù)包時,將所述第i+1級節(jié)點收到的對應(yīng)級別的第i級數(shù)據(jù)包的標(biāo)志位設(shè)置為“0”,繼續(xù)轉(zhuǎn)發(fā)對應(yīng)級別的數(shù)據(jù)包。
可選的,所述第i級節(jié)點根據(jù)所述命令包記錄所述第i+1級節(jié)點的ID值,所述深度值,所述剩余能量值,所述鏈路質(zhì)量,所述往返時間。
可選的,所述鏈路質(zhì)量的計算方法包括:
鏈路質(zhì)量C(s,f)=Blog2(1+SNR(s,f)) (4);
其中,s表示所述命令包在水中傳播的距離,B表示傳輸帶寬,SNR表示信噪比,f表示通信頻率。
根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術(shù)效果:根據(jù)第i級節(jié)點的深度值大于第i+1級節(jié)點的深度值以及第i+1級節(jié)點的剩余能量值大于設(shè)定能量閾值,依次比較深度值、剩余能量值、傳輸命令包的往返時間、鏈路質(zhì)量篩選出水下無線傳感器網(wǎng)絡(luò)路由的最短路徑,實現(xiàn)了獨立節(jié)點地理位置信息和節(jié)點間的時間同步,減小了節(jié)點到節(jié)點的延時,提高了能量效率,延長了整個無線網(wǎng)絡(luò)的生命周期。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一種水下無線傳感器網(wǎng)絡(luò)最短路徑路由算法的流程圖;
圖2為本發(fā)明中恢復(fù)算法的流程圖;
圖3為本發(fā)明水下無線網(wǎng)絡(luò)拓?fù)鋱D;
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的目的是提供一種水下無線傳感器網(wǎng)絡(luò)最短路徑路由算法。
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本發(fā)明作進(jìn)一步詳細(xì)的說明。
一種水下無線傳感器網(wǎng)絡(luò)最短路徑路由計算方法,如圖3所示,水下無線傳感器網(wǎng)絡(luò)由K級節(jié)點的路由器連接形成,其中,如圖1所示,所述計算方法包括:
步驟100:根據(jù)第i級節(jié)點的深度值大于第i+1級節(jié)點的深度值以及第i+1級節(jié)點的剩余能量值大于設(shè)定能量閾值,初次篩選出第i+1級節(jié)點集合;對于不符合篩選條件的第i+1級節(jié)點,刪除路由信息,所述不符合篩選條件的第i+1級節(jié)點丟棄所述命令包,其中,i=0,1,...,K-1。
步驟200:所述第i+1級節(jié)點對第i級節(jié)點進(jìn)行響應(yīng),反饋出響應(yīng)命令包,計算所述第i級節(jié)點從發(fā)出對應(yīng)級別命令包到接收到所述第i+1級節(jié)點集合中各所述第i+1級節(jié)點反饋的對應(yīng)級別響應(yīng)命令包的往返時間,所述往返時間越長,所述命令傳播的距離越長,能量損失越大。
步驟300:根據(jù)所述第i級節(jié)點的深度值、初次篩選后的第i+1級節(jié)點集合中各所述第i+1級節(jié)點的深度值和對應(yīng)的所述往返時間計算所述第i級節(jié)點到多個所述第i+1級節(jié)點的方向與豎直方向的夾角的余弦值。
步驟400:判斷所述余弦值是否相等,如果相等,執(zhí)行步驟500;否則,選擇對應(yīng)余弦值最小的路徑。
步驟500:判斷所述第i+1級節(jié)點的所述剩余能量值是否相等,如果是,執(zhí)行步驟600;否則,選擇對應(yīng)所述剩余能量值最大的路徑,通過引入剩余能量的比較,延長了整個網(wǎng)絡(luò)的壽命,即時轉(zhuǎn)發(fā)數(shù)據(jù)包,使得無線網(wǎng)絡(luò)在節(jié)點間傳輸?shù)难訒r縮短。
步驟600:篩選出大于所述鏈路質(zhì)量的質(zhì)量閾值的各所述路徑的鏈路質(zhì)量,并從中選擇對應(yīng)鏈路質(zhì)量最大值的路徑,選擇所述鏈路質(zhì)量好的路由,優(yōu)化了系統(tǒng)性能,降低了傳輸誤碼率。
步驟700:對所述K級節(jié)點按照上述步驟操作,獲得由K個節(jié)點連接構(gòu)成的所述水下無線傳感器網(wǎng)絡(luò)最短路徑。
每個所述節(jié)點都裝備有計時器和壓力傳感器,所述計時器用來確定所述第i級節(jié)點和第i+1級節(jié)點之間的距離,所述壓力傳感器用來測量節(jié)點深度值,根據(jù)所述第i級節(jié)點的深度值、初次篩選后的第i+1級節(jié)點集合中各所述第i+1級節(jié)點的深度值和對應(yīng)的所述往返時間計算所述第i級節(jié)點到多個所述第i+1級節(jié)點的方向與豎直方向的夾角的余弦值的步驟具體包括:
301:根據(jù)公式(1)獲得所述第i級節(jié)點與所述第i+1級節(jié)點的深度差Δd,
其中,d1表示所述第i級節(jié)點的深度值,d2表示所述第i+1級節(jié)點的深度值,p1表示所述第i級節(jié)點的壓力值,p2表示所述第i+1級節(jié)點的壓力值,g表示重力加速度,ρ表示水的密度;
302:根據(jù)公式(2)獲得所述命令包傳播的距離s,
s=Δtv0 (2);
其中,Δt表示所述往返時間,v0表示所述命令包在水中的傳播速度;
303:根據(jù)公式(3)得出所述余弦值pri,
其中,Δd表示所述第i級節(jié)點與所述第i+1級節(jié)點深度差,s表示所述命令包傳播的距離。
當(dāng)所述第i+1級節(jié)點不符合篩選條件時,所述第i+1級節(jié)點還包括空白節(jié)點。所述計算方法還包括:判斷所述第i+1級節(jié)點是否為空白節(jié)點,如果是,空白節(jié)點不能將所述對應(yīng)級別的命令包發(fā)送到對應(yīng)級別的節(jié)點,最終不能將所述對應(yīng)級別的數(shù)據(jù)包交付到水面上的傳感器節(jié)點,導(dǎo)致數(shù)據(jù)包交付率降低,所以,當(dāng)?shù)趇+1級節(jié)點為空白節(jié)點時,啟動恢復(fù)算法;否則繼續(xù)轉(zhuǎn)發(fā)至下一級節(jié)點。
如圖2所示,當(dāng)所述第i+1級節(jié)點為空白節(jié)點,將所述第i+1級節(jié)點反饋的對應(yīng)級別的第i+1級數(shù)據(jù)包的標(biāo)志位設(shè)置為“1”,所述標(biāo)志位為數(shù)據(jù)包的包頭中表示轉(zhuǎn)發(fā)次數(shù)的字段,標(biāo)志位設(shè)置為“1”表示對應(yīng)級別的數(shù)據(jù)包轉(zhuǎn)發(fā)過,但是沒有成功轉(zhuǎn)發(fā),所述恢復(fù)算法具體包括:
步驟101:當(dāng)所述第i級節(jié)點收到第i+1級響應(yīng)命令包時,所述第i級數(shù)據(jù)包的標(biāo)志位為“1”時,刪除對應(yīng)的所述第i級節(jié)點到所述空白節(jié)點的路徑。
步驟102:當(dāng)所述第i+1級節(jié)點收到所述第i級節(jié)點發(fā)送的對應(yīng)級別的第i級數(shù)據(jù)包時,將所述第i+1級節(jié)點收到的對應(yīng)級別的第i級數(shù)據(jù)包的標(biāo)志位設(shè)置為“0”。
步驟103:繼續(xù)轉(zhuǎn)發(fā)對應(yīng)級別的數(shù)據(jù)包,繼續(xù)按照最短路徑的原則進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)包。
所述第i級節(jié)點根據(jù)所述命令包記錄所述第i+1級節(jié)點的ID值,所述深度值,所述剩余能量值,所述鏈路質(zhì)量,所述往返時間。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統(tǒng)而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。