发明内容
本发明的目的在于克服现有LEACH技术中的不足,提供一种无线传感器网络数据传输方法及装置,能够均衡节点能耗、降低节点死亡率、提高数据传输的有效性。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种无线传感器网络数据传输方法,包括:
根据预构建的传感器网络模型,结合各传感器当前能量确定簇头;
根据各传感器的通信距离及各簇头的当前能量,为各传感器选择所加入的簇头;
获取当前簇头所能够感应其它簇头的通信信号强度,选择通信信号强度最强的簇头作为中继节点进行数据传输。
结合第一方面,进一步的,所述传感器网络模型包括:
传感器模块,用于收集监测区域内的数据并对所收集的数据进行格式转换;
处理器模块,用于对传感器模块输出的数据进行存储和融合处理;
无线通信模块,用于节点与节点间、节点与基站之间的无线通信,实现节点数据包的控制消息互换;
能量供应模块,用于为整个传感器网络供应能量,包括传感器模块、处理器模块、无线通信模块的能量供应。
结合第一方面,进一步的,传感器当前能量采用下述公式计算获取:
式中:T(n)为最后1/p轮中还未成为簇头的传感器的当前能量,p为传感器成为簇头的期望百分比;r为当前利用改进算法筛选簇头进行的轮数;G为在最后1/p轮中还未成为簇头的传感器的集合,Eicurrent表示节点i当前的能量,Eavg表示系统节点当前的平均能量;α定义为能量距离因子,取值在2或者4,取决于节点间距离。
结合第一方面,进一步的,传感器选择所加入的簇头的方法包括:
条件一:N(CHs)={CHs|CHs∈V,d(i,CHs)<R},其中N(CHs)表示簇头到传感器i的距离处于通信半径范围内的簇头的集合,d(i,CHs)表示所加入簇头CHs到传感器i的距离,R表示传感器的通信半径,V表示所有簇头的集合;
其中,E(i,n)表示当有n个传感器加入簇头i时,每个传感器所能分配的能量;
簇头i当前剩余能量,E
min表示使传感器存活所需要的最小能量;当E(i,n)取最大值时传感器选择加入相应的簇头;n表示当前加入簇头的传感器个数。
第二方面,本发明提供一种无线传感器网络数据传输装置,包括:
簇头确定模块:根据预构建的传感器网络模型,结合各传感器当前能量确定簇头;
选择模块:根据各传感器的通信距离及各簇头的当前能量,为各传感器选择所加入的簇头;
数据传输模块:获取当前簇头所能够感应的其它簇头的通信信号强度,选择通信信号强度最强的簇头作为中继节点进行数据传输。
第三方面,本发明提供一种终端,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行第一方面任一项所述方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述方法的步骤。
与现有技术相比,本发明所达到的有益效果:
考虑各传感器当前能量确定簇头,避免了簇头选取的片面性;根据各传感器的通信距离及各簇头的当前能量,为各传感器选择所加入的簇头,能够增强网络持久性性能,均衡传感器的能耗,降低传感器死亡率,提高数据传输的有效性。
具体实施方式
本发明是基于LEACH协议提出的一种改进的无线传感器网络数据传输方法及装置。LEACH协议是一种经典的无线传感器网络分层路由协议。分层路由协议,也被称为基于簇的路由协议。它的突出特点在于将整个网络按照某种设定的算法分成若干个簇,在每个簇区域内通过一定的算法选择一个簇头,而簇头负责管理其所在区域内的传感器。首先,簇头将接收来自其簇内区域的所有节点发送给自己的数据并进行处理,比如:对数据进行整理和压缩,处理完之后再将数据发送给汇聚节点。这种类型的路由算法的网络拓扑如图1所示,图中白色小圆圈表示普通的传感器,小黑色圆圈表示各自区域内的簇头,基站表示汇聚节点。从图中可以发现,对于每一个簇区域,簇头负责管理自己区域内的传感器,基站负责管理整个传感器网络区域内的簇头,所以层次关系是指:传感器—簇头—汇聚节点(即基站)。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
实施例一:
本发明实施例提供了一种无线传感器网络数据传输方法,包括如下步骤:
步骤一:根据预构建的传感器网络模型,考虑各传感器当前能量确定簇头;
如图2所示,是本发明实施例提供的一种传感器网络模型:
传感器模块,用于收集监测区域内的数据并对所收集的数据进行格式转换;
处理器模块,用于对传感器模块输出的数据进行存储和融合处理;
无线通信模块,用于节点与节点间、节点与基站之间的无线通信,实现节点数据包的控制消息互换;
能量供应模块,用于为整个传感器网络供应能量,包括传感器模块、处理器模块、无线通信模块的能量供应。
在建立传感器网络模型时,本发明实施例同时给出如下参数定义:
邻居节点:N(i)={j|j∈V,d(i,j)<R},其中N(i)是位置处于通信半径内的传感器集合,V是所有传感器的集合,R是传感器的通信半径,d(i,j)是节点i到节点j的距离;
前邻节点:FN(i)={j|j∈N(i),d(j,BS)<d(i,BS)},其中FN(i)是在一个邻居节点的集合中,距离基站最近的传感器,d(j,BS)是传感器j到基站的距离,d(i,BS)是传感器i到基站的距离;
前簇头:CN(CHi)={j|j∈FN(i),d(CHj,BS)<d(CHi,BS)},其中CHi、CHj分别表示簇头i、簇头j,d(CHi,BS)是簇头j到基站的距离,d(CHi,BS)是簇头i到基站的距离。
在判断是否为簇头的过程中,加入传感器当前能量这个考量因素,如公式(1)所示:
式中:T(n)为最后1/p轮中还未成为簇头的传感器的当前能量,本发明实施例是基于LEACH协议的改进算法,因此引用了“轮”这一概念,LEACH协议中“轮”数的概念为:协议按轮进行周期执行,每一轮的过程包括分簇阶段和稳定阶段。在分簇阶段,WSN各个节点随机生成一个0-1之间的数字,然后将该数字与一个设定的阈值公式得出的值进行比较,若该随机数小于阈值,并且若该节点在前1/p(p为当前轮中节点成为簇首的比例,且1/p近似向前取整数字)轮内未当选为簇头,则该节点被选作本轮的簇头。即p为传感器成为簇头的期望百分比;r为当前利用改进算法进行簇头筛选的轮数;G为在最后1/p轮中还未成为簇头的传感器集合,Eicurrent表示节点i当前的能量,Eavg表示系统节点当前的平均能量;α定义为能量距离因子,取值在2或者4,取决于节点间距离。
步骤二:根据各传感器的通信距离及各簇头的当前能量,为各传感器选择所加入的簇头;
在簇头选取的过程中,考虑到不同簇头能量的不同,会导致其通信距离的不同,同时,不同能量的簇头,其所能容纳的节点数也不同,在传感器选择所加入簇头的过程中,综合考虑以上两点,给出如下定义:
对于一个特定的传感器i,其所能加入的簇头集合CHs需要满足以下两个条件:
条件一:N(CHs)={CHs|CHs∈V,d(i,CHs)<R},其中N(CHs)表示簇头到传感器i的距离处于通信半径范围内的簇头的集合,d(i,CHs)表示所加入簇头CHs到传感器i的距离,R表示传感器的通信半径,V表示所有簇头集合;
其中,E(i,n)表示当有n个传感器加入簇头i时,每个传感器所能分配的能量;
簇头i当前剩余能量,E
min表示使传感器存活所需要的最小能量;当E(i,n)取最大值时传感器选择加入相应的簇头;n表示当前加入簇头的传感器个数。
通过计算可以得到一系列的E(i,n)值,则当E(i,n)取最大值时节点选择加入,至此,传感器i的簇头选取过程结束。
步骤三:获取当前簇头所能够感应的其它簇头的通信信号强度,选择通信信号强度最强的簇头作为中继节点进行数据传输。
传感器能耗模型主要包括三部分:感知消费、通信消费、数据处理消费,其中,通信能耗占主要部分。簇头i发送l比特数据到距离d处的基站所需要消耗的能量公式为:
ETx(l,d)=l·Eelec+l·εamp·dβ,
其中,ETx(l,d)为簇头发送l比特数据到距离d处的基站所需要消耗的能量,Eelec表示发射和接收电路的单位能量消耗,εamp是传输放大电路的能量消耗,β表示路径损耗系数。
由公式可知,当传输距离大于某一阈值时,会导致能量消耗成指数增长,以此为改进点,本发明实施例根据簇头所能够感应的其它簇头的通信信号强度,选择通信信号强度最强的簇头作为中继节点进行数据传输。
根据上面的能量公式,很容易证明采用转发中继模型能够取得更优的能量耗散效果,转发公式如公式(2)所示:
式中:ETx_0i为表示中继模型进行改良后簇头发送l比特数据到距离d处的基站所需要消耗的能量,d1、d2、di、dm等标号分别代表基站存储的节点位置到基站的距离信息,并且对其进行从小到大的排序结果,l为簇头发送到距离d处基站的比特数据,εamp为传输放大电路的能量消耗。
综上,本发明实施例首先考虑传感器能量和距离因素,重新定义阈值公式,随后通过新阈值公式初步查找符合条件的簇头,并且簇头和普通传感器之间为双向选择过程,综合考虑传感器通信范围和簇头当前能量,最后根据新的数据分发思想进行多跳数据传输,实现均衡节点能耗,降低节点死亡率,提高数据传输的有效性。
为了进一步验证本发明实施例提供的数据传输方法所能够带来的技术效果,申请人对经典LEACH算法与本发明实施例提供的Z-LEACH算法分别进行了数据传输仿真对比实验:
首先,建立传感器网络模型:
1)假设传感器随机分布在一片方形区域,传感器的位置在部署完毕后是不再移动,并且假定各传感器可以感知自身的位置信息;
2)基站的位置在传感器分布区域之外的固定位置,同样是固定不动的,并且假定基站能量是无限的;
3)各传感器的初始能量相同且已知,但各传感器的能量有限;
4)簇头之间相互知晓彼此的位置信息以及自身与基站的距离信息。
本发明实施例的仿真实验基于MATLAB实现,在仿真实验前所设置的参数如表1所示:
表1仿真相关参数
参数 |
参数值 |
网络空间大小 |
100m*100m |
初始能量 |
0.5J |
初始传感器个数 |
400 |
电子能E<sub>elec</sub> |
50nJ/bit |
自由空间模型E<sub>fs</sub> |
10pJ/bit/m<sup>2</sup> |
多路径模型ε<sub>amp</sub> |
0.0013pJ/bit/m<sup>4</sup> |
经仿真验证得到以下仿真对比图:
通过图3可以直观地看到基于经典LEACH算法的无线传感器网络数据传输方法在800轮以后,传感器便开始衰竭死亡,而本发明实施例提出的基于Z-LEACH算法的无线传感器网络数据传输方法中的传感器在1300轮才开始衰竭死亡,可以证得本发明实施例提供的基于Z-LEACH算法的无线传感器网络数据传输方法中传感器存活时间更长,有效降低了节点的死亡率。图4为仿真实验中基于经典LEACH算法与本发明实施例提供的Z-LEACH算法分别进行数据传输时传感器剩余能量的比较图,可以直观地看到本发明实施例可以有效地均衡传感器能量消耗。图5为仿真实验中基于经典LEACH算法与本发明实施例提供的Z-LEACH算法分别进行数据传输时传感器死亡比例的柱形图,可以看到本发明实施例在延长传感器寿命方面有突出提升,尤其是进入传感器网络运行后期阶段,这种差异更加明显。
实施例二:
本发明实施例提供一种无线传感器网络数据传输装置,能够用于实现实施例一所述的方法步骤,包括:
簇头确定模块:用于根据预构建的传感器网络模型,考虑各传感器当前能量确定簇头;
选择模块:用于根据各传感器的通信距离及各簇头的当前能量,为各传感器选择所加入的簇头;
数据传输模块:用于获取当前簇头所能够感应的其它簇头的通信信号强度,选择通信信号强度最强的簇头作为中继节点进行数据传输。
实施例三:
本发明实施例还提供了一种终端,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行实施例一所述方法的步骤。
实施例四:
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施一所述方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。