基于能量水平的无线传感器网络拓扑控制研究

基于能量水平的无线传感器网络拓扑控制研究

摘要:在无线传感器网络的规划和设计中,减少节点的能量消耗、延长其工作时间并最大化网络的生命周期是首先要解决的重要问题。本文设计了一种基于节点能量水平的拓扑控制策略,该策略针对汇聚节点附近节点的能量消耗过多而设计,避免了这些节点因能量过早耗尽而导致的网络失效,该机制使网络中的节点能量消耗更加均衡,延长了网络的寿命。最后通过程序仿真验证了该方法的有效性。

关键词:无线传感器网络,能量水平,网络拓扑

一. 提出问题

    最小能量消耗路由是从数据源到汇聚节点的所有路径中选择节点能耗之和最少的路径;最少跳数路由是选取从数据源到汇聚节点跳数最少的路径。但在无线传感器网络中,如果频繁使用同一条路径传输数据,就会造成该路径上的节点因能量消耗过快而过早失效,从而使整个网络分割成互不相连的孤立部分,减少整个网络的生存期。为了平衡网络负载和节点能耗,当某些节点的能耗较大,而另外一些节点几乎没有什么能耗时,应采用相应措施使节点的能耗相对平均,避免由于某些能耗较大的关键节点(如sink节点或簇头节点)失效而导致整个网络瘫痪。为此,很多研究者从均衡节点能量消耗的角度给出了大量的拓扑控制算法。

    本文设计了一种基于节点能量水平的拓扑控制策略, 避免了这些节点因能量过早耗尽而导致的网络失效, 延长了网络的寿命。

二. 系统模型

2.1 网络模型

本文中N个传感器节点随机分布在一个方形区域A内,并且该传感器网络具有以下性质:

(1) 惟一的基站部署在区域A以外的较远的位置;

(2) 每个节点有惟一的标识;

(3) 每个节点的初始能量基本相同;

(4) 传感器节点部署后不再移动;

(5) 节点的地理位置信息可知;

(6) 发射节点与不同距离的接收节点通信时,可以调整发射功率;

(7) 每轮中节点的能量消耗不统一。

2.2 无线通信模型

本文中,采用目前比较常用的一阶无线能量模型:融合N个Kbit信息再传输到d远处,所消耗的能量为:

(1)接收数据耗费能量为:

(2)发送数据耗费能量为:

此外,大部分协议和算法都采用了数据聚合技术来减少发送和接收的数据量,

从而达到节省能量的目的。本文的策略同样采用数据聚合技术来减少能量损耗。

此外,本文假设无线信道是对称的,即从节点口传送消息加到节点b消耗的能量等于从节点b传送消息m到节点口消耗的能量。

三. 拓扑控制策略描述

3.1 节点设定层ID

该策略将传感器网络中的所有节点按距离基站的远近分层,在系统初始化时

为每个节点设定一个层ID。具有相同层ID的节点处于同一层,它们到基站的距离基本上相同,与基站通信的能量开销也相近。距离基站越近则节点的层ID越小,在策略中,层ID小的节点称为上层节点,层ID大的节点称为下层节点,层ID相同的节点称为同层节点。系统在初始化时将整个网络中的传感器节点根据到基站的距离远近划分为多个层次。在分层过程中,基站首先向网络中所有节点发送LAYER消息。每个节点根据LAYER消息的信号强弱来确定自己距离基站的远近。本文采用自由空间的衰

减模型:

其中,为基站发送功率,为接收到信号的功率,d为发送距离,是衰

减系数,通常设置为常量,因此传感器节点到基站的距离可以用式计算:

其中,为常量,设d为层半径大小(通常取),若

则节点将自己的ID层记为k。

3.2  层节点成链

对任意节点的基本信息包括节点ID、层ID、剩余能量ResEnergy、能量门限值ThresEnegry和下一个节点NextNode,即五元组:

broadcast(NodeID,LayerID,ResEnergy,ThresEnegry,NextNode)

节点ID是统一编码的。层ID表示节点距离基站的距离,在系统初始化时设定。剩余能量则记录节点当前剩余的能量。能量门限值用于判断节点是否具备充足的能量用来作为本层的leader节点。节点ID、层ID和NextNode在传感器节点生命周期里都不改变。剩余能量将随节点的能量消耗动态改变,能量门限值则由基站不定期广播。

