一种移动传感网的Sink节点移动路径规划方法与流程

文档序号:11411523阅读:280来源:国知局
一种移动传感网的Sink节点移动路径规划方法与流程

本发明涉及通信技术领域,尤其涉及无线传感网技术领域,具体是指一种移动传感网的sink节点移动路径规划方法。



背景技术:

无线传感网(wirelesssensornetworks,wsns)由空间分布的自主传感节点和sink节点组成,可协同监测温度、声音、振动、压力、运动等物理和环境参数,在战场监控、战场损伤评估、工业过程监控、机器运行状况监控、家庭自动化、交通监控等军事、工业和民用领域上具有较大的应用价值和市场潜力。

在无线传感网中,能量效率是无线传感网的最重要问题之一。由于传感节点的电池能量有限而且其电池更换需要花费较多的时间和精力,因此无线传感网需要在无人干预下自行运行足够长的时间。但是在静态sink节点的无线传感网中,由于多跳路由具有热点且数据流量集中,靠近sink节点的传感节点消耗较多的能量且失效较早。这个问题被称为无线传感网的热点问题。热点问题可恶化无线传感网的网络连接和生存时间,甚至使无线传感网不能正常工作。为克服热点问题,很多学者研究sink节点的移动,让其周围的热点发生变化且出现在网络的各个区域,从而实现统一的能量消耗和延长网络生存时间。如郜帅等人建立优先级高且移动距离不小于阈值的虚拟点集合,采用tsp算法求解能遍历该集合内所有虚拟点的最短路径。郭剑等人将监测区域分成多个大小相同的圆盘。计算每一个圆盘内sink节点的停留位置,采用量子遗传算法获得最短移动路径。汪林云等人利用分簇技术将传感节点分成通信半径相同的簇,选择剩余能量相对充足的传感节点作为簇头。根据簇头的位置,利用tsp算法构建一条尽可能短的移动路径。salarianh.等人选择权值较高的传感节点作为rp点(rendezvouspoint),建立点集合,寻找能访问所有rp点且不超过最大数据传输时延的路径。leek.等人考虑传感节点网格分布和邻居传感节点的剩余能量变化,提出一种sink节点移动的分布式启发算法,寻找其停留位置。但是这些算法都假设所有传感节点都能获知自身位置坐标。为保证定位精度,需要安装gps或北斗定位模块,这增加了节点能耗和系统硬件成本。而且算法所获得的移动路径是否具有已经达到最大提高网络生存时间的效果,仍需要进一步研究,而且很多移动路径的确定需要传感节点的位置、能量等信息。



技术实现要素:

为寻找传感节点均匀分布时sink节点的最优移动路径和最大网络生存时间,本发明考虑传感节点均匀分布的情况,提供了一种移动传感网的sink节点移动路径规划方法,该方法可寻找到sink节点的最优移动路径,从而平衡网络能耗,提高网络生存时间。

为了实现上述目的,本发明具有如下构成:

该移动传感网的sink节点移动路径规划方法,所述的方法包括以下步骤:

(1)初始化当前迭代次数m1=1、当前粒子m2=1、预设圆环厚度值r、sink节点的最大通信距离d、预设子区域个数np、最大迭代次数m1、预设粒子个数m2和允许的最大移动路程lp;

(2)将sink节点的数据收集范围分解成一个半径为r的内圆和厚度均为r的n-1个圆环,其中n=d/r;

(3)将监测区域分成np个子区域,并对每个子区域依次进行编号,并重复执行m2次粒子的初始操作,得到初始粒子群;

(4)依次选择各个粒子m2中sink节点的停留位置和计算每一个子区域的节点能耗,获得每一个子区域的单位节点能耗;

(5)根据每一个子区域的单位节点能耗计算网络生存时间,更新个体极值粒子和全局极值粒子,m2=m2+1,并判断m2是否大于m2,如果是,则获得各个粒子的适应度值、个体极值和全局极值,令m2=1,然后继续步骤(6);否则继续步骤(4);

(6)粒子m2分别与所述个体极值粒子和全局极值粒子进行交叉和变异操作;

(7)当该粒子的移动路径长度超过允许的最大移动路程lp时,执行路径修正操作,m2=m2+1,并判断m2是否大于m2,如果是,则继续步骤(8),否则继续步骤(4);

(8)判断当前迭代次数m1是否小于预设最大迭代次数m1,如果是,则m2=1,m1=m1+1,则继续步骤(4),否则结束算法,并输出最优移动路径和最大网络生存时间。

