定位算法根据是否利用测量点的距离关系,分为基于测距的定位算法(range-based)和非基于测距(range-free)的定位算法两类。不同的测距方法主要的差别在于如何获得两个节点之间的距离关系(后者是角度差),也就是说不同的测距方法主要在于他们获得两个节点之间的距离或者角度方式的不同。其中,基于测距的定位模型主要分为以下几种:基于圆周的定位模型、双曲线定位模型、三角定位模型。而基于非测距的定位模型主要 K 最近邻居法、
DV-HOP 法、三角质心法和加权三角形质心法。
基于测距的定位模型
根据测量手段和所建立的数学模型的不同,主要分为基于测量信号接收功率(RSSI)、基于信号到的角度(AOA)、基于信号到达时间(TOA/TDOA)这三种测量方法。对应于不同的定位算法,适当地应用与之匹配的数学模型。
基于圆周的定位模型
基于圆周的定位模型的原理在于根据未知节点与多个已知节点(n大于或等于3)的距离长度为半径,并以已知节点为圆心获得的多个圆,这些圆相交的点 M 即为未知节点的位置,如图2-1所示:
双曲线模型
基于双曲线定位模型的原理如下:首先假设通过某特定的测量方法得到未知节点到
两个已知节点 A,B 之间的距离差,即2a,根据有关双曲线的数学方程得:
(2-2)
其中,M 是双曲线上一点,F1和F2分别是双曲线的两个焦点,2a 是两焦点之间的距离。那么,根据公式(2-2)可以得出:未知节点 M 就在以两个已知节点 A,B 的位置为焦点,距离差是 2a 的双曲线上。同样的,根据另外一个已知节点 C,同样可以在确定2条双曲线,就这样,两个双曲线的交点即为未知节点 M 的位置。其模型如图