定位基本方法 1

节点定位方法

1. 节点定位的计算

在 WSNs 的定位中,未知节点通过一定的技术和方法能够获得定位自身所需的坐标、角度或距离信息,从而利用节点位置的计算方法计算自身位置。下面我们将介绍几种较为典型的位置计算方法:三边测量法三角测量法极大似然估计法最小二乘法等

1.1 三边测量法

二维空间位置计算中,当未知节点获得三个 BS 节点的位置和距离信息时,可通过三边测量方法计算 MS 位置。

sbc

如图所示,未知节点 D,其坐标 ( x , y ) (x,y) (x,y) 未知;通信半径内有三个 BS 节点 A、B、C,三个 BS 节点的位置已知,分别为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3),通过一定的方法估测出未知节点与 BS 节点之间的距离为 d 1 , d 2 , d 3 d_1,d_2,d_3 d1,d2,d3。由此可得
( x − x i ) 2 + ( y − y i ) 2 = d i 2 ⇓ x 2 + y 2 + x i 2 + y i 2 − 2 x i x − 2 y i y = d i 2 , i = 1 , 2 , 3. (x-x_i)^2+(y-y_i)^2 = d_i^2 \\ \Downarrow \\ x^2+y^2+x_i^2+y_i^2-2x_ix-2y_iy = d_i^2,\quad i=1,2,3. (xxi)2+(yyi)2=di2x2+y2+xi2+yi22xix2yiy=di2,i=1,2,3.
未知参数除了 x , y x,y x,y 还有 x 2 + y 2 x^2+y^2 x2+y2,于是采用高斯消元法可得
d 3 2 − d 1 2 = 2 ( x 1 − x 3 ) x + 2 ( y 1 − y 3 ) y + x 3 2 − x 1 2 + y 3 2 − y 1 2 d 3 2 − d 2 2 = 2 ( x 2 − x 3 ) x + 2 ( y 2 − y 3 ) y + x 3 2 − x 2 2 + y 3 2 − y 2 2 \begin{aligned} d_3^2-d_1^2 &= 2(x_1-x_3)x+2(y_1-y_3)y+x_3^2-x_1^2+y_3^2-y_1^2 \\ d_3^2-d_2^2 &= 2(x_2-x_3)x+2(y_2-y_3)y+x_3^2-x_2^2+y_3^2-y_2^2 \end{aligned} d32d12d32d22=2(x1x3)x+2(y1y3)y+x32x12+y32y12=2(x2x3)x+2(y2y3)y+x32x22+y32y22
现在转化为只含有两个未知数得方程组,因此可利用求逆得到解。
[ d 3 2 − d 1 2 − x 3 2 + x 1 2 − y 3 2 + y 1 2 d 3 2 − d 2 2 − x 3 2 + x 2 2 − y 3 2 + y 2 2 ] = [ 2 ( x 1 − x 3 ) 2 ( y 1 − y 3 ) 2 ( x 2 − x 3 ) 2 ( y 2 − y 3 ) ] [ x y ] \begin{bmatrix} d_3^2-d_1^2-x_3^2+x_1^2-y_3^2+y_1^2 \\ d_3^2-d_2^2-x_3^2+x_2^2-y_3^2+y_2^2 \end{bmatrix} = \begin{bmatrix} 2(x_1-x_3)&2(y_1-y_3) \\ 2(x_2-x_3)&2(y_2-y_3) \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [d32d12x32+x12y32+y12d32d22x32+x22y32+y22]=[2(x1x3)2(x2x3)2(y1y3)2(y2y3)][xy]

1.2 三角测量法

三角测量法利用 BS 节点与未知节点 MS 之间的角度信息,通过几何关系列出方程组,从而转化为三边测量计算方法的问题。

sjc

三角测量术常用到基于 AOA 方法的测距中, 它根据三个已知坐标的节点到未知节点的相对角度来确定节点坐标。三个 BS 节点 A、B、C 坐标分别为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3),假设节点 D 的坐标为 ( x , y ) (x,y) (x,y),如图所示。

未知节点 D 到节点 A、B、C 之间的夹角分别为 ∠ A D B , ∠ A D C , ∠ B D C ∠ADB,∠ADC,∠BDC ADB,ADC,BDC 已知。

通过节点 A、C 的坐标信息和角度 ∠ A D C \angle ADC ADC 可唯一确定以 O 1 O_1 O1 为圆心, d 1 d_1 d1 为半径的圆。则圆心为 ( x O 1 , y O 1 ) (x_{O1},y_{O1}) (xO1,yO1),设 α = ∠ A O 1 C = 2 ( 18 0 ∘ − ∠ A D C ) \alpha=\angle AO_1C = 2(180^{\circ}-\angle ADC) α=AO1C=2(180ADC)。存在下列公式:
( x O 1 − x 1 ) 2 + ( y O 1 − y 1 ) 2 = d 1 2 ( x O 1 − x 3 ) 2 + ( y O 1 − y 3 ) 2 = d 1 2 ( x 1 − x 3 ) 2 + ( y 1 − y 3 ) 2 = 2 d 1 2 − 2 d 1 2 cos ⁡ α \begin{aligned} (x_{O1}-x_1)^2+(y_{O1}-y_1)^2 &= d_1^2 \\ (x_{O1}-x_3)^2+(y_{O1}-y_3)^2 &= d_1^2 \\ (x_{1}-x_3)^2+(y_{1}-y_3)^2 &= 2d_1^2-2d_1^2\cos \alpha \end{aligned} (xO1x1)2+(yO1y1)2(xO1x3)2+(yO1y3)2(x1x3)2+(y1y3)2=d12=d12=2d122d12cosα
由以上三式能够确定圆心 O 1 O_1 O1 的坐标和半径
d 1 2 = ( x 1 − x 3 ) 2 + ( y 1 − y 3 ) 2 2 ( 1 − cos ⁡ α ) d_1^2 = \frac{(x_{1}-x_3)^2+(y_{1}-y_3)^2}{2(1-\cos \alpha)} d12=2(1cosα)(x1x3)2+(y1y3)2
同理可对 A、B、D 和 B、C、D 分别确定相应的圆心和半径,最后利用三边测量确定 D 的坐标。

