摘 要:节点自身定位是无线传感器网络目标定位的基础。无线传感器网络节点定位算法包括基于距离和距离无关两类。其中基于RSSI 的定位算法由于实现简单而被广泛使用,但RSSI 方法的测距误差较大,从而影响了节点定位精度。提出了一种基于RSSI 的无线传感器网络距离修正定位算法。该算法通过RSSI 测距,计算近似质心的位置,以此为参考点进行距离修正,然后确定节点的位置。仿真结果表明该算法可以提高节点定位精度。
0 引言
对于大多数无线传感器网络应用来说,没有位置信息的数据是毫无意义的。无线传感器网络目标定位跟踪的前提是节点自身定位。无线传感器网络节点定位算法可分为基于距离和距离无关两大类,基于距离的定位算法主要有RSSI、TOA、TDOA、AOA 等,距离无关的定位算法主要有质心算法、DV-hop 算法、凸规划、MDS-MAP 等。
RSSI 测距无需额外硬件,实现简单,具备低功耗、低成本等特点,应用十分广泛。RSSI 的技术原理是已知锚节点发射信号的强度,根据未知节点接收到的信号强度,利用信号传播模型计算两点的距离。由于存在多径、干扰、遮挡等因素,RSSI 测距的精度较低,必须采用各种算法来减小测距误差对定位精度的影响,因而提出了一种基于RSSI 测距的无线传感器网络距离修正定位算法,可有效减小RSSI 测距误差对节点定位精度的影响。
1 算法模型
1.1 无线信号传播模型
RSSI 测距使用的无线信号传播模型包括经验模型和理论模型,理论模型是在大量经验模型数据的基础上总结提炼而成的。
对于经验模型,首先要按照一定的密度选取参考点,建立信号强度与到某个信标点距离的映射矩阵,在实际定位时根据测得的信号强度与映射矩阵进行对比,并采用数学拟合方式确定待测节点到锚节点的距离。
无线信号传播理论模型主要有自由空间传播模型、对数距离路径损耗模型、对数-常态分布模型等,其中对数-常态分布模型的使用最为广泛。
其中n 是路径损耗指数,表明路径损耗随距离增长的速率,范围在2~6 之间。d0 为近地参考距离,由测试决定。式(1)能够预测出当距离为d 时接收到的平均能量。由于相同距离d 的情况下,不同位置的周围环境差距非常大因而引入了Xσ,Xσ 是一个平均值为0 的高斯分布变量。
为了更好地描述距离修正定位算法,这里提出两个合理的假设条件:
①由于各种障碍物的影响,绝大多数实际情况中,式(1)预测出的PL(d)[dB]比实际信号能量偏大;②当距离d 增大时,PL(d)[dB]与实际损耗能量的相对偏差也会增大。
1.2 确定相交区域质心的数学模型
已知三个节点A、B、C 的坐标为(xa, ya)、(xb, yb)和(xc,yc),节点O到他们的距离为ra、rb 和rc,假设节点O的坐标(xo, yo),则(xo, yo)的数值可通过式(2)得出,也就是说以A、B 和C 三点为圆心,以ra、rb 和rc 为半径作圆,则三圆将相交与点O,如图1(a)所示。
但在实际情况中,由于RSSI 测距存在误差,并且由于实际的路径损耗比理论模型的数值偏大,也就是说测量出来的未知点到锚节点的距离d 总是大于实际距离r。以A、B和C 三点为圆心,以da1、db1 和dc1 为半径作圆,三圆将不再相交于点O,而是存在一个相交区域,如图1(b)所示。
三圆相交区域的边界有三个交点,三点质心为点D。其中点D 的坐标可以通过式(3)求解。
但是二次方程,求解过程计算量较大,因而文中采用如图1(b)所示的点D1 的坐标近似质心D 的坐标。三圆两两相交,则三条交线将相交于点D1。将式(2)中的方程式两两相减,则分别得到每条交线的直线方程,D1 的坐标则可以通过这些直线方程求解,如式(4)。
1.3 距离修正
在某些文章中,以D1 的坐标作为点O 的近似值,其准确度虽然比三边定位等方法要高,但是还是可能存在较大的误差,尤其是当da1、db1、dc1 与ra、rb 和rc 的相对误差各不相同时尤其明显,因而需要对RSSI 方法测出的距离da1、db1和dc1 进行修正,然后再重复地求出新的三线交点D2 的坐标,则可以用点D2 的坐标作为点O 的近似坐标。
设点A、B 和C 到D1 的距离la1、la2 和la3,则总体修正系数如式(5)所示。
根据1.1 节中假设②,距离越远测距相对误差越大,则其修正程度越大,则da1 的修正系统如式(6)所示,db1 和dc的修正系数类似。
2 算法流程
算法流程如下:
①各锚节点以相同功率周期性地向周围广播定位信息,信息中包括节点ID 和坐标。普通节点收到定位信息后,计算同一锚节点的RSSI 平均值;
②当普通节点收集到一定数量的锚节点信息时,不再接收新信息。各普通节点根据RSSI 从强到弱对锚节点排序,由式(1)求出节点到锚节点的距离;
③选取距离最近的3 个锚节点;
④通过式(4)计算三线交点D1 坐标;
⑤分别计算3 个锚节点与交点的距离;
⑥通过式(5)计算总体修正系数;
⑦通过式(6)分别计算各自的修正系数,然后通过式(7)计算修正后的距离;
⑧再次通过式(4)计算修正后的三线交点D2 的坐标,D2的坐标即为点O 的近似值。
[1] [2]