基于修正的仿真曲線擬合的非測(cè)距定位算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于修正的仿真曲線擬合的非測(cè)距定位算法,屬于無(wú)線傳感器網(wǎng) 絡(luò)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 定位技術(shù)作為無(wú)線傳感器網(wǎng)絡(luò)中的關(guān)鍵技術(shù)之一,在復(fù)雜環(huán)境和無(wú)法人工部署節(jié) 點(diǎn)的情況下,通過(guò)隨機(jī)播撒的方式進(jìn)行節(jié)點(diǎn)部署,因此,定位技術(shù)成為不可或缺的一部分。 基于非測(cè)距的定位技術(shù)是目前國(guó)內(nèi)外應(yīng)用中常用的方法,而DV-Hop算法是非測(cè)距定位技 術(shù)中實(shí)用應(yīng)用范圍最廣的一種,它解決了高誤差和高開(kāi)銷的問(wèn)題,在節(jié)點(diǎn)規(guī)模較大、通信量 較大的無(wú)線傳感器網(wǎng)絡(luò)中,是一種非常好的定位解決手段。
[0003] 目前,國(guó)內(nèi)外基于DV-Hop算法的研宄和改進(jìn)越來(lái)越多,DV-Hop在計(jì)算未知節(jié)點(diǎn) 與錨節(jié)點(diǎn)間的估算距離時(shí),用跳數(shù)乘以平均每跳距離表示,而當(dāng)網(wǎng)絡(luò)中的跳數(shù)大于或等于2 跳時(shí),未知節(jié)點(diǎn)與錨節(jié)點(diǎn)間的實(shí)際距離與跳數(shù)乘以平均每跳距離所得的值,存在較大的誤 差,定位精度會(huì)下降。大多數(shù)研宄都是從節(jié)點(diǎn)平均每跳距離入手,通過(guò)精確平均每跳距離來(lái) 提高定位精度,經(jīng)典的算法包括利用錨節(jié)點(diǎn)個(gè)數(shù)、采用最小均方誤差準(zhǔn)則和利用加權(quán)處理 的方式等。
[0004] 基于修正的仿真曲線擬合算法(簡(jiǎn)稱ASCF)在定位技術(shù)研宄現(xiàn)狀和非測(cè)距定位算 法的基礎(chǔ)上,對(duì)DV-HOP定位算法的跳段距離和錨節(jié)點(diǎn)選擇上進(jìn)行修改,減小平均每跳距離 造成的距離誤差,提高定位精度。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供了一種基于修正的仿真曲線擬合的非測(cè)距定位算法,其改 善在復(fù)雜環(huán)境下定位精度低的問(wèn)題,通過(guò)對(duì)原算法的跳段距離和錨節(jié)點(diǎn)選擇上進(jìn)行修改, 從而減小距離誤差,提高定位精度。
[0006] 本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:基于修正的仿真曲線擬合的非測(cè)距定位算法, 其特征在于:該算法所需設(shè)備以及實(shí)現(xiàn)步驟如下: 所需設(shè)備:無(wú)線傳感器節(jié)點(diǎn)組,包括400個(gè)無(wú)線傳感器節(jié)點(diǎn),其中80個(gè)無(wú)線傳感器節(jié)點(diǎn)
面直角坐標(biāo)系上的X軸和y軸坐標(biāo);320個(gè)無(wú)線傳感器節(jié)點(diǎn)的位置未知,稱為未知節(jié)點(diǎn),用
坐標(biāo)。400個(gè)無(wú)線傳感器節(jié)點(diǎn)隨機(jī)分布在200mX 200m的網(wǎng)絡(luò)區(qū)域中。無(wú)線傳感器節(jié)點(diǎn)的通 信半徑均為60m,一個(gè)無(wú)線傳感器節(jié)點(diǎn)通信半徑內(nèi)的其它節(jié)點(diǎn),稱為該無(wú)線傳感器節(jié)點(diǎn)的鄰 居節(jié)點(diǎn)。任意兩個(gè)無(wú)線傳感器節(jié)點(diǎn),如果它們間的真實(shí)距離小于或等于通信半徑,則兩個(gè)無(wú) 線傳感器節(jié)點(diǎn)間的跳數(shù)值為1,如果它們間的真實(shí)距離大于通信半徑,兩個(gè)無(wú)線傳感器節(jié)點(diǎn) 通信需要經(jīng)過(guò)另外#(彩2)個(gè)無(wú)線傳感器節(jié)點(diǎn),則兩個(gè)無(wú)線傳感器節(jié)點(diǎn)間的跳數(shù)值為斯1。
[0007] 實(shí)現(xiàn)步驟: 1、構(gòu)建矩陣"〇/?_兒為矩陣的第P行,第<7列元素,表 示Abo(9_J(/7)與Abo(9_J(<7)間的最小跳數(shù)值,如果尸<7,那么漢<7) =〇,尸1,2,…,80, fl,2,…,80〇
計(jì)算未知節(jié)點(diǎn):V〇iie_Ll;i)在平面直角坐標(biāo)系上的位置fi, -vO, (:/=U_^320:l。
[0021] 通過(guò)以上步驟可以通過(guò)找到未知節(jié)點(diǎn)到每個(gè)錨節(jié)點(diǎn)所經(jīng)過(guò)的第一個(gè)錨節(jié)點(diǎn),從而 直接用兩個(gè)錨節(jié)點(diǎn)的真實(shí)距離代替原來(lái)的估算距離,大大提高了未知節(jié)點(diǎn)的定位精度。
[0022] 本發(fā)明的積極效果是減小未知節(jié)點(diǎn)到錨節(jié)點(diǎn)的距離誤差,通過(guò)兩個(gè)錨節(jié)點(diǎn)間的真 實(shí)距離代替原來(lái)的平均每跳距離計(jì)算出的估算距離,提高定位的準(zhǔn)確性,減少節(jié)點(diǎn)因?yàn)榫?離誤差造成的不必要的能量浪費(fèi),進(jìn)而延長(zhǎng)網(wǎng)絡(luò)區(qū)域的整個(gè)生命周期。
【具體實(shí)施方式】
[0023] 下面結(jié)合實(shí)施例對(duì)本發(fā)明做進(jìn)一步的描述: 基于修正的仿真曲線擬合的非測(cè)距定位算法,其特征在于:該算法所需設(shè)備以及實(shí)現(xiàn) 步驟如下: 所需設(shè)備:無(wú)線傳感器節(jié)點(diǎn)組,包括400個(gè)無(wú)線傳感器節(jié)點(diǎn),其中80個(gè)無(wú)線傳感器節(jié)點(diǎn)
面直角坐標(biāo)系上的X軸和y軸坐標(biāo);320個(gè)無(wú)線傳感器節(jié)點(diǎn)的位置未知,稱為未知節(jié)點(diǎn),用
標(biāo)。400個(gè)無(wú)線傳感器節(jié)點(diǎn)隨機(jī)分布在200mX200m的網(wǎng)絡(luò)區(qū)域中。無(wú)線傳感器節(jié)點(diǎn)的通信 半徑均為60m,一個(gè)無(wú)線傳感器節(jié)點(diǎn)通信半徑內(nèi)的其它節(jié)點(diǎn),稱為該無(wú)線傳感器節(jié)點(diǎn)的鄰居 節(jié)點(diǎn)。任意兩個(gè)無(wú)線傳感器節(jié)點(diǎn),如果它們間的真實(shí)距離小于或等于通信半徑,則兩個(gè)無(wú)線 傳感器節(jié)點(diǎn)間的跳數(shù)值為1,如果它們間的真實(shí)距離大于通信半徑,兩個(gè)無(wú)線傳感器節(jié)點(diǎn)通 信需要經(jīng)過(guò)另外#(彩2)個(gè)無(wú)線傳感器節(jié)點(diǎn),則兩個(gè)無(wú)線傳感器節(jié)點(diǎn)間的跳數(shù)值為斯1。 [0024]實(shí)現(xiàn)步驟:
[0038] 通過(guò)以上步驟可以通過(guò)找到未知節(jié)點(diǎn)到每個(gè)錨節(jié)點(diǎn)所經(jīng)過(guò)的第一個(gè)錨節(jié)點(diǎn),從而 直接用兩個(gè)錨節(jié)點(diǎn)的真實(shí)距離代替原來(lái)的估算距離,大大提高了未知節(jié)點(diǎn)的定位精度。
【主權(quán)項(xiàng)】
1.基于修正的仿真曲線擬合的非測(cè)距定位算法,其特征在于:該算法所需設(shè)備以及實(shí) 現(xiàn)步驟如下: 所需設(shè)備:無(wú)線傳感器節(jié)點(diǎn)組,包括400個(gè)無(wú)線傳感器節(jié)點(diǎn),其中80個(gè)無(wú)線傳感器節(jié) 點(diǎn)已知自己的位置,稱為銷節(jié)點(diǎn),用表不,f=i_2.....80, (^!, 平面直角坐標(biāo)系上的x軸和y軸坐標(biāo);320個(gè)無(wú)線傳感器節(jié)點(diǎn)的位置未知,稱為未知節(jié)點(diǎn), 用Abdmi'.)表示,/=12 )表示_¥〇*_£*(/>在平面直角坐標(biāo)系上的x軸和y 軸坐標(biāo);400個(gè)無(wú)線傳感器節(jié)點(diǎn)隨機(jī)分布在200mX200m的網(wǎng)絡(luò)區(qū)域中;無(wú)線傳感器節(jié)點(diǎn)的 通信半徑均為60m,一個(gè)無(wú)線傳感器節(jié)點(diǎn)通信半徑內(nèi)的其它節(jié)點(diǎn),稱為該無(wú)線傳感器節(jié)點(diǎn)的 鄰居節(jié)點(diǎn);任意兩個(gè)無(wú)線傳感器節(jié)點(diǎn),如果它們間的真實(shí)距離小于或等于通信半徑,則兩個(gè) 無(wú)線傳感器節(jié)點(diǎn)間的跳數(shù)值為1,如果它們間的真實(shí)距離大于通信半徑,兩個(gè)無(wú)線傳感器節(jié) 點(diǎn)通信需要經(jīng)過(guò)另外MA會(huì)2)個(gè)無(wú)線傳感器節(jié)點(diǎn),則兩個(gè)無(wú)線傳感器節(jié)點(diǎn)間的跳數(shù)值為 糾; 實(shí)現(xiàn)步驟: 1、 構(gòu)建矩陣為矩陣的第行,第<7列元素,^表 示Abo(9_J(/7)與Abo(9_J(<7)間的最小跳數(shù)值,如果尸<7,那么漢<7) =〇,尸1,2,…,80, q=l,2, ???, 80 ; 2、 構(gòu)建矩陣為矩陣的第/行,第f列元素,丑£)表 不iVod'e-[V')與見(jiàn)而-為纟)間的最小跳數(shù)值,彡=1.2 320, ^ =1.2SO; 3、 構(gòu)建向量i?,用/>為向量鐘的第/.個(gè)元素;對(duì)應(yīng)矩陣故t沖的跳數(shù)值,設(shè) "(I.)到I')經(jīng)過(guò)的無(wú)線傳感器節(jié)點(diǎn)個(gè)數(shù)用J2(I)表示,/=1丄..:320 ; 4、 構(gòu)建:/x£'個(gè)路徑向量及owli'-1,Ll〇-)為向量九沖的第元素,對(duì) 應(yīng)矩陣沖的跳數(shù)值,設(shè):經(jīng)過(guò)的無(wú)線傳感器節(jié)點(diǎn)用路徑向量 勤說(shuō)」-1々)表示,/.=1義.."320,Ll^.iSO,+r=l工...J(/); 5、 構(gòu)建向量' Z.0為向量L中的第I?個(gè)元素;在路徑向量j中,設(shè)到 iVoafe-Jf;1}經(jīng)過(guò)的錨節(jié)點(diǎn)的個(gè)數(shù)用_£(/>表示,£(/聲財(cái)/=i上…=320; 6、 構(gòu)建/xi個(gè)向量MJ_i,MjJ(w)為向量.MjJ.中的第w個(gè)元素, "1上…:320, !=1又…JO,w=l么…:£(/),財(cái)丄和)為路徑向量編中的第w個(gè)錨 節(jié)點(diǎn); 7、 構(gòu)建矩陣top,為矩陣ftop的第/.行,第f列元素,h〇p(/,;a表示路徑向量 間的跳數(shù)值,/=1=2一=320,M二…80 ; 8、構(gòu)建向量lopSbe,/#opSize(p)為第p個(gè)元素,根據(jù)公式計(jì)算每?jī)蓚€(gè)錨節(jié)點(diǎn)之間的平均每跳距離if〇pSii(P),P=1:2:_._:g〇 ; 9、 平均每跳距離發(fā)送給所有無(wú)線傳感器節(jié)點(diǎn), M么...:80, 收向量伽衫故的多個(gè)元素;構(gòu)建向量-Size,5加(/).為第/個(gè)元 素,5ire(/〕表示jVit?fe_l:T(/)第一個(gè)接收的向量Hop5ize的元素,/=1丄..:32〇 ; 10、 構(gòu)建矩陣Mstemre1,Wsten.ee1 (/, ?〇為第/行,第!'歹[|元素,根據(jù)公式計(jì)算對(duì)應(yīng)Mjj⑴與AUJ.〇C/))間的真實(shí)距離Distancel(j,i)t UlX-.320,M=2=.^JO; 11、 構(gòu)建矩陣Distanced,Dfsta+mre2 (/,i)為第/行,第例元素,根據(jù)公式計(jì)算對(duì)應(yīng)_\We_L.T』')> -Vorfe_r(/)與 Mj'J(l)之間的估算距離 DistMnce2(j,i)tJ=l=2;._.320, £=L2=.,..J0 ; 12、 構(gòu)建矩陣Wstonee,Wstawe(/?i)為第/行,第例元素,根據(jù)公式計(jì)算AMe_r(/)到的估算距離識(shí)對(duì)鎖.《(/」〕,/=1又~:320,f.=l二-J0 ; 13、 對(duì)于_¥〇▲_£;(/},從:Vorfejfh中任意找三個(gè)不同的錨節(jié)點(diǎn)14、 根據(jù)公式計(jì)算未知節(jié)點(diǎn)在平面直角坐標(biāo)系上的位置f/,乃》,(/=1X..,320); 通過(guò)以上步驟可以通過(guò)找到未知節(jié)點(diǎn)到每個(gè)錨節(jié)點(diǎn)所經(jīng)過(guò)的第一個(gè)錨節(jié)點(diǎn),從而直接 用兩個(gè)錨節(jié)點(diǎn)的真實(shí)距離代替原來(lái)的估算距離,大大提高了未知節(jié)點(diǎn)的定位精度。
【專利摘要】本發(fā)明涉及一種基于修正的仿真曲線擬合的非測(cè)距定位算法,其特征在于:該算法所需設(shè)備以及實(shí)現(xiàn)步驟如下:所需設(shè)備:無(wú)線傳感器節(jié)點(diǎn)組,包括400個(gè)無(wú)線傳感器節(jié)點(diǎn),其中80個(gè)無(wú)線傳感器節(jié)點(diǎn)已知自己的位置,稱為錨節(jié)點(diǎn),用表示,表示在平面直角坐標(biāo)系上的x軸和y軸坐標(biāo);320個(gè)無(wú)線傳感器節(jié)點(diǎn)的位置未知,稱為未知節(jié)點(diǎn),用表示,表示在平面直角坐標(biāo)系上的x軸和y軸坐標(biāo)。其改善在復(fù)雜環(huán)境下定位精度低的問(wèn)題,通過(guò)對(duì)原算法的跳段距離和錨節(jié)點(diǎn)選擇上進(jìn)行修改,從而減小距離誤差,提高定位精度。
【IPC分類】H04W64/00
【公開(kāi)號(hào)】CN104994578
【申請(qǐng)?zhí)枴緾N201510354778
【發(fā)明人】馮欣, 劉壯, 張昕, 韓成, 張劍飛, 張晶晶, 王雁龍, 李騰, 楊文龍
【申請(qǐng)人】長(zhǎng)春理工大學(xué)
【公開(kāi)日】2015年10月21日
【申請(qǐng)日】2015年6月25日