计算节点位置的基本方法

本文详细介绍了无线传感器网络中节点定位的三种常见方法:三边测距法、三角测距法和极大似然估计法。三边测距法基于距离信息,通过建立方程组求解;三角测距法利用角度和外接圆计算;极大似然估计法则结合多个信标节点的距离信息进行坐标估算。这些方法对于无线网络监控和目标追踪等应用至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算节点位置的基本方法

在传感器节点定位过程中,通常根据未知节点(被监测节点)相对相邻信标节点的距离、角度进行计算位置。通常采用三边测距法、三角测距法或极大似然估计法进行计算。

三边测距法(Trilateration)

三边测距法的原理如下,已知未知节点D ( x , y ) (x, y) (x,y)与相邻的三个信标节点 A ( x 1 , y 1 ) 、 B ( x 2 , y 2 ) 、 C ( x 3 , y 3 ) A(x_1, y_1)、B(x_2, y_2)、C(x_3, y_3) A(x1,y1)B(x2,y2)C(x3,y3)间的距离分别为 d a 、 d b 、 d c d_a、d_b、d_c dadbdc,其示意图如下所示:
在这里插入图片描述

根据距离公式可罗列如下方程式:
{ ( x a − x ) 2 + ( y a − y ) 2 = d a ( x b − x ) 2 + ( y b − y ) 2 = d b ( x c − x ) 2 + ( y c − y ) 2 = d c \begin{cases} \sqrt{(x_a-x)^2 + (y_a-y)^2} = d_a \\ \sqrt{(x_b-x)^2 + (y_b-y)^2} = d_b \\ \sqrt{(x_c-x)^2 + (y_c-y)^2} = d_c \\ \end{cases} (xax)2+(yay)2 =da(xbx)2+(yby)2 =db(xcx)2+(ycy)2 =dc

求得结果如下:
[ x y ] = [ 2 ( x a − x c ) 2 ( y a − y c ) 2 ( x b − x c ) 2 ( y b − y c ) ] − 1 [ x a 2 − x c 2 + y a 2 − y c 2 + d c 2 − d a 2 x b 2 − x c 2 + y b 2 − y c 2 + d c 2 − d b 2 ] \begin{bmatrix}x \\ y\end{bmatrix} = \begin{bmatrix} 2(x_a-x_c) & 2(y_a-y_c) \\ 2(x_b-x_c) & 2(y_b-y_c) \\ \end{bmatrix}^{-1} \begin{bmatrix} x_a^2 - x_c^2 + y_a^2 - y_c^2 + d_c^2 - d_a^2 \\ x_b^2 - x_c^2 + y_b^2 - y_c^2 + d_c^2 - d_b^2 \\ \end{bmatrix} [xy]=[2(xaxc)2(xbxc)2(yayc)2(ybyc)]1[xa2xc2+ya2yc2+dc2da2xb2xc2+yb2yc2+dc2db2]

三角测距法(Triangulation)

三角测距法的原理如下,已知未知节点O ( x , y ) (x, y) (x,y)与相邻的三个信标节点 A ( x 1 , y 1 ) 、 B ( x 2 , y 2 ) 、 C ( x 3 , y 3 ) A(x_1, y_1)、B(x_2, y_2)、C(x_3, y_3) A(x1,y1)B(x2,y2)C(x3,y3)之间的夹角分别为 ∠ A O C 、 ∠ A O B 、 ∠ B O C ∠AOC、∠AOB、∠BOC AOCAOBBOC,可唯一确定 △ A O B \triangle AOB AOB △ A O C \triangle AOC AOC △ B O C \triangle BOC BOC的外接圆 O 1 、 O 2 、 O 3 O_1、O_2、O_3 O1O2O3

其示意图如下所示:
在这里插入图片描述

为确定外接圆圆心坐标 O 1 ( x O 1 , y O 1 ) O_1(x_{O_1}, y_{O_1}) O1(xO1,yO1)及其半径 r 1 r_1 r1,根据余弦公式、距离公式可罗列如下方程式:
{ ( x O 1 − x 1 ) 2 + ( y O 1 − y 1 ) 2 = r 1 ( x O 1 − x 2 ) 2 + ( y O 1 − y 2 ) 2 = r 1 ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 = 2 r 1 2 − 2 r 1 2 ⋅ cos ⁡ A O 1 B ∠ A O 1 B = 2 π − ∠ A O B \begin{cases} \sqrt{(x_{O_1}-x_1)^2 + (y_{O_1}-y_1)^2} = r_1 \\ \sqrt{(x_{O_1}-x_2)^2 + (y_{O_1}-y_2)^2} = r_1 \\ (x_1 - x_2)^2 + (y_1 - y_2)^2 = 2r_1^2 - 2r_1^2\cdot\cos{AO_1B} \\ ∠AO_1B = 2\pi - ∠AOB \end{cases} (xO1x1)2+(yO1y1)2 =r1(xO1x2)2+(yO1y2)2 =r1(x1x2)2+(y1y2)2=2r122r12cosAO1BAO1B=2πAOB

同理,对于外接圆圆心坐标 O 2 ( x O 2 , y O 2 ) 、 O 3 ( x O 3 , y O 3 ) O_2(x_{O_2}, y_{O_2})、O_3(x_{O_3}, y_{O_3}) O2(xO2,yO2)O3(xO3,yO3)及其半径 r 2 、 r 3 r_2、r_3 r2r3,可以罗列类似方程求出。最后,再利用三边测距法即可计算处节点 O ( x , y ) O(x, y) O(x,y)的坐标。
{ ( x O 1 − x ) 2 + ( y O 1 − y ) 2 = r 1 ( x O 2 − x ) 2 + ( y O 2 − y ) 2 = r 2 ( x O 3 − x ) 2 + ( y O 3 − y ) 2 = r 3 \begin{cases} \sqrt{(x_{O_1}-x)^2 + (y_{O_1}-y)^2} = r_1 \\ \sqrt{(x_{O_2}-x)^2 + (y_{O_2}-y)^2} = r_2 \\ \sqrt{(x_{O_3}-x)^2 + (y_{O_3}-y)^2} = r_3 \\ \end{cases} (xO1x)2+(yO1y)2 =r1(xO2x)2+(yO2y)2 =r2(xO3x)2+(yO3y)2 =r3

求得结果如下:
[ x y ] = [ 2 ( x O 1 − x O 3 ) 2 ( y O 1 − y O 3 ) 2 ( x O 2 − x O 3 ) 2 ( y O 2 − y O 3 ) ] − 1 [ x O 1 2 − x O 3 2 + y O 1 2 − y O 3 2 + r 3 2 − r 1 2 x O 2 2 − x O 3 2 + y O 2 2 − y O 3 2 + r 3 2 − r 2 2 ] \begin{bmatrix}x \\ y\end{bmatrix} = \begin{bmatrix} 2(x_{O_1}-x_{O_3}) & 2(y_{O_1}-y_{O_3}) \\ 2(x_{O_2}-x_{O_3}) & 2(y_{O_2}-y_{O_3}) \\ \end{bmatrix}^{-1} \begin{bmatrix} x_{O_1}^2 - x_{O_3}^2 + y_{O_1}^2 - y_{O_3}^2 + r_3^2 - r_1^2 \\ x_{O_2}^2 - x_{O_3}^2 + y_{O_2}^2 - y_{O_3}^2 + r_3^2 - r_2^2 \\ \end{bmatrix} [xy]=[2(xO1xO3)2(xO2xO3)2(yO1yO3)2(yO2yO3)]1[xO12xO32+yO12yO32+r32r12xO22xO32+yO22yO32+r32r22]

极大似然估计法(Maximum Likelihood Estimation)

极大似然估计法原理如下,已知未知节点 D ( x , y ) D(x, y) D(x,y)附件存在n个信标节点,其坐标分别为 ( x 1 , y 1 ) 、 ( x 2 , y 2 ) 、 ( x 3 , y 3 ) … … ( x n , y n ) (x_1, y_1)、(x_2, y_2)、(x_3, y_3)……(x_n, y_n) (x1,y1)(x2,y2)(x3,y3)(xn,yn)且各信标节点到未知节点的距离分别为 d 1 、 d 2 、 d 3 … … d n d_1、d_2、d_3……d_n d1d2d3dn

其示意图如下所示:
在这里插入图片描述
根据距离公式,可以罗列出如下方程式:
{ ( 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{cases} (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 \end{cases} (x1x)2+(y1y)2=d12(x2x)2+(y2y)2=d22(xnx)2+(yny)2=dn2

对上述方程式,分别用每一个方程减去最后一个方程,可得到如下形式的方程式:
{ 2 ( x 1 − x n ) x + 2 ( y 1 − y n ) y = x 1 2 − x n 2 + y 1 2 − y n 2 − d 1 2 + d n 2 2 ( x 2 − x n ) x + 2 ( y 2 − y n ) y = x 2 2 − x n 2 + y 2 2 − y n 2 − d 2 2 + d n 2 … … 2 ( x n − 1 − x n ) x + 2 ( y n − 1 − y n ) y = x n − 1 2 − x n 2 + y n − 1 2 − y n 2 − d n − 1 2 + d n 2 \begin{cases} 2(x_1 - x_n)x + 2(y_1 - y_n)y = x_1^2 - x_n^2 + y_1^2 - y_n^2 - d_1^2 + d_n^2\\ 2(x_2 - x_n)x + 2(y_2 - y_n)y = x_2^2 - x_n^2 + y_2^2 - y_n^2 - d_2^2 + d_n^2\\ ……\\ 2(x_{n-1} - x_n)x + 2(y_{n-1} - y_n)y = x_{n-1}^2 - x_n^2 + y_{n-1}^2 - y_n^2 - d_{n-1}^2 + d_n^2\\ \end{cases} 2(x1xn)x+2(y1yn)y=x12xn2+y12yn2d12+dn22(x2xn)x+2(y2yn)y=x22xn2+y22yn2d22+dn22(xn1xn)x+2(yn1yn)y=xn12xn2+yn12yn2dn12+dn2

将方程式转换为 A X = b AX=b AX=b形式,则:
A = [ 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 ) ] , b = [ 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 ] , X = [ x y ] A = \begin{bmatrix} 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) \end{bmatrix},b = \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 \\ ……\\ x_{n-1}^2 - x_n^2 + y_{n-1}^2 - y_n^2 - d_{n-1}^2 + d_n^2 \end{bmatrix},X = \begin{bmatrix} x \\ y \end{bmatrix} A=2(x1xn)2(x2xn)2(xn1xn)2(y1yn)2(y2yn)2(yn1yn)b=x12xn2+y12yn2d12+dn2x22xn2+y22yn2d22+dn2xn12xn2+yn12yn2dn12+dn2X=[xy]

通过标准最小均方差估计可以计算得出未知节点D的坐标: X ^ = ( A T A ) − 1 A T b \hat{X} = (A^TA)^{-1}A^Tb X^=(ATA)1ATb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值