一种基于节点连接关系的DV-Hop改进集中式定位方法与流程

文档序号:15849462发布日期:2018-11-07 09:37阅读:161来源:国知局
一种基于节点连接关系的DV-Hop改进集中式定位方法与流程

本发明涉及无线定位技术领域,特别是一种基于节点连接关系的dv-hop改进集中式定位方法。

背景技术

在无线传感网中,对传感器节点进行定位主要有测距和免测距这两类方法。与基于测距的定位方法相比,免测距定位虽然定位精确度较低,但由于不需要专用的测距硬件,所以成本非常低,特别适用于低成本无线传感器网络的节点定位。在现有的众多免测距定位算法中,dv-hop(distancevector-hop)方法的独特优点在于即使未知节点周围没有3个以上信标节点,该方法仍然能对该未知节点进行定位。所以dv-hop在信标节点稀疏情况下的低成本无线传感器网络中得到广泛应用。

2001年,美国罗格斯大学的dragosniculescu和badrinath提出了一系列基于距离路由矢量的分布式定位算法,统称为aps(adhocpositioningsystem,自组网定位系统)。其中包括dv-hop算法、dv-distance算法和euclidean算法。dv-hop算法的基本原理是,每个信标点根据其到其他信标点的直线距离和最短跳数计算出自身的平均跳距,然后对每个未知节点来说,它到各信标点的估测距离为该未知节点到各信标点的最短跳数乘以各信标点的平均跳距,最后采用最小二乘法计算出未知节点的估计位置。

dv-hop算法的流程可以分为以下三个阶段:

第一阶段:获取信标点的位置信息以及距离信标点的最小跳数;

每个信标点向全网发送包括位置信息和跳数信息的广播数据包,跳数字段的初始值为0。当节点接收到该信标点的广播数据包时,此节点将数据包中的跳数加1,然后记录该数据包中的信息,将该数据包继续广播出去。如节点收到多个来自同一信标点的信息,该节点只保留跳数最小的信息组,通过这种方法记录自己到每个信标点的最小跳数以及信标点的位置信息。

第二阶段:估算未知节点到信标点的距离;

根据两个信标点间的欧氏距离和最小跳数,计算信标点的平均每跳距离,每个信标点将计算得到的平均每跳距离广播到全网。每个未知节点收到各信标点的平均每跳距离后,通过平均每跳距离和第一阶段得到的到各信标点的最小跳数的乘积来计算与各信标点的近似距离。

第三阶段:未知节点计算位置坐标;

未知节点得到与三个以上不同信标点的距离后,通过最小二乘法来计算自己的位置坐标。

原始的dv-hop方法是依据跳数来计算平均跳距的,因此当节点分布不均匀时,计算得到的平均跳距就会偏大,从而增大定位误差。为了提高dv-hop方法的定位精度,国内外学者相继提出了许多改进方法。虽然这些方法都在一定程度上降低了定位误差,但是它们和原始dv-hop方法都存在一个问题,就是在求得定位结果后,并没有进一步验证根据定位结果推算出来的节点之间连接关系是否仍然符合真实的节点连接关系。比如,对于互为邻居的两个未知节点来说,由于dv-hop方法的定位结果存在误差,如果根据它们定位结果再次推算它们是否仍然是邻居,那么很可能推算出它们不是邻居,这样就与真实情况不符。所以本发明针对定位结果的网络连接关系问题,进一步改进dv-hop定位方法。



技术实现要素:

有鉴于此,本发明的目的是提出一种基于节点连接关系的dv-hop改进集中式定位方法,有效降低了定位误差。

本发明采用以下方案实现:一种基于节点连接关系的dv-hop改进集中式定位方法,具体包括以下步骤:

步骤s1:每个未知节点获知信标点的位置信息以及距离其他节点的最短跳数;

步骤s2:每个未知节点获取信标点的平均每跳距离并估算出到信标点的距离;

步骤s3:每个未知节点通过最小二乘法估算出自身位置坐标作为初始定位结果,然后将初始定位结果以及未知节点的邻居节点信息发送给中心节点;

步骤s4:中心节点建立最优化问题并求解出该最优化问题,从而计算出所有未知节点的位置坐标。

