首页> 中国专利> 一种基于多通信半径和FOA-c的节点定位算法

一种基于多通信半径和FOA-c的节点定位算法

摘要

本发明公开了一种基于多通信半径和FOA‑c的节点定位算法,包括以下步骤:步骤1:利用多通信半径的方法细化跳数;步骤2:利用网络平均连通度重新计算平均跳距;先用求得网络平均连通度;再计算平均每跳距离;步骤3:利用自适应权重因子优化果蝇算法(FOA‑c)求得最佳未知节点的位置坐标。本发明提出了一种自适应权重因子优化果蝇算法(FOA‑c),FOA‑c算法能够快速收敛到全局最优,提高算法的收敛精度,在WSN节点定位算法的优化中均可应用。

著录项

  • 公开/公告号CN115955648A

    专利类型发明专利

  • 公开/公告日2023-04-11

    原文格式PDF

  • 申请/专利权人 兰州理工大学;

    申请/专利号CN202211271534.9

  • 申请日2022-10-18

  • 分类号H04W4/02;H04W84/18;

  • 代理机构北京金宏来专利代理事务所(特殊普通合伙);

  • 代理人陆华

  • 地址 730050 甘肃省兰州市七里河区兰工坪路287号

  • 入库时间 2023-06-19 19:27:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-18

    授权

    发明专利权授予

说明书

技术领域

本发明属于信息科学传感器定位技术领域,尤其涉及一种基于多通信半径和FOA-c的节点定位算法。

背景技术

无线传感器网络WSN(Wireless Sensor Networks)由大量无线传感器节点组成,这些节点以自组织的方式相互协调工作,传感器节点之间可以传输信息并协作感知环境。无线传感器网络广泛应用于军事侦察、环境监测、交通路况监测、抢险救灾、医疗保障等诸多领域。在这些应用中,所获取的数据必须要有相应的位置信息,如果没有位置信息,相互传递的数据就毫无价值,失去了采集数据的意义。因此,节点定位就显得尤为重要,节点定位问题也是WSN的关键支撑技术之一。现有的定位算法根据节点定位过程中是否需要测量实际节点间的距离一般分为两类:距离相关的定位算法和距离无关的定位算法。距离相关的定位算法有基于到达时间算法(ToA)、基于到达角度算法(AoA)、基于接收信号强度指示算法(RSSI)等;距离无关的定位算法常见的有质心算法、DV-Hop算法、APIT算法和Amorphous算法等。前者对硬件要求高,因而对未知节点的定位相对准确,但是实现成本和功耗较高,且容易受到外界环境的干扰。而后者则不需要太高的硬件要求,实现成本和功耗较低,但是对未知节点的定位精度不高,因此,近些年来,诸多学者对距离无关的定位算法展开研究,希望能够将定位精度提高,使得未知节点在定位过程中能获得较为准确的位置信息。

Amorphous算法是基于非测距的定位算法,该算法的实现主要分为以下三个步骤:步骤1:计算未知节点距各锚节点的最小跳数;步骤2:计算未知节点到各锚节点的距离;步骤3:利用极大似然估计法计算自身位置。Amorphous算法与DV-Hop算有一定的相似性,都是先计算未知节点到锚节点之间的最小跳数,然后利用跳数乘以平均每跳距离估算未知节点到锚节点之间的距离,最后利用极大似然估计法计算未知节点的坐标。不同之处是,Amorphous算法在估计节点之间的距离时,将通信半径作为锚节点的平均每跳距离,而DV-Hop算法使用两锚节点之间的距离除以跳数作为锚节点的平均每跳距离。Amorphous算法的定位误差产生主要有以下三个方面:

①计算未知节点到锚节点之间的最小跳数时,结果都是整数,但已有实验表明,这大约增加了0.5个平均跳数的误差,导致算法的定位误差增大。

②由于网络节点分布的不规则性,两节点之间的距离或大或小,Amorphous算法将节点的通信半径作为平均每跳距离,导致定位误差过大。