1.3 极大似然估计法

该方法所运用的是求解最小误差点的原理,即存在一个点使得所有方程的误差最小。在极大似然估计法中,求解的是距离误差最小点。

jds

如图所示,未知节点的通信范围内有 n n n 个 BS,且已知所有 BS 节点坐标,分别为 ( x 1 , y 1 ) , ⋯   , ( x n , y n ) (x_1,y_1),\cdots,(x_n,y_n) (x1,y1),,(xn,yn)。通过某种方法获得了与各 BS 节点之间的距离 d 1 , d 2 , ⋯   , d n d_1,d_2,\cdots,d_n d1,d2,,dn。假设未知节点 A 的坐标为 ( x , y ) (x,y) (x,y)。由此可知
( x 1 − x ) 2 + ( y 1 − y ) 2 = d 1 2 ( x 2 − x ) 2 + ( y 2 − y ) 2 = d 2 2 ⋮ ( x n − x ) 2 + ( y n − y ) 2 = d n 2 \begin{aligned} (x_{1}-x)^2+(y_{1}-y)^2 &= d_1^2 \\ (x_{2}-x)^2+(y_{2}-y)^2 &= d_2^2 \\ \vdots \\ (x_{n}-x)^2+(y_{n}-y)^2 &= d_n^2 \end{aligned} (x1x)2+(y1y)2(x2x)2+(y2y)2(xnx)2+(yny)2=d12=d22=dn2
将方程组中的前 n − 1 n-1 n1 个方程减去第 n n n 个方程得
x 1 2 − x n 2 + y 1 2 − y n 2 − d 1 2 + d n 2 = 2 ( x 1 − x n ) x + 2 ( y 1 − y n ) y x 2 2 − x n 2 + y 2 2 − y n 2 − d 2 2 + d n 2 = 2 ( x 2 − x n ) x + 2 ( y 2 − y n ) y ⋮ x n − 1 2 − x n 2 + y n − 1 2 − y n 2 − d n − 1 2 + d n 2 = 2 ( x n − 1 − x n ) x + 2 ( y n − 1 − y n ) y \begin{aligned} x_1^2-x_n^2+y_1^2-y_n^2-d_1^2+d_n^2 &= 2(x_1-x_n)x+2(y_1-y_n)y \\ x_2^2-x_n^2+y_2^2-y_n^2-d_2^2+d_n^2 &= 2(x_2-x_n)x+2(y_2-y_n)y \\ \vdots \\ x_{n-1}^2-x_n^2+y_{n-1}^2-y_n^2-d_{n-1}^2+d_n^2 &= 2(x_{n-1}-x_n)x+2(y_{n-1}-y_n)y \end{aligned} x12xn2+y12yn2d12+dn2x22xn2+y22yn2d22+dn2xn12xn2+yn12yn2dn12+dn2=2(x1xn)x+2(y1yn)y=2(x2xn)x+2(y2yn)y=2(xn1xn)x+2(yn1yn)y

[ x 1 2 − x n 2 + y 1 2 − y n 2 − d 1 2 + d n 2 x 2 2 − x n 2 + y 2 2 − y n 2 − d 2 2 + d n 2 ⋮ x n − 1 2 − x n 2 + y n − 1 2 − y n 2 − d n − 1 2 + d n 2 ] = [ 2 ( x 1 − x n ) 2 ( y 1 − y n ) 2 ( x 2 − x n ) 2 ( y 2 − y n ) ⋮ 2 ( x n − 1 − x n ) 2 ( y n − 1 − y n ) ] [ x y ] \begin{bmatrix} x_1^2-x_n^2+y_1^2-y_n^2-d_1^2+d_n^2 \\ x_2^2-x_n^2+y_2^2-y_n^2-d_2^2+d_n^2 \\ \vdots \\ x_{n-1}^2-x_n^2+y_{n-1}^2-y_n^2-d_{n-1}^2+d_n^2 \end{bmatrix} = \begin{bmatrix} 2(x_1-x_n)&2(y_1-y_n) \\ 2(x_2-x_n)&2(y_2-y_n) \\ \vdots \\ 2(x_{n-1}-x_n)&2(y_{n-1}-y_n) \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} x12xn2+y12yn2d12+dn2x22xn2+y22yn2d22+dn2xn12xn2+yn12yn2dn12+dn2=2(x1xn)2(x2xn)2(xn1xn)2(y1yn)2(y2yn)2(yn1yn)[xy]
因此得到 D = K X ​ D = KX​ D=KX。此时利用 LS 来解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值