可选地,所述步骤(2)中,将监测区域分成大小相同的np个矩形网格,各个矩形网格即为一个子区域,并按照从左到右、从上到下的原则对各个所述矩形网格进行编码。

可选地,所述步骤(3)中,重复执行m2次粒子的初始操作,得到初始粒子群,包括如下步骤:

在各个所述子区域内随机生成一个sink节点的停留位置,构成具有np个停留位置的粒子。

可选地,所述步骤(4)中,计算所述单位节点能耗,包括如下步骤:

(4-1)sink节点的当前停留位置为(xs,ys),该子区域中心i的位置为(xi,yi),监测区域的长和宽为(lx,ly),经过sink节点和该子区域中心i的直线方程为:

sink节点到该子区域中心i的有向射线与监测区域的边界交点为(xc,yc):

当xs=xi且ys=yi时,则两点重合,令yi=yi+0.1,则xc=xi,yc=ly;

当xs=xi且ys>yi时,则xc=xi,yc=0;

当xs=xi且ys<yi时,则xc=xi,yc=ly;

当xs>xi且ys=yi时,则xc=0,yc=yi;

当xs<xi且ys=yi时,则xc=lx,yc=yi;

当xs≠xi且ys≠yi时,如果xs<xi,yi≤ys(xi-lx)/(xs-lx)或xs>xi,yi≤ysxi/xs时,则xc=-yi(xs-xi)/(ys-yi)+xi,yc=0;如果xs<xi,ys(xi-lx)/(xs-lx)≤yi≤(ys-ly)(xi-lx)/(xs-lx)+ly时,则xc=lx,yc=(ys-yi)(lx-xi)/(xs-xi)+yi;如果xs<xi,yi>(ys-ly)(xi-lx)/(xs-lx)+l或xs>xi,yi>(ys-ly)xi/xs+ly时,则xc=(ly-yi)(xs-xi)/(ys-yi)+xi,yc=ly;如果xs>xi,ys(xi)/xs≤yi≤(ys-ly)xi/xs+ly时,则xc=0,yc=-xi(ys-yi)/(xs-xi)+yi;

(4-2)根据sink节点到该子区域中心i的有向射线与监测区域的边界交点和sink节点的多跳数据收集方式,计算经过该子区域中心i的多跳通信收集的最大跳数ni,max为:

其中,表示大于或等于x的最小整数,计算该子区域中心i所在位置到sink节点的跳数ni为:

(4-3)该子区域中心i的单位节点能耗包括接收和发送该位置到边界交点区域内传感节点的数据能耗和该位置上发送自身数据的能耗,根据如下公式计算该子区域中心i的单位节点能耗

其中,si表示sink节点的感知数据速率,eelec表示sink节点接收或发送单位bit数据的电路能耗,ε表示sink节点发送单位bit数据的放大器能耗;

(4-4)根据如下公式计算该子区域的单位节点能耗ei:

其中,p表示该粒子的移动路径,为一个m×2的矩阵,每一行存放sink节点停留位置的横坐标和纵坐标,m表示移动路径p中sink节点停留位置个数,p表示移动路径p中sink节点的停留位置。

可选地,所述步骤(5)中,根据如下公式,计算所述网络生存时间:

其中,t表示网络生存时间,即t表示初始能量与所有子区域集合中任何元素单片机能耗比值的最小值,v表示所有子区域中心集合,einital表示所述监测区域的初始能耗,min()表示最小值,表示所有子区域中心集合中的任何一个元素。

可选地,所述步骤(5)中,所述粒子的适应度值,根据如下公式计算得到:

其中,fitness(i)表示粒子的适应度值。

可选地,所述步骤(7)中,执行路径修正操作,包括如下步骤:

当该粒子的移动路径长度超过允许的最大移动路程lp时,根据如下公式执行路经修正操作:

px=(px-lx/2)*lp/lenth(p)+lx/2

py=(py-ly/2)*lp/lenth(p)+ly/2

其中,p表示该粒子的移动路径,即是一个m×2的矩阵,每一行存放sink节点停留位置的横坐标和纵坐标,sink节点在移动过程中需要依次经过集合p中所有停留位置,m表示移动路径p中sink节点停留位置个数,px和py分别表示p中第一列和第二列元素,lx和ly分别表示监测区域的长和宽,lenth(p)表示该粒子的移动路径长度。

可选地,所述步骤(6)中,粒子m2与个体极值粒子进行交叉操作,包括如下步骤:

随机产生交叉位(c1,c2),1≤c1<c2≤np和(c3,c4),1≤c3<c4≤np;