③利用极大似然估计法求解未知节点坐标时,受初始值测量误差影响较大,小的测量误差就会导致较大的位置估计误差。

因此,针对影响Amorphous定位精度的主要原因分析,诸多学者对其进行了数学优化,或者加入智能优化算法的变体算法力求未知节点的定位精度得到提升。

果蝇优化算法(Fruit Fly Optimization Algorithm,FOA)是由的潘文超博士提出的一种演化式群智能优化算法,其基本思想来自于果蝇在自然界中的觅食行为。相较于其他物种,果蝇在嗅觉和视觉上更为敏感。因此,在觅食过程中,果蝇可以利用自身独特的嗅觉发现食物气味,并分享给周围的果蝇,比较后可以得到气味最优的果蝇个体位置,同时其他果蝇均会向该位置飞去,通过不断地迭代更新最后得到果蝇群体中的最佳位置。果蝇优化算法作为一种更简单、更鲁棒的优化算法;该算法不仅具有易于理解的特点,而且易于写入程序代码。同时,与其他算法相比,程序代码不会太长,很容易用于处理各种优化问题。因此,把果蝇优化算法运用到无线传感器网络节点定位算法中,对无线传感器网络节点定位算法提高定位精度具有重大作用和意义。

发明内容

为了解决上述背景技术存在的技术问题,本发明旨在提供一种基于多通信半径和FOA-c的节点定位算法,算法首先引入多通信半径的概念细化节点跳数,利用网络平均连通度重新计算节点的平均每跳距离,接着将极大似然估计法求得的未知节点的坐标值作为果蝇优化算法中每个果蝇的初始位置,通过此初始位置产生每个果蝇的初始种群,代入适应度函数求得当前果蝇的最佳位置,引入了个体认知因子c

为了解决现有技术存在的上述问题,本发明所采用的技术方案为:

一种基于多通信半径和FOA-c的节点定位算法,包括以下步骤:

步骤1:利用多通信半径的方法细化跳数;首先假设锚节点与其邻居节点的实际距离为d,跳数为h,则通过不同半径细化跳数后,跳数h为:

其中,R为节点的通信半径,h为跳数;d为锚节点与其邻居节点的实际距离;

步骤2:利用网络平均连通度重新计算平均跳距;

由于节点的随机部署,锚节点与未知节点之间的跳段距离往往不是二者之间的直线距离,用通信半径作为平均每跳距离,过大估计了跳段距离,本发明算法先用式(3)求得网络平均连通度,再用式(4)计算平均每跳距离;

n

式中,N为网络节点总数,R为节点的通信半径,S为网络区域面积。

步骤3:利用自适应权重因子优化果蝇算法(FOA-c)求得最佳未知节点的位置坐标。

步骤3包括:

步骤31:由平均跳距乘以细化跳数得到未知节点与锚节点之间的跳距;

步骤32:利用极大似然估计法计算每个未知节点的坐标,将此坐标作为每个果蝇的初始位置;

步骤33:引入个体认知因子c

其中,mean(X)和mean(Y)表示上次迭代中所有果蝇个体的平均值,(X(i,:),Y(i,:))表示上次迭代中果蝇的位置。

步骤34:利用式(6)产生新的种群代入适应度函数,通过迭代找到最佳适应度的解,将输出的最佳解作为未知节点的坐标;

步骤35:循环多次步骤33和步骤34,直到找到所有的最佳未知节点的坐标为止。

步骤1:利用多通信半径的方法细化跳数;

如图1所示,假设在锚节点A的通信半径范围内有B、C、D三个未知节点,由Amorphous算法可知,锚节点A到B、C、D之间的跳数均为1跳,若用锚节点的平均跳距乘以跳数来计算节点间的距离,则节点A到B、C、D之间的距离相等,但从图中来看,未知节点B、C、D到锚节点A的实际距离却不相同。

因此,本发明用多通信半径来细化跳数,假设锚节点与其邻居节点的实际距离为d,跳数为h,则通过不同半径细化跳数后,跳数h为:

其中,R为节点的通信半径,h为跳数;d为锚节点与其邻居节点的实际距离;

各锚节点向整个网络以洪泛的方式广播包含自身位置坐标信息的数据包,锚节点的初始跳数为0,数据包每经过一个节点,跳数加

步骤2:利用网络平均连通度重新计算平均跳距;

由于节点的随机部署,锚节点与未知节点之间的跳段距离往往不是二者之间的直线距离,用通信半径作为平均每跳距离,过大估计了跳段距离。本发明算法先用式(3)求得网络平均连通度,再用式(4)计算平均每跳距离;

n

式中,N为网络节点总数,R为节点的通信半径,S为网络区域面积。

步骤3:利用自适应权重因子优化果蝇算法(FOA-c)求得最佳未知节点的位置坐标。

在FOA迭代寻优的过程中,从公式

迭代寻优阶段,将公式

其中,mean(X)和mean(Y)表示上次迭代中所有果蝇个体的平均值,(X(i,:),Y(i,:))表示上次迭代中果蝇的位置。

由于节点间的距离都是通过跳数乘以平均跳距估计出来的,这会导致估算距离与实际距离之间产生较大的误差。假设未知节点(x,y)与锚节点(x

越小的τ

步骤34:利用式(6)产生新的种群代入适应度函数,通过迭代找到最佳适应度的解,将输出的最佳解作为未知节点的坐标;

步骤35:循环多次步骤33和步骤34,直到找到所有的最佳未知节点的坐标为止。

本发明具有以下有益效果为:

(1)本发明提出了一种自适应权重因子优化果蝇算法(FOA-c),FOA-c算法能够快速收敛到全局最优,提高算法的收敛精度,在WSN节点定位算法的优化中均可应用。

(2)本发明提出了一种基于坐标优化的FOA-Amorphous节点定位算法。相较于双通信半径算法、PSO-IDV-Hop算法以及Amorphous算法相比,归一化定位误差平均分别降低了约7%、25%和60%,达到提高算法定位精度的目的。

(3)采用FOA-c智能优化算法对Amorphous定位算法的结果进行全局寻优,在控制时间复杂度和计算开销的同时有效提高了算法的定位精度。

(4)本发明逻辑简单、易于实现和扩展,可以将种群智能优化算法扩展到当前无线传感器网络节点定位的大多数问题中。

附图说明

图1是通信半径内节点分布图。

图2是算法收敛曲线图。

图3是本发明算法的定位效果图。

图4是四种算法每个未知节点的定位误差对比图。

图5是锚节点个数对定位误差的影响图。

图6是通信半径对定位误差的影响图。

图7是节点总数对定位误差的影响图。

图8是四种算法的平均运行时间对比图。

图9是本发明的流程示意图。

具体实施方式

下面结合附图及附图标记对本发明作进一步阐述。

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

实施例1:

如图9所示,一种基于多通信半径和FOA-c的节点定位算法,包括以下步骤:

步骤1:利用多通信半径的方法细化跳数;

其中,R为节点通信半径,n为对R的分级数,i是小于n的正整数,两层级之间的距离均等为R/n,不同层级之间跳数值的取值也不相同,通过如此便能够对最小跳数值进行修正;

步骤2:利用网络平均连通度重新计算平均跳距;

由于节点的随机部署,锚节点与未知节点之间的跳段距离往往不是二者之间的直线距离,用通信半径作为平均每跳距离,过大估计了跳段距离。本发明算法先用式(3)求得网络平均连通度,再用式(4)计算平均每跳距离;

n

式中,N为网络节点总数,R为节点的通信半径,S为网络区域面积。

步骤3:利用自适应权重因子优化果蝇算法(FOA-c)求得最佳未知节点的位置坐标。

步骤3具体包括:

步骤31:由平均跳距乘以细化跳数得到未知节点与锚节点之间的跳距;

步骤32:利用极大似然估计法计算每个未知节点的坐标,将此坐标作为每个果蝇的初始位置;

步骤33:引入个体认知因子c

其中,mean(X)和mean(Y)表示上次迭代中所有果蝇个体的平均值,(X(i,:),Y(i,:))表示上次迭代中果蝇的位置。

步骤34:计算适应度函数:

利用式(6)产生新的种群代入适应度函数(8),通过迭代找到最佳适应度的解,将输出的最佳解作为未知节点的坐标;

步骤35:循环多次步骤33和步骤34,直到找到所有的最佳未知节点的坐标为止。

实施例2:

在实施例1的基础上,一种基于多通信半径和FOA-c的节点定位算法,包括以下步骤:

步骤1:利用多通信半径的方法细化跳数;

如图1所示,假设在锚节点A的通信半径范围内有B、C、D三个未知节点,由Amorphous算法可知,锚节点A到B、C、D之间的跳数均为1跳,若用锚节点的平均跳距乘以跳数来计算节点间的距离,则节点A到B、C、D之间的距离相等,但从图中来看,未知节点B、C、D到锚节点A的实际距离却不相同。

因此,本发明用多通信半径来细化跳数,假设锚节点与其邻居节点的实际距离为d,跳数为h,则通过不同半径细化跳数后,跳数h为:

其中,R为节点通信半径,n为对R的分级数,i是小于n的正整数,两层级之间的距离均等为R/n,不同层级之间跳数值的取值也不相同,通过如此便能够对最小跳数值进行修正;

各锚节点向整个网络以洪泛的方式广播包含自身位置坐标信息的数据包,锚节点的初始跳数为0,数据包每经过一个节点,跳数加

步骤2:利用网络平均连通度重新计算平均跳距;

由于节点的随机部署,锚节点与未知节点之间的跳段距离往往不是二者之间的直线距离,用通信半径作为平均每跳距离,过大估计了跳段距离。先用式(3)求得网络平均连通度,再用式(4)计算平均每跳距离;

n

式中,N为网络节点总数,R为节点通信半径,S为网络区域面积。

其中,t是定积分里面的变量,即求t在-1到1的定积分。

步骤3:利用自适应权重因子优化果蝇算法(FOA-c)求得最佳未知节点的位置坐标。

步骤31:由平均跳距乘以细化跳数得到未知节点与锚节点之间的跳距;

步骤32:利用极大似然估计法计算每个未知节点的坐标,将此坐标作为每个果蝇的初始位置;

步骤33:引入个体认知因子c

在FOA迭代寻优的过程中,从公式

其中,rand为[0,1]的随机数。

迭代寻优阶段,将公式

其中,mean(X)和mean(Y)表示上次迭代中所有果蝇个体的平均值,(X(i,:),Y(i,:))表示上次迭代中果蝇的位置。

由于节点间的距离都是通过跳数乘以平均跳距估计出来的,这会导致估算距离与实际距离之间产生较大的误差。假设未知节点(x,y)与锚节点(x

越小的τ

步骤34:利用式(6)产生新的种群代入适应度函数(8),通过迭代找到最佳适应度的解,将输出的最佳解作为未知节点的坐标;

步骤35:循环多次步骤33和步骤34,直到找到所有的最佳未知节点的坐标为止。

在相同实验条件下,本文选取了与式(8)维度一致的基测函数对FOA-c算法和FOA算法进行了寻优性能的对比,如图2所示。从图中不难看出,FOA-c算法相比较FOA算法,收敛速度更快,寻优精度更高。

实施例2:

如图2-8所示,为了验证本文算法的定位性能,利用MATLAB2016b对本发明算法(FOA-Amorphous)、Amorphous算法、双通信半径算法以及PSO-IDV-Hop算法,从锚节点个数、通信半径大小、总节点个数以及时间复杂度等四个方面进行仿真实验分析。在100m×100m的仿真区域内,随机产生一定数量的网络节点。算法的参数设置如表1所示。

表1算法相关参数设置

算法中每个未知节点的定位误差计算公式(9)如下:

算法的归一化定位误差计算公式(10)如下:

式中,(x

我们通过一系列的实验仿真分析来验证本发明的有效性。

设置总节点个数为100,锚节点个数为20,通信半径为30。本发明提出的算法与传统算法的定位效果如图3所示,从图中不难看出本发明提出的算法估计的节点位置与传统算法相比更加靠近真实位置。

在监测区域内随机部署100个节点,其中锚节点个数为20,未知节点个数为80个,通信半径为30,四种算法各运行100次后的平均定位误差如图4所示,PSO-IDV-Hop算法和双通信半径算法的平均定位误差大约分别为13.4m和6.5m,本发明提出算法的未知节点的平均定位误差大约为4.3m,与其他三种算法相比,本发明提出的算法具有更低的定位误差。

图5是节点总数为100,通信半径为30时,锚节点比例变化对未知节点定位误差的影响。从图中可以看出,随着锚节点的比例增加,四种算法的定位误差有所降低,是因为在总节点个数不变的情况下,锚节点的个数增加,则其密度增大,一个未知节点可以获得的锚节点的位置信息增多,使其定位误差降低。在相同的条件下,本发明算法的误差一直都是最小的,与PSO-IDV-Hop算法相比,其归一化定位误差降低了30%左右,与双通信半径算法相比,其归一化定位误差降低7%左右,与Amorphous算法相比,归一化误差降低了53%左右。从整体来看,无论锚节点的比例是多是少,本发明提出的算法都具有更好的定位效果。

图6是在总节点个数为100,锚节点个数为30的条件下,通信半径从25变化到50的误差变化图。从图中可以看出,随着通信半径的增加,本发明算法和双通信半径算法定位误差稳定下降,而PSO-IDV-Hop算法在通信半径大于45之后定位误差略有增加,这是由于随着通信半径增大,一跳范围内的节点数增多,导致算法的跳数误差增大,而本发明算法和双通信半径算法对跳数进行了细化,使得误差随通信半径的增大而稳定降低。不难看出,本发明算法的误差一直都是最低的,相比较双通信半径算法和PSO-IDV-Hop算法归一化定位误差分别降低了8%和24%左右。

图7是在锚节点比例为30%,通信半径为30的条件下,定位误差随节点总数的变化图。从图中可以看出,随着节点总数的增加,Amorphous算法的定位误差呈现上升的趋势,这是因为当仿真区域面积不变的情况下,节点个数增加,节点密度增大,则节点的平均邻居节点数增多,用通信半径代替平均跳距计算距离时本来就有误差产生,当邻居节点增多,这种误差将会累积增大。然而,本发明算法与PSO-IDV-Hop算法以及双通信半径算法的定位误差稳定下降,是因为算法对跳数进行了优化,且本发明算法和PSO-IDV-Hop算法加入了智能优化算法,优化了未知节点的坐标。与其他三种算法相比,本发明算法的归一化定位误差最低,低于双通信半径算法7%左右,低于PSO-IDV-Hop算法和Amorphous算法分别为23%和66%左右。

时间复杂度反应了算法执行的时间长短。假设未知节点个数为n,锚节点的个数为m(m<n),智能优化算法的最大迭代次数为k。则Amorphous算法的时间复杂度为O(n

将算法的平均运行时间作为算法开销指标进行分析。图8为相同实验条件下所统计的四种算法的运行时间比较。由实验结果可知,本文算法的运行时间比Amorphous算法和双通信半径算法的运行时间大,是因为本发明算法加入了智能优化算法,使得算法的运行时间增加;但比PSO-IDV-Hop算法的运行时间小,这是因为FOA算法比PSO算法更简单、更鲁棒,且本发明算法加入了个体认知因子和群体引导因子,使算法快速收敛到全局最优,提高了算法的收敛精度。从整体来说,本发明算法的运行时间略有增加,但算法的定位精度得到了很好的提升。

本发明不局限于上述可选实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是落入本发明权利要求界定范围内的技术方案,均落在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号