上海羊羽卓进出口贸易有限公司

matlab 无线传感器网络 基于无线传感器网络的MCKP-MMF算法matlab仿真

发布时间:2024-11-23 20:11:27

基于无线传感器网络的MCKP-MMF算法matlab仿真

大家好,今天我们介绍无线传感器网络中的MCKP-MMF算法。

·我们首先将当前文件夹定位到程序所在路径。这里我们写了两个算法,一个是标准算法,一个是改进算法。我们这里直接演示一下改进算法。打开run,点击运行。我们先简单看一下它的仿真效果,这个就是最后得到的半径变化情况。这里有8个圆,8个圆的半径变化情况以及代价函数。

这里我简单讲一下算法基本思路和流程。

·首先我们计算每一个网络的访问点,即红色点的代价函数。定义代价函数为TPK,然后在增加半径时,计算代价函数最小的那个访问点来增加其半径。

·在当前循环的条件下,计算所有访问点的代价函数。然后对这8个代价函数进行排序。

·选择代价函数最小,并增加其对应的圆半径。如果所有访问点的半径都被增加,那么就进入下一轮循环进行计算。对于每一个给定的访问点,如果同时拥有多个拥塞节点的半径,那么这个时候选择影响半径最小的那个访问点。如此循环往复,最终会得到一个动态平衡。大概是这么一个过程。演示完毕。

无线传感器网络LEACH协议的改进

摘 要 : 针对无线传感器网络典型分簇协议LEACH簇首随机选择和频繁分簇的问题,提出一种基于LEACH的改进协议。簇首的选择分为奇数轮和偶数轮,在奇数轮簇首的选择时,节点生成一个随机数,将此随机数和阈值进行比较,小于阈值的节点成为簇首节点,其中阈值的生成考虑了节点的能量。在偶数轮簇首选择时,每个簇选择上轮中簇内能量最高的节点作为本轮簇首。协议能够有效均衡网络的能量,延长了网络的生命周期。

0 引言

无线传感器网络(Wireless Sensor Network,WSN)是由部署在监测区域内大量的廉价微型传感器节点通过无线通信方式连接形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者[1]。WSN不需要固定的网络支持,具有快速展开、抗毁性强等特点,可广泛应用于军事侦察、环境监测、医疗监护和其他商业领域[1]。

在WSN体系结构中,网络层的路由技术对WSN性能的好坏有重要影响。随着国内外对WSN的研究,许多路由协议被提了出来,从网络拓扑结构可以分为两类:平面路由协议和分簇路由协议。在WSN的实际应用中,由于通信损耗能量与传送的数据量和到达目标的距离平方成正比,因此采用基于分簇的路由协议相对平面路由协议具有更好的适应性和节能性[2]。

本文提出的路由协议是基于最经典的分簇路由协议LEACH(Low Energy Adaptive Clustering Hierarchy)提出的,协议中簇首的选择分为奇数和偶数轮。奇数轮簇首选择中引入节点能量等参数,避免低能量的节点成为簇首。簇首确定后,簇首广播自己为簇首的消息,其他节点根据接收到的信号强度加入不同的簇。在偶数轮簇首的选择时,网络不再大规模地动态生成簇,只是选择上一轮中簇内节点能量最大的节点作为本轮的簇首节点,簇首节点选择后,通过广播通知其簇内节点自己成为簇首节点。通过能量参数的引入使得簇首选择避免了低能量节点成为簇首节点,而且引入奇数和偶数轮降低了簇的生成开销,有效节省了网络的能量,延长了网络的生命周期。

1 LEACH协议

该协议使用自适应成簇和簇首节点轮换技术,周期性地执行任务,每一个周期分为两个阶段,分别是簇的建立阶段和稳定运行阶段,这两个阶段的时间比在协议中是1:19,稳定运行时间要远远长于建簇时间,这可避免分簇过于频繁造成过多的能量损失。在稳定运行阶段,各个非簇首节点将按簇首分给的时隙来发送数据给簇首,簇首收到各个簇成员发来的数据进行综合处理后再发给Sink节点。

LEACH[3]协议选择簇首策略具体如下:在建簇中的簇首选择阶段,每个节点在0~1之间随机选择一个数与阈值T(n)进行大小比较,如果小于阈值,则其将被选中成为新一轮的簇首,并广播自己是簇首的消息。如果节点已经被当选过簇首,则将T(n)置为0,这样将不可能再当选簇首了。阈值T(n)表示为:

其中,n表示传感器节点数,k表示簇头节点数,r为轮数,G为网络生存期的总回合数。