粒子m2的第c1~c2个元素分别由个体极值粒子的c1~c2个元素替换,自身粒子的第c3~c4个元素分别由群体极值粒子的c3~c4个元素替换。

可选地,所述步骤(1)中,还包括初始化变异因子b1和变异因子b2;

所述步骤(6)中,粒子m2与全局极值粒子进行变异操作,包括如下步骤:

产生一个[01]区间内均匀分布的随机数,当该随机数小于变异因子b1时,则该粒子发生变异,计算粒子m2中元素到监测区域中心位置的平均距离dave,对粒子m2中每一个元素进行以下变异操作:

产生一个[01]区间内均匀分布的随机数,当该随机数小于变异因子b2时,在该元素所在的子区域内,产生到监测区域中心位置距离在区间[0.6*dave,1.4*dave]内均匀分布的随机位置,替换原来元素。

与现有技术相比,本发明的有益效果主要表现在:本发明考虑传感节点均匀分布的无线传感网,建立和求解sink节点移动下的网络生存时间优化模型,可寻找到sink节点的最优移动路径;sink节点沿着最优移动路径移动时,传感节点有时在sink节点附近感知数据,并通过多跳方式传输和转发数据给sink节点,其能耗较大,有时远离sink节点感知数据,较少参与其他传感节点的数据中继,其能耗较小;sink节点经过最优移动路径收集数据,尽量让传感节点的能量消耗相同,从而平衡传感节点的能耗,提高网络生存时间。

附图说明

图1为本发明的移动传感网的sink节点移动路径规划方法的流程图。

图2是本发明的sink节点停留位置选择的子区域划分图;

图3是本发明的边界交点计算的例子图。

具体实施方式

为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。

如图1~3所示,本发明提供了一种移动传感网的sink节点移动路径规划方法,包括如下步骤:

(1)初始化各种参数:迭代次数初值m1=1,当前粒子m2=1,监测区域的长lx和宽ly,圆环厚度r(优选经验值40m),网格数量(优选经验值20×20个),允许的最大停留位置个数np(优选经验值12),允许的最大移动路程lp(优选经验值400m),变异因子b1(优选经验值0.5)和b2(优选经验值0.5),最大迭代次数m1(优选经验值100次),粒子个数m2(优选经验值40个),d表示节点的最大通信距离等;

(2)将sink节点的数据收集范围分解成一个半径为r的内圆和厚度均为r的n-1个圆环,其中n=d/r。将监测区域分成大小相同的矩形网格,并按照从左到右,从上到下的原则对每一个网格进行编码;

(3)监测区域分成np个子区域,并重复执行m2次粒子的初始操作,获得初始粒子群。初始粒子群的具体方法如下:

参照图2,在每一个子区域内随机产生一个sink节点的停留位置,构成具有np个停留位置的粒子,在图中,各个粒子表示为附图标记2。当该粒子的移动路径长度超过允许的最大移动路程lp时,通过公式(1)和(2)执行路径修正操作;

px=(px-lx/2)*lp/lenth(p)+lx/2(1)

py=(py-ly/2)*lp/lenth(p)+ly/2(2)

其中,p表示粒子的移动路径,即是一个m×2的矩阵,每一行存放sink节点停留位置的横坐标和纵坐标,sink节点在移动过程中需要依次经过集合p中所有停留位置,m表示移动路径p中sink节点停留位置个数,px和py分别表示p中第一列和第二列元素,lx和ly分别表示监测区域的长和宽,lenth(p)表示该粒子的移动路径长度。

(4)依次选择粒子m2中sink节点的停留位置和计算每一个网格的节点能耗,获得每一个网格的单位节点能耗。每一个网格的单位节点能耗计算方法如下:

(4-1)参照图3,其中,sink节点当前停留位置标注为2,网格中心i的位置标注为1,sink节点的当前停留位置为(xs,ys),网格中心i的位置为(xi,yi),监测区域的长和宽为(lx,ly),则经过sink节点和网格中心i的直线方程为:

sink节点到网格中心i的有向射线与监测区域的边界交点为(xc,yc),其在图3中标注为3:

当xs=xi且ys=yi时,则两点重合,令yi=yi+0.1,则xc=xi,yc=ly。

当xs=xi且ys>yi时,则xc=xi,yc=0;

当xs=xi且ys<yi时,则xc=xi,yc=ly;

当xs>xi且ys=yi时,则xc=0,yc=yi;

当xs<xi且ys=yi时,则xc=lx,yc=yi;