层ID确定后,每层中的所有节点向本层节点广播broadcast,从而确定本层中能量最高的节点作为本层的第一个leader节点并初始化节点信息,节点发送消息broadcast(NodeID,LayerID,ResEnergy, ThresEnegry, NextNode),本层中距离最近节点接受此报文,并反馈自己的节点标识NodeID信息,这时节点再初始化其NextNode节点为的NodeID。同样,节点也向距离自己最近的节点发送broadcast,收到信息的节点也同样反馈其NodeID为的NextNode,以此类推,直到链接本层的所有节点,需要注意的是,本层的最后一个节点没有下一个节点,因此其NextNode为空。

3.3 层节点间数据传递

网络连接信息记录与上层leader传感器节点的链接的基本信息,包括节点ID,层ID及剩余能量ResEnergy。连接信息用3个队列表示:父节点队列(parents)、兄弟节点队列(siblings)和子节点队列(children)。这3个队列在系统初始化时构建,父队列存放层ID比自己小的上层邻接节点,兄弟队列存放层ID和自己相同的同层邻接节点,子队列存放层ID比自己大的下层邻接节点。

每层的所有节点都把传感器收集的信息发送给本层的leader节点。同时,也收集下层节点的leader节点融合的数据,然后把数据融合起来发送给上层节点。以此类推,直到把数据发送给sink节点。

可想而知,由于leader节点接受和发送大量的数据,故能量将消耗的更快。

为了能量的均衡消耗,当leader节点的剩余能量ResEnergy小于ThresEnegry时,本层的leader节点将换为NextNode节点。

随着节点能量消耗,当本层中所有节点的剩余能量都小于ThresEnegry时,层leader节点将于下层的leader节点逻辑上兑换顺序,即把本层的节点收集的传感器信号发送给下层节点,本层的下层leader节点将发送数据给本层的上层的leader节点。

3.4 顶层节点迁移

和sink节点直接通信的节点称为顶层节点。顶层节点同时满足下列两个条件:1)父节点队列为空;2)节点本身剩余能量大于预设定的阈值。

因为顶层节点直接和基站通信,其能量消耗比非顶层节点快。当顶层节点中

leader节点的能量小于预先设定的阈值ThresEnegry时,它不再具备和基站通信的资格。在这种情况下,该策略把与基站通信的任务转交给距离基站稍远但能量充足的leader节点,这种机制称为顶层节点迁移。通过顶层节点迁移,系统能够均匀地把能量损耗分布到网络中所有节点。在顶层节点迁移的情况下,顶层节点将自己与下层邻接节点的父子对换。节点先接收来自子节点的数据,然后将所接收到的数据与自身数据聚合。

如果节点收到多个HEADER消息,则选择能量水平最高的消息转发,将能量水平低的消息丢弃。当某项层节点的能量不足,并且其兄弟队列中所有邻接节点的能量也都小于设定的阈值时,该节点需要与邻接的下层节点对换父子关系:

(1) 将该节点子队列中的邻接下层节点转移到父队列中;

(2) 将该节点从对应下层节点的父队列中转移到子队列中。

当节点本身或兄弟队列中的同层节点能量充足时,数据在本层节点平行传递;当节点本身及兄弟队列中的同层节点能量不足时,对换本节点与下层节点的

父子关系。

随着网络能量不断消耗,顶层节点将由最靠近基站的节点迁移到最远离基站

的节点。最后,系统中所有节点的能量都小于能量门限值ThresEnegry。因为在发送给基站的数据包中包含发送节点的剩余能量值,当基站发现发送节点的能量值小于ThresEnegry时,将ThresEnegry乘

然后基站将新的门限值广播给所有节点,所有节点将自己的ThresEnegry乘。距离基站0层节点重新变回顶层节点。系统又开始下一轮的顶层节点迁移,直到网络能量耗尽。

3.5 策略的步骤如下:

1):每个节点初始化层ID,剩余能量ResEnergy。根据距离获取每个的所在层LayerID。

2):每个节点在本层广播一个broadcast(NodeID,LayerID,ResEnergy,NULL,NULL)信息,获得本层的最高能量节点作为本层的leader节点。