LEACH协议适用于大型的无线传感器网络,与平面路由协议相比,LEACH协议在节能方面有比较突出的表现,但也存在一些问题,比如LEACH算法簇头的选择没有考虑到节点的能量问题,如果一些能量较低的节点成为了簇首节点,那么此节点很快就会将能量耗尽而退出网络,降低了网络的寿命;同时LEACH算法簇的生成过于频繁,按照轮的方式运行,每轮完成后,网络将重新进入簇的生成阶段,簇的频繁生成将会增大网络的能量消耗。

2 LEACH-OE

在研究了LEACH协议存在的一些问题后,本文提出了一种基于奇偶轮选择簇首的协议LEACH-OE(Odd and Even number round of LEACH)。该协议大大降低了成簇的轮数,只有在奇数轮才会进行簇首的随机选择和簇内节点入簇操作,而且簇首选择时,考虑了能量因素,使得能量高的节点成为簇首节点的概率更大,在偶数轮仅仅是选择簇内能量最高的节点作为本轮的簇首节点,之后通知其他簇内节点自己为簇首节点,节省了成簇时的能量消耗。

2.1 模型介绍

(1)网络模型:基站(BS)固定且能量供应充足;各节点同构且具有节点编号;各节点可感知它的剩余能量;各节点可以与基站直接通信;各节点可根据接收者距离调整发射功率[4]。

(2)信道模型:传感器节点发送k bit消息d距离时消耗的能量ETX(k,d):

接收k bit消息消耗的能量ETR(k)是:

ETR(k)=ERXelec(k)=kEelec(3)

在式(2)中,发送与接收节点距离大于临界值d0=

时,使用多路径模型;否则使用自由空间模型。Eelec是发射电路和接收电路消耗的能量,εfs和εamp都是发射放大器所消耗的能量。

2.2 算法思想

(1)基于剩余能量的簇首选举

本协议在簇首的选择和成簇机制上进行了改进,簇首选择时,分为奇数轮和偶数轮。当奇数轮时(r mod 2==1)采用簇首的随机生成,此过程中,不但考虑节点是否当选过簇首节点,还考虑节点的能量因素,降低了低能量节点优先成为簇首节点的概率。由各个传感器节点随机生成一个[0,1]之间的随机数,比较此随机数与阈值F(n)的大小,如果小于F(n)则成为簇首节点,然后广播自己成为簇首节点的信息,而其他节点根据接收到的信息的强度自主加入相应的簇。阈值F(n)表示如下:

当偶数轮(r mod 2==0)时,根据各个簇内节点的能量信息,由上轮簇首节点决定本轮簇首节点的选择,上轮簇首根据簇内节点能量Ecur(i)的大小将簇内节点进行排序,然后簇首将能量最大节点的编号ID向簇内进行广播,簇内各个节点根据接收到的信息和自己节点ID进行比较,当节点ID与接收到的信息中的节点ID相同时,该节点广播自己成为本轮簇首节点的信息,各个簇仅仅是改变了簇首而簇内节点不发生变化。图1是簇首选择流程图。

(2)数据发送阶段

在簇首选择成功后,簇首根据成员节点数目创建TDMA时间表,并告知成员节点发送数据的时隙,成员节点只有在所分配的时隙内发送数据,其余时间则处于休眠状态以节约能量,成员节点发送的数据在簇首处融合并最终由簇首发送至基站。在数据的传送中为了防止簇与簇之间的通信干扰,每个簇都使用一个特殊的代码,簇头到基站的数据发送采用载波检测多址接入技术(CSMA)。当簇头有数据发送时,先检测信道是否空闲,当信道有数据传送时节点等待,直到信道空闲一段时间后再进行数据的发送。

(3)能耗分析

在M×M的区域部署N个无线传感器节点,分为k个簇,每个簇中有N/K个节点(一个簇首节点,其余为非簇首节点),传感器节点发送l bit数据,簇首在一轮中消耗的能量为:

从以上可知,传感器网络中,网络的能耗主要是簇传输数据能量消耗和成簇的能量消耗。在已知网络中,节点数N、发送和接收电路的能耗Eelec、功率放大系数εamp和εfs、数据融合能耗EDA都是一定的,而簇数k、簇首节点到基站的距离dtoBS、簇内成员到簇首的距离dtoCH是不确定的,但是在本文讨论的网络中因为都是随机的,假设其差别不大。现在能量消耗的节省主要从成簇方面进行考虑,Etotal是一定的,因为引入奇数、偶数轮成簇机制,每两轮才产生一轮成簇的能量消耗,很显然延长了总的网络寿命,同时,在簇首的选择时,只有那些剩余能量较高的节点优先选为簇首节点,可以有效均衡网络能耗,进一步延长网络寿命。

3 仿真结果及其分析

3.1 仿真环境

为了验证本文算法的性能,在MATLAB平台上进行仿真比较。100个无线传感器节点随机分布在100 m×100 m的区域内,根据参考文献[5]的分析,LEACH算法每轮最佳簇首个数

,约为节点总数的5%,仿真中选择k为5,仿真参数如表1所示。