当xs≠xi且ys≠yi时,则需要判断该点出现在哪个三角形内。参照图3所示,如果xs<xi,yi≤ys(xi-lx)/(xs-lx)或xs>xi,yi≤ysxi/xs时,则(xi,yi)在三角形a2内,将yc=0带入公式(3),可得xc=-yi(xs-xi)/(ys-yi)+xi,yc=0。如果xs<xi,ys(xi-lx)/(xs-lx)≤yi≤(ys-ly)(xi-lx)/(xs-lx)+ly时,则(xi,yi)在三角形a3内,可得xc=lx,yc=(ys-yi)(lx-xi)/(xs-xi)+yi。如果xs<xi,yi>(ys-ly)(xi-lx)/(xs-lx)+l或xs>xi,yi>(ys-ly)xi/xs+ly时,则点(xi,yi)在三角形a4内,可得xc=(ly-yi)(xs-xi)/(ys-yi)+xi,yc=ly。如果xs>xi,ys(xi)/xs≤yi≤(ys-ly)xi/xs+ly时,则点(xi,yi)在三角形a1内,可得xc=0,yc=-xi(ys-yi)/(xs-xi)+yi。

(4-2)根据直线与监测区域的边界交点和sink节点的多跳数据收集方式,计算经过网格中心i的多跳通信收集的最大跳数ni,max为:

其中,表示大于或等于x的最小整数。计算网格中心i所在位置到sink节点的跳数ni为:

(4-3)网格中心i的单位节点能耗由接收和发送该位置到边界交点区域内传感节点的数据能耗和该位置上发送自身数据的能耗组成,即为:

其中,si表示传感节点的感知数据速率,eelec表示传感节点接收或发送单位bit数据的电路能耗,ε表示传感节点发送单位bit数据的放大器能耗。

(4-4)该移动路径下网格中心i的总节点能耗,即该网格的单位节点能耗为:

(5)根据网格的单位节点能耗,通过如下公式(8)获得网络生存时间,与历史极值比较,更新个体极值粒子和全局极值粒子。m2=m2+1。如果m2大于m2,则可获得每一个粒子的适应度值,获得个体极值和全局极值,令m2=1,跳到步骤(6),否则重新跳到步骤(4);网络生存时间定义为:

其中,v表示所有网格中心集合,einital表示初始能耗。

根据每一个粒子的移动路径,粒子适应度值的计算公式如下

(6)粒子m2分别与个体极值粒子和全局极值粒子进行交叉和变异操作;交叉方法的具体实现方法如下:

随机产生交叉位(c1,c2),1≤c1<c2≤np和(c3,c4),1≤c3<c4≤np。自身粒子的第c1~c2个元素分别由个体极值粒子的c1~c2个元素替换。自身粒子的第c3~c4个元素分别由群体极值粒子的c3~c4个元素替换。

变异方法的具体实现方法如下:

产生一个[01]区间内均匀分布的随机数。当该随机数小于变异因子b1时,则该粒子发生变异,计算粒子中元素到监测区域中心位置的平均距离dave,对粒子中每一个元素进行以下变异操作:产生一个[01]区间内均匀分布的随机数,当该随机数小于变异因子b2时,在该元素所在的子区域内,产生到监测区域中心位置距离在区间[0.6*dave,1.4*dave]内均匀分布的随机位置,替换原来元素。

(7)当该粒子的移动路径长度超过允许的最大移动路程lp时,参照图2,通过式(1)和(2)执行路径修正操作。m2=m2+1,如果m2大于m2,则跳到步骤(8),否则跳到步骤(6);

(8)m1=m1+1,如果m1大于m1,则结束算法,输出最优移动路径和最大网络生存时间,否则m2=1,跳到步骤(4);

循环执行关键步骤4)到8),则可获得sink节点的最优停留位置和移动路径,从而达到提高网络生存时间的目的。

综上所述,与现有技术相比,本发明的sink节点移动路径规划方法考虑传感节点均匀分布的无线传感网,建立和求解sink节点移动下的网络生存时间优化模型,可寻找到sink节点的最优移动路径;sink节点沿着最优移动路径移动时,传感节点有时在sink节点附近感知数据,并通过多跳方式传输和转发数据给sink节点,其能耗较大,有时远离sink节点感知数据,较少参与其他传感节点的数据中继,其能耗较小;sink节点经过最优移动路径收集数据,尽量让传感节点的能量消耗相同,从而平衡传感节点的能耗,提高网络生存时间。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

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