一种基于主动规避热区和NLOS的无线传感器网络分簇方法与流程

文档序号:15603487发布日期:2018-10-09 16:59阅读:308来源:国知局
一种基于主动规避热区和NLOS的无线传感器网络分簇方法与流程

本发明属于无线传感器网络路由的分簇技术领域,尤其涉及一种基于主动规避热区和NLOS的无线传感器网络分簇方法。



背景技术:

无线传感器网络简称WSN(Wireless Sensor Networks)中的传感器节点一般来说是由能量十分有限的电池供电,而且在部署后基本上不能再次补充能量,因此WSN网络中存在着一个严重的能量约束的问题,所以,对于WSN网络协议设计的首要目标就是要高效地使用每一个传感器节点的能量,从而延长网络的节点的存活时间,这个多学科交叉的研究方向一直都是针对该领域研究的一个热点问题。

在分簇型结构的无线传感器网络中,网络中的各个节点被按照区域范围划分成为簇区,每一个簇一般由一个簇头节点(CH)和多个成员节点(MN)组成,在每个簇区下的各个节点只通过簇头节点与基站通信,各簇头间的网络,负责簇区内各节点的数据的融合和簇头间数据的转发,因此,各个簇头节点的能量消耗较大,所以要优化簇头选择算法来延长其寿命,提高网络的整体生命周期,虽然采用分簇结构更有利于节约能量,但是这种做法可能引起一个能量消耗不均衡的问题:由于簇区内所有节点均通过簇头节点转发数据通信,导致通信频率严重不均衡,使得簇头节点比簇区内其它节点更加早的耗尽能量,使得该簇区内的节点由于丢失簇头而无法通信,这就是“热区”问题的原因,由于WSN节点中的发、收信机一般都是采用传统的中频和射频电路或者UWB技术,复杂环境中的存在的障碍物使得簇头节点之间的信号无法通过直射路径到达对方的节点,从而使信号经历了更多的衰减,甚至无法到达,该类节点之间通信必须付出较大的能耗代价,因此NLOS(Non Line of Sight)传播方式对数据传输的影响最为严重,要提高复杂环境内的数据传输精度与节点电池的寿命,就必须研究如何避免和消除NLOS传播造成的影响。



技术实现要素:

本发明实施例的目的在于提供一种基于主动规避热区和NLOS的无线传感器网络分簇方法,旨在解决现有无线传感网络的热区问题,与因为NLOS的能量消耗不均匀导致的病态簇的问题。

本发明实施例是这样实现的,一种基于主动规避热区和NLOS的无线传感器网络分簇方法,该基于主动规避热区和NLOS的无线传感器网络分簇方法包括以下步骤:

步骤一,网络初始化配置;

步骤二,上位机中间件构建WSN环境模型;

步骤三,上位机中间件分析模拟信息;

步骤四,运行期间簇头变化。

进一步,在步骤一中,网络初始化的配置中采用WSN网络部署算法。

进一步,WSN网络部署算法具体步骤为:

网络在部署后,基站汇聚节点向全网广播初始化信息,各节点计算所有其相对坐标发回基站‘

其中Nreceive为节点接收到信号的强度,Nsend为节点发出信号的强度,r为节点通信半径;

其中x是临近未知节点位置,ei该第i节点的位置,ai是一个常数,si是接收到的信号强度。

进一步,在步骤二中,将计算结果连同节点能量值发送回汇聚节点,数据融合后发送回基站,基站数据融合后发给上位机中间件得到相对坐标后,构造出虚拟的封闭区域模型。

进一步,在步骤四中,运行期间簇头变化具体步骤为:

第一步,中间件执行簇头选择分析算法,尽量绕开可能导致“空洞”的区域采用障碍物的预测法;从而提前使数据包绕开空洞边界内的节点,减少空洞发生的概率,提高通信分组到达率,最后用模拟退火算法进行候选节点优化;

第二步,如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头;

第三步,分簇算法执行完以后,如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头,中间件在模拟WSN中执行LEACH算法,将其模拟出的簇头标记为候选簇头,将分析出的NLOS节点,能量大于阈值的候选簇头指定成为簇头,从而规避了热区与NLOS,由基站进行全网广播任命簇头;