进一步地,步骤s4具体包括以下步骤:

步骤s41:中心节点建立最优化问题,其中优化变量为所有未知节点的未知坐标,目标函数为每个未知节点与初始定位结果的加权距离和最小,约束条件为每个未知节点的邻居关系保持不变,即对每个未知节点来说,经过本发明的算法改进后,它与原邻居节点仍保持邻居关系,而与非邻居节点仍保持非邻居关系;将初始定位结果作为第一次迭代初始值;

步骤s42:在每次迭代中,将非邻居节点的非凸不等式约束转换为线性约束,对由目标函数、邻居节点的凸约束以及转换后的非邻居节点的线性约束组成的凸优化问题,通过凸优化的工具软件进行求解,例如cvx;

步骤s43:将每次求解出的优化问题的最优解作为下次迭代初始值;

步骤s44:当满足迭代终止条件时,获得的目标函数的近似最优解就是所有未知节点的位置坐标。

进一步地,步骤s42进一步包括:对未知节点的非邻居节点分两种情况考虑:信标点或未知节点;在两种情况下分别对非凸不等式约束进行一阶泰勒展开,从而转换为线性约束,然后将由该线性约束、邻居节点的凸约束以及目标函数组成的优化问题进行求解。

进一步地,步骤s44进一步包括:所述迭代终止条件为:迭代收敛速度小于预设的阈值,即本次迭代估算出的目标函数值与上次估算结果的差的绝对值小于预设的阈值时,迭代停止,此时获得的目标函数的近似最优解就是所有未知节点的位置坐标。

与现有技术相比,本发明有以下有益效果:本发明采用的基于节点连接关系的dv-hop改进集中式定位方法,通过未知节点的连接关系对dv-hop定位结果进行修正,修正后的定位结果符合节点间的真实连接关系。本发明有效地降低了定位误差。

附图说明

图1为本发明实施例的方法流程示意图。

图2为本发明实施例的节点分布示意图。

图3为本发明实施例的节点定位结果示意图。

图2中,a1、a2、a3是信标点,u1、u2、u3是未知节点;图3中,h1、h2、h3是dv-hop定位结果,c1、c2、c3是本实施例算法改进结果。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1所示,本实施例提供了一种基于节点连接关系的dv-hop改进集中式定位方法,具体包括以下步骤:

步骤s1:每个未知节点获知信标点的位置信息以及距离其他节点的最短跳数;

步骤s2:每个未知节点获取信标点的平均每跳距离并估算出到信标点的距离;

步骤s3:每个未知节点通过最小二乘法估算出自身位置坐标作为初始定位结果,然后将初始定位结果以及未知节点的邻居节点信息发送给中心节点;

步骤s4:中心节点建立最优化问题并求解出该最优化问题,从而计算出所有未知节点的位置坐标。

较佳的,本实施例的所有节点既包括信标点又包括未知节点。

在本实施例中,步骤s4具体包括以下步骤:

步骤s41:中心节点建立最优化问题,其中优化变量为所有未知节点的未知坐标,目标函数为每个未知节点与初始定位结果的加权距离和最小,约束条件为每个未知节点的邻居关系保持不变,即对每个未知节点来说,经过本发明的算法改进后,它与原邻居节点仍保持邻居关系,而与非邻居节点仍保持非邻居关系;将初始定位结果作为第一次迭代初始值;

步骤s42:在每次迭代中,将非邻居节点的非凸不等式约束转换为线性约束,对由目标函数、邻居节点的凸约束以及转换后的非邻居节点的线性约束组成的凸优化问题,通过凸优化的工具软件进行求解,例如cvx;

步骤s43:将每次求解出的优化问题的最优解作为下次迭代初始值;

步骤s44:当满足迭代终止条件时,获得的目标函数的近似最优解就是所有未知节点的位置坐标。

在本实施例中,步骤s1具体为:

假设网络区域内共有n个传感器节点,其中m个节点是待定位节点,其他的n-m个节点是信标节点。并且假设其中某一个信标节点具备较强的计算能力和较多的能量,该节点可以承担该集中式算法的运算任务,本实施例把该节点称作中心节点。由于本实施例的算法是对现有dv-hop算法定位结果进行修正,所以首先用来表示dv-hop算法对第i个待定位节点的定位结果。

