首页> 中国专利> 一种子网划分式DV-hop无线传感器网络定位算法

一种子网划分式DV-hop无线传感器网络定位算法

摘要

本发明提供一种无线传感器网络领域的新型子网划分式DV?hop定位算法,该算法考虑了普通DV?hop定位算法以平均跳段距离代替实际直线距离而导致定位误差较大这一问题,尤其是在复杂异构网络环境下,该问题将严重影响定位精度。为了减小异构网络环境下DV?hop算法定位误差大的问题,提出了一种子网划分式DV?hop定位算法。本发明与以往的DV?hop定位算法相比不仅能够较好地解决异构网络的问题,能获得较高的定位精度,此外该方法分簇的思想还降低了大规模网络定位时的复杂度,具有较高的适应能力。

著录项

  • 公开/公告号CN105828434A

    专利类型发明专利

  • 公开/公告日2016-08-03

    原文格式PDF

  • 申请/专利权人 金陵科技学院;

    申请/专利号CN201610331758.2

  • 发明设计人 赵炜;刘钰;何健;程炳华;

    申请日2016-05-18

  • 分类号H04W64/00(20090101);H04W84/18(20090101);

  • 代理机构32207 南京知识律师事务所;

  • 代理人陈卓

  • 地址 210000 江苏省南京市江宁区弘景大道99号

  • 入库时间 2023-06-19 00:13:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-07

    授权

    授权

  • 2018-02-16

    著录事项变更 IPC(主分类):H04W64/00 变更前: 变更后: 申请日:20160518

    著录事项变更

  • 2016-08-31

    实质审查的生效 IPC(主分类):H04W64/00 申请日:20160518

    实质审查的生效

  • 2016-08-03

    公开

    公开

说明书

技术领域

本发明属于无线传感器网络技术领域,特别涉及聚类算法、最短路径算法、DV-hop算法等算法在节点定位过程中的使用。

背景技术

定位技术是无线传感器网络关键技术之一。依据定位过程中是否测量节点间的距离,可以把定位算法分为基于测距定位算法和非测距定位算法。基于测距的定位方法通过测量节点间的距离或方位获取未知节点的位置,该方法定位精度高,但容易受温度,障碍物等环境因素的影响,且测量半径受到所带能量限制,因此,不适合大规模定位。非测距方法大多数是通过节点之间的连接关系来获得节点间的跳数,进而用跳距(平均每跳距离*跳数)来代替节点间的物理距离,获取节点的估计位置,因而适合大规模场景下的定位应用。然而,非测距算法一般只适用于各向同性的密集网络,在复杂环境下的各向异性网络中定位性能较差。

依据到初始锚节点的跳数可以分为单跳定位和多跳定位,单跳定位算法如APIT定位算法,到达角定位算法等。多跳定位算法如DV-Hop算法、迭代多边定位算法[6,7]、Amorphous等。多跳定位方法相对成本较低,但定位精度受制于节点的分布情况。

DV-Hop算法是一种经典的多跳定位算法,是众多无线传感器网络节点自定位算法中应用最广泛的算法之一。在实际应用中DV-Hop算法定位技术性能仍然受到诸多技术难题困扰,其中最致命的是它仅能在节点密度高且分布均匀的各向同性网络取得较理想的定位结果,而在节点分布不均、稀疏等网络环境各向异性的情况下,定位效果很差。而本发明所提供的子网划分式DV-hop定位算法能够较好地解决异构网络的问题,能获得较高的定位精度,此外该方法分簇的思想还降低了大规模网络定位时的复杂度,具有较高的适应能力。

发明内容

本发明提出了一种子网划分式DV-hop定位算法,该算法能够较好地解决异构网络的问题,能获得较高的定位精度,同时降低了大规模网络定位时的复杂度,具有较高的适应能力。

本发明采用如下技术方案:

1.输入定位区域内的待定位节点及锚节点信息;

2.利用聚类算法对整个网络中的锚节点进行分簇,将原网络中锚节点划分为若干个簇;

3.计算每个待定位节点至各个锚节点之间的跳数h,依据跳数最小原则将该待定位节点加入到最近的簇中;

4.对各个簇进行DV-hop定位算法,求出每簇内的待定位节点位置;

5.将各个簇进行定位结果合并,完成整个网络的节点定位,输出定位结果。

附图说明

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

图1为本发明实施例1提供的子网划分式DV-hop定位算法流程图。

图2为本发明实施例1提供的传感器网络S节点分布图。

图3为本发明实施例1提供的锚节点分簇情况图。

图4为本发明实施例1提供的节点分簇情况图。