第四步,当簇头节点检测到自身剩余能量达到能量阈值则向基站发送消息MSG_CLUSTER_EMPTY,基站计算机执行算法重新分析封闭区域模型和能量选择算法,并选出替代簇头;

第五步,基站向全网广播免除原发送ID的簇头将其降级为普通节点,并任命新选出的预选簇头;

第六步,如果簇头由于物理原因突然死亡,基站在一个通信周期内没有收到该簇头来的数据包,则发送MSG_ISALIVE信息给该簇头,若在一个给定时间段没有收到该簇头发来的MSG_ALIVE信息和ID,则在该分簇的局部封闭空间的模型区域内分析并任命新选出的簇头;

第七步,当该WSN网络中内加入新节点或者已存在的节点离开、节点移动,只需发送MSG_JOIN或者MSG_LEAVE、MSG_MOVE消息以及ID给基站计算机,基站计算机自动重新构建该节点的局部封闭空间的模型,并且根据实际情况判断是否重选该局部的簇头。

进一步,在第三步中,障碍物的预测法的具体算法为;

定义:假设a,b,c为3个相邻节点,其中RSSIab(a节点与b节点之间的信号强度),RSSIac(a节点与c节点之间的信号强度),RSSIbc(b节点与c节点之间的信号强度)。

解此齐次线性方程组,可以得出a,b,c三个邻居节点间的通信距离;

根据三角形特性,如果L1>L2+L3,即两边之和小于第三边。则表示a节点与b节点之间可能存在障碍。

进一步,在第三步中,模拟退火算法进行候选节点优化的步骤为:覆盖区域Coverage(Fa)中的Fa为:

Fa=1-exp(-Nd×π×Rn2),Fa∈[0,1]

其中:Nd=节点密度,π=3.14,Rn为节点通信半径。

本发明提供的基于主动规避热区和NLOS的无线传感器网络分簇方法,通过基站连接到的上位机中间件的调控来改善并且延长WSN网络的整体生存周期,并且提高网络的整体可扩展性以及可操控性,由于绕开了可能导致空洞的区域中的节点,增大了网络的覆盖半径的持久性、以及规避了热区效应。并且可以随机加入或者移动或者离开节点,比传统算法大大提到了可扩展性。本发明传统的算法均大多属于被动式簇头自行选举算法,本发明提出一种新颖的主动任命式算法,将本来由各节点承担的工作交由有源的基站计算机来进行模拟分析。此外,本发明因此大大的减少了路由表的负载,简化了路由表,使得路由的额外开销微乎其微,延长了网络的整体寿命。

附图说明

图1是本发明实施例提供的节点路由信号树(SRT)构造过程的示意图;

图2是本发明实施例提供的障碍预测法示意图;

图3是本发明实施例提供的未知封闭环境的2D平面简化模型示意图;

图4是本发明实施例提供的簇头与障碍物之间NLOS示意图;

图5是本发明实施例提供的AAOCH算法的状态切换示意图;

图6是本发明实施例提供的AAOCH算法的中间件WSN网络初始化流程示意图;

图7是本发明实施例提供的AAOCH算法的候选簇头切换流程示意图;

图8是本发明实施例提供的AAOCH算法的正常运行阶以及段异常状态切换流程示意图;

图9是本发明实施例提供的500个随机节点的示例图;

图10是本发明实施例提供的500个随机节点路由路径示例图;

图11是本发明实施例提供的三种网络节点存活率比较的仿真结果示意图;

图12是本发明实施例提供的三种网络通信性能比较的仿真结果示意图;

图13是本发明实施例提供的WSN网络初始化部署时间开销的示意图;

图14是本发明实施例提供的WSN网络初始化部署能量开销的示意图(1);

图15是本发明实施例提供的WSN网络初始化部署能量开销的示意图(2);

图16是本发明实施例提供的簇头随着时间消耗的存活率示意图;

图17是本发明实施例提供的各簇头与基站的通信成功率示意图;

图18是本发明实施例提供的WSN网络中的簇头随着时间的死亡比例示意图;

图19是本发明实施例提供的WSN网络中的簇头随着时间的存活比例示意图;

图20是本发明实施例提供的基于主动规避热区和NLOS的无线传感器网络分簇方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供的基于主动规避热区和NLOS的无线传感器网络分簇方法包括以下步骤:

步骤一,网络初始化配置;

步骤二,上位机中间件构建WSN环境模型;