3):以leader节点为链头,以最短距离为尺度把本层的所有节点连接成链。

4):各leader节点接收下层leader节点的数据并与自身在本层获取的数据进行融合后传向上一层的leader节点。

5): 当与sink节点直接通信的顶层leader节点的剩余能量ResEnergy低于ThresEnegry时,通过顶层迁移节点交换顶层leader节点和下层leader节点的父子关系。如果所有leader节点的剩余能量ResEnergy都低于ThresEnegry,则,转到4)。

四. 程序仿真

4.1  仿真环境

     本仿真程序平台:Window7+VS2012+OpenCV2.4.4。OpenCV2.4.4的具体配置方法请参考官网:http://wiki.opencv.org.cn/index.php

4.2  具体步骤

1) 在600*600像素图片中随机生成NODENUM=100个节点,其中左上角的点为sink节点,其坐标为(0,0)。如图1:

图1

2)根据与sink节点的距离获取每个的所在层LayerID。

图2

3)获得每层的leader节点,本程序以每层最左边的节点作为层leader节点,应该可以假设开始所以节点的能量基本相同。如图3(左边的5个绿色节点代表每层的leader节点):

图3

4) 以每层的leader节点为链头,以最短距离为尺度把本层的所有节点连接成链,如图4:

图4

5) leader节点在本层中迁移。假设每层中发送信号消耗的能量与距离成平方关系。

图5 图6

图7 图8

图9 图10

其中,节点的颜色表示节点的剩余能量ResEnergy:

蓝色: ResEnergy > 80% 

黄色: 80% > ResEnergy > 60%

橙色: 60% > ResEnergy > 40%

红色: 40% > ResEnergy > 20%

灰色: 20% > ResEnergy > 10%

黑色: 10% > ResEnergy >  0

大黑点代表最先电量耗尽的传感器节点。

4.3  结果比较

变功率发送信号(图10)和恒定功率发送信号(图11)的比较:

图10 图11

可以看出:图10顶层能量基本耗尽,而图11的能量消耗不均匀,还有很多橙色节点和黄色节点。

    从图12与图13比较可知,变功率发送信号的层leader节点迁移更能节省能量。

图12 图13

4.4  源代码

见附录。

五. 总结

本章借鉴了LEACH算法、TEEN算法、PEGASIS算法、PEDAP算法等几种经典算法的优点,给出了基于节点能量水平的拓扑控制策略,该策略将网络中的节点按照距离sink节点的远近划分成不同的层次,每层中选择能量水平高的节点和相邻层间进行通信,然后选择距离sink节点最近的且剩余能量大于给定阀值的节点直接和sink节点通信,从而避免sink节点附近的节点过早死亡,而导致网络死亡。该策略使网络中的节点能量消耗更加均衡,从而延长网络的寿命。

时间: 2024-08-29 11:08:52

基于能量水平的无线传感器网络拓扑控制研究的相关文章

基于BIM技术的施工管理平台研究

BIM技术是一种数字化建模技术,它根据建筑图纸等信息生成三维的建筑模型,可以在最早期向我们展示该建筑物.BIM技术与工程项目成本管理系统相结合,方面可以提高项目前期的预算精度,同时也可以帮助企业在项目施工过程中对成本数据的精确化管理.两者相结合,BIM技术可以在整个成本管理过程中实时的对成本数据进行监管,保证其正确性. 问题 自21世纪,建筑业作为我国国民经济的支柱产业已进入高速发展期,目前正面临着大规模的基本建设.而建筑业快速发展的同时,主要存在着以下问题. 1.技术和管理水平相对落后 在激烈

基于博弈论的大学生社群合作行为研究申报书(C写一个博弈软件)

三科基金学生科研课题 立 项 申 报 书 课题名称:基于博弈论的大学生社群合作行为研究 学科分类:自然科学类 承担单位:温州大学网络工程本 负 责 人:Steve Jiang 需要整个C实现的博弈软件可以联系我   课题名称 基于博弈论的大学生社群合作行为研究     课题负责人基本情况 姓名 Steve Jiang 性别 男 出生年月 1994年6月     学历 本科 研究专长 Java编程     班级 网络工程 担任职务 负责人     通讯地址 联系电话     课题组成员情况 姓名

