一种无线传感器网络定位方法与流程

文档序号:23553133发布日期:2021-01-05 21:13阅读:182来源:国知局
一种无线传感器网络定位方法与流程

本发明涉及无线传感器网络定位技术领域,特别涉及一种基于改进跳数和自适应密度优化跳距的3d-ia*odv-hop无线传感器网络定位方法。



背景技术:

无线传感器网络(wirelesssensornetwork,wsn)是一个由多个传感节点通过多跳方式组成的自组织网络,部署在需要监控的某些特定区域,它对环境的适应性很强,用于采集与处理检测到的信息,同时将处理后的信息发送给检测人员。无线传感网络作为物理世界与数字世界的桥梁,在目标追踪,环境监测,军事侦察甚至在能量管理中已被广泛应用。多数情况下传感器节点的部署区域并不是简单的二维区域,而是随机的投放在复杂多变的三维区域,已有的二维节点定位技术通常不能满足现实需要,因此研究三维区域的传感器节点定位具有很重要的意义。

而作为range-free(无需测距)算法的代表之一,dv-hop算法应用广泛、易于扩展并且受限制的条件少,根据网络的连通性进行定位,由于其功率消耗和成本低,能做到符合大多数应用场景所要求的定位效果,受到广泛的青睐。

对于无线传感器网络dv-hop算法虽然有很多优点,但是dv-hop算法是通过距离矢量信息和网络的连通性对未知节点进行定位,并不是直接对节点间距离进行测量,该算法本身会对定位的准确度有一定的影响。其误差产生原因主要有以下几个方面:1.在传统dv-hop算法或改进的dv-hop算法中,一般情况下节点都是随机分布的,如果两节点之间的传播路径与直线差距偏大,在第一阶段用直线距离替代折线距离计算平均跳距就会产生较大误差,且节点之间跳数越多,对距离进行估计产生的误差越大。2.在第二阶段估算未知节点与锚节点间距离时使用的是同一跳距,即距离未知节点最近的锚节点的平均跳距,采用单一的平均跳距来估算距离并不能反映出网络的真实情况,定位精度必然会受到影响。

a*算法是静态网络中求解最短路径时有效的搜索方法,也是许多算法的启发式算法。本质上似乎是一种贪心选择策略,即走的每一步都是当前状态下的最优选择,吸取了dijstra和贪婪最佳优先搜索两种方案算法思想,依据权值不断向目标方向前进,而a*算法的路径选择依据主要是通过g(n)、h(n)、f(n)这三个代价函数来实现。g(n)、h(n)、f(n)分别是g*(n)、h*(n)、f*(n)的估计值。g*(n):从起始节点到第n节点的最短路径的耗散值,h*(n):从第n节点到目标节点的最短路径的耗散值。如果h(n)偏小了,我们的效率会降低,举一个极端例子,当h(n)=0,则f(n)=g(n),那就是最普通的广搜了;如果h(n)偏大了,时间的效率会大大增加,但是这样会让我们的搜索接近与深搜而可能不能获取最优解。



技术实现要素:

本发明的目的是提供一种无线传感器网络定位方法,通过改进a*算法,减少了计算网络节点之间的多跳信号传播路径时产生的角度偏差,优化搜寻路径,得到网络中任一节点与任一信标节点之间的第二最小跳数值,信标节点计算与所有其他信标节点之间的第二最小平均每跳跳距并广播,未知节点能够有效判断其与信标节点之间路径区域内节点分布密集度,根据判断结果为不同信标节点广播的第二平均每跳跳距赋予不同权重,从而修正了未知节点到信标节点的估计距离,使未知节点定位数据更加准确。通过本发明能够有效对二维、三维空间的任意无线传感器网络节点进行定位。

为了达到上述目的,本发明提供一种无线传感器网络定位方法,所述网络中包含已知位置信息的第一至第n信标节点和未知位置信息的第一至第w未知节点,信标节点、未知节点具有相同的通信范围r,所述方法包含:

s1、网络中的信标节点向自身外的所有节点广播包含该信标节点位置信息的数据包;网络中的任一节点获得其与任一信标节点之间的第一最小跳数值;网络中的信标节点计算其到网络中所有其他信标节点的第一平均每跳跳距;

s2、任选网络中的一个节点作为起始节点,任选网络中的一个信标节点作为目标节点,所述起始节点与所述目标节点之间的具有若干个待跳未知节点;基于所述待跳未知节点相对于起始节点与目标节点之间欧几里得距离的偏离角度,和待跳未知节点与目标节点的估价,搜寻起始节点与目标节点之间的路径,计算起始节点与目标节点之间的第二最小跳数值;

s3、信标节点计算其与网络中所有其他信标节点之间的第二平均每跳跳距,修正所述第二平均每跳跳距的误差并广播;

s4、未知节点判断其与信标节点之间路径区域为高密度区域或低密度区域,并根据判断结果设置对应的权值,该未知节点根据所述权值修正并保存该信标节点广播的第二平均每跳跳距;

s5、根据未知节点保存的所述第二平均每跳跳距,计算该未知节点与任一信标节点之间的估计距离;

s6、根据所述估计距离计算未知节点的位置。

步骤s1包含:

s11、无线传感器网络中的信标节点通过泛洪的方式广播包含自身编号、位置信息以及跳数值的数据包,所述跳数值设为零;

s12、信标节点的邻居节点在接收到该信标节点的所述数据包后,将数据包中的跳数值加一,并转发给该邻居节点下一跳的邻居节点;

s13、接收数据包的节点从其接收的具有相同所述编号的若干数据包中选取具有最小跳数值的数据包并保存;该节点将选取的数据包中的跳数值加一,并转发该数据包给该节点下一跳的邻居节点;重复步骤s13,直到泛洪结束;

s14、记网络中的任一节点所保存的数据包中的跳数值为该节点与对应信标节点之间的第一最小跳数值;网络中的第i信标节点根据公式(1)在三维空间中计算其与所有其他信标节点之间的平均每跳跳距hopsizei_pre:

表示第i信标节点到网络中第j信标节点的第一最小跳数值,i≠j且i,j∈[1,n];(xi,yi,zi)、(xj,yj,zj)分别表示第i信标节点、第j信标节点的坐标,hopsizei_pre表示第i信标节点到网络中所有其他信标节点的第一平均每跳跳距。

步骤s2包含:

s21、任选网络中的一个节点作为起始节点,所述起始节点为网络中的信标节点或未知节点,记所述起始节点为第i′节点;以第j信标节点为目标节点,搜索所述第i′节点到第j信标节点的路径,j∈[1,n];第x1、…、第xm未知节点为搜索过程中当前节点在其通信范围r内的待跳未知节点,其中x1,…,xm∈[1,w];计算第xm未知节点到第j信标节点的估价hj(xm),m∈[1,m],m为当前节点在其通信范围r内待跳未知节点的总个数;t为从第i′节点到当前节点的跳数值;

表示第xm未知节点到第j信标节点的跳数值;第i′节点到第j信标节点的路径经过了第k未知节点,且第xm未知节点落在该路径上,为第k未知节点到第j信标节点的跳数值;为第xm未知节点的偏离角度,表示第i′节点到第j信标节点欧几里德距离与第xm未知节点到第j信标节点欧几里德距离的夹角;为第k未知节点的偏离角度,表示第i′节点到第j信标节点的欧几里德距离与第k未知节点到第j信标节点欧几里德距离的夹角;

s22、若第xm′未知节点满足hj(xm′)=min{hj(x1),…,hj(xm)},m′∈[1,m],以第xm′未知节点作为当前节点的下一跳未知节点;

s23、t加一,以第xm′未知节点为当前节点;重复步骤s21至s23,直到第j信标节点为当前节点,进入s24;

s24、令第i′节点到第j信标节点的第二最小跳数值hopi′j_a*等于t。

步骤s3包含:

s31、第i信标节点计算其与网络中的与其他信标节点之间的第二平均每跳跳距hopsizei_a*:

(xi,yi,zi)表示网络中第i信标节点的坐标,(xj,yj,zj)表示网络中不同于第i信标节点的第j信标节点的坐标;hopij_a*为第i信标节点与第j信标节点之间的第二最小跳数值;i,j∈[1,n]

s32、计算第i、第j信标节点之间的距离误差i≠j且i,j∈[1,n]:

其中,dij表示第i、第j信标节点之间的欧式距离;hopij_a*为第i信标节点与第j信标节点之间的第二最小跳数值;

通过最小二乘法修正hopsizei_a*,使其满足:

将hopsizei_a*修正为hopsizei_a*_m:

s33、第i信标节点在网络中广播hopsizei_a*_m,其他节点保存hopsizei_a*_m。

步骤s4包含:

s41、基于改进的a*算法,为第x未知节点建立到信标节点的代价评估函数;

fj(x)=gp(x)+hj(p)(7)

fj(x)是从第x未知节点到第j信标节点的总代价,从第x未知节点到第j信标节点经过了第p未知节点,gp(x)为从第x未知节点到第p未知节点的代价,hj(p)为第p未知节点到第j信标节点的估价;j∈[1,n],x,p∈[1,w];

s42、为第x未知节点与第j信标节点之间的路径区域生成对应的密集度阈值β_ave:

若fj(x)>β_ave,则判定第x未知节点与第j信标节点之间的路径区域为低密度区域,进入s43;若fj(x)≤β_ave,则判定第x未知节点与第j信标节点之间的路径区域为高密度区域,进入s44;

s43、计算第x未知节点与第j信标节点之间的路径区域的低密度权值

其中,第x未知节点与第j信标节点之间的路径经过了第t未知节点;x未知节点与第k信标节点之间的路径经过了第t′未知节点;为第t未知节点的偏离角度,表示第x未知节点到第j信标节点欧几里德距离与第t未知节点到第j信标节点欧几里德距离的夹角;为第t′未知节点的偏离角度,表示第x未知节点到第k信标节点欧几里德距离与第t′未知节点到第k信标节点欧几里德距离的夹角;k∈[1,n],t∈[1,w];进入s45;

s44、计算第x未知节点与第j信标节点之间的路径区域的高密度权值

其中进入s45;

s45、第x未知节点优化其保存的hopsizej_a*_m为其中j∈[1,n]:

若第x未知节点与第j信标节点的路径区域是低密度区域,λj取值否则λj取值

步骤s5中计算第x未知节点与第j信标节点之间估计距离dxj的公式为:

其中x∈[1,w],j∈[1,n]。

步骤s6中,通过最大似然估计法计算未知节点的坐标:

s61、令网络中第p未知节点的坐标为(xp,yp,zp),p∈[1,w];令第i信标节点的坐标为(xi,yi,zi),i∈[1,n];根据第p未知节点与第i信标节点之间估计距离dpi列方程组:

s62、求解得到

t表示转置;

其中

与现有技术相比,本发明的有益效果在于:

1)本发明突破了传统的在二维平面中计算无线传感器网络的未知节点的位置坐标,超越了空间的限制在三维立体空间中计算无线传感器网络的未知节点的位置坐标,能适应山区、丘陵,深林,湖泊,海洋等各种环境。大大提升了无线传感器网络在现实当中的应用性,且所用方法同时适用于二维空间和三维空间,具有较强的兼容性和有效性。

2)本发明首次在无线传感器网络定位中使用a*算法,并对a*算法进行了改进能更好的解决在dv-hop计算中对节点之间的多跳信号传播路径过程产生的角度偏差。在搜寻节点之间路径的过程中,合理利用起始节点与目标节点的欧几里德角度、第一最小跳数值计算估价用于选择待跳节点,通过每次智能判断选择最佳的待跳节点,不断迭代保持最佳跳数和最短路径,保持寻路高效性并减少了误差。