步骤三,上位机中间件分析模拟信息;

步骤四,运行期间簇头变化。

作为本发明实施例的一优化方案,在步骤一中,网络初始化的配置中采用WSN网络部署算法。

作为本发明实施例的一优化方案,WSN网络部署算法具体步骤为:

网络在部署后,基站汇聚节点向全网广播初始化信息,各节点计算所有其相对坐标发回基站‘

其中Nreceive为节点接收到信号的强度,Nsend为节点发出信号的强度,r为节点通信半径;

其中x是临近未知节点位置,ei该第i节点的位置,ai是一个常数,si是接收到的信号强度。

作为本发明实施例的一优化方案,在步骤二中,将计算结果连同节点能量值发送回汇聚节点,数据融合后发送回基站,基站数据融合后发给上位机中间件得到相对坐标后,构造出虚拟的封闭区域模型。

作为本发明实施例的一优化方案,在步骤四中,运行期间簇头变化具体步骤为:

第一步,中间件执行簇头选择分析算法,尽量绕开可能导致“空洞”的区域采用障碍物的预测法;从而提前使数据包绕开空洞边界内的节点,减少空洞发生的概率,提高通信分组到达率,最后用模拟退火算法进行候选节点优化;

第二步,如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头;

第三步,分簇算法执行完以后,如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头,中间件在模拟WSN中执行LEACH算法,将其模拟出的簇头标记为候选簇头,将分析出的NLOS节点,能量大于阈值的候选簇头指定成为簇头,从而规避了热区与NLOS,由基站进行全网广播任命簇头;

第四步,当簇头节点检测到自身剩余能量达到能量阈值则向基站发送消息MSG_CLUSTER_EMPTY,基站计算机执行算法重新分析封闭区域模型和能量选择算法,并选出替代簇头;

第五步,基站向全网广播免除原发送ID的簇头将其降级为普通节点,并任命新选出的预选簇头;

第六步,如果簇头由于物理原因突然死亡,基站在一个通信周期内没有收到该簇头来的数据包,则发送MSG_ISALIVE信息给该簇头,若在一个给定时间段没有收到该簇头发来的MSG_ALIVE信息和ID,则在该分簇的局部封闭空间的模型区域内分析并任命新选出的簇头;

第七步,当该WSN网络中内加入新节点或者已存在的节点离开、节点移动,只需发送MSG_JOIN或者MSG_LEAVE、MSG_MOVE消息以及ID给基站计算机,基站计算机自动重新构建该节点的局部封闭空间的模型,并且根据实际情况判断是否重选该局部的簇头。

作为本发明实施例的一优化方案,在第三步中,障碍物的预测法的具体算法为;

定义:假设a,b,c为3个相邻节点,其中RSSIab(a节点与b节点之间的信号强度),RSSIac(a节点与c节点之间的信号强度),RSSIbc(b节点与c节点之间的信号强度)。

解此齐次线性方程组,可以得出a,b,c三个邻居节点间的通信距离;

根据三角形特性,如果L1>L2+L3,即两边之和小于第三边。则表示a节点与b节点之间可能存在障碍。

作为本发明实施例的一优化方案,在第三步中,模拟退火算法进行候选节点优化的步骤为:覆盖区域Coverage(Fa)中的Fa为:

Fa=1-exp(-Nd×π×Rn2),Fa∈[0,1]

其中:Nd=节点密度,π=3.14,Rn为节点通信半径。

下面结合附图及具体实施例对本发明的应用原理作进一步描述。

如图20所示,本发明实施例的基于主动规避热区和NLOS的无线传感器网络分簇方法包括以下步骤:

S101:网络初始化配置;

S102:上位机中间件构建WSN环境模型;

S103:上位机中间件分析模拟信息;

S104:运行期间簇头变化。

本发明实施例的具体步骤为:

第一步,WSN网络部署算法

1、网络在部署后,基站汇聚节点向全网广播初始化信息,各节点计算所有其相对坐标(通过各节点之间发送功率强度计算)发回基站。

其中Nreceive为节点接收到信号的强度,Nsend为节点发出信号的强度,r为节点通信半径。

其中x是临近未知节点位置,ei该第i节点的位置,ai是一个常数,si是接收到的信号强度。

