一种基于节点间连通性差异及粒子群优化的DV‑Hop定位方法与流程

文档序号:12631032阅读:1632来源:国知局
一种基于节点间连通性差异及粒子群优化的DV‑Hop定位方法与流程
本发明属于通信
技术领域
,特别是无线传感器网络(WirelessSensorNetwork,WSN)中的定位领域,具体为基于节点间连通性差异及粒子群优化的DV-Hop节点定位方法。
背景技术
:无线传感器网络是由大量传感器节点组成的一种自组织网络。节点定位技术是无线传感网络应用的关键支撑技术之一。未知节点位置信息可通过传感器网络中配置GPS定位装置获取。但是这种方法并不可取,原因是传感器节点数量庞大,并且GPS定位装置的成本较高。所以目前常用的做法是少量锚节点配备GPS定位装置,其他节点依靠锚节点的位置信息和节点间的通信或测距技术,通过相应的节点定位方法来获得其位置信息。现今存在的定位方法可以分为两类,一种是基于距离(range-based)的节点定位方法,另一种是与距离无关(ranged-free)的节点定位方法。其中基于距离的节点定位方法利用节点间的位置、角度以及接收信号强度信息对未知节点位置信息进行估计。虽然其定位精度较高,但这种估计的准确性比较依赖于硬件设备。著名的range-based定位方法有基于信号到达时间(TimeofArrival,TOA)的定位方法、基于信号到达时间差(TimeDifferenceofArrival,TDOA)的定位方法、基于信号到达角度(AngleofArrival,AOA)的定位方法和基于接收信号强度(ReceivedSignalStrength,RSS)的定位方法。与距离无关的定位方法依靠节点间的连通性对未知节点位置进行估计,且不需要额外的硬件设备,所以相应的定位精度就偏低,经典的Ranged-free定位方法有质心算法,Amorphous算法和DV-Hop算法。DV-Hop算法因为实现简单而被广泛的应用,但是其定位精度不高,易受网络拓扑结构的影响。文献“赵雁航,钱志鸿,尚小航,等.基于跳距修正粒子群优化的WSN定位方法.通信学报,2013”提出了基于跳距修正粒子群优化的定位方法,算法通过对参考锚节点的平均每跳距离的误差进行加权处理以及用改进的粒子群算法对定位中的迭代过程进行优化,提高定位精度。也有文献中提到了通过节点间的连通性差异选择最优估计位置。现有的基于节点间连通性差异的DV-Hop算法(ConnectivityDifferencedistancevector-hopAlgorithm,CDADV-Hop)中如果利用到的锚节点距离未知节点距离越远,则产生的误差越大;基于粒子群的DV-Hop算法(ParticleSwarmOptimizationdistancevector-hopAlgorithm,PSODV-Hop)易陷入局部最优,同时计算量较大,所以本专利对其进行优化研究。技术实现要素:本发明旨在解决以上现有技术的问题。提出了一种基于节点间连通性差异及粒子群优化的DV-Hop定位方法。本发明的技术方案如下:一种基于节点间连通性差异及粒子群优化的DV-Hop定位方法,其在无线网络中,定位包括以下步骤:101、计算未知节点到锚节点的最小跳数,并计算未知节点到锚节点的距离,采用三边测量法估计未知节点的位置,利用共线度来选取最优的三个锚节点;102、选取差异值最小的位置作为最终的估计位置,同时选择与所述未知节点最近的锚节点,对步骤101估计得到的未知节点的位置进行校准;103、通过调节惯性权重和学习因子改进粒子群方法的位置与速度更新公式,确定新的适应度函数,同时根据改进的速度与位置公式,更新粒子,然后对粒子进行重新排序;104、将ICDADV-Hop算法和MPSODV-Hop算法结合,利用ICDADV-Hop进行初步定位,然后再利用MPSO算法对其定位结果进行优化,完成定位。进一步的,所述步骤101最优的三个锚节点确定方法如下:采用共线度来衡量所选的3个锚节点,规定3个锚节点的共线度αi为所选3个锚节点的每两边的夹角,理论上,π/3<DC<π,当DC=π时,表示3个节点共线,当DC=π/3时,所选的3个锚节点最优,所以选择DC接近π/3的锚节点组合来用三边测量法定位。进一步的,所述步骤102对同一未知节点的不同估计位置选择出差异值最小的位置作为最终的估计位置,节点间的连通性可以表示节点的位置,如果两个节点间的连通性绝对值越小,则这两个节点间的距离越近,连通性差异可通过式计算得到:D=Σk=1m|hopi,k-hopk|---(1)]]>hopi,k表示未知节点距离m个锚节点的跳数值,hopk表示未知节点的某个估计位置距离m个锚节点的跳数值。进一步的,步骤102中采用下面的公式对未知节点进行校准:x=x′-dnear,NDV-Hop-dnear,NXdnear,NDV-Hop(x′-xA1)---(2)]]>y=y′-dnear,NDV-Hop-dnear,NXdnear,NDV-Hop(y′-yA1)---(3)]]>其中(x',y')为用DV-Hop算法估计的位置,为距离未知节点最近的锚节点到估计未知节点的距离,为最近锚节点到未知节点的距离,A1为距离未知节点最近的锚节点。进一步的,步骤103通过调节惯性权重和学习因子改进粒子群算法的位置与速度更新公式,同时确定新的适应度函数。随机惯性表示如下:w(i)=wstart-wendIter(Iter-i)+wendrand---(4)]]>其中Iter表示最大迭代次数,通过这个变化公式,惯性权重在算法初期较大,有较大的全局搜索能力,有利于全局搜索;惯性权重在算法后期较小,有较大的局部的能力,有利于快速找到全局最优点;学习因子表示如下:c1=0.5+1.55exp10(Iter-t+1)Iter-1-1exp(10)-1---(5)]]>c2=0.5+1.55exp10(t-1)Iter-1-1exp(10)-1---(6)]]>其中c1表示个体的学习因子,c2表示群体的学习因子,t表示当前迭代次数。c1在算法初期较大,使粒子具有较强的“自我认知能力”,扩大搜索范围,避免陷入局部最优,c2在算法后期较大,使粒子具有较强的“社会认知能力”,有利于后期进行局部搜索,找到全局最优;适应度函数变为同时粒子要根据新的速度、位置、适应度函数进行排序,促进粒子间的交流。进一步的,所述步骤104将ICDADV-Hop算法和MPSODV-Hop算法结合,提出一种基于ICDADV-Hop的MPSO算法,利用ICDADV-Hop进行初步定位,然后再利用MPSO算法对其定位结果进行优化。本发明的优点及有益效果如下:本发明中自适应的粒子群算法要改变粒子的位置、速度公式,并且改进适应度函数,对粒子进行重新排序。位置、速度公式通过惯性权重和学习因子进行改进。随机惯性表示如下:w(i)=wstart-wendIter(Iter-i)+wendrand]]>其中Iter表示最大迭代次数,通过这个变化公式,惯性权重在算法初期较大,有较大的全局搜索能力,有利于全局搜索;惯性权重在算法后期较小,有较大的局部的能力,有利于快速找到全局最优点。学习因子表示如下:c1=0.5+1.55exp10(Iter-t+1)Iter-1-1exp(10)-1---(7)]]>c2=0.5+1.55exp10(t-1)Iter-1-1exp(10)-1---(8)]]>其中c1表示个体的学习因子,c2表示群体的学习因子,t表示当前迭代次数。c1在算法初期较大,使粒子具有较强的“自我认知能力”,扩大搜索范围,避免陷入局部最优,c2在算法后期较大,使粒子具有较强的“社会认知能力”,有利于后期进行局部搜索,找到全局最优点。适应度函数变为同时粒子要根据新的速度、位置、适应度函数进行排序,促进粒子间的交流。附图说明图1是本发明提供优选实施例无线传感网络结构;图2是本发明实施例公开的改进的基于连通性差异的DV-Hop算法流程示意图;图3是本发明实施例公开的一种自适应粒子群算法的流程示意图。图4是本发明实施例公开的一种基于节点间连通性差异及粒子群优化DV-Hop定位方法流程图;图5是本发明整体流程图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。本发明的技术方案如下:图1无线传感网络结构图,其中传感器节点数量有很多,为了确定其位置,提出了节点定位方法。优选的,基于图1,本发明实施例公开了一种基于节点间连通性差异及粒子群优化DV-Hop定位方法。请参阅图2,图2是本发明实施例公开的一种改进的基于连通性差异的DV-Hop算法流程示意图。如图2所述,ICDADV-Hop算法可以包括以下步骤。步骤21,同标准DV-Hop算法的第一步一样计算未知节点到锚节点的最小跳数。步骤22,同标准DV-Hop算法的第二步一样计算未知节点到锚节点的距离。具体如下:1)根据锚节点间的跳数和距离,计算平均每跳距离:HopSizei=Σi≠j(xi-xj)2+(yi-yj)2Σi≠jhij---(9)]]>其中HopSizei是锚节点i的平均每跳距离,(xi,yi)、(xj,yj)是锚节点i和j的坐标,hij代表锚节点i和j的最小跳数。2)用最小跳数乘以平均每跳距离得到未知节点到锚节点的距离。步骤23,根据未知节点与至少3个锚节点的距离信息后,选择最优的三个锚节点采用三边测量法或极大似然估计法对未知节点进行定位。选择最优的三个锚节点具体做法是首先选择离未知节点最近的3个锚节点,计算每两个锚节点的夹角,当最大的夹角在0到π/3之间时,则选择这3个锚节点用三边测量法估计未知节点的位置,否则继续选择距离次近的锚节点替代其中一个锚节点,继续计算直到满足上述条件。具体的定位方法如下:根据式(10)计算未知节点的坐标:(x-x1)2+(y-y1)2=d1(x-x2)2+(y-y2)2=d2......(x-xn)2+(y-yn)2=dn---(10)]]>等式(10)可以表示为矩阵AX=b的形式:A=2(x1-xn)2(y1-yn)2(x2-xn)2(y2-yn)......2(xn-1-xn)2(yn-1-yn)---(11)]]>b=x12-xn2+y12-yn2+dn2-d12x22-xn2+y22-yn2+dn2-d22...xn-12-xn2+yn-12-yn2+dn2-dn-12---(12)]]>X=xy---(13)]]>未知节点的位置可根据式X=(ATA)-1ATb计算得到步骤24,对同一未知节点的不同估计位置选择出差异值最小的位置作为最终的估计位置。节点间的连通性可以表示节点的位置,如果两个节点间的连通性绝对值越小,则这两个节点间的距离越近。连通性差异可通过式计算得到:D=Σk=1m|hopi,k-hopk|---(14)]]>hopi,k表示未知节点距离m个锚节点的跳数值,hopk表示未知节点的某个估计位置距离m个锚节点的跳数值。步骤25,利用最近锚节点对未知节点进行位置校准。相应的,本发明中利用最近的锚节点来对未知节点的位置进行校准。用下面的公式对未知节点进行校准:x=x′-dnear,NDV-Hop-dnear,NXdnear,NDV-Hop(x′-xA1)---(15)]]>y=y′-dnear,NDV-Hop-dnear,NXdnear,NDV-Hop(y′-yA1)---(16)]]>其中(x',y')为用DV-Hop算法估计的位置,为距离未知节点最近的锚节点到估计未知节点的距离,为最近锚节点到未知节点的距离,由DV-Hop算法的第二步得到,A1为距离未知节点最近的锚节点。本发明中自适应的粒子群算法要改变粒子的位置、速度公式,并且改进适应度函数。位置、速度公式通过惯性权重和学习因子进行改进。随机惯性表示如下:w(i)=wstart-wendIter(Iter-i)+wendrand---(17)]]>其中Iter表示最大迭代次数,通过这个变化公式,惯性权重在算法初期较大,有较大的全局搜索能力,有利于全局搜索;惯性权重在算法后期较小,有较大的局部的能力,有利于快速找到全局最优点。学习因子表示如下:c1=0.5+1.55exp10(Iter-t+1)Iter-1-1exp(10)-1---(18)]]>c2=0.5+1.55exp10(t-1)Iter-1-1exp(10)-1---(19)]]>其中c1表示个体的学习因子,c2表示群体的学习因子,t表示当前迭代次数。c1在算法初期较大,使粒子具有较强的“自我认知能力”,扩大搜索范围,避免陷入局部最优,c2在算法后期较大,使粒子具有较强的“社会认知能力”,有利于后期进行局部搜索,找到全局最优点。适应度函数变为同时粒子要根据新的速度、位置、适应度函数进行排序,促进粒子间的交流。最后将ICDADV-Hop算法同MPSODV-Hop算法结合来提高DV-Hop算法的定位精度。其中图3为自适应粒子群算法流程图,具体过程如下:步骤31,初始化种群。根据ICDADV-Hop算法的定位结果,在估计位置周围初始化粒子群。步骤32,根据新的适应度函数计算每个粒子的适应度函数值。步骤33,根据适应度函数值对粒子重新进行排序。步骤34,更新pBest和gBest。步骤35,根据新的速度、位置公式更新粒子速度、位置。步骤36,满足迭代条件则结束算法,否则回到步骤32继续算法。本发明首先采用ICDADV-Hop算法对未知节点进行估计,然后利用MPSO算法做迭代计算来修正误差,具体算法流程图如图4。本发明针对DV-Hop算法存在误差的缺陷,结合CDA和PSO算法,并对两种算法做了一定的改进,在不依赖与硬件设备的情况下,可以明显的提高定位精度值。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1