3)目前已有的无线传感器网络节点定位方法,都是把整个无线传感器的节点按均匀分布考虑进行计算,这会严重影响未知节点的定位精度。为此,本发明在传统的dv-hop基础上,有效的判断了无线传感器网络节点分布的疏密情况,将未知节点与信标节点之间的路径区域判别为高密度区域和低密度区域存在不同节点密度区域,并分别赋予不同的权重,实现了更加准确的获取未知节点与信标节点之间的估计距离,进一步减小未知节点的定位误差,提高未知节点的定位精度。

附图说明

为了更清楚地说明本发明技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:

图1为本发明的无线传感器网络定位方法流程图;

图2为本发明的定位方法在三维空间与二维平面应用的示意图;

图3a为通过常规的dv-hop算法所搜索的路径示意图;

图3b为本发明中通过改进的a*算法搜索的路径示意图;

图4为本发明的实施例中,无线传感器网络中低密度区域和高密度区域示意图;

图5、图6为本发明的实施例中,基于待跳未知节点的估价选择最优待跳未知节点示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

无线传感器网络的许多应用要求节点知道自身的位置信息,才能向用户提供有用的检测服务。没有节点位置信息的监测数据在很多场合下是没有意义的。比如,对于森林火灾检测、天然气管道监测等应用,当有事件发生时,人们关心的一个首要问题就是事件发生在哪里,此时如果只知道发生了火灾却不知道火灾具体的发生地点,这种监测没有任何实质的意义,因此节点的位置信息对于很多场合是至关重要的。

在许多场合下,传感器节点(本发明中也简称为节点)被随机部署在某个区域,节点事先无法知道自身的位置,因此需要在部署后通过定位技术来获取自身的位置信息。目前最常见的定位技术就是gps(globalpositioningsystem)了,它能够通过卫星对节点进行定位,并且能够达到比较高的精度。因此要想对传感器节点进行定位,最容易想到的方法就是给每个节点配备一个gps接收器,但是这种方法不适用于传感器网络,主要原因有以下几点:

1)gps接收器通常能耗高,而对于无线传感器网络中的节点来说,一般能耗很有限,给每个节点配备一个gps接收器会大大缩短网络寿命;

2)gps接收器成本比较高,给无线传感器网络中的每个节点配备一个gps接收器,需要投入很大成本,尤其对于大规模的无线传感器网络来说不是很适合;

因此有必要研究适合无线传感器网络的定位技术。

在无线传感器网络中节点通常可以分为信标节点(beaconnodeoranchornode)和未知节点(unknownnode),其中信标节点也称为锚节点或者参考点,未知节点也称为普通节点。信标节点是位置信息已知的节点,未知节点是未知信息未知的节点。信标节点一般所占比例很小,通常通过手工配置或者配备gps接收器来获取自身的位置信息。

除此之外还有一种节点称为邻居节点(neighbornode),邻居节点是指传感器节点通信半径内的其他节点。

本实施例中的无线传感器网络中包含已知位置信息的第一至第n信标节点和未知位置信息的第一至第w未知节点,信标节点、未知节点具有相同的通信范围r。本发明提供一种无线传感器网络定位方法,如图1所示,所述方法包含:

s1、网络中的信标节点向自身外的所有节点广播包含该信标节点位置信息的数据包;网络中的任一节点获得其与任一信标节点之间的第一最小跳数值;网络中的信标节点计算其到网络中所有其他信标节点的第一平均每跳跳距;

步骤s1包含:

s11、无线传感器网络中的信标节点通过泛洪的方式广播包含自身编号、位置信息以及跳数值的数据包,所述跳数值设为零;

s12、信标节点的邻居节点在接收到该信标节点的所述数据包后,将数据包中的跳数值加一,并转发给该邻居节点下一跳的邻居节点;

s13、接收数据包的节点从其接收的具有相同所述编号的若干数据包中选取具有最小跳数值的数据包并保存;该节点将选取的数据包中的跳数值加一,并转发该数据包给该节点下一跳的邻居节点;重复步骤s13,直到泛洪结束;