2、将计算结果连同节点能量值发送回汇聚节点,数据融合后发送回基站,基站数据融合后发给上位机中间件得到相对坐标后,构造出虚拟的封闭区域模型。

3、中间件执行簇头选择分析算法,尽量绕开可能导致“空洞”的区域采用障碍物的预测法。

定义:假设a,b,c为3个相邻节点,其中RSSIab(a节点与b节点之间的信号强度),RSSIac(a节点与c节点之间的信号强度),RSSIbc(b节点与c节点之间的信号强度)。

解此齐次线性方程组,可以得出a,b,c三个邻居节点间的通信距离。

根据三角形特性,如果L1>L2+L3,即两边之和小于第三边。则表示a节点与b节点之间可能存在障碍。

从而提前使数据包绕开空洞边界内的节点,减少空洞发生的概率,提高通信分组到达率,最后用模拟退火算法进行候选节点优化,并且分析出非NLOS的关键节点,选出簇头节点,并求预先设置候补节点。覆盖区域Coverage(Fa)中的Fa为:

Fa=1-exp(-Nd×π×Rn2),Fa∈[0,1] (4)

其中:Nd=节点密度,π=3.14,Rn为节点通信半径。

4、如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头。

5、分簇算法执行完以后,如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头。中间件在模拟WSN中执行LEACH算法,将其模拟出的簇头标记为候选簇头,将分析出的NLOS节点,能量大于阈值的候选簇头指定成为簇头,从而规避了热区与NLOS,由基站进行全网广播任命簇头。

6、当簇头节点检测到自身剩余能量达到能量阈值则向基站发送消息MSG_CLUSTER_EMPTY,基站计算机执行算法重新分析封闭区域模型和能量选择算法,并选出替代簇头。

7、基站向全网广播免除原发送ID的簇头将其降级为普通节点,并任命新选出的预选簇头。

8、如果簇头由于物理原因突然死亡,基站在一个通信周期内没有收到该簇头来的数据包,则发送MSG_ISALIVE信息给该簇头,若在一个给定时间段没有收到该簇头发来的MSG_ALIVE信息和ID,则在该分簇的局部封闭空间的模型区域内分析并任命新选出的簇头。

9、当该WSN网络中内加入新节点或者已存在的节点离开、节点移动,只需发送MSG_JOIN或者MSG_LEAVE、MSG_MOVE消息以及ID给基站计算机,基站计算机自动重新构建该节点的局部封闭空间的模型,并且根据实际情况判断是否重选该局部的簇头。

第二步,上位机中间件封闭区域模型的构造

WSN节点之间的信号传播一般是在三维空间中进行,但是根据信号传播过程的特点可以知道,三维空间中的一些传播规律是建立在二维平面的基础上。因此为了能更好地分析簇头节点之间的信号在三维空间中的传播情况,我们首先从简单的二维平面上的信号传播进行研究,再在此基础上研究三维情形。

网络初始化时,所有的节点广播自己的ID,其发射范围内的节点收到此广播后,记录此ID值同时通过并获取自身相对坐标。

将节点ID和坐标传回基站,并且传给计算机进行集中处理数据并且给这些各个节点进行定位,由于节点分布满足Poisson分布,由其边界上的节点构成生成在计算机中一个虚拟的封闭区域,与实际区域有着相似性。

在计算机中通过障碍物三角预测方法进行封闭区域的进一步构造,使虚拟的封闭区域更加进一步接近实际的区域,完善虚拟封闭区域模型。在计算机中生成一个接近实际区域,有着与实际区域近似障碍物的虚拟封闭区域模型。

规避NLOS中的的节点不让其成为簇头划入最近的其它簇区,让热区效应现象尽量减少发生,且作为代价让本属于簇区的节点并入最近且负载较小的簇区已达到负载均衡。

一般来说,WSN路由的构造是在三维的环境中进行,但据路由构造的过程特点可知,三维环境中的一些路由信号的规律是可以平面的二维的基础上体现出来的。因此,为了能更好地分析出WSN网络在三维环境中的路由情况,我们先从简单的二维空间中对WSN路由研究,再在此基础上再研究三维环境中的情况。

本发明的具体的实施方式:可以分为网络初始化配置,上位机中间件构建WSN环境模型,上位机中间件分析模拟信息,运行期间簇头变化几个阶段。

1)网络初始化配置:

WSN网络在部署后,基站向全网广播初始化信息,各节点计算所有其相对坐标(通过各节点之间发送功率强度计算)发回基站。

其中Nreceive为节点接收到信号的强度,Nsend为节点发出信号的强度,r为节点通信半径。

其中x是临近未知节点位置,ei该第i节点的位置,ai是一个常数,si是接收到的信号强度。将计算结果连同节点能量值发送回汇聚节点,数据融合后发送回基站。

2)上位机中间件构建WSN环境模型:

2.1)路由信号树SRT(Signal Routing Tree)

假定在U中有一个基站B,把它作为根节点,将其信息置于根节点中,其路由信号向四周辐射,与临近的路由节点进行通信,由该基站与其附近LOS内的节点(是否是LOS内采用障碍物预测法,依据RSTACK_SINGALI与预先设置的阈值相比较来判断)相连便可以得到若干个三角域(T),将与其相连接的WSN节点作为子节点,而对于这些子节点,又可以用它作为路由节点与它的LOS范围内的新节点,产生若干个三角域(T)得到子节点,依次循环,便可以以基站作为根节点产生一棵路由信号树(SRT)。

2.2)SRT的构造

从节点向四周发射出来的无线信号在传播过程中可能会遇到障碍物(即U中的内多边形),根据无线信号传播过程的特点可以知道,当无线信号遇到障碍物时都会发生衰减,甚至可能无法到达,而WSN节点因此会加大功率进行通信,因此,如果路由路径选择此类路径则会减少节电池的使用寿命,信号质量也无法得到保障。为此,根据该无线信号的传播规律可以用树结构槠存路由信号传播过程中相关信息。

图1(a)中的虚线与边界交接部分形成的多个三角形区域为信号B直接辐射信号时形成的覆盖区域,把B作为根节点,由此产生的第一层子节点序列为b1、b2、b4、b6、b10;当B相对于子节点b1中包含的对应边产生一个中间件中虚拟的路由信号源VB1,如图1(b)中所示,将它作为新的信号向多边形内发射信号,形成的覆盖区域中便产生b1节点下的子节点序列b2、b3、b4、b6、b10;以此类推,当VB1相对于在其下产生的子节点b2中包含的对应边产生一个虚拟路由信号VB2时,将它作为新信号向多边形内发射信号,形成的多个三角形区域中便产生b2节点下的子节点序列b3、b4、b6。由此随着虚拟路由信号传播的不断深入下去,便可以用多叉树形式将整个传播过程中的所有信息存储下来,如图1(c)中所示,通过一棵路由信号树就可以形象地表示出信号的整个传播过程及其规律。

Algorithm1.构建SRT树的程序

任意给定一个未知环境的封闭区域模型U,假定路由信号源辐射路由信号的强弱可以通过路由信号在环境内的遇障次数B(或最大传播距离L)来表示,并且已知路由信号源在U内所处的位置,则通过以下流程可以生成一棵路由信号传播树。

1:初始化一个存储子节点的空堆栈STACK_SINGAL和一棵带有根节点的树TREE_SINGAL,其中根节点存储的是有关路由信号源的信息(如位置信息)。

2:调用Algorithm5,对U进行三角区域划分,并得到一个存储了三角区域相关数据信息的链栈LINK_STACK(用堆栈栈顶指针表示)。

3:调用Algorithm2,便得到所有LOS的三角区。

4:把根节点所在的层记录为0。

5:调用Algorithm4,获取路由信号源辐射到的LOS区域并同时得到一个含有子节点的堆栈STACK_SINGAL。

6:当STACK_SINGAL不为空时,弹出堆栈顶元素,并将其作为当前节点,并判断该节点所在的层次是否大于遇障次数B,如果否,则依次调用Algorithm3和Algorithm4,直到堆栈STACK_SINGAL为空时结束循环操作。

Algorithm2.获取所有LOS的三角区程序

由Algorithm1中得到对U进行三角区域划分的链栈LINK_STACK,可以按如下算法生成路由信号源节点B辐射到的所有LOS的三角区。

1:初始化一个存储三角区域的空栈STACK_SINGAL和一个存储三角区的空队列QUEUE。

2:找到包含有路由信号源B的初始三角区域POLY_HEDRON。