3.2 LEACH和LEACH-OE性能的比较

在MATLAB环境下仿真LEACH-OE与LEACH协议,两种协议运行5 000轮后生存和死亡节点的分布如图2所示。LEACH协议在1 127轮开始有节点死亡,而LEACH-OE在1 435轮开始有节点死亡,这是因为在簇首选择时LEACH-OE考虑了能量因素。而节点完全死亡LEACH-OE达到了2 782轮,远远大于LEACH的2 237轮,轮数提高了24.5%左右。因为LEACH-OE协议引入了奇数轮成簇机制,更节省网络的整体能量,延缓节点死亡的时间,从而使网络生命周期得到延长。

两种协议能量的消耗如图3所示,比较可知在运行同等轮数的情况下,LEACH-OE能量的消耗明显比LEACH要小,在运行轮数为1 000的情况下,LEACH-OE比LEACH能量消耗要少21%左右,如图可知,最终网络中节点全部死亡的时候网络总的能量消耗是相等的,运行的时间越长,网络更有优势。

4 结论

为提高网络的生存时间,平衡节点的能量消耗,本文提出了一种基于能量和奇偶轮的分簇式无线传感器网络路由协议(LEACH-OE),在奇数轮成簇的过程中,簇首的选择考虑到节点的能量因素,选择能量更高的节点作为簇首,在偶数轮直接选择能量最高节点作为簇首节点。通过MATLAB仿真实验,对LEACH和LEACH-OE在能量消耗、运行轮数方面进行比较。结果表明,LEACH-OE协议在负载均衡和能量消耗方面有很大的改善,可以有效地延长网络生存时间。

参考文献

[1] 孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.

[2] AKYKLDIZ I F. Wireless sensor networks: a survey[J]. Computer Network, 2002,38(4):393-422.

[3] HEINZELMAN W, CHANDRAKASAN A, BALAKRISHNAN H. An application-specific protocol architecture for wireless microsensor networks[J]. IEEE Transaction on Wireless Communications,2002,1(4):660-670.

[4] BANDYOPADHYAY S, COYLE E J. Minimizing communication costs in hierarchically clustered networks of wireless sensors[J]. Wireless Communications and Networking,2003(2):1274-1279.

[5] 张辉,许峰.WSN中基于权值的Leach协议的研究与改进[J].微计算机信息,2010,26(8):199-201.

相关问答

无线传感器网络 仿真用什么软件好..._网络编辑_帮考网

无线传感器网络仿真可以使用以下软件:1.NS-2:一个广泛使用的网络仿真器,可用于模拟无线传感器网络。2.OMNeT++:一个开放源代码的仿真器,用于建模...

matlab 中的simulink如何仿真霍尔 传感器 ?

如果是Multimeter的显示器的话,可以按照以下步骤改变线条颜色。在Multimeter的界面,选择View菜单,选中PlotBrowser,就会在右边出现所画的曲线的名称和线条的...

matlab 电流测量元件怎么接电压源?

在MATLAB中,可以通过使用电流测量元件模型来模拟电流测量。要将电流测量元件连接到电压源,可以按照以下步骤操作:1.在MATLAB命令窗口或脚本中,创建一个电路...

matlab 哪个版本最好用?

个人觉得,最新版本一直是最好的;虽然2012还是2013对软件界面改动较大,但matlab的核心毫无疑问还是script的一行行程序,而新版本可能更改了一些内置函数使其更...

matlab 可以实现体温检测吗?

可以啊,但是得配合下位机单片机硬件系统。首先下位机加入外部温度传感器,一般用到的温度传感器有ds18b20,和温湿度传感器dh111,然后配合单片机开发板,51单片...

传感器 用什么编程语言?

传感器的编程语言选择取决于具体的传感器类型、硬件平台以及开发者的偏好。以下是一些常见的编程语言和工具,以及它们在传感器编程中的应用:C/C++:C和C++是常...

Solid works有光纤 传感器 吗?

SolidWorks是一种计算机辅助设计(CAD)软件,主要用于3D建模、装配和制造。光纤传感器是一种测量长度的传感器,通常用于检测光纤的拉伸、弯曲和扭转。虽然S...

matlab 中cep是什么?

门...目标:Web钩子url基于规则匹配转发事件有效负载。Rule:为事件类型创建一个规则,该规则具有一个针对接收到的每个事件有效负载进行评估的过滤器,以及一...

Matlab 语言适合什么?

MATLAB主要适用于数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理、数字信号处理、通讯系统设计与仿真、财务与金融工程等领...

matlab 电机的转速怎么测量?

要测量电机的转速,可以使用编码器或霍尔传感器。编码器是一种装在电机轴上的装置,可以测量轴的旋转角度和速度。霍尔传感器则是通过检测电机轴上的磁场变化来...

展开全部内容