s14、记网络中的任一节点所保存的数据包中的跳数值为该节点与对应信标节点之间的第一最小跳数值;网络中的第i信标节点根据公式(1)在三维空间中计算其与所有其他信标节点之间的平均每跳跳距hopsizei_pre:

表示第i信标节点到网络中第j信标节点的第一最小跳数值,i≠j且i,j∈[1,n];(xi,yi,zi)、(xj,yj,zj)分别表示第i信标节点、第j信标节点的坐标,hopsizei_pre表示第i信标节点到网络中所有其他信标节点的第一平均每跳跳距。

s2、任选网络中的一个节点作为起始节点,任选网络中的一个信标节点作为目标节点,所述起始节点与所述目标节点之间的具有若干个待跳未知节点;基于所述待跳未知节点相对于起始节点与目标节点之间欧几里得距离的偏离角度,和待跳未知节点与目标节点的估价,搜寻起始节点与目标节点之间的路径,计算起始节点与目标节点之间的第二最小跳数值;

步骤s2包含:

s21、任选网络中的一个节点作为起始节点,所述起始节点为网络中的信标节点或未知节点,记所述起始节点为第i′节点;以第j信标节点为目标节点,搜索所述第i′节点到第j信标节点的路径,j∈[1,n];第x1、…、第xm未知节点为搜索过程中当前节点在其通信范围r内的待跳未知节点,其中x1,…,xm∈[1,w];计算第xm未知节点到第j信标节点的估价hj(xm),m∈[1,m],m为当前节点在其通信范围r内待跳未知节点的总个数;t为从第i′节点到当前节点的跳数值;

表示第xm未知节点到第j信标节点的跳数值;第i′节点到第j信标节点的路径经过了第k未知节点,且第xm未知节点落在该路径上,为第k未知节点到第j信标节点的跳数值;为第xm未知节点的偏离角度,表示第i′节点到第j信标节点欧几里德距离与第xm未知节点到第j信标节点欧几里德距离的夹角;为第k未知节点的偏离角度,表示第i′节点到第j信标节点的欧几里德距离与第k未知节点到第j信标节点欧几里德距离的夹角;通过现有技术中的aoa算法测量得到,在此不做重点叙述。

s22、若第xm′未知节点满足hj(xm′)=min{hj(x1),…,hj(xm)},m′∈[1,m],以第xm′未知节点作为当前节点的下一跳未知节点;

s23、t加一,以第xm′未知节点为当前节点;重复步骤s21至s23,直到第j信标节点为当前节点,进入s24;

s24、令第i′节点到第j信标节点的第二最小跳数值hopi′j_a*等于t。

在本发明的实施例中,如图5所示,从起始点节i到目标节点j,x1,x2,x3为起点i半径r范围内的未知节点,x1,x2,x3与目标节点产生的偏离角度β1,β2,β3与对应的跳数,计算输出各自的代价,取最小值作为下一跳节点(本事实例中是选取x3)。

如图6所示,此时路径走到x3,以x3为中心半径r范围内搜索到新x1、新x2两个节点,得出新x2的估价最小,把新x2作为下一跳节点,如此循环。

如图3a所示,现有技术中在搜寻节点间路径存在不在趋于直线的缺陷,进而跳数值也存在问题。经过本发明改进了a*算法,根据待跳节点的偏离角度和到目标节点的跳数生成估价,基于估价选择最优的待跳节点,如图3b所示,发明搜索得到的路径趋于直线,原始统计的节点间跳数(第一最小跳数值)发生改变,也就是对原有跳数进行了优化。

s3、信标节点计算其与网络中所有其他信标节点之间的第二平均每跳跳距,修正所述第二平均每跳跳距的误差并广播;

步骤s3包含:

s31、第i信标节点计算其与网络中的与其他信标节点之间的第二平均每跳跳距hopsizei_a*:

