资源描述
毕业设计(论文)
设计论文题目:
传感器网络能耗均衡
策略及应用
学生姓名:
学生学号:
专业班级:
学院名称:
指导老师:
学院院长:
年 5月 25 日传感器网络能耗均衡策略及应用
摘 要
无线传感器网络是由许多随机分布的传感器节点通过自组织方式形成的一种网络结构,这些传感器节点可以采集温度、湿度等信息,并传送给接收器进行处理。因为传感器节点的能量供给方式是采取电池提供能量,所以整个网络的能量消耗的问题非常突出,如何采取各种措施延长网络的生命周期成为无线传感网络的一个关键问题。
本文首先介绍了无线传感器网络的能耗问题,引入了能量空洞理论,并分析了当前解决能量空洞的几种可以采取的能耗均衡策略,最后重点研究了一种非均匀节点分布策略,在对理论理解的基础上对这种策略进行了网络模拟仿真实验。通过设定实验的参数,试图在各种设定环境下进行模拟,并通过对比实验和实验数据分析得出结论,验证了这种节点分布策略的有效性以及指出存在的一些问题,在本文的最后提出了这种非均匀分布策略的扩展和应用。
关键词: 传感器网络;能耗均衡;能量空洞;非均匀分布;网络模拟
毕业设计(论文) 第 V 页
The energy consume uniform strategy in wireless sensor network
Abstract
The WSN(Wireless Sensor Network) is made up of masses of independent sensor nodes that organized by themselves. As the sensor nodes can provide the ability to gathering information from nearby, so they are widely used in forest, farmlands, and battlefields. As we know, the sensor nodes use battery for energy support and the energy battery provide is limited. When the nodes use up its battery , they just died and can not work any more .so how to maximum the life time of the WSN is becoming a major problem.
The paper first describes energy consume of WSN, then explain the energy hole problem and introduce several ways to maximum the life time of the WSN, and then we chose the nonuniform distribution strategy for further study. We want to prove the node distribution strategy the reference offered, so some simulations and experiments are necessary. After analyze the data from the simulations and experiments, we prove that the strategy is correct and we finger out the week point of the strategy. Finally, we give some method to extend this strategy and how to use the strategy to deploy the nodes to a circle wireless sensor network.
Key Words: Wireless sensor network; energy hole;energy consume uniform;
Nonuniform node distribution; network simulation
目 录
摘 要 II
ABSTRACT III
目 录 IV
插图索引 VI
附表索引 VII
1 绪论 1
1.1 课题的背景和意义 1
1.2 国内外的当前研究现状 1
1.3 本文要完成的主要工作 2
2 传感器网络能耗均衡与网络模拟 3
2.1 能量空洞理论和节点非均匀分布理论 3
2.1.1 能量空洞的产生原因 3
2.1.2 节点非均匀分布理论 3
2.2 圆形网络模型下的分布策略 4
2.3 网络仿真模拟器和NS2 6
2.3.1 网络仿真模拟器的介绍 6
2.3.2 NS2的介绍 8
2.4 OTCL介绍 9
2.5 NS2 Mannasim Framework[7]介绍 12
3 非均匀分布策略的模拟仿真 13
3.1 理论的提出 13
3.2 模拟场景的设定 13
3.3 Sink节点的定义 14
3.4 Sensor节点的定义 15
3.5 模拟仿真的创建执行 17
3.5.1 创建一个Sink节点 17
3.5.2 创建Sensor节点 18
3.5.3 执行模拟程序 19
3.6 对比实验模拟 19
4 模拟实验结果的分析 21
4.1 Nam模拟的分析 21
4.1.1 第一组实验的Nam模拟的分析 21
4.1.2 第二组实验的Nam模拟的分析 22
4.2 Trace模拟分析 23
4.2.1 第一组实验的Trace模拟的分析 23
4.2.2 第二组实验的Trace模拟的分析 25
4.3 数据对比分析 28
4.3.1 Nam模拟分析对比 28
4.3.2 Trace模拟分析对比 30
4.4 存在的问题 31
5 节点分布策略的应用 32
5.1 圆形网络环境下的分布参考模型 32
5.2 节点非均匀分布模型的扩展 32
结 论 34
致 谢 35
参考文献 36
插图索引
图 2.1 NS2的对象分裂模型 10
图 2.2 OTCL的对象层次结构图 10
图 3.1 实验场景图和节点分布环 14
图 4.1 实验组1的节点分布 21
图 4.2实验组2的节点分布 21
图 4.3实验组3的节点分布 21
图 4.4实验组4的节点分布 22
图 4.5实验组5的节点分布 22
图 4.6实验组6的节点分布 22
图 4.7实验组1中Sink节点接收到其他节点的数据量柱状图 23
图 4.8实验组1中的网络丢包统计图 24
图 4.9实验组2中Sink节点接收到其他节点的数据量柱状图 24
图 4.10实验组2中的网络丢包统计图 25
图 4.11实验组3中Sink节点接收到其他节点的数据量柱状图 25
图 4.12实验组4中Sink节点接收到其他节点的数据量柱状图 26
图 4.13实验组4中的网络丢包统计图 26
图 4.14实验组5中Sink节点接收到其他节点的数据量柱状图 27
图 4.15实验组5中的网络丢包统计图 27
图 4.16实验组6中Sink节点接收到其他节点的数据量柱状图 28
图 4.17实验组6中的网络丢包统计图 28
附表索引
表 3.1 各项实验参数的取值 13
表 3.2 第一组实验的实验参数 19
表 3.3 第二组实验的实验参数 20
表 4.1 Nam实验数据分析 29
表 4.2 Sink节点收到其他节点的数据对比分析 30
表 4.3网络丢包情况统计表 30
毕业设计(论文) 第 37 页
1 绪论
1.1 课题的背景和意义
随着微电子科技的迅速发展,微型传感节点的体积在不断变小,生产成本在不断降低,这便导致了无线传感器网络(Wireless Sensor Network)的发展在近年来极为迅速,从而使无线传感器网络成为当今国际上备受关注的,有多学科交叉的新兴前沿研究热点领域。无线传感器网络是由部署在检测区域内大量的廉价微型传感节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作的感知,采集和处理网络覆盖区域中感知对象的信息,并发送给观察者。
无线传感器网络和现有的无线自组网虽然在形式上很相似,其实两者存在很大差别,相对于无线自组网络来说,传感器网络的节点的数目更多,密度更大,并且节点的能量,处理能力,存储能力都是十分有限的。传统的无线网络的首要设计目标是提供高质量的服务和高效的带宽利用,其次才考虑节约能量;而传感器网络设计的首要目标是能量的高效利用,这也是传感器网络和传统无线网络最重要的区别之一[1]。
由于传感器节点一般体积都非常小,通常携带的能量十分有限,当它们散布在网络中的时候,由于部署的环境的复杂性,我们很难通过更换电池的方式为其补充能量,所以节点只有依靠自身的电池提供探测数据和传输数据的能量,如何使整个传感器网络在有限能量供给条件下,获得最大的生存期,这就需要考虑传感器网络的能耗均衡策略,使网络不因为部分节点的能量提前耗尽而导致网络生命周期提前结束。
1.2 国内外的当前研究现状
对于无线传感器网络能耗均衡的研究,国内外主要有以下两个方面:
1) 对算法和协议的研究。
a) 改进路由算法。如文献[2]中提出的能量平衡路由协议EBDD,相对于传统的DD协议有更高的能量效率。
b) 采取数据压缩和变频,如文献[3]中提到,通过采用变频无线传感器,可以通过改变自己发射功率和频率,修改传输半径,实现单跳多跳的自主选择。
2) 对网络的组织形式的研究。
a) 采取节点的分布策略,采取非均匀的分布策略,使网络节点的密度分布按照一定的规则,实现能耗均衡
b) 采用移动的网络组织形式,如文献[4]中采取可移动式的Sink节点,使传统意义上的靠近Sink节点的节点不断更替,从而实现了Sensor之间不区分什么内外层节点。
c) 采用拓扑控制,可以结合功率控制和分簇式层次网络,LEACH[5]采用了簇状头部旋转平衡能量消耗,从而可以一定程度上减少能量空洞。
1.3 本文要完成的主要工作
本文共五章,由以下部分组成:
第一章 绪论:介绍无线传感器网络以及传感器网络的能耗均衡问题和国外内的研究情况。
第二章 传感器网络能耗均衡与网络模拟:提出能量空洞问题和非均匀分布理论,以及网络模拟相关内容。
第三章 非均匀分布策略的模拟仿真:针对相应的非均匀分布理论进行仿真模拟实验,包括实验的场景设定,节点的定义和对比实验。
第四章 模拟实验结果的分析:对第三章中实验的数据进行分析和对比,得到相关的实验结论
第五章 节点分布策略的应用:针对实验的结果,结合非均匀分布理论,提出一种无线传感器网络的节点分布策略
2 传感器网络能耗均衡与网络模拟
2.1 能量空洞理论和节点非均匀分布理论
2.1.1 能量空洞的产生原因
在无线传感网中,能量的利用效率是非常重要的。网络中的传感节点有数据收集与数据路由两大功能。网络中的数据传输遵循多对一模型,所有的传感器节点都要把信息传送给接收器,越靠近接收器的节点的数据传输负载越大,因而越靠近接收器的节点能量损耗速度越快,从而这些靠近接收器附近的节点会比远离接收器的节点提前耗尽能量,这样就出现接收器附近的能量空洞问题。一旦出现能量空洞,从外围发送过来的数据将会遗失,而不能到达接收器。无线网络的生存期将会缩短,从而导致节点的大部分能量将会被浪费。有实验表明当节点按照通常情况分布在网络中,网络生命结束时,网络的90%能量被浪费掉。
2.1.2 节点非均匀分布理论
为了解决能量空洞问题,许多专家提出了相关解决的理论,概括起来,目前主要流行的理论有:
1) 节点分布策略。通过调整传感节点在网络拓扑结构中的分布密度和分布方式来实现避免或者减少能量空洞,在这个方面的主要理论有X.B.Wu,G..Chen[6]等发表的关于非均匀分布的文献,这个理论会在下一节详细介绍,并且作为仿真实验的理论基础。
2) 层次分布和数据压缩。通过对传感器节点发送的数据进行压缩,可以减少单位时间内发送的数据量,采用层次网络分布可以分散节点的能量损耗。
3) 基于聚类理论的分簇策略的改进。通过对簇头的能耗分析,发现一些靠近或者远离接收器的簇状头部能量消耗都很大,LEACH[5]采用了簇状头部旋转平衡能量消耗,从而可以一定程度上减少能量空洞。
4) 采取移动接收器来接收信息以达到延长网络的生存期。由于接收器是移动的,所以所谓靠近接收器的节点实际上是在不断变换的,如果遵循一定的移动规则或者路由协议,可以得到比较高能效的网络。
需要注意的是,上文提到的一些解决方案也只能是最大化网络生命周期,推迟能量空洞形成的时间,从而达到平衡能耗。从下一节起,本文会重点介绍一种非均匀分布策略,以及通过在NS2上进行模拟仿真来验证这种分布策略的可用性,适用性以及缺点。
2.2 圆形网络模型下的分布策略
在X.B.Wu,G.Chen[6]等发表的文献中提到一个研究分布策略的模型,所有的节点分布在一个圆形网络中,并且其半径为R,在这里,网络中的接收器不可以移动,并且位于整个网络的圆心,其余的传感器都是相同类型的节点,拥有相同的性能参数,节点的传输范围都是一个单元,将圆形区域按照离圆心距离为一个单位来划分,记离圆心距离为i的区域为。很明显,圆环是由距离接收器为(i+1)和i的节点组成。其传感器在一定比率下传送跟处理数据。为了简单化,我们假设节点在单位时间内传送L bit数据。那么属于区域的节点将要传送他们自己产生的域的数据。那些属于最外层区域Cr的节点不用传送任何数据,我们假设在任何中间节点上没有数据处理。我们同样有一个简单能量模型,在最初每个节点的能量为ξ > 0,但是接收器的能量没有任何限制。在我们的模型中,只考虑数据传送跟数据接收能耗。进一步假设,每个节点每传送1bit数据耗费能量,每接收1 bit数据耗费能量,并且有。
我们可以得到圆环每一单位时间内的损耗能量,有公式
式(2.1)
而其他圆环单位时间内损耗的能量公式为
式(2.2)
这样我们就可以得到圆环每一单位时间内的能量损耗公式
式(2.3)
其中的为圆环单位时间内能量损耗,为的节点密度,L为每单位时间内发送的字节数,为节点发送1字节数据损耗的能量,为节点接受1字节数据损耗的能量。
现在我们对完全平衡均衡能量损耗可行性进行分析,要达到其完全均衡能量损耗就必须满足下面条件:
式(2.4)
而此条件是不可能成立的。因为,则根据它可以推导出
,而,故不成立。
得到定理:在前文给定的圆形网络结构下,无线网络中的完全均衡能量损耗无法达到[6]。
虽然我们无法达到完全均衡能量损耗,但是我们可以做近似均衡能量损耗。对公式
式(2.5)
进行一系列化简,步骤如下:
根据式(2.2)有
化简为,令得
式(2.6)
这样就有结论,如果圆环的节点密度到内按照几何数增加,那样就可能使无线圆环传感器网络达到近似均衡能量损耗[6]。
2.3 网络仿真模拟器和NS2
2.3.1 网络仿真模拟器的介绍
一般来说,目前对网络和通信的研究方式主要有三种,它们分别是:
1) 理论研究:在理论上和协议上对网络和通信技术进行分析研究,采用数学模型、协议分析、状态机、集合论以及概率统计等理论分析手段对现有的算法、协议、网络性能进行研究。
2) 网络仿真:主要指通过计算机程序进行模拟仿真的方法。
3) 试验网方法:通过真实的实验室测试网络,网络测试床(Network Test bed)和小规模的商业实验网络对网络进行实战检验。
这三种方法各自有自己的特点和缺点,都是相互关联在一起的,只是在不同部分有不同侧重。
1) 理论研究主要用于早期研究与设计阶段,通过创造性思维对新算法和新技术进行理论准备和验证,除了人力和知识,几乎不需要什么额外成本;
2) 试验网方法是网络和系统在投入实际适用前系统的演练,能够发现网络设计与用户需求之间的相合度以及检验网络实际使用的效用和性能。该阶段建设成本很高,要求技术和设备开发相对成熟,网络系统基本成型,一般主要是针对业务和系统稳定性和服务性能的检验;
3) 而网络仿真阶段可以说是处于上面两个方法的中间阶段,它可以对新的算法协议进行计算机上的模拟仿真,可以在很早就发现许多需要在试验网测试中的问题,并有利于及时调整和改进,这个阶段,由于采用计算机软件进行仿真,使得很多研究人员能够研究大规模网络和学习新协议新算法的设计和实现。并且能够在实用前对其进行检验 和改进,此外,他还可以在各种新老系统和算法之间进行比较而不必话费巨资去建立多个实际系统。
通过对比,我们可以看到,网络仿真是网络通信研究中非常重要的一种方法,下面我们介绍一下网络仿真的优点和缺点:
网络仿真的优点主要体现在以下几个方面:
1) 成本低:与试验网方法比较而言,网络设备、构件和系统均通过计算机软件模拟实现,实现成本低廉。
2) 灵活可靠、可重构:由于采用软件实现,他的实用、配置和改变更加灵活可靠,对大规模网络也可以轻松进行重新构建。
3) 避重就轻:可以通过软件的方法,有选择性的选择在研究中感兴趣的方面,而把其他一些不相干的方面忽略,这样更加有利于对感兴趣点的深入研究,提高研究效率。
4) 提供研究大规模网络的机会:大规模网络不一定每人都有机会参与建设和研究,而网络仿真平台给了无这样条件的科研人员一个研究大规模网络的机会。
5) 易于比较:由于可以通过软件配置轻松建立、重构各种网络模型,实现各种不同的协议和算法,这使得研究人员能够轻松的比较这些不同模型、协议和算法之间的性能等各方面的优劣。
当然,由于是通过软件进行模拟仿真,它毕竟是虚拟网络,与真实的网络环境还是有一定的差异性,因此,仿真方法也存在一些天生的不足之处:
1) 无法完全重现真实网络环境,使得仿真网络可能会忽略一些重要的网络细节;
2) 在对协议、算法和网络系统进行仿真之前,必须通过软件编程对其进行软件模块的实现,这增加了额外的工作量;
3) 网络仿真所得的结果并不一定与真实网络环境下的结果一致,因此,在投入实际应用之前,还需要多方面的验证和通过测试网和真实网络的检验。
总而言之,网络仿真是当前网络通信研究中的重要技术手段之一,在网络通信的建设开发过程中起着不可替代的重要作用。大部分网络通信的技术研究也都必须经过网络仿真研究这么一个重要环节。学术界对网络通信的研究更加离不开网络仿真。
为了方便网络研究人员的研究工作,一款好的网络仿真软件是必不可少的。网络仿真软件必须提供简单易用的网络仿真环境的建立手段,必须实现常用的已经存在的绝大部分网络协议、算法和应用模块,必须能够方便的进行配置和扩展,利于添加新的协议和算法。
当前有许多优秀的网络仿真软件,其中应用比较广泛的主流仿真软件有 OPNET 、 NS2、MATLAB、SPW、QualNet 等,这为网络研究人员提供了很好的网络仿真平台。下面就NS2网络模拟器做一个简单的介绍
2.3.2 NS2的介绍
NS 是 Network Simulator 的英文缩写,字面翻译即为网络模拟器,又称网络仿真器。NS2 则是网络仿真器的第2 版。
NS2 是一款开放源代码的网络仿真软件,最初由UC Berkeley 开发而成。他最初为了研究大规模网络以及当前和未来的网络协议交互行为而开发。它为有线和无线网络上的TCP、路由和多播等协议的仿真提供了强有力的支持。NS2 是一个开源项目,所有源代码都开放,任何人可以获得、使用和修改其源代码。正因为此,世界各地的研究人员每天都在扩展和更新它的功能,为其添加新的协议支持和功能模块。它也是目前网络研究领域应用最广泛的网络仿真软件之一。
NS2是一种面向对象的网络仿真器,它本质上是一个离散事件模拟器,其本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前 NS2 可以用于仿真各种不同的通信网络。它功能强大,模块丰富,已经实现的一些仿真模块有:网络传输协议,如TCP 和UDP;业务源流量产生器,如FTP、Telnet、Web CBR 和VBR;路由队列管理机制,如Droptai、RED 和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc 路由,移动IP 和卫星通信网络等。NS2 也为进行局域网的仿真而实现了多播以及一
些MAC 子层协议。
NS2 使用了被称为分裂对象模型的开发机制,采用C++和Otcl 两种开发语言进行开发。他们之间采用TclCL 进行自动连接和映射。考虑效率和操作便利的原因,NS 将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用 C++编写,这些对象通过 TclCL 映射对Otcl 解释器可见。这样,仿真用户只要通过简单易用的Tcl/OTcl 脚本编写出仿真代码,对仿真拓扑、节点、链路等各种 部件和参数进行方便快速的配置。NS 可以说是 Otcl 的脚本解释器,它包含仿真事件调度器、网络组件对象库等。事件调度器控制仿真的进程,在适当时间激活事件队列中的当前事件,并执行该事件。网络组件模拟网络设备或节点的通信,他们通过制定仿真场景和仿真进程,交换特定的分组来模拟真实网络情况,并将执行情况记录到日志文件(称为 Trace 文件)中,以提供给仿真用户进行分析解读,获取仿真结果。NS 采用这种分裂模型即提高了仿真效率,加快了仿真速度,又提供了仿真配置的灵活性和操作的简便性。
2.4 OTCL介绍
关于NS2的安装和使用在这里就不具体介绍了,这里主要介绍的是OTCL语言,因为OTCL语言是后面进行仿真实验程序编写的语言,OTCL通过对TCL语言的面向对象扩展,再结合NS2的对象分裂模型,让模拟程序的编写者在对协议的实现代码不是十分了解的情况下,可以通过简单的面向对象语言来实现协议和算法的仿真模拟。
图2.1是NS2的对象分裂模型,左边的是实现层:采用C++对象,这样可以方便协议和算法的实现,并且提高执行效率。右边的是表示层:采用OTcl对象,能方便拓扑和节点属性的修改,从而提高仿真便利性。
图 2.1 NS2的对象分裂模型
为了完成模拟程序的编写,我们需要了解OTCL的对象层次结构,通过图2.2我们可以看到Ns2的层次结构图,通过这个层次结构,将网络的各层协议划分开来,使协议之间的独立性加强。
图 2.2 OTCL的对象层次结构图
下面是一个简单的例子,程序说明的是OTCL如何调用NS2的对象,创建一个模拟环境和执行模拟的:
#创建一个新的模拟器对象
set ns [new Simulator]
#用不同颜色表示不同的数据流用来产生演示的
$ns color 1 Blue
$ns color 2 Red
#打开一个演示动画文件
set nf [open out.nam w]
$ns namtrace-all $nf
#定义‘finish’过程
proc finish {} {
global ns nf
$ns flush-trace
#关闭 NAM 文件
close $nf
#执行动画演示
exec nam out.nam &
exit 0
}
#创建2个节点
set n0 [$ns node]
set n1 [$ns node]
#在他们之间创建链路协议
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
#设置模拟节点的坐标 (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
#设置TCP连接
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n1 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#在TCP上设置ftp协议
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP
#设置各个应用层的启动时间
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
#断开各自的连接
$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n1 $sink"
#在5秒钟的时候执行‘finish’
$ns at 5.0 "finish"
#执行模拟程序
$ns run
通过调用NS2对现有的网络各层协议和算法的实现所发布的NSObject,以及通过我们自己改进的协议和算法后得到的NSObject,我们便可以高效,方便的完成需要的场景模拟和仿真。
2.5 NS2 Mannasim Framework[7]介绍
由于我们要模拟的环境是无线传感器(WSN),在NS2最新版本里面,也没有一系列可以满足我们模拟环境需要的协议和相关实现,在柯志亨教授的介绍下,我了解了Mannasim Framework,并且最终决定选取其作为模拟实验的程序框架,下面简单介绍一下Mannasim。
Mannasim 是一个无线传感器网络的模拟环境,它由两部分组成:
1) Mannasim Framework:一个为WSN设计的NS2扩展模块,它扩展了NS2,从而为WSN的研究者提供了各种各样的WSN网络环境的模拟,开发,分析等等。
2) Script Generator Tools:一个用Java编写的,用来生成初步模拟场景的脚本生成工具,可以通过XML文件保存相关的场景信息,导出TCL脚本,不过这个工具还处在测试阶段存在一些问题,起的作用不大。
在Mannasim Framework中,可以比较容易的创建AP(Access Points)、CH(Cluster Head)以及Sink节点和普通Sensor节点,并且对于普通的Sensor,Mannasim已经实现了一些基本的例如温度的模拟发生器,可以方便的在应用层作为模拟数据传递给Sink节点,从而实现较真实的模拟。
3 非均匀分布策略的模拟仿真
3.1 理论的提出
根据2.2节里面的圆形网络非均匀分布策略得到的结论,我们可以推出,在
一个圆形网络中,当内环的节点密度是外环的节点密度的几何倍数时,可以提高网络能耗均衡,达到能量平衡消耗。那么两个相邻的圆环节点数目之比假设为q,则有。
3.2 模拟场景的设定
下面我们设定进行模拟实验的场景,主要的模拟参数见下表:
表 3.1 各项实验参数的取值
参数
取值
Sensor初始化能量
10 J
发送数据能量消耗
1w
接收数据能量消耗
1w
传输的数据单位长度
200 bit
最外环的节点密度()
1,3,11
相邻节点密度增长倍数(q)
1,2,3
网络的环数(R)
4
圆环的半径
50
Sensor的通信半径
50
以上各项模拟参数的具体值是按照文献[6]中提出的作为基准,仅供参考。
网络拓扑结构如下:
图 3.1 实验场景图和节点分布环示意图
场景设定如下,在1000m * 1000m的正方形的场景中,Sink节点位于整个正方形的中心,其坐标是(500,500),Sink节点的传输半径是50m,能量为一个有限的较大值(100J),Sink节点不可以运动,位于整个网络场景的中心,所有的Sensor节点的传输范围也是50m,按照50m为一个圆环划分网络成一环形网络。如图3.2所示,从内到外分为几个圆环。根据表3.1中定义的各种参数,进行节点散布,把最外层节点密度作为基准,通过相邻节点的增长倍数(q)进行增加,然后再根据圆环的个数来确定生成节点的位置范围,在环内的节点的分布位置应当满足,通过设计随机函数范围,让节点在我们指定的圆环内产生。而每一个圆环内的节点的数目
3.3 Sink节点的定义
在定义了模型场景后,我们对Sink节点进行定义,下面是TCL脚本中定义Sink节点的过程函数:
proc create_sink {iniEnergy x y z start stop} {
global ns_ val node_ sink_ contador_nodos topo app_ udp_ trace rng
Phy/WirelessPhy set Pt_ 0.2818
$ns_ node-config -sensorNode ON \
-adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(antenna) \
-propType $val(prop) \
-energyModel $val(en) \
-phyType $val(netif) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace $trace(agent) \
-routerTrace $trace(router) \
-macTrace $trace(mac) \
-rxPower 0.5 \
-txPower 0.5 \
-initialEnergy $iniEnergy \
-movementTrace $trace(movement)
set node_($contador_nodos) [$ns_ node]
$node_($contador_nodos) random-motion 0
set sink_(0) [new Agent/LossMonitor]
$node_($contador_nodos) attach $sink_(0) $val(port)
$node_($contador_nodos) set X_ $x
$node_($contador_nodos) set Y_ $y
$node_($contador_nodos) set Z_ $z
$ns_ initial_node_pos $node_($contador_nodos) 20
incr contador_nodos
}
3.4 Sensor节点的定义
对Sensor节点的定义的过程函数:
#创建Common Sensor节点
proc create_common_node { iniEnergy x y z father_addr start stop } {
global val ns_ node_ topo udp_ app_ gen_ contador_nodos rng trace
if { [llength $start] == 0 } {
set start [expr $val(start) + [$rng uniform 0 1]]
set stop $val(stop)
}
$ns_ node-config -sensorNode ON \
-adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(antenna) \
-propType $val(prop) \
-energyModel $val(en) \
-phyType $val(netif) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace $trace(agent) \
-routerTrace $trace(router) \
-macTrace $trace(mac) \
-rxPower 0.024 \
-txPower 0.036 \
-initialEnergy $iniEnergy \
-movementTrace $trace(movement)
set node_($contador_nodos) [$ns_ node]
$node_($contador_nodos) random-motion 0
$node_($contador_nodos) set X_ $x
$node_($contador_nodos) set Y_ $y
$node_($contador_nodos) set Z_ $z
$ns_ initial_node_pos $node_($contador_nodos) 10
puts "* Node [$node_($contador_nodos) node-addr] = $contador_nodos created in ($x, $y, $z)"
set app_($contador_nodos) [create_common_app $father_addr $val(disseminating_type) $val(disseminating_interval)]
if { $val(leach) == 1 } {
set agent [new Agent/RCAgent]
$agent set sport_ 0
$agent set dport_ 0
$node_($contador_nodos) attach $agent 0
$app_($contador_nodos) attach-agent $agent
展开阅读全文