曾傳璜,蔣紅剛
(江西理工大學信息工程學院,江西贛州 341000)
無線傳感器網(wǎng)絡(wireless sensor networks,WSNs)涉及現(xiàn)代微機電系統(tǒng)(micro-electro-mechanical system,MEMS)、微電子、片上系統(tǒng)(system-on-chip,SoC)、納米材料、傳感器、無線通信、計算機網(wǎng)絡、分布式信息處理等技術(shù),在國防軍事、工農(nóng)業(yè)控制、城市管理、衛(wèi)生醫(yī)療、環(huán)境監(jiān)測、搶險救災、反恐防恐、危險區(qū)域遠程控制等領(lǐng)域有著潛在的應用前景。美國《商業(yè)周刊》將WSNs列為21世紀最有影響力的21項技術(shù)之一,《MIT技術(shù)評論》將無線傳感器網(wǎng)絡列于10種改變未來世界新興技術(shù)之首[1]。
無線傳感器網(wǎng)絡的定位是指自組織的網(wǎng)絡通過特定方法提供節(jié)點位置信息,這種自組織網(wǎng)絡定位分為節(jié)點自身定位和目標定位。節(jié)點自身定位是網(wǎng)絡自身屬性的確定過程,可以通過人工標定或者各種節(jié)點自定位算法完成。目標定位是位置已知的網(wǎng)絡節(jié)點為參考節(jié)點,確定事件或者目標在網(wǎng)絡中所處的位置[2]。
根據(jù)定位過程中是否實際測量節(jié)點間的距離或角度,把傳感器網(wǎng)絡中的定位分類為基于距離的定位和距離無關(guān)的定位?;诰嚯x的定位機制就是通過測量相鄰節(jié)點間的實際距離或方位來確定未知節(jié)點的位置,通常采用測距、定位和修正等步驟實現(xiàn)。根據(jù)測量節(jié)點間距離或方位時所采用的方法,基于距離的定位分為基于ToA[3]的定位、基于TDoA[4]的定位、基于 AoA[5]的定位、基于 RSSI[6]的定位等。由于要實際測量節(jié)點間的距離或角度,基于距離的定位機制通常定位精度相對較高,所以,對節(jié)點的硬件也提出了很高的要求。距離無關(guān)的定位機制無須實際測量節(jié)點間的絕對距離或方位就能夠確定未知節(jié)點的位置,目前提出的定位機制主要有質(zhì)心算法、DV-Hop算法[7]、Amorphous算法、APIT算法等[8]。本文在結(jié)合三邊定位和三角定位的基礎上,提出一種新的基于測距的三角幾何定位方法。
在節(jié)點定位算法中,與距離相關(guān)的定位算法有三邊測量法,三角測量法,極大似然估計法等。三邊測量法需要知道與3個節(jié)點相關(guān)的距離信息;三角測量法需要知道與未知點相關(guān)的3個角度信息。本文提出的方法則是要知道未知節(jié)點與某一信標節(jié)點相關(guān)的一個距離,2個角度的相關(guān)信息。
如圖1,p點為位置未知節(jié)點,o,o1和o2是選取的信標節(jié)點,現(xiàn)以oo1為x軸的正半軸,o1oo2為xoy平面建立三維坐標系。p1為p點在o1oo2三點所組成的平面上的投影。
圖1 定位算法示意圖Fig 1 Schematic diagram of localization algorithm
已知3個信標節(jié)點空間坐標,通過距離運算公式
可以得到三點間兩兩之間的距離:loo1,loo2,lo1o2。
利用余弦定理
可以得到角∠o1oo2的大小。
通過3個信標節(jié)點可以測量得到:lop,∠poo1,∠poo2。
根據(jù)余弦定理有
式(3)和式(4)相比得
根據(jù)三角函數(shù)運算有
由式(3)平方與式(6)及三角平方公式得
由式(5)與式(7)及平方公式得
根據(jù)圖1所示和三角運算可知p點坐標(px,py,pz)
根據(jù)式(3)和式(9)得
根據(jù)式(3),式(5)和式(10)得
根據(jù)式(8)和式(11)得
通過以上的運算即可得到p點坐標(px,py,pz)。當然這是以o點為坐標原點,以oo1為x的正半軸,o1oo2為xoy平面建立三維坐標系得到的(px,py,pz)。在實際中這三點坐標并不是這樣,但三點確定一個平面,可以將信標節(jié)點坐標進行平移變換,使其中一點平移變換到坐標原點。變換以后,將坐標原點的點與另外一點作為x軸,而平移變換后的三點便成為xoy平面,這樣便可以使用上述方法計算出未知節(jié)點的相對坐標,再進行坐標變換就可以得到原坐標系中未知節(jié)點的實際坐標。
方法改進的討論:
通過以上計算可知在測量得到與o點相關(guān)的數(shù)據(jù)信息,通過三角幾何運算得到p點的相對坐標,再進行坐標變換即可得到p點在實際中的坐標。在計算未知節(jié)點的過程中不需要o1點和o2點的距離與角度信息,但是在坐標變換中又需要其相關(guān)信息。為了獲取更多與未知節(jié)點相關(guān)的信息,提高定位的精確性,可以合理利用這兩點與未知節(jié)點的相關(guān)信息,在此對以上方法進行改進。方法改進中,將o1點和未知節(jié)點相關(guān)的一邊與兩角測量出來,將o1作為坐標原點,o1o為x軸和上面的方法一樣,對未知節(jié)點的相關(guān)數(shù)據(jù)信息進行計算,得到另一組p點的相對坐標。然后再運用坐標變換,可得到第二組p點實際坐標。同理,通過o2點與未知節(jié)點相關(guān)數(shù)據(jù)可以的到第三組p點實際坐標。當然o點,o1點,o2點本生是在同一坐標系內(nèi)的,得到的未知節(jié)點的實際坐標應該是一樣的。但由于測量誤差的存在,這三組數(shù)據(jù)不一定相同,這時可以再運用質(zhì)心法求解p點坐標。
改進算法的優(yōu)點是:
1)測量數(shù)據(jù)之間是相互獨立的,數(shù)據(jù)量很大時測量誤差就會趨近于零。
2)通過3個信標節(jié)點就可以獲取三組未知節(jié)點位置坐標,本方法在信標節(jié)點較少的情況下,仍然能夠得到較多的關(guān)于未知節(jié)點坐標的信息(n個信標節(jié)點可以產(chǎn)生C3n×3組數(shù)據(jù)),可以應用于信標節(jié)點密度較小時對未知節(jié)點的定位。
本文只針對定位算法本生所產(chǎn)生的節(jié)點定位精度進行
在誤差計算時將3個信標節(jié)點對未知節(jié)點的定位誤差分別計算出來。同時,利用質(zhì)心法將3個信標節(jié)點的計算坐標進行處理。計算出定位坐標與實際坐標之間的誤差,將平均定位誤差作為本方法的最終定位誤差。
其仿真過程如下:
1)在大小100 m×100 m×100 m的空間坐標中選取3個信標節(jié)點,假設分別為o點、o1點、o2點。
2)在上面的基礎上再隨機產(chǎn)生一個未知節(jié)點p點,假設為(x3,y3,z3,)。
3)通過在Matlab中編寫程序計算出相應的角度與長度,并將其分為三組:
4)將以上計算得到的長度,角度分別加上隨機誤差,作為測量數(shù)據(jù)。
5)根據(jù)新算法,用三組帶有隨機誤差的長度與角度計算未知節(jié)點的坐標,假設計算結(jié)果分別為(x,y,z),(x1,y1,z1),(x2,y2,z2),用質(zhì)心法將上面三組數(shù)據(jù)處理得到(xi,yi,zi)。
6)用上面所產(chǎn)生的四組坐標數(shù)據(jù)與未知節(jié)點p(x3,y3,z3,),計算定位誤差。
7)重復以上運算1 000次,顯示每次定位誤差,計算1000次定位的平均定位誤差。
實驗仿真中設定角度測量誤差為5°,長度測量誤差為5%R(R通信半徑)?,F(xiàn)取3 個信標節(jié)點(0,0,0 m)(53,0,0 m)(32,18,0 m)對100 m ×100 m ×100 m 內(nèi) 1000 個任意未知點進行定位。計算出3個信標節(jié)點對1 000個未知節(jié)點相應的定位坐標,將3個信標節(jié)點定位坐標再利用質(zhì)心法對其進行相應處理,將處理后的坐標定為最終的未知節(jié)點的坐標。仿真中分別計算出3個信標節(jié)點的相應定位誤差和利用質(zhì)心法處理上述3個信標節(jié)點定位坐標的定位誤差,同時計算出這1000個未知節(jié)點定位的平均定位誤差。用Matlab仿真,定位誤差示意圖如圖2~圖5所示。
經(jīng)過質(zhì)心算法改進后的平均定位誤差為4.98%(第一個信標節(jié)點為坐標原點時的平均定位誤差為8.62%,第二個信標節(jié)點為坐標原點時的平均定位誤差為8.41%,第三個信標節(jié)點為坐標原點時的平均定位誤差為10.11%)??梢娫撍惴ǜ倪M后的定位誤差相比于其他的定位算法的定位誤差要小得多。分析,利用Matlab對三角幾何算法進行仿真。定位誤差pe定義如下
圖2 第一個信標節(jié)點為坐標原點時的定位誤差示意圖Fig 2 Localization error diagram while the 1st beacon node is the origin of coordinates
圖3 第二個信標節(jié)點為坐標原點時的定位誤差示意圖Fig 3 Localization error diagram while the 2nd beacon node is the origin of coordinates
圖4 第三個信標節(jié)點為坐標原點時的定位誤差示意圖Fig 4 Localization error diagram while the 3rd beacon node is the origin of coordinates
圖5 運用質(zhì)心算法改進定位誤差示意圖Fig 5 Localization error diagram with the improved centroid algorithm
本文提出了一種新的基于測距的三維無線傳感器網(wǎng)絡節(jié)點定位算法,通過測量一邊、兩角,運用三角幾何知識計算出相對坐標,通過坐標轉(zhuǎn)換計算出實際坐標,實現(xiàn)定位。該算法改進后相對其他的定位算法來說,定位精度相對較高。在信標節(jié)點相對較少的情況下仍然能夠得到較多數(shù)據(jù),適合于信標節(jié)點密度相對較小的情況,即可以應用到計算精度要求比較高,計算節(jié)點密度較小的三維無線傳感器網(wǎng)絡節(jié)點定位中去。
[1] 徐勇軍.無線傳感器網(wǎng)絡實驗教程[M].北京:北京理工大學出版社,2007.
[2] 李曉維.無線傳感器網(wǎng)絡技術(shù)[M].北京:北京理工大學出版社,2007:191.
[3] Chuang Woo-cheol,Ha Dong-sam.An accurate ultrawideband(UWB)ranging for precision asset location[C]∥Proceedings of the IEEE Conference on Ultra Wideband Systems and Technologies Reston,Piscataway,NJ,USA,2003:389 -393.
[4] Savvides A,Park H,Srivastava M.The bits and flops of the n-hop multilateration primitive for node localization problems[C]∥The first ACM International Workshop on Wireless Sensor Networks and Application,Atlanta,GA,USA,2002:112 -121.
[5] Niculescu D,Nath B.Ad Hoc positioning system(APS)using AoA[C]∥Proceedings of the 22nd Annual Joint Conference of the IEEE Computer and Communications Societies(INFOCOM),Piscataway,USA,2003:1734 -1743.
[6] Niculescu D,Nath B.DV-based positioning in Ad Hoc networks[J].Journal of Telecommunication Systems,2003,22(1/4):267-280.
[7] Bulusu N,Heidemann J,Estrin D,et al.Self-configuring localization system:Design and experimental evaluation[J].ACM Transaction on Embedded Computing System,2004,3(1):24 -60.
[8] 孫利民,李建樹,陳 渝,等.無線傳感器網(wǎng)絡[M].北京:清華大學出版社,2005:156-157.