(xi,yi,zi)表示网络中第i信标节点的坐标,(xj,yj,zj)表示网络中不同于第i信标节点的第j信标节点的坐标;hopij_a*为第i信标节点与第j信标节点之间的第二最小跳数值;i,j∈[1,n]

s32、计算第i、第j信标节点之间的距离误差i≠j且i,j∈[1,n]:

其中,dij表示第i、第j信标节点之间的欧式距离;hopij_a*为第i信标节点与第j信标节点之间的第二最小跳数值;

通过最小二乘法修正hopsizei_a*,使其满足:

将hopsizei_a*修正为hopsizei_a*_m:

s33、第i信标节点在网络中广播hopsizei_a*_m,其他节点保存hopsizei_a*_m。

s4、未知节点判断其与信标节点之间路径区域为高密度区域或低密度区域,并根据判断结果设置对应的权值,该未知节点根据所述权值修正并保存该信标节点广播的第二平均每跳跳距;

步骤s4包含:

s41、基于改进的a*算法,为第x未知节点建立到信标节点的代价评估函数;

fj(x)=gp(x)+hj(p)(7)

fj(x)是从第x未知节点到第j信标节点的总代价,从第x未知节点到第j信标节点经过了第p未知节点,gp(x)为从第x未知节点到第p未知节点的代价,hj(p)为第p未知节点到第j信标节点的估价;j∈[1,n],x,p∈[1,w];

s42、为第x未知节点与第j信标节点之间的路径区域生成对应的密集度阈值β_ave:

若fj(x)>β_ave,则判定第x未知节点与第j信标节点之间的路径区域为低密度区域,进入s43;若fj(x)≤β_ave,则判定第x未知节点与第j信标节点之间的路径区域为高密度区域,进入s44;

如图4所示,本发明的一个实施例中,节点a和节点e之间的路径区域为高密度区域,节点e与节点i之间的路径区域为低密度区域。

s43、计算第x未知节点与第j信标节点之间的路径区域的低密度权值

其中,第x未知节点与第j信标节点之间的路径经过了第t未知节点;x未知节点与第k信标节点之间的路径经过了第t′未知节点;为第t未知节点的偏离角度,表示第x未知节点到第j信标节点欧几里德距离与第t未知节点到第j信标节点欧几里德距离的夹角;为第t′未知节点的偏离角度,表示第x未知节点到第k信标节点欧几里德距离与第t′未知节点到第k信标节点欧几里德距离的夹角;k∈[1,n],t∈[1,w];进入s45;

对公式(9)进一步说明,公式(9)中的分子是对第x未知节点与第j信标节点之间的路径经过的任一未知节点进行穷尽;公式(9)中的分母穷尽了从第x未知节点到任一信标节点(对k穷尽)之间所有经过的未知节点(对t′穷尽)。

s44、计算第x未知节点与第j信标节点之间的路径区域的高密度权值

其中进入s45;

s45、第x未知节点优化其保存的hopsizej_a*_m为其中j∈[1,n]:

若第x未知节点与第j信标节点的路径区域是低密度区域,λj取值否则λj取值

s5、根据未知节点保存的所述第二平均每跳跳距,计算该未知节点与任一信标节点之间的估计距离;

步骤s5中计算第x未知节点与第j信标节点之间估计距离dxj的公式为:

其中x∈[1,w],j∈[1,n]。

s6、根据所述估计距离计算未知节点的位置。

步骤s6中,通过最大似然估计法计算未知节点的坐标:

s61、令网络中第p未知节点的坐标为(xp,yp,zp),p∈[1,w];令第i信标节点的坐标为(xi,yi,zi),i∈[1,n];根据第p未知节点与第i信标节点之间估计距离dpi列方程组:

s62、求解得到

t表示转置;

其中

如图2所示,本发明解决了传统的在二维平面中计算无线传感器网络的未知节点位置坐标的难题,能够超越空间的限制在三维立体空间中计算得到无线传感器网络的未知节点的位置坐标,且对未知节点的定位结果准确可靠。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1