在本实施例算法所对应的最优化问题中,约束条件必须是节点之间的真实连接关系。与约束条件相比,本实施例优化问题中的目标函数重要程度稍弱,同时灵活度较高。本实施例把目标函数确定为最小化对定位结果的修正幅度,原因是本实施例的算法是在现有的dv-hop相关算法的基础上进行修正。为了与原算法尽可能保持足够的相关性,同时也尽可能保留原算法的优势,本实施例的目标是对原定位结果做出尽可能小的改动。所以本实施例的优化问题表示为:

其中,wi是权重系数,它的取值与每次修正结果中与节点i符合真实连接关系的其他节点的个数有关。若符合真实连接关系的节点个数较多,则说明节点i与其他节点的邻居关系并未发生较大改变,即对节点i的定位结果较为准确,则wi取较大值;若符合真实连接关系的节点个数较少,则说明节点i与其它节点的邻居关系发生很大改变,即对节点i的定位结果不太准确,则wi取较小值。

是已知量,r也是已知的,表示节点i的通信范围。而li是未知量,表示待定位节点i的位置坐标。lj和lq分别表示节点i的邻居节点j和非邻居节点q的位置坐标。lj和lq不一定是未知量,因为它们有可能是信标节点。但是当lj和lq是待定位节点时,它们和li一样是未知量。hopi,j是指节点i与节点j之间的最短跳数,由于节点j是节点i的邻居节点,所以hopi,j=1。hopi,q是指节点i与节点q之间的最短跳数,由于节点q是节点i的非邻居节点,所以hopi,q>1。

对于每一个确定的节点i来说,假设它有ji个邻居节点,由此可知(2)并不是只有一个不等式,而是包含ji个不等式约束。同理可假设节点i有qi个非邻居节点,可知(3)包含qi个不等式约束。因为网络中共有n个节点,所以ji+qi=n-1。考虑到网络中共有m个待定位节点,由于任意待定位节点i都有上述n-1个约束条件,所以在整个优化问题中,共有m×(n-1)个约束条件。

由于原优化问题中目标函数和约束条件都是以距离的形式表示的,导致无法对原优化问题直接进行求解。因此,本实施例通过将距离转换为距离平方,从而得到原优化问题的等价的并且可求解的形式,即

容易看出,目标函数(4)是一个凸函数,(5)中的所有不等式约束都是凸的,但是(6)中的所有不等式约束都不是凸的,所以很难直接求出上述优化问题的最优解。但是本实施例可以通过sca(sequentialconvexapproximation)方法多次迭代来求出上述优化问题的近似最优解(li*),其中将初始定位结果作为第一次迭代初始值。

在本实施例中,步骤s42进一步包括:对未知节点的非邻居节点分两种情况考虑:信标点或未知节点;在两种情况下分别对非凸不等式约束进行一阶泰勒展开,从而转换为线性约束,然后将由该线性约束、邻居节点的凸约束以及目标函数组成的优化问题进行求解。

步骤s42中,对优化问题求解的基本原理是在每次迭代中,通过一阶泰勒展开将(6)中的非凸不等式约束转换为线性不等式约束。接下来对该转换过程进行详细的描述。由于lq既可能是信标节点的位置也可能是待定位节点的位置,本实施例将根据这两种情况分别描述第n次迭代中(6)式的转换过程。

情况1:lq是未知量(待定位节点的位置)。

首先把上次迭代(即n-1次迭代)得到的近似最优解li(n-1)和lq(n-1)作为本次迭代中li和lq的初始值,然后对||li-lq||2在li=li(n-1)和lq=lq(n-1)处进行一阶泰勒展开为:

用(7)替换(6)的左边,就可将(6)中的非凸不等式约束转换为线性不等式约束,即

情况2:lq是已知量(信标节点的位置)。

在这种情况下,第n次迭代过程与上述过程类似,但更为简洁,因为lq的位置是固定值。首先把上次迭代(即n-1次迭代)得到的近似最优解li(n-1)作为本次迭代中li的初始值,然后对||li-lq||2在li=li(n-1)处进行一阶泰勒展开为

