P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
1 引言P.L.C.技.术.网——可编程控制器技术门户
随着无线传感(无线自组织) 网络的快速发展,无线网络节点的定位能力受到了越来越多的关注,现已成为节点不可或缺的重要能力之一,可用于路由、覆盖、跟踪和事件侦测等多种目的。谈到定位,人们首先想到的是gps(全球卫星定位系统) ,但实际应用中并不是所有无线节点都能利用gps 来定位,原因如下:(1)gps接收机和无线节点相比相对较重、功耗大且昂贵,而节点应该轻、功耗低且廉价;(2)gps适合在开阔户外使用,而户内或有茂密植物遮挡的丛林等环境却不适用;(3)在特殊条件下(如战争中gps系统被摧毁)将无法使用gps。正因如此,无线传感网分布式定位技术得到了广泛的发展和应用。该技术的原理如下:在网络中有一小部分节点具有自定位能力(如装备了gps系统),它们被称为“灯塔节点”(beacon nodes);而其余大部分未知节点利用各种算法测出自己到至少三个灯塔节点的距离,然后通过三球定位原理计算出自己的实际位置,从而实现所有节点的定位。无线传感网分布式定位的性能主要受以下几个因素影响:距离测量精度,节点分布密度,灯塔节点的相对密度以及所使用的算法。因此,在网络结构及节点硬件配置一定的情况下,选择一种好的算法将是提高最终定位性能的决定性因素。算法的优劣包括了定位的精度、定位过程的复杂度、定位的容错能力、算法的健壮性和可扩展性。本文首先归纳和总结了各种类型算法的原理及方法,接着重点讨论了基于距离矢量的三种定位算法,并推导了其各自的计算过程和公式,最后利用计算机仿真的结果来验证和分析了它们的精确度及在实际应用中的优缺点。WWW_PLCJS_COM-PLC-技.术_网
——可——编——程——控-制-器-技——术——门——户
2 分布式定位技术算法介绍WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
2.1 分布式定位技术的应用及分类WWW_P※LCJS_CO※M-PLC-技-.术_网
无线网络中的定位方法多种多样,但如何尽可能地利用现存网络资源,低成本地实现对用户的精确定位一直是业界研究的焦点。分布式定位是目前较为前沿的定位技术。未知节点获取灯塔节点的确切坐标,测出信号传播的距离(即两邻居节点间的距离)甚至信号传来的方向,最后根据不同的算法计算出自己到灯塔节点的距离或角度。adhoc网分布式定位技术中常用的算法大致分为三类,它们各有不同的适用条件,且精度、复杂度均有所不同,用户需要根据实际组网环境、成本开销和节点硬件配置来选择最合适的算法。下面就分别介绍这三类算法。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
2.2 基于信号测量的定位算法WW.W_PLCJS_COM-PLC-技.术_网
这类算法包括:信号到达角aoa (angle of ar2rival)、信号到达时间toa(time of arrival)、两信号到达时间差tdoa(time difference of arrival)和接收信号强度指示rssi(receive signalst rengt h indicator)算法。它们的基本思想是:灯塔节点广播自己的位置信息,未知节点通过自身装备的精确传感器感知信号的源方向或传播时间,以此测出自己和灯塔节点的夹角和距离,算出自己的位置。定位完成后未知节点用泛洪的方式广播自己的位置信息来告诉其它更远的未知节点。这类算法利用了角度和传播时间的概念,但每个节点都要装备天线阵列或超声波接收器等性能优良的传感器设备,网络所需成本较昂贵,同时位置信息的层层向外传播会使误差不断增大,限制了网络的可扩展性。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
2.3 健壮定位算法WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
健壮定位算法(robust positioning algorithms)算法可用于没有灯塔节点但边沿长度已知的无线网络。如在一幢大楼里,大楼的边沿长度已知,则无需灯塔节点即可实现定位。处于楼内网络边沿的节点广播自己的位置信息及网络边沿的长度,各节点通过估计到相邻节点的距离来计算自己在整个网络中的位置。当每个节点平均能和7个相邻节点相连时,定位结果的误差小于射程的40%;当网络中有灯塔节点时定位精度更高。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
2.4 基于距离矢量的定位算法WWW_PL※CJS_COM-PLC-技.术_网
基于距离矢量的定位算法(distance2vector base positioning algorithms)源于差分gps (dgps)算法原理,是基于无线传感网络中信息多跳传播的特点实现的,它因其实现简单、精度高、健壮且可扩展性强而得到了广泛的应用。这类经典的算法甚至已经成为了无线传感positioning system(aps)的代名词。下面就对这类基于距离矢量的三种算法进行详细的分析。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLC※JS_COM-PmLC-技.术_网
3 基于节点间实测距离的算法的改进WWW_P※LCJS_COM-PLC-)技.术_网
3.1 dv_distance定位算法WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
W1WW_P4LCJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
图1 1dv_distance距离计算示意图——可——编——程——控-制-器-技——术——门——户
dv_distance算法如图1所示,参考节点周期性的广播出他的位置信息,其他的节点就可以获得参考节点广播的信息(例如参考节点的位置坐标和它到未知节点的当前累积距离以及本身的编号等等)并且把传播的距离传给参考节点。未知节点就利用得到的累积距离去估算他们自己的位置。比如图1-1中bn1,bn2,bn3都会利用网络把包括有自己信息的信息包发送给未知节点un-k,un-k节点和bn1节点之间的通信会经过另外一个未知节点,当bn1把信息包传给这个中间节点时,中间的未知节点就会知道它到bn1的距离,当他把bn1的信息包转发给un-k时会把它到bn1的距离累加在距离变量上,因此当un-k接收到这个转发来的包以后利用自己到中间转发节点的距离累加在刚才的距离变量上,就可以获得un-k到bn1节点之间的距离了,图中bn1到un-k的距离为2+2=4,即图中的公式desk(1,k)=4。其他的两个距离也同理可得。这样就可以得到un-k到三个参考节点的距离了,也就可以利用三边定位算法来计算自己的位置。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
3.2 dv_distance的差分定位算法WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
基于的差分定位算法由三个阶段组成,首先通过路由协议,使网络中所有节点获得到参考节点的跳数、到参考节点的每跳距离之和以及参考节点的位置坐标。当某个参考节点接收到其余参考节点的信息时,便可以根据两者的位置坐标计算出两者间真实距离,根据真实距离和两者间每跳距离累积和之间的差别,便可以计算出距离误差修正值。在第二阶段,各个参考节点向网络中未知节点广播自己到其余各参考节点的距离误差修正值。距离误差修正值采用可控泛洪法在网络中传播,这意味着一个节点仅接受获得的第一个修正值,而丢弃所有后来者,这个策略确保了绝大多数节点从最近的参考节点接收修正值。未知节点接收到这些距离误差修正值后,便可利用这些修正值计算自己到各参考节点的有效距离。当未知节点得到三个及三个以上参考节点的有效距离后,就可以在第三阶段利用三角关系计算出自己的位置。具体过程如下:WWW_PLCJS_COM-PLC-技.术_网
第一步估计距离误差修正值参考节点向网络广播自己的位置坐标(xi ,yi),任何其它节点接收到该参考节点的位置信息时就将该参考节点的位置信息、两者之间的每跳距离累积之和存放在自己的记录表中。当某个参考节点接收到其它参考节点的信息时,就可根据自己的坐标和接收到的参考节点的坐标计算出两者之间的真实距离,该距离与表中存放的两者之间的距离和之差即为误差修正值,即:plcjs.技.术_网
e P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
W1WW_P4LCJS_COM-PLC-技.术_网
=(d WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_PL※CJS_COM-PLC-技.术_网
-d W1WW_P4LCJS_COM-PLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
) WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
其中,P.L.C.技.术.网——可编程控制器技术门户
d WWW_PL※CJS_COM-PLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
= WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_P※LCJS_CO※M-PLC-技-.术_网
为参考节点i和j之间的真实离,d WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
为参考节点i和j之间每跳距离的累积和,e WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
为参考节点i和j之间的距离误差修正值。 WWW_PLC※JS_COM-PmLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
第二步:各参考节点将自己到其它各参考节点的距离误差修正值在网络中广播。未知节点接收到距离自己最近的参考节点的这些误差修正值后,便可根据第一步获知的到参考节点的距离和计算出到参考节点的有效距离。例如,未知节点WWW_P※LCJS_COM-PLC-)技.术_网