图5为本发明实施例1提供的第1簇节点定位效果图。

图6为本发明实施例1提供的第2簇节点定位效果图。

图7为本发明实施例1提供的合并2簇定位结果后的定位效果图。

图8为本发明实施例1提供的经典DV-hop定位效果图。

具体实施方式

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

由于图2~图8为彩色,特提交其他证明文件。

实施例1:

本发明实施例1提供一种子网划分式DV-hop定位算法,如图1所示,该方法包括:

101、输入定位区域内的待定位节点及锚节点信息

补充:本专利中根据无线传感器网络中节点是否已知自身的位置,把传感器节点分为锚节点和待定位节点。

在一个无线传感器网络S中,设传感器节点的集合为S={S1,S2,…,SM+N},其中M为锚节点个数,N为待定位节点个数。本专利以M=30,N=270为具体实施例进行说明。每一个节点的位置可以表示为式(1):

pos(Si)=(xi,yi)T,i=1,...,M+N>

M个锚节点Si∈A位置已知,N个待定位节点Sj∈B位置未知;其中集合A={Si|i=1,2,...,M},集合B={Sj|j=M+1,M+2,...,M+N}。这样就把问题转换为:已知集合A内的锚节点坐标信息,求集合B内的待定位节点坐标信息。

为了体现本发明的算法在异构网络中定位效果优于传统DV-hop定位算法,在无线传感器网络S中设置了一块“障碍”区域,使得整个部署区域呈“C”型。该部署区域总面积1000*1000(米),区域中一共随机散布300个节点所有节点通信半径设为150米。节点分布如附图2所示,其中以符号“o”代表待定位节点,以符号“*”代表锚节点。

102、利用聚类算法对整个网络中的锚节点进行分簇

利用聚类算法对整个网络中的锚节点进行分簇――此处的聚类算法可以是K-均值聚类,二分K-均值算法等,而本实施例仅以k-均值聚类算法说明。假设需要把锚节点分为k个簇,簇个数k是用户指定的,每一个簇通过其质心,即簇中所有节点的中心来描述。

使用K-均值聚类算法对整个网络中的锚节点进行分簇,其工作流程如下:首先,随机确定k个初始点做为质心。然后将锚节点集A中的每个节点分配到一个簇中,具体来讲,为每个锚节点找距离其最近的质心,并将其分配给该质心所对应的簇。这一步完成后,每个簇的质心更新为该簇所有点的平均值。

利用K-均值聚类算法对整个网络中的锚节点进行分簇的工作流程可以用算法描述表示如下:

算法描述5)计算质心与节点之间的距离公式为(2):

>dis>tan>ce(Zj,Si)=||pos(Zj)-pos(Si)||=(xj-xi)2+(yj-yi)2---(2)>

其中质心Zj属于簇集合Z={Zi|i=1,2,...,k},质心的坐标表示如式(3)所示:

pos(Zj)=(xj,yj)T,j=1,...,k>

利用K-均值聚类算法对整个网络中的锚节点进行分簇,具体分簇个数应根据部署环境确定,例如网络规模、节点分布情况等,簇个数k是用户指定的,本实施例为了便于实施起见,设定把锚节点分2簇,每一个簇通过其质心,即簇中所有节点的中心来描述。

首先,随机确定2个初始点做为质心。然后将锚节点集中的每个节点分配到一个簇中,具体来讲,为每个锚节点找距离其最近的质心,并将其分配给该质心所对应的簇。这一步完成后,每个簇的质心更新为该簇所有点的平均值。锚节点分簇完成后的场景如附图3所示,其中“红色*”号和蓝色“*”号分别代表了第1簇和第2簇中的锚节点。

103、计算每个待定位节点至各个锚节点之间的跳数h,依据跳数最小原则将该待定位节点加入到最近的簇中

网络中任意两个节点Si到Sj的跳数可以表示为h(Si,Sj)∈H={Zi|0,1,2,...},使用最短路径算法可以获取整个网络的跳数矩阵H,对于本实施例由于是300的节点,其维度是300╳300。

使用最短路径算法获取整个网络的跳数矩阵H的过程可以用算法描述如下:

程序计算完毕,跳数矩阵H中即包含了每个待定位节点至各个锚节点之间的跳数h信息。

接着,对于任意一个待定位节点Sj,首先从跳数矩阵H中查找跳数距离最小的锚节点,接着判断该锚节点(可能不止一个)所属的簇,将节点Sj加入到该簇。对于最小跳数不止一个的情况,将Sj加入锚节点个数最多的那个簇。所有待定位节点都被分配到这2个簇中。

上述过程可以用算法描述表示如下:

分配完毕后的场景如附图4所示,用红蓝2色分别表示2个簇中的节点。

104、对各个簇进行DV-hop定位算法,求出每簇内的待定位节点位置

假设对第k簇进行DV-hop定位算法,其他簇以此类推。

首先,从整个网络的跳数矩阵H中提取第k簇的跳数矩阵,设定为Hk,该矩阵包含了第k簇内所有节点之间的跳数信息。

然后,求得第k簇内单跳所对应的距离dper,因为锚节点坐标已知,可以通过锚节点之间的跳数和距离来求得。单跳所对应的距离dper可以通过式(4)求得:

>dper=Σij(xi-xj)2+(yi-yj)2Σijhi---(4)>

其中(xi,yi)和(xj,yj)分别是锚节点i和j的坐标;hi是锚节点i和其他所有锚节点的跳数。

接着,任取k簇内一个待定位节点Sj,假设其待求位置坐标为:Sj(x,y)。从Hk中提取Sj至簇内各锚节点(Si,i=1,…,n)的跳数信息,依据单跳所对应的距离dper,将跳距转化为距离信息,即dper*跳距;假定这n个锚节点的坐标分别为:(x1,y1),(x2,y2),...,(xn,yn),节点Sj到n个锚节点的距离分别为:d1,d2,…,dn

>(x-x1)2+(y-y1)2=d12(x-x2)2+(y-y2)2=d22...(x-xn)2+(y-yn)2=dn2---(5)>

第1至第n-1等式分别与第n个等式相减,可得到式(6):

>2(xn-x1)x+2(yn-y1)y=d12-dn2+yn2+xn2-y12-x122(xn-x2)x+2(yn-y2)y=d22-dn2+yn2+xn2-y22-x22...2(xn-xn)x+2(yn-yn)y=dn-12-dn2+yn2+xn2-yn-12-xn-12---(6)>

>A=2×(x1-xn)(y1-yn)(x2-xn)(y2-yn)......(xn-1-xn)(yn-1-yn)---(7)>

>b=x12-xn2+y12-yn2+dn2-d12x22-xn2+y22-yn2+dn2-d22...xn-12-xn2+yn-12-yn2+dn2-dn-12---(8)>

>x=xy---(9)>

上述方程组可以转化为Ax=b的形式。使用标准的最小均方差估计法可以得到节点Sj的坐标为式(10)所示:

>x^=(ATA)-1ATb---(10)>

表示待定位节点Sj的估计坐标。

按照上述的经典DV-hop算法,在2簇上分别对待定位节点进行运算,求出节点坐标。然后在场景中显示各个簇定位的结果。

附图5和附图6分别显示了第1簇和第2簇定位的结果,图中的线段表示定位的误差大小,由节点的真实坐标指向节点的估计坐标,线段越长,说明定位误差越大,即定位效果越差。

105、将各个簇进行定位结果合并,完成整个网络的节点定位,输出定位结果

假设第i个簇求得的待定位节点坐标信息为Xi,Xi可以表示为式(11):

>Xi=x^1y^1x^2y^2......x^my^m---(11)>

其中,矩阵Xi为第i簇内m个待定位节点的估计坐标。把所有的k个簇定位结果合并,即式(12):

>X=X1X2...Xk---(12)>

最终的矩阵X包含了所有待定位节点的估计坐标信息。待各个簇的定位都完成时,即可将个簇的定位结果进行合并,得到整个网络的定位结果。

如附图7所示,是2簇合并后的定位效果图。作为对比,附图8给出了相同条件下经典DV-hop定位算法的定位效果图。

衡量一个定位算法的技术标准有很多,比较通用的是采用平均定位误差(ALE)衡量算法的性能。

ALE主要用于验证算法定位的精度,ALE的定义如式(13):

>ALE=Σi=1n(x^i-xi)2+(y^i-yi)2n×R---(13)>

式中的是第i个节点的估计坐标位置,(xi,yi)是第i个节点实际坐标位置;n为未知节点数量;R通信半径。从上式可以看出ALE是指区域内所有未知节点估计位置到真实位置的欧式距离的平均误差与通信半径的比值。ALE能够反映定位算法的稳定性以及定位的精度,在节点通信半径一定时,节点的平均定位误差越小则该算法的定位精度越高,反之亦然。

根据本实施例,n=270,R=150米。仿真求得的结果为:经典DV-hop定位误差为ALE=1.6473,而本发明提出的子网划分式DV-hop定位误差为ALE=0.60157。显而易见,在异构网络条件下,本发明提出的定位算法很大程度提高了DV-hop定位算法的精度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号