用(9)替换(6)的左边,就可将(6)中的非凸不等式约束转换为线性不等式约束,即

总结以上两种情况,在第n次迭代中,满足hopi,q>1,(6)可被转换为

然后对于(4)、(5)和(11)组成的新的优化问题,可以用一些凸优化的工具软件来进行求解,例如cvx。

在本实施例中,步骤s43具体为:通过cvx求解得到的结果是所有待定位节点的位置坐标li(n)(i=1,2,...,m)。根据本次迭代获得的这些节点位置,以及节点之间的最短跳数信息,容易得出第i个待定位节点的估计位置li(n)以及它的每个非邻居节点(同时也是待定位节点)的估计位置lq(n),然后将li(n)和lq(n)作为下次迭代的初始值。

在本实施例中,步骤s44进一步包括:所述迭代终止条件为:迭代收敛速度小于预设的阈值,即本次迭代估算出的目标函数值与上次估算结果的差的绝对值小于预设的阈值时,迭代停止,此时获得的目标函数的近似最优解就是所有未知节点的位置坐标。通过以上描述,本实施例已经详细介绍了第n次迭代的具体过程。在sca中,上述迭代过程被重复执行多次,直至满足迭代终止条件(此处的迭代终止条件是迭代收敛速度小于某个阈值),最终将获得一个近似最优解,该解就是通过本实施例的算法对原定位结果进行改进后的最终定位结果。

如图1所示,对基于节点连接关系的dv-hop改进集中式定位方法进行实施,具体流程如下:

1、设置6个无线传感器节点(包括3个信标点和3个未知节点)使其分布在40m*40m的平面区域,每个节点的通信范围是20m,如图2的节点分布图所示;

2、未知节点u1、u2、u3分别获知信标点a1、a2、a3的位置信息以及每个未知节点距离其他节点的最短跳数。其中未知节点u1与a1、a2、a3、u2、u3的最短跳数分别为1、1、2、2、1,未知节点u2与a1、a2、a3、u1、u3的最短跳数分别为2、1、1、2、1,未知节点u3与a1、a2、a3、u1、u2的最短跳数分别为2、1、1、1、1。两个节点间的最短跳数为1,则它们互为邻居节点,否则互为非邻居节点;

3、未知节点u1、u2、u3分别获知信标点a1、a2、a3的平均每跳距离,分别为19.25m,18.94m,18.54m。然后对未知节点u1、u2、u3来说,分别用它们到信标点a1、a2、a3的最短跳数乘以a1、a2、a3的平均每跳距离,计算得出未知节点u1、u2、u3分别到信标点a1、a2、a3的估算距离;

4、未知节点u1、u2、u3分别通过最小二乘法估算出自身位置坐标(21.07,26.52),(8.79,-34.3),(49.86,49.03),并将该位置坐标作为初始定位结果;

5、将初始定位结果以及未知节点u1、u2、u3的邻居关系发送给中心节点(假设信标点a1是中心节点);

6、中心节点a1建立由(4)、(5)和(6)组成的最优化问题并将初始定位结果作为第一次迭代初始值;

7、在每次迭代中,将非邻居节点的非凸不等式约束(6)转换为线性约束(14),然后对由(4)、(5)和(14)组成的新优化问题通过凸优化的工具软件进行求解,例如cvx;

8、将每次求解出的优化问题的最优解作为下次迭代初始值,直至满足迭代停止条件,本例中的迭代停止条件是本次迭代估算出的目标函数值与上次估算结果的差的绝对值小于阈值0.1;

9、迭代多次直至满足迭代停止条件,获得的目标函数的近似最优解(20,24.2),(22,5),(37,15.8)就是所有未知节点u1、u2、u3的位置坐标,将dv-hop定位结果与我们改进的定位结果进行对比,如图3所示。

仿真结果分析如表1所示,本发明比dv-hop算法的平均定位误差减少了约85.3%,本例中的u1节点改进幅度为35.57%,u2、u3节点的改进幅度尤其明显,分别达到了87.55%和89.32%。

表1本发明与dv-hop算法定位误差分析

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

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