3:对于形成TREE_SINGAL的各个面,分别调用Algorithm6,得到一个含有三角区域的堆栈STACK_SINGAL和由三角区组成的队列QUEUE。

4:当堆栈STACK_SINGAL不为空时,弹出堆栈栈顶元素,并将其作为当前节点,由此便得到一个由路由信号源节点B,经三角区域的路由信号传播路径所产生的路由信号传播序列WL_QUEUE,对于WL_QUEUE中的所有路由信号源节点的子节点都迭代调用Algorithm6,直到堆栈STACK_SINGAL空时结束迭代。

Algorithm3.获取所有非LOS的三角区程序

与Algorithm2中获取所有LOS的三角区不同的是,在生成NLOS的三角区时,路由信号源(此时为虚拟路由信号源)位于LOS区域之外。要获取所有NLOS的三角区,同样需要先获得包含有对U进行三角区域划分信息的链栈LINK_STACK,并设定初始的三角区为T。

1:初始化一个存储三角区域元素的空栈STACK_SINGAL和一个空队列QUEUE。

2:将T中包含的虚拟路径的节点看作虚拟路由信号源节点VB,把T中包含的路由信号传播路径PATH作为路由信号辐射所透过的窗口面,并把LINK_STACK中含有PATH的三角区域当作初始三角区域,同时把PATH作为路由信号透过初始三角区域辐射的窗口,并将该三角区域压入空栈STACK_SINGAL中。

3:对STACK_SINGAL进行判断,若不为空,则弹出堆栈栈顶元素,并将其作为当前三角区域。由此便得到一个由虚拟路由信号源VB经三角区域的路由信号传播窗口产生的路由信号传播序列WL_QUEUE,对于WL_QUEUE中的每个路由信号传播路径PATH都重复调用Algorithm6,直到STACK_SINGAL为空时结束循环操作。

Algorithm4.划分LOS域并构造初下一级节点路径

由Algorithm1的SRT树、当前的WSN虚拟节点和包含三角区域的队列QVEUE,可以通过以下方法获取到当前节点的LOS域,并且得到该节点的下一级子节点。

1:由QUEUE中的三角区域能够在其中找到节点LOS域(也即路由信号源或虚拟路由信号源在U内直接能覆盖到的区域)。

2:对于QUEUE中的每一个三角区域,可以产生一个新的节点,同时为该节点所在的层次加1,并将该节点链接到树TREE_SINGAL中和压入当前栈STACK_SINGAL。

Algorithm5.多边形环境U的三角区域划分程序

对于一个未知的多边形环境U来说,一开始要对U凸分解,获取到若干个子多边形,用下面的方法对各子多边形进行三角区域划分。

1:初始化一个存储数据化三角区域信息的链栈LINK_STACK和一个存储经三角划分的子多边形间相邻线的三角区域的空队列QUELE,以及子多边形POLY_HEDRON的空栈STACK_SINGAL。

2:当栈STACK_SINGAL不为空,弹出栈顶元素,定义成为当前三角形区域Triangle,定义VECTOR为其顶点。

3:如果子多边形POLY_HEDRON的各个子区域不包含顶点VECTOR,且该区域没进行三角划分,把该域划分,划分后的该域中的各个子三角区域Triangle,将由顶点VECTOR和Triangle形成的子三角区域的数字化信息用NodeT符号表示,并链接到到链栈LINK_STACK后,如果Triangle是几个子多边形边界上的上的子三角区域,则是LOS域,即属于QUEUE中的元素,则将该Triangle出队,并在LINK_STACK中将节点NodeT和对应Triangle的节点标记。

4:然后将与POLY_HEDRON区域相邻的各个子多边形域压入栈STACK_SINGAL中。

5:返回将多边形U分解后的含有相关数据信息的链栈LINK_STACK(用链栈的栈顶指针表示)。

Algorithm6.路由信号传播程序

由前面程序得到的路由信号传播路径PATH,多边形U划分后的链栈LINK_STACK,含有三角区域的堆栈STACK_SINGAL及包含三角区的队列L,可以从以下算法中得到辐射路由信号的传播过程。

1:若PATH为LINK_STACK中形成U的路由路径末端,则将路由信号源B或虚拟路由信号源VB相对于PATH的对应点作为新的三角区的虚拟路由信号源,同时把PATH作为该新三角区的路由路径,最后将该新三角区添加到队列QUEUE中。

