2.无需测距(range-free) 无需测距的定位算法不需要直接测量节点之间的距离或者角度,而是根据网络的连通性来实现位置估计得,典型的无需测距的算法主要有以下几种: 1)质心算法 质心算法基于两个假设条件:射频信号的传播遵循理想的圆球模型;节点的通信半径相同且不会改变。 该算法利用了计算几何中质心的思想,假设n边形的顶点坐标分别为(x1,y1)......(xn,yn),设其质心坐标为(x,y),则有 x=(x1+x2....+xn)/ n y=(y1+y2+....+yn)/ n 算法核心思想为:信标节点周期性地广播包含自身位置信息的消息,在时间t内未知节点收到来自信标节点i的消息数目为Nr(i,t),而时间t内信标节点i发出的消息数目为Ns(i,t),那么未知节点和信标节点的连通指标为: C=Nr(i,t)/ Ns(i,t) 如果C大于设定的阈值,则认为未知节点处于信标节点i的覆盖区域内,即与信标节点i连通。这样对于每个未知节点都可以选出与其连通的所有信标节点,然后把这些信标节点的质心作为该未知节点的坐标。 质心算法是一种完全基于网络连通性的定位算法,其计算和实施难度都比较小,但是算法精度不高,并且通常要求信标节点具有较高的密度。 2)DV-HOP(Distance Vector-Hop)算法 DV-HOP算法是为了避免对节点距离直接测量而提出的一种基于矢量路由的非测距定位算法。该算法的核心思想是通过距离矢量路由方法获取未知节点与信标节点之间的最小跳数,并计算每跳的平均距离,然后以每跳的平均距离与最小跳数的乘积作为未知节点与信标节点的估算距离,再使用三边测量法估算未知节点的坐标位置。举个例子: A、B、C为信标节点,M为未知节点,A到B和C的距离分别为40m和100m,而A到B和C的最小跳数分别为2和5,则A的平均跳距为: (40+100)/ (2+5)=20m,同理可以得到B和C的平均跳数为24m和22.5m,则可以计算M距离三个信标节点的距离分别为: 3*20m,2*24m,3*22.5m,然后就可以利用三边测量法估算出M的坐标。这种方法实现比较简单,但是精度较差,不适合稀疏的以及拓扑不规则的网络。
|