基于MATLAB的多项式数据拟合方法研究-毕业论文

摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式曲线拟合的基本理论,对多项式数据拟合原理进行了全方面的理论阐述,同时也阐述了曲线拟合的基本原理及多项式曲线拟合模型的建立.具体记录了多项式曲线拟合的具体步骤,在建立理论的基础上具体实现多项式曲线的MATLAB实现方法的研究,采用MATLAB R2016a的平台对测量的数据进行多项式数据拟合,介绍了M

手机控车OBD-移动管家手机控车方案基于Android手机智能控制汽车系统的研究与实现;

基于Android手机智能控制汽车系统的研究与实现:汽车手机启动,汽车远程启动是装置在智能汽车的一部分,是实现简远程遥控启动汽车的一个智能装置,同时也可以熄火.汽车手机启动可以在原车钥匙保留模式改装,也可以独立在汽车上改装. 目前很多汽车已经配有一键启动智能无钥匙进入系统设备,相对配置手机远程动的车辆比较少,关于智能汽车,PKE智能系统.一键启动.手机撑控配合使用才会显示智能操控的简捷性.国内生产汽车手机启动汽智能一键启动厂家已经在50家左右.汽车手机智能控制系统,体积小巧,简便安装.根据原车线

基于脚本的动画的计时控制(“requestAnimationFrame”)(转)

requestAnimationFrame 方法的支持,该方法通过在系统准备好绘制动画帧时调用该帧,从而为创建动画网页提供了一种更平滑更高效的方法.在此 API 之前,使用 setTimeout 和 setInterval 绘制的动画并没有为 Web 开发人员提供有效的方法来规划动画的图形计时器.这导致了动画过度绘制,浪费 CPU 周期以及消耗额外的电能等问题.而且,即使看不到网站,特别是当网站使用背景选项卡中的页面或浏览器已最小化时,动画都会频繁出现. 当动画使用分辨率为 10ms 的 Jav

DB2 SQL查询结果集自动编号、返回条数范围控制研究

DB2 SQL查询结果集自动编号.返回条数范围控制研究 摘要: DB2 SQL语句实现查询的记录自动编号.并根据编号进一步实现记录范围控制.分页查询. 环境: IBM DB2 Universal V9.1 Windows XP Professional 要求:写一个SQL语句,在查询结果中要显示出记录序号,这个序号是是根据记录顺序自动生成的. 测试初始化DB2 SQL脚本: drop table t_test; create table t_test (bs        bigint     

基于iptables下OpenVPN访问权限控制

最近有博友咨询关于OpenVPN的用户访问权限控制的问题,即当用户连接进来以后,怎么去控制他的权限,我这里采用了一个脚本的方式自动添加,其它就是采用iptables的三层功能做路由与端口的访问控制,这里将这个shell分享出来,希望对有需要的朋友可以提供帮忙. 权限控制: read -p "请选择您要做的操作:" caozuo case $caozuo in 1) read -p "请输入您需要添加ERP访问权限的用户:" vpnuser   while [ ! `

基于Android 平台简易即时通讯的研究与设计[转]

摘要:论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的作用和功能以及实现方法.(复杂的通讯如引入视频音频等可以考虑AnyChat SDK~)关键词:Android 平台:即时通讯 (本文中图表点击附件即可见) 1 Android 平台简介Android 是Google 公司于2007年11月5日推出的手机操作系统,经过2年多的发展,Android平台在智能移动领域占有不小的份额,由Google为首的40 多家移动通信领域的领军企业组成开放手机联盟(

利用基于@AspectJ的AOP实现权限控制

一. AOP与@AspectJ AOP 是 Aspect Oriented Programming 的缩写,意思是面向方面的编程.我们在系统开发中可以提取出很多共性的东西作为一个 Aspect,可以理解为在系统中,我们需要很多次重复实现的功能.比如计算某个方法运行了多少毫秒,判断用户是不是具有访问权限,用户是否已登录,数据的事务处理,日志记录等等. AOP的术语 连接点(Joinpoint) 程序执行的某个特殊位置:比如类开始初始化前,类初始化后,某个方法调用前,调用后等. 连接点 可 以 理解