2:若PATH不是LINK_STACK中形成U的路由路径末端,则把含有PATH的邻近三角区域作为新的三角区域,把PATH看成是透过新三角区域的路由信号辐射窗口,同时将该子三角区域压入到栈STACK_SINGAL中。

最终,因为在三维空间上的WSN节点路由可行判定及获取路由信号传播路径的方法与在二维平面上很相似,在此不再赘述。

由此,上位机中间件通过收集到的信息模拟出WSN网络以及构造出了其外部虚拟的封闭区域模型,

3)上位机中间件分析模拟信息:

定义:假设a,b,c为3个相邻节点,其中RSSIab(a节点与b节点之间的信号强度),RSSIac(a节点与c节点之间的信号强度),RSSIbc(b节点与c节点之间的信号强度)。

解此齐次线性方程组,可以得出a,b,c三个邻居节点间的通信距离。

根据三角形特性,如果L1>L2+L3,即两边之和小于第三边。则表示a节点与b节点之间可能存在障碍,如图2。

基站数据融合后发给上位机中间件得到所有相对坐标后,通过先构路由信号树SRT构造出虚拟的封闭区域模型,如图3所示。

在封闭区域模型中计算统计出NLOS节点,如图4所示。

如果没有邻近节点可以绕过,必须选择处于导致空洞的区域的节点,则使该区域的节点尽量只担当一次簇头。中间件在模拟WSN中执行LEACH算法,将其模拟出的簇头标记为候选簇头,将分析出的NLOS节点,能量大于阈值的候选簇头指定成为簇头,从而规避了热区与NLOS,由基站进行全网广播任命簇头,该流程如图5所示。

4)运行期间簇头变化

WSN网络在稳定的运行中的状态切换如图6所示。所以在遇到异常情况时,由中间件做出相应事件驱动的反应。

由于簇头在运行阶段较之普通节点能量消耗更高,所以当簇头节点检测到自身剩余能量达到能量阈值则向基站发送消息MSG_CLUSTER_EMPTY,中间件收到后执行算法上位机中间件分析模拟信息,随后基站向全网广播免除原发送ID的簇头将其降级为普通节点,并任命新选出的预选簇头。如果簇头由于物理原因突然死亡,基站在一个通信周期内没有收到该簇头来的数据包,则发送MSG_ISALIVE信息给该簇头,若在一个给定时间段没有收到该簇头发来的MSG_ALIVE信息和ID,则在该分簇的局部封闭空间的模型区域内分析并任命新选出的簇头,如图7所示。

当该WSN网络中内加入新节点或者已存在的节点离开、节点移动,只需发送MSG_JOIN或者MSG_LEAVE、MSG_MOVE消息以及ID给基站计算机,基站计算机自动重新构建该节点的局部封闭空间的模型,并且根据实际情况判断是否重选该局部的簇头,如图8所示。

示范性实例分析:

为评估本发明所提出的AAOCH簇头选择算法以及模型性能,将本发明中的算法与经典的路由分簇算法LEACH和HEED比较,仿真平台为TRMSim与NetTopo,在100×100m2的网络拓扑下,随机分布500个的节点,传输半径R=15m,每个节点的初始能量为1OJ,如图9与图10所示。

本发明与LEACH和HEED簇头节点存活率比较,网络通信性能比较的仿真结果(图9与图10)表明,本发明提出的AAOCH算法在节点存活率方面,运行中期优于其他两种算法,但后期稍逊于LEACH算法,而在网络通信性能方面,中后期均优于其它两种算法。LEACH与HEED由于其簇首的选择是随机的,每轮选出的簇首数量相差很大,无法做到最优,也无法避开NLOS节点,而且由于其硬性的阈值条件,担任过簇头的节点无法再次被选为候选簇头,从而候选范围越来越小,使得能量越来越快的被耗尽,总体来看,本发明性能上均优于两种经典算法。

图13~图19为本发明性能的仿真模拟,可见其性能均优于LEACH与HEED算法。

综上所述,本发明的AAOCH优点在于替换簇头只需要在局部范围内进行(贪婪法),由要被替换的节点主动发起要求,无需整体的重新配置,使得替换代价较小,簇内节点耗能比较均衡,避免了经典的部分路由算法频繁进行簇头选举的通信量引发的巨大能耗。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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