leach分簇算法仿真(基于matlab)
LEACH算法仿真结果
![LEACH算法仿真结果](https://img.taocdn.com/s3/m/ab3f14a74693daef5ef73dec.png)
仿真一:在100*100的区域内随机生成100个节点(matlab仿真代码: clear;xm=100;%x轴范围ym=100;%y轴范围sink.x=0.5*xm;%基站x轴 50sink.y=0.5*ym;%基站y轴 50n=100;E0=0.02;for i=1:1:nS(i).xd=rand(1,1)*xm;S(i).yd=rand(1,1)*ym;S(i).G=0;%每一周期结束此变量为0S(i).E=E0;%设置初始能量为E0S(i).type='N';%节点类型为普通plot(S(i).xd,S(i).yd,'o');hold on;end%设置SINK节点的坐标S(n+1).xd=sink.x;S(n+1).yd=sink.y;plot(S(n+1).xd,S(n+1).yd,'*');%绘制基站节点仿真结果图片:(‘O’代表随机散布的节点,‘*’代表SINK节点)仿真二:LEACH 分簇效果图(matlab 代码见附件)仿真结果:(p=0.1) 1、簇头个数14.01020304050607080901002、簇头个数:113、簇头个数:1201020304050607080901004、簇头个数:10102030405060708090100(p=0.05) 1、簇头=61020304050607080901002、簇头=73、簇头=124、簇头=81020304050607080901005、0102030405060708090100102030405060708090100xyLEACH 分簇算法成簇效果图仿真三:LEACH 分簇算法第一个节点死亡的轮数10203040506070809010001020304050607080901001020304050607080901000102030405060708090100第一死亡节点出现的分布及轮数xy0102030405060708090100xy经过matlab 仿真,LEACH 分簇算法在第一个节点死亡时,已经运行的轮数分别为: 122、143、125、149、122、72.仿真四:20%的节点死亡时分布及轮数1、yx 2、yxy0102030405060708090100x轮数:196、207、205、181.。
基于LEACH路由的分簇算法研究
![基于LEACH路由的分簇算法研究](https://img.taocdn.com/s3/m/4c0b448f7375a417866f8fe5.png)
• 73•作为无线传感器网络的重要技术,WSN 路由协议是学术研究的热门话题。
LEACH 协议作为典型的的分簇算法它有很多的优点,但也有不足之处。
本文首先分析了原始的LEACH 算法。
缺点是没有考虑节点的剩余能量和位置。
在本文中,改进了缺陷,并将剩余的能量添加到考虑标准中,并且还增加了簇头之间的距离以避免形成热区域和簇头分布太密集。
通过Matlab 仿真,验证了改进的LEACH 算法可以使簇头分布更均匀,更能节省能耗,提高了网络生命周期。
1 LEACH协议LEACH (Low Energy Adaptive Clustering Hierarchy )全称是“低能耗自适应分簇型路由算法”,它是一种基于LEACH 协议的算法,因此被称作LEACH 算法,它作为层次型分簇路由算法,是无线传感器中很典型的代表(柳丽娜,无线传感器网络中LEACH 算法的研究和改进:吉林大学,2012)。
第一步,节点的初始化;第二步,选出网络中的簇头节点;第三步,正常部分成为簇头之后的初始化(基站的初始化,公共传感器节点的能量等),属于网络的建立阶段,并且选择簇头是在随机过程中生成的。
然后网络稳定来进行数据传输。
这属于一个循环,然后来回循环直到能量耗尽。
其中在选择簇头的过程中,首先会产生0到1的随机数值,如果产生的此数值比T(n)大,那么该节点就被选为簇首,T(n)就作为能否当选为簇头的标准。
T(n)的表达式为:(1)其中:P 是选举的簇头比例;r 是此时正在进行的轮数;G 是此时还没当选簇头的节点集合。
2 LEACH协议不足在分析了经典的LEACH 分簇算法过程中,虽然优点很多,但也存在一些缺点(唐甲东,蔡明,无线传感器网络路由协议研究-LEACH 路由协议的改进:计算机工程,2013):(1)簇头很容易产生在一些能量很低的节点上,从而会大大降低网络的寿命。
(2)簇头节点分布不均匀,有些过于集中,因此能量不能达到均衡状态。
LEACH路由协议中簇头的选举和分簇 j江南大学
![LEACH路由协议中簇头的选举和分簇 j江南大学](https://img.taocdn.com/s3/m/86030ce5b8f67c1cfad6b8f0.png)
班级:微电子 1101 学号:0301110115 姓名:杨海平 一,实验目的: 通过仿真实验掌握 LEACH 路由协议中簇头的选举和分簇。 二,实验内容: 在 100*100M2 的正方形区域里,随机分署有 100 个传感节点,簇头占所有节点的比例 为 P=1/10,汇聚节点 sink 的位置坐标为(50,50) 。 (1),绘制网络分布图; (2),选举簇头,并在分布图中标注; (3),组簇,并画出簇成员与簇头的连线,以及簇头与 sink 的连线。 三,实验方法: (1),在边长为 100m 的正方形中,产生传感器节点数为 100 的随机分布图,且 sink 节点的位置坐标为(50,50) ; (2),簇头选举 选举原则: 一个传感器节点随机选择 0 和 1 之间的一个值, 如果选定的随机数小于 阈值 T(n) ,那么这个节点成为簇头节点;
3.281 6.025 8.015 9.264
10.131 11.348 12.295 14.057
30 16.6767
45
15.39450源自17.628分析:在信标节点个数一定的情况下,通信半径越大,定位就越不准确。
error1=0; for optime=1:1:800 x=100*rand(1,20);%随机产生X坐标为0~100的信标节点的坐标 y=100*rand(1,20);%随机产生Y坐标为0~100的信标节点的坐标 xunknow=100*rand(1,1);%随机产生未知节点的坐标 yunknow=100*rand(1,1);%随机产生未知节点的坐标 xsum=0; ysum=0; xunknowcal=0;%800次仿真中的一小次仿真计算的未知节点的坐标 yunknowcal=0;%800次仿真中的一小次仿真计算的未知节点的坐标 connectedtime=0; for i=1:1:20 d=sqrt((x(i)-xunknow)^2+(y(i)-yunknow)^2); if d<r(ri) xsum=xsum+x(i); ysum=ysum+y(i); connectedtime=connectedtime+1; end end if connectedtime ~=0 xunknowcal=xsum/connectedtime; yunknowcal=ysum/connectedtime; validtimes=validtimes+1; error1=sqrt((xunknowcal-xunknow)^2+(yunknowcal-yunknow)^2); errorsum=errorsum+error1;%累加误差 end end error(ri)=errorsum/validtimes;%计算平均误差 end 六,实验结果和分析: (1) ,实验内容一: 表1 不同信标节点个数时的误差(通信半径50m) 6 12 18 24 信标节点个数 误差(米) 21.4302 19.0172 17.8113 17.1872 分析:在通信半径一定的情况下,信标节点数越多,定位就越准确。 (1) ,实验内容二: 表2 不同通信半径时的误差(信标节点个数为20) 10 15 20 25 30 35 40 通信半径 (米) 5 误差(米)
一种基于LEACH协议改进的簇间多跳路由协议
![一种基于LEACH协议改进的簇间多跳路由协议](https://img.taocdn.com/s3/m/efab822530126edb6f1aff00bed5b9f3f90f72ea.png)
一种基于LEACH协议改进的簇间多跳路由协议赵静;吕红芳;渠帅军【摘要】针对无线传感器网络(WSN)路由协议中能量消耗不均衡问题,研究了一种基于LEACH协议改进的簇间多跳路由协议LEACH-D算法.在分簇过程中,簇头选择增加了节点剩余能量和节点的“度”的因素;在簇间通信阶段,簇头节点按照Dijkstra算法形成的簇头间的最优路径以多跳的方式将信息传递给sink节点,其中权值综合考虑了下一跳簇头的能量和距离因素.通过对LEACH-D、LEACH-C和LEACH算法的网络剩余能量和网络生存时间进行仿真比较,结果表明LEACH-D算法可有效均衡网络的能量消耗,延长WSN的生命周期.【期刊名称】《上海电机学院学报》【年(卷),期】2016(019)004【总页数】6页(P221-226)【关键词】无线传感器网络;LEACH;度;Dijkstra算法【作者】赵静;吕红芳;渠帅军【作者单位】上海电机学院电气学院,上海201306;上海电机学院电气学院,上海201306;上海电机学院电气学院,上海201306【正文语种】中文【中图分类】TP212.9无线传感器网络(Wireless Sensor Network, WSN)是集信息采集、信息传输、信息处理于一体的综合智能信息处理系统,被广泛用于农业、军事、医疗、环境监测等领域[1]。
WSN中,节点一般采用电池供电,由于其一般都在人员很难接近的场所,能源不能及时供给;另外,目前可再生能源技术的应用还不够成熟[2],故节能一直是WSN研究的重点之一。
对于WSN中路由协议设计而言,一直都以均衡网络能量损耗、延长网络生存时间作为WSN路由协议设计的重要性能指标。
目前,WSN路由协议分为平面路由和分簇路由两种[1]。
平面路由不适合大规模网路应用,为了能在运行中维持较大的路由表,对分簇路由做了一定改进。
LEACH路由协议是第一个提出分簇路由的协议,此后又做了许多改进。
文献[3]中提出了一种基于LEACH的改进节能路由协议LEACH-PSOC,通过对簇头选择算法的改进,利用粒子群算法良好的收敛性和全局优化能力,将整个网络区域合理地分割成多个子区域,使网络能量均衡消耗,也减少了能量损耗,延长了网络的生存时间。
无线传感网络实验报告
![无线传感网络实验报告](https://img.taocdn.com/s3/m/ece7591914791711cd791700.png)
-------无线传感网络实验报告学院:信息工程学院专业:网络工程学号:201216213姓名:张新龙LEACH协议LEACH协议简介分簇算法LEACH 协议是Wendi B. Heinzelman , AnanthaP. Chandrakasan , Hari Balakrishnan (MIT ,电子与计算机系) 2000 年提出的分层的传感器网络协议, 它采用分层的网络结构. LEACH,协议是通过基于簇的操作使WSN减少功耗,LEACH,协议的目的是在网络中动态地选择传感器节点作为簇头并形成簇。
在LEACH 算法中, 节点自组织成不同的簇, 每个簇只有一个簇首.各节点独立地按照一定概率决定自己是否做簇首,周期性的进行簇首选举和网络重组过程, 避免了簇首节点能耗过多, 影响网络寿命. LEACH 算法建立在所有节点都是平等且无线电信号在各个方向上能耗相同的假设上。
LEACH协议有时候也会动态地改变簇的活跃动态,如果采用高功率的方式使网络中的所有传感器节点与汇聚节点进行通信。
LEACH协议原理LEACH 协议分为两个阶段操作, 即簇准备阶段(set - up phase)和就绪阶段(ready phase). 为了使能耗最小化, 就绪阶段持续的时间比簇准备阶段长簇准备阶段和就绪阶段所持续的时间总和称为一轮(round). [ 7-8]在簇准备阶段, 随机选择一个传感器节点作为簇首节点(cluster head node), 随机性确保簇首与Sink 节点之间数据传输的高能耗成本均匀地分摊到所有传感器节点. 簇首节点选定后, 该簇首节点对网络中所有节点进行广播, 广播数据包含有该节点成为簇首节点的信息. 一旦传感器节点收到广播数据包, 根据接收到的各个簇首节点广播信号强度, 选择信号强度最大的簇首节点加入, 向其发送成为其成员的数据包.以便节省能量.簇头建立阶段:初始阶段,每个节点从0和1中随机产生一个数,如果这个数小于阀值T(n),该节点就成为当前轮的簇头。
基于LEACH算法的无人机组网仿真验证
![基于LEACH算法的无人机组网仿真验证](https://img.taocdn.com/s3/m/32386bfb0066f5335b8121b1.png)
基于LEACH算法的无人机组网仿真验证作者:李安然赵晓东李嘉俊武晓勇来源:《现代信息科技》2020年第02期摘; 要:随着多无人机协同工作的兴起和发展,无人机网型协同合作的研究已成为当前热门话题。
无人机组也存在如传输宽带有限,安全性能低,信道捕获力低等问题,除此外也存在自身的特性和优势:功能多样性,节点高速移动性,网络“自管理”性。
现有技术运用GPS系统,为节点实时提供定位和时间等信息,使无人机自组网路由理论到实现变得更为简单。
文章对LEACH算法进行了介绍和说明,并进行了仿真和分析,并将其与SEP算法比较,有效验证了其长续航能力的特性及协议的有效性、实用性和建模分析的正确性。
关键词:无人机;组网技术;LEACH;低能耗中图分类号:TN929.5;TP212.9 ; ; ;文献标识码:A 文章编号:2096-4706(2020)02-0068-03Abstract:With the rise and development of multi UAV cooperative work,the research of UAV network cooperation has become a hot topic. There are also some problems in the UAV,such as limited transmission bandwidth,low security performance and low channel capture power. In addition to its own characteristics and advantages,such as the diversity of functions,the high-speed mobility of nodes,and the “self-management” of the network. The existing technology uses GPS system to provide real-time positioning and time information for nodes,which makes the theory and implementation of UAV ad hoc network routing easier. In this paper,LEACH algorithm is introduced,simulated and analyzed,and compared with SEP algorithm,which effectively verifies the characteristics of its long endurance capability,the validity,practicability of the protocol and the correctness of modeling analysis.Keywords:UAV;networking technology;LEACH;low energy consumption0; 引; 言在自組网络中,通过无线通信技术,每架无人机的位置、速度、剩余能量等数据信息可以被实时共享,实现数据资源的高效利用。
LEACH 算法MATLAB仿真及其改进
![LEACH 算法MATLAB仿真及其改进](https://img.taocdn.com/s3/m/4dca83f7770bf78a652954fe.png)
LEACH 算法MATLAB 仿真及其改进1. LEACH 原理LEACH 协议,全称是“低功耗自适应集簇分层型协议” (Low Energy Adaptive Clustering Hierarchy),是一种无线传感器网络路由协议。
基于LEACH 协议的算法,称为LEACH 算法。
LEACH 是MIT 的Chandrakasan 等人为无线传感器网络设计的低功耗自适应聚类路由算法。
与一般的平面多跳路由协议和静态聚类算法相比,LEACH 可以将网络生命周期延长15%,主要通过随机选择聚类首领,平均分担中继通信业务来实现。
LEACH 定义了“轮”(round)的概念,一轮由初始化和稳定工作两个阶段组成。
为了避免额外的处理开销,稳定态一般持续相对较长的时间。
在初始化阶段,聚类首领是通过下面的机制产生的。
传感器节点生成0,1之间的随机数,如果大于阈值T,则选该节点为聚类首领T 的计算方法如下:()[]p r P PT 1mod 1-= (1)其中p 为节点中成为聚类首领的百分数,r 是当前的轮数。
当簇头选定之后,簇头节点主动向网络中节点广播自己成为簇头的消息。
接收到此消息的节点,依据接收信号的强度,选择它所要加入的簇,并发消息通知相应的簇头。
基于时分多址(Time Division Multiple Address ,简称TDMA)的方式,簇头节点为其中的每个成员分配通信时隙,并以广播的形式通知所有的簇内节点。
这样保证了簇内每个节点在指定的传输时隙进行数据传输,而在其他时间进入休眠状态,减少了能量消耗。
在稳定工作阶段,节点持续采集监测数据,在自身传输时隙到来时把监测数据传给簇头节点,簇头节点对接收到数据进行融合处理之后,发送到Sink 节点,这是一种减小通信业务量的合理工作模式。
持续一段时间以后,整个网络进入下一轮工作周期,重新选择簇头节点。
LEACH 协议采用动态转换簇头的方法来平均网络节点的能量消耗,使因能量耗尽而失效的节点呈随机分布状态,因而与一般的多跳路由协议和静态簇算法相比,LEACH 可以将网络生命周期延长15%。
基于LEACH的WSNs分簇优化策略
![基于LEACH的WSNs分簇优化策略](https://img.taocdn.com/s3/m/2e0b812111661ed9ad51f01dc281e53a5802516d.png)
基于LEACH的WSNs分簇优化策略李亚男;徐夫田;陈金鑫【摘要】针对LEACH算法中能量消耗不均匀的缺陷,本文提出了一种改进的路由协议来提高无线传感器网络的能量效率。
在簇首选择阶段,引入节点剩余能量和初始能量来调节传感器节点随机数的大小;在成簇阶段,该算法将节点的剩余能量和距离汇聚节点的远近作为成簇的依据,使簇首的分布更加合理;在数据传输阶段,将节点与汇聚节点之间的距离及节点的剩余能量相结合,提出一种单跳与多跳相结合的传输方式,从而减少了能量消耗。
仿真实验表明,改进后的算法能够更好的减少能耗,延长无线传感器网络的生命周期。
%To solve the unevenness of energy consumption in LEACH,We propose an improved routing protocolto improve the energy efficiency of the wireless sensor networks. In the cluster heads selection stage, this paper introduces residual energy and initial energy of the sensor nodes as two important components to adjusts the values of random numbers. In clustering stage, the algorithm uses the residual energy and the distance between sensor nodes and the Sink node as the basis for clustering to make the distribution of the cluster heads more reasonable. In the stage of data transmission,a route method,which combines single hop route with multi-hop route according to the distance between sensor nodes and the Sink node and the residual energy, is proposed to reduce energy consumption. Simulation results demonstrate that the improved algorithm is more efficient in reducing energy consumption and prolonging the life cycle of wireless sensor networks.【期刊名称】《传感技术学报》【年(卷),期】2014(000)005【总页数】5页(P670-674)【关键词】无线传感器网络;LEACH算法;随机数;剩余能量【作者】李亚男;徐夫田;陈金鑫【作者单位】山东师范大学信息科学与工程学院,济南250014;山东省地方税务局信息中心,济南250014;山东师范大学信息科学与工程学院,济南250014【正文语种】中文【中图分类】TP393无线传感器网络是由大量低成本、低能量的无线传感器节点组成的,它们被部署在指定的区域,动态的收集环境信息、相互协作,不断的将重要数据信息传到汇聚节点,达到无人值守、自动检测环境的目的[1-2]。
LEACH分簇算法实现和能量控制算法实现
![LEACH分簇算法实现和能量控制算法实现](https://img.taocdn.com/s3/m/b3c420d2c8d376eeafaa3124.png)
一:题目1、在给定WSN的节点数目(100)前提下,节点随机分布,按照LEACH算法,实现每一轮对WSN的分簇。
记录前K轮(k=10)时,网络的分簇情况,即每个节点的角色(簇头或簇成员)。
标记节点之间的关系,标记其所属的簇头。
2、在1的基础上,增加能量有效性控制:给定的所有节点具有相同的能量,考察第一个节点能量耗尽出现在第几轮。
节点的能量消耗仅考虑关键的几次通信过程,其他能量消耗不计。
通信过程能量消耗规则如下:Setup:簇成元:每次收到候选簇头信息-1,每个候选簇头仅被收集一次;通知簇头成为其成员,发送信息-2。
候选簇头:被簇成元接收信息,即发送信息,能量-2;被通知成为簇头,接收信息能量-1。
Steady:每个簇成员每轮向簇头发送10次数据,每次成员能量-2,簇头能量-1。
二:目的(1)在固定节点个数的前提下,仿真LEACH算法的分簇过程。
(2)在上述节点个数和分簇算法的前提下,计算节点的能量消耗,判断能量消耗到0的节点出现在第几轮。
三:方法描述(1)LEACH分簇簇头选举初始阶段,每个节点根据所建议网络簇头的百分比(事先确定)和节点已经成为簇头的次数来确定自己是否当选为簇头。
每个节点产生一个0-1的随机数字,如果该数字小于阈值,节点成为当前轮的簇头。
阈值其他其中,P为预期的簇头百分比,r为当前轮数,G是最近1/p轮里没有成为簇头的节点的集合。
首先确定传感器网络中的节点个数为100个,并对所有节点初始化其三个属性,分别有type(节点类型),selected(是否当选过簇头)和temp_rand(随机数)。
设定簇头产生概率p=0.08。
算法步骤如下:Step1:随机生成100个节点位置,并赋值随机数temp_rand,设置type和selected为’N’。
Step2:将所有selected为’N’的节点随机值与做比较,若temp_rand小于等于则转向Step3,否则转向Step4。
Step3:表明节点当选为簇头节点,将type赋值’C’, selected赋值’O’。
基于LEACH的分簇优化及多跳传输算法
![基于LEACH的分簇优化及多跳传输算法](https://img.taocdn.com/s3/m/0d5f074b7dd184254b35eefdc8d376eeaeaa17dc.png)
物联网技术 2023年 / 第7期460 引 言无线传感器网络(WSN )拥有感知、通信和数据处理的能力,重量轻,体积小,方便部署,是一种获取信息的全新平台。
它能够不间断地对分布在其网络区域内的对象进行监测并进行数据采集上传。
WSN 是一种动态网络,具有移动性和自组织性。
网络节点一般由电池供电,但是容量有限且电池更换和充电不够便捷。
本文着重考虑了网络运行过程中节点的剩余能量和到达基站的距离这两个因素,以便对能耗进行合理控制,进而提高传感器网络整体的运行时间。
WSN 路由协议分为平面路由协议和分簇路由协议。
平面路由协议在小范围检测的应用场合中有很大优势,部分节点的死亡不会影响整体网络的拓扑结构。
但是随着监测规模的扩大,传输时延、传输能耗也在不断增加,并且准确性也会下降。
因此就有了分簇路由协议,它是对平面路由协议在大规模网络监测中的改进。
LEACH 协议就是分簇路由协议中的典型代表[1],同时LEACH 协议也存在着诸多问题。
例如:簇头选举不合理,网络中节点能耗不均[2]。
文献[3]对经典LEACH 算法进行了改进,考虑了节点的剩余能量使得簇头选举更加合理。
文献[4]提出了一种新的LEACH 改进协议IMP-LEACH ,并改进了蚁群算法,找到最优路径实现数据转发。
文献[5]设计出一种多跳路由方法,簇首之间通过中继将数据转发到基站;引入了节点入簇参量,把簇成员个数作为入簇条件之一,大大降低了网络能耗;文献[6]提出了一种区域分簇的思想,利用基站进行逻辑分簇,将满足条件的相邻簇进行合并;文献[7]采用模糊C 均值聚类算法对网络节点进行聚类分簇,簇内考虑节点的剩余能量和位置信息进行簇首的选举;文献[8]采用粒子群算法将网络区域分成多个子区域,在子区域内考虑剩余能量的因素进行选举;文献[9]提出一种改进的LEACH_IMP 协议,考虑了节点的剩余能量、簇首间中继节点的选择,并改进了阈值公式,既保证了所选簇头的健壮性,又降低了远距离信息传输带来的损耗。
无线传感网络中能量和距离改良的LEACH分簇算法
![无线传感网络中能量和距离改良的LEACH分簇算法](https://img.taocdn.com/s3/m/37dcf7253868011ca300a6c30c2259010302f354.png)
无线传感网络中能量和距离改良的LEACH分簇算法邬厚民【摘要】LEACH算法作为经典分簇算法在无线传感器网络中有着广泛应用,但由于没有考虑簇头数量及监测区域等因素,使得网络消耗巨大,大大缩减了网络的生命周期.针对这一缺陷,在Warneke的最优覆盖定理的基础上,提出CDE-LEACH算法,通过在基站中预构建“数据表”存储最优覆盖理想簇头位置坐标,结合保证网络能量消耗最小这一目标来选取最优的簇头,改善LEACH算法随机选择簇头的弊端.在Matlab 7.0实验仿真平台下对提出的CDELEACH算法进行仿真,与LEACH算法结果对比发现,网络能量消耗大大减少,并且延长了网络生命周期.%LEACH algorithm as a classic clustering algorithm is widely used in wireless sensor networks. But for the number of cluster head, monitoring areas and other factors are not taken into consideration, the network greatly consumes, and its life is hugely reduced. To overcome these defects, the author proposed a kind of CDE-LEACH algorithm on the basis of the optimal covering theorem presented by Wameke. In the suggested algorithm, iv pre-built "data table" to storage optimal coverage location coordinates of the ideal cluster head in the base station and combined with the goal of guaranteeing minimum network energy consumption to select the optimal cluster head, and to overcome the drawbacks of the cluster head randomly selected by the LEACH algorithm. The simulations of CED -LEACH algorithm and LEACH algorithm were carried out on the experimental simulation platform, Matlab 7.0, and their results were compared. The results show thesuggested algorithm greatly reduced the network energy consumption, and extend the network life cycle.【期刊名称】《中国测试》【年(卷),期】2012(038)005【总页数】5页(P62-65,101)【关键词】最优覆盖;CDE-LEACH算法;分簇;能量;距离【作者】邬厚民【作者单位】广州科技贸易职业学院,广东广州511442【正文语种】中文【中图分类】O233;TN926;TP393;TM930.120 引言能耗问题一直是制约无线传感器网络发展的关键问题。
LEACH算法仿真结果
![LEACH算法仿真结果](https://img.taocdn.com/s3/m/83275c4dcc7931b765ce15bf.png)
仿真一:在100*100 的区域内随机生成100 个节点 ( matlab 仿真代码:clear;xm=100;%x 轴范围ym=100;%y 轴范围sink.x=0.5*xm;% 基站x 轴50sink.y=0.5*ym;% 基站y 轴50n=100;E0=0.02;for i=1:1:nS(i).xd=rand(1,1)*xm;S(i).yd=rand(1,1)*ym;S(i).G=0;% 每一周期结束此变量为0 S(i).E=E0;% 设置初始能量为E0 S(i).type='N';% 节点类型为普通plot(S(i).xd,S(i).yd,'o');hold on;end%设置SINK 节点的坐标S(n+1).xd=sink.x;S(n+1).yd=sink.y;plot(S(n+1).xd,S(n+1).yd,'*');% 绘制基站节点仿真结果图片:‘ O'代表随机散布的节点,’* '代表SINK节点)100. CJ ■-1H I L IL L L L* Q-O90 L r-.门 c ° 0』亠1E 小■-80 —0 QC O Q70 1”o o o QC0°C Q60 O J」u「一A o50 -• *oO o □oo o40 —0 oo O30O ccP c 」。
° % 020 = c C |2 7 Co o c W10Q_ v? O0 Q n0 i J. Qn L f r i f r r0 10 20 30 40 50 60 70 80 90 100仿真二:LEACH分簇效果图(matlab代码见附件)仿真结果:(p=0.1)1、簇头个数14.100905I ctJ_ oE £L*1 L1(g80 K J*QQ o70 一o-60 -辛-50 -如宀七—**0 Q r-h.40 一土7 o一30 ”•=t=-■o o <b l' l20 --*10 k-/-1r J i r r 1 t〕1! 一r0 10 20 30 40 50 60 70 80 90 100100 2、簇头个数:113、簇头个数:12100厂 1I [1L.1 IIr c奋L90 -卡Q- 80■*却o■70 「4oQQO 160 po+ oQ0 OQO50■40 -Q0 Q QJ|O Q-Q+- 30 --ooi 內 co ◎o20l' wQ10 一_ j-c0 ■ ( L i(JLj rr t L10 2030405060 70 80 90 1004、簇头个数:10100£ L ■ L O*OoI Q IcO- **oJ 0"皓 + jgo o l;.°5Q Q*4=-c O「■■--* r ?,-Xf )r~j%QOJi『1LJTr Lf L1009080 70 60 5040 30 20 1010 20 30 405060708090(p=0.05) 1、簇头=6100 90 80 70 60 50 40 30 20 102、簇头=7L.1七L B 1 1*lL L--o o*fjftzjC0Q*—*)°如-■-*一* o cP!. iex-tr r I rr r rr 90 80 70 6050 4030 20 1010 20 30 40 5060 70809010010 20 30 40 50 60 70 80 90 10010006 08 0Z 09 09 017OSOSOL4-OLOSOS0170909OZ0806 00 L 06 08 OZ 09 09 017 OS 0 乙OL 010203040506070 8090100xLEACH分簇算法成簇效果图 100 — __ Q2 Q90一fj__fj-簇头~^宰80 — 普通节点一尸 O 话70 —G + 苇广Q X )QOQOocW-o 60Q辛 0-oy50 —SINK 节点—>七> *40 PoO30C51f °。
leach
![leach](https://img.taocdn.com/s3/m/51a6c1b3c77da26925c5b06b.png)
计算过程:
figure(1); for i=1:1:n %checking if there is a dead node if (S(i).E<=0) plot(S(i).xd,S(i).yd,'red .'); dead=dead+1; if(S(i).ENERGY==1) dead_a=dead_a+1; end if(S(i).ENERGY==0) dead_n=dead_n+1; end hold on; end if S(i).E>0 S(i).type='N'; if (S(i).ENERGY==0) plot(S(i).xd,S(i).yd,'o'); end if (S(i).ENERGY==1) plot(S(i).xd,S(i).yd,'+'); end hold on; end end plot(S(n+1).xd,S(n+1).yd,'x'); STATISTICS(r+1).DEAD=dead; DEAD(r+1)=dead; DEAD_N(r+1)=dead_n; DEAD_A(r+1)=dead_a; %When the first node dies if (dead==1) if(flag_first_dead==0) first_dead=r flag_first_dead=1; end end countCHs=0; cluster=1; for i=1:1:n if(S(i).E>0) temp_rand=rand; if ( (S(i).G)<=0) %Election of Cluster Heads if(temp_rand<= (p/(1-p*mod(r,round(1/p))))) countCHs=countCHs+1; packets_TO_BS=packets_TO_BS+1; PACKETS_TO_BS(r+1)=packets_TO_BS; S(i).type='C'; S(i).G=round(1/p)-1; C(cluster).xd=S(i).xd; C(cluster).yd=S(i).yd; plot(S(i).xd,S(i).yd,'k*'); distance=sqrt( (S(i).xd-(S(n+1).xd) )^2 + (S(i).yd-(S(n+1).yd) )^2 ); C(cluster).distance=distance; C(cluster).id=i; X(cluster)=S(i).xd; Y(cluster)=S(i).yd; cluster=cluster+1; %Calculation of Energy dissipated distance; if (distance>do) S(i).E=S(i).E- ( (ETX+EDA)*(4000) + Emp*4000*( distance*distance*distance*distance )); end if (distance<=do) S(i).E=S(i).E- ( (ETX+EDA)*(4000) + Efs*4000*( distance * distance )); end end end end end
leach协议matlab仿真代码
![leach协议matlab仿真代码](https://img.taocdn.com/s3/m/1579b1ecc9d376eeaeaad1f34693daef5ef7130c.png)
leach协议matlab仿真代码LEACH協議clear;%清除內存變量xm=100;%x軸範圍ym=100;%y軸範圍sink.x=0.5*xm;%基站x軸sink.y=0.5*ym;%基站y軸n=100;%節點總數p=0.1;%簇頭概率E0=0.02;%初始能量ETX=50*0.000000000001;%傳輸能量,每bitERX=50*0.000000000001;%接收能量,每bitEfs=10*0.000000000001;%耗散能量,每bitEDA=5*0.000000000001;%融合能耗,每bitcc=0.6;%融合率rmax=1000;%總輪數CM=32;%控制信息⼤⼩DM=4000;%數據信息⼤⼩figure(1);%顯⽰圖⽚for i=1:1:nS(i).xd=rand(1,1)*xm;S(i).yd=rand(1,1)*ym;S(i).G=0;%每⼀週期結束此變量為0S(i).E=E0;%設置初始能量為E0S(i).type='N';%節點類型為普通plot(S(i).xd,S(i).yd,'o');hold on;%保持所畫的圖像end%為每個節點隨機分配坐標,並設置初始能量為E0,節點類型為普通S(n+1).xd=sink.x;S(n+1).yd=sink.y;plot(S(n+1).xd,S(n+1).yd,'x');%繪製基站節點flag_first_dead=0;%第⼀個死亡節點的標誌變量for r=1:1:rmax%開始每輪循環r+1%顯⽰輪數if(mod(r,round(1/p))==0)for i=1:1:nS(i).G=0;endend%如何輪數正好是⼀個週期的整數倍,則設置S(i).E為0hold off;%每輪圖⽚重新繪製cluster=0;%初始簇頭數為0dead=0;%初始死亡節點數為0figure(1);for i=1:1:nif(S(i).E<=0)plot(S(i).xd,S(i).yd,'red .');dead=dead+1;%將能量⼩於等於0的節點繪製成紅⾊,並將死亡節點數增加1if(dead==1)if(flag_first_dead==0)first_dead=r %第⼀個節點的死亡輪數save ltest, first_dead;flag_first_dead=1;endend%將能量⼩於等於0的節點繪製成紅⾊,並將死亡節點數增加1hold on;elseS(i).type='N';plot(S(i).xd,S(i).yd,'o');%繪製其他節點hold on;endendplot(S(n+1).xd,S(n+1).yd,'x');%繪製基站Dead(r+1)=dead; %每輪有死亡節點數save ltest, Dead(r+1);%將此數據存⼊ltest⽂件for i=1:1:nif(S(i).E>0)if(S(i).G<=0)temp_rand=rand;%取⼀個隨機數if(temp_rand<=(p/(1-p*mod(r,round(1/p)))))%如果隨機數⼩於等於S(i).type='C';%此節點為此輪簇頭S(i).G=round(1/p)-1;%S(i).G設置為⼤於0,此週期不能再被選擇為簇頭cluster=cluster+1;%簇頭數加1C(cluster).xd=S(i).xd;C(cluster).yd=S(i).yd;%將此節點標誌為簇頭plot(S(i).xd,S(i).yd,'k*');%繪製此簇頭distance=sqrt((S(i).xd-(S(n+1).xd))^2+(S(i).yd-(S(n+1).yd))^2);%簇頭到基站的距離C(cluster).distance=distance;%標誌為此簇頭的距離C(cluster).id=i; %此簇頭的節點idpacket_To_BS(cluster)=1;%發送到基站的數據包數為1endendendendCH_Num(r+1)=cluster; %每輪的簇頭數save ltest,CH_Num(r+1);%保存每輪簇頭數到ltestfor i=1:1:nif(S(i).type=='N'&&S(i).E>0)%對每個能量⼤於0且⾮簇頭節點min_dis=sqrt((S(i).xd-(C(1).xd))^2+(S(i).yd-(C(1).yd))^2);%計算此節點到簇頭1的距離min_dis_cluster=1;for c=2:1:clustertemp=sqrt((S(i).xd-(C(c).xd))^2+(S(i).yd-(C(c).yd))^2);if(temp<min_dis)min_dis=temp;min_dis_cluster=c;endend%選擇此幾點到哪個簇頭的距離最⼩packet_To_BS(min_dis_cluster)=packet_To_BS(min_dis_cluster)+1;%將此節點加⼊的簇 %頭節點數據包數加1Er1=ERX*CM*(cluster+1);%此節點接收各個簇頭的控制信息%此節點加⼊的簇的簇頭時隙控制信息的總接收能耗Et1=ETX*(CM+DM)+Efs*(CM+DM)*min_dis*min_dis;%此節點發送加⼊信息和發送數據信息 %到簇頭的能耗S(i).E=S(i).E-Er1-Et1;%此輪後的剩餘能量endendfor c=1:1:cluster%各個簇頭packet_To_BS(c);%簇頭需發送到基站的數據包個數CEr1=ERX*CM*(packet_To_BS(c)-1);%收到此簇各個節點加⼊信息的能耗CEr2=ERX*DM*(packet_To_BS(c)-1);%收到此簇各個節點數據信息的能耗CEt1=ETX*CM+Efs*CM*(sqrt(xm*ym))*(sqrt(xm*ym));%此簇頭廣播成簇信息的能耗CEt2=(ETX+EDA)*DM*cc*packet_To_BS(c)+Efs*DM*cc*packet_To_BS(c)*C(c).distance*C(c).distance;%簇頭將所以數據融合後發往基站的能耗S(C(c).id).E=S(C(c).id).E-CEr1-CEr2-CEt1-CEt2;%此輪後簇頭的剩餘能量endfor i=1:1:nR(r+1,i)=S(i).E; %每輪每節點的剩餘能量% save ltest,R(r+1,i);%保存此數據到ltestendhold on;end。
Leach协议分析及其Matlab实现
![Leach协议分析及其Matlab实现](https://img.taocdn.com/s3/m/cc83d1b6524de518964b7da8.png)
Leach协议分析及其Matlab实现作者:王娟来源:《软件导刊》2016年第01期摘要摘要:Leach协议是无线传感器网络的一种典型层次型拓扑控制算法,许多层次型拓扑控制算法都是基于Leach进行研究和改进的。
研究了Leach协议的工作原理,对其优缺点进行了分析,使用Matlab进行了仿真实验。
关键词关键词:Leach协议;簇头;生存周期;无线传感器网络DOIDOI:10.11907/rjdk.1511122中图分类号:TP393文献标识码:A文章编号文章编号:16727800(2016)0010151020引言随着微电子技术、计算机技术、无线通信技术的迅猛发展,无线传感器网络技术得到了广泛应用,对人类社会产生了极大的影响。
相信不远的将来,无线传感器网络会无处不在,融入我们的日常生活中。
无线传感器网络由大量微小、廉价的传感器节点构成,它们被放置在需要监测的区域内,这些传感器节点负责采集数据,并通过自组织网络将信息传输给汇聚节点。
与传统网络相比,其特点是:网络拓扑动态变化、节点能量有限且不能再生,因此降低网络能耗、延长网络生存周期是无线传感器网络设计的重要目标之一。
为此,无线传感器网络的路由协议成为研究重点。
由于无线传感器网络通过无线信号传输,网络拓扑是动态变化自组织,数据传输无需人工干预。
因此,传统的基于有线网络的路由算法已经不再适应,必须依据无线传感器网络的独有特点研究新的路由。
(Low Energy Adaptive Clustering Hierarchy)是一种低功耗自适应分簇算法,由美国麻省理工学院Henizelman等人于2000年提出。
Leach算法是最早的典型层次型拓扑控制算法,许多层次型拓扑控制算法都是基于Leach算法进行改进的,因此它为无线传感器网络层次型路由协议的研究奠定了基础。
本文将对Leach协议进行研究和分析,并用Matlab软件仿真实现。
1leach协议原理Leach的基本思想是:周期性地循环随机选择簇头节点,簇头节点接收簇内节点的数据后,将数据融合转发给骨干节点,从而将整个网络的能量负载均衡分配到每个传感器节点上,以实现最大化网络生存时间、降低网络能耗的目的。
基于LEACH协议的分簇算法设计
![基于LEACH协议的分簇算法设计](https://img.taocdn.com/s3/m/28dec534580216fc700afd6b.png)
基于LEACH协议的分簇算法设计摘要:基于对LEACH算法的研究,提出助理簇头ASCH算法。
该算法能够在无线传感器网络中,根据簇头节点所处的地理位置、剩余能量及簇内成员节点数目,动态决定是否需要在簇内产生助理簇头,并在需要产生助理簇头的簇内选择合适的节点来减少簇头通信能耗,同时解决某些簇头与基站通信可能存在困难的问题,从仿真结果可见此算法能有效均衡及降低网络能耗,达到延长网络的生存时间的目的。
关键词:无线传感器网络;LEACH算法;分簇算法;助理簇头;通信能耗0 引言在层次路由协议中,无线传感器网络被划分成多个簇,每个簇由一个簇头节点(Cluster Head)及多个簇内成员节点(Cluster Member)构成,多个簇头形成高一级网络。
在高一级网络中,又可以再分簇,再次形成更高一级网络,一直到最高级的汇聚节点为止。
层次结构中,每个簇的形成常常是基于节点能量及与簇头的接近程度。
簇头不仅要负责簇内信息的采集及融合处理,还要负责簇间的数据转发,它的可靠性和稳定性对于整个网络性能影响较大,信息的收集和处理也将消耗簇头的大部分能量。
1 LEACH协议LEACH(Low Energy Adaptive Clustering Hierarchy)是为无线传感器网络设计的一种低功耗自适应的层次路由协议。
它的基本思想是以循环方式随机选取簇头,将网络的能量负载平均的分配到每一个节点之上,从而降低能耗和延长网络生命周期。
主要是通过随机选择簇头节点,平均的分担转发通信任务来实现。
LEACH算法中通过引入“轮(Round)”的概念,每轮由构建阶段(Set-up)以及稳态阶段(Stead-state)构成。
构建阶段中节点被分成若干簇,且产生相应簇头;稳态阶段中数据从非簇头节点被发给簇头节点,在簇头节点上处理后发给汇聚节点。
在簇的构建阶段,簇头节点的选择根据所需的簇头总数以及迄今为止每一个节点已成为簇头的次数来决定。
具体选择办法是每一个节点选择0~1之间的一个随机数,如选的a小于某阈值T(n),那这个节点就成为簇头节点。
基于LEACH协议的簇头优化协议研究
![基于LEACH协议的簇头优化协议研究](https://img.taocdn.com/s3/m/e4b9237cae1ffc4ffe4733687e21af45b307fec9.png)
基于LEACH协议的簇头优化协议研究张长宏;昝风彪;唐明虎【摘要】针对无线传感器网络的特点,在研究LEACH协议的基础上,提出了一种新的优化的分簇多跳算法。
该算法使用能量因子修正了LEACH协议中的的阈值,产生簇头。
再将选好的簇头以距离最短为原则生成一条基站到各簇头的链,采集的数据在簇头融合后按生成的链以多跳的方式提交给基站。
MATLAB仿真结果显示,该协议能有效地延长网络的稳定期。
%According to the characteristics of the wireless sensor network, on the basis of the research of LEACH, this paper puts forward a new protocol multi-hop clustering algorithm. The algorithm uses energy factor to fix the threshold value of LEACH, and produce the cluster head. Then the shortest distance principle is used to make a chain from base station to cluster head, the mixing data in cluster head is submitted to base station in the way of muhi-hop by chain. MATLAB simulation shows that the improved protocol can effectively prolong the stable time of network.【期刊名称】《微型机与应用》【年(卷),期】2012(031)019【总页数】3页(P65-67)【关键词】无线传感器网络;LEACH协议;分簇协议;多跳网络【作者】张长宏;昝风彪;唐明虎【作者单位】青海民族大学计算机学院,青海西宁810007;青海民族大学计算机学院,青海西宁810007;青海民族大学计算机学院,青海西宁810007【正文语种】中文【中图分类】TP393无线传感器网络 WSN (Wireless Sensor Network)是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成一个多跳的自组织的网络系统。
LEACH路由协议最优簇头数计算方法
![LEACH路由协议最优簇头数计算方法](https://img.taocdn.com/s3/m/953fe536dc36a32d7375a417866fb84ae45cc3c6.png)
LEACH路由协议最优簇头数计算方法郭前岗;周德祥;周西峰【摘要】针对计算无线传感器网络的LEACH路由协议最优簇头数时,只考虑了稳定传输阶段的能量损耗,而忽略了建立阶段的能量损耗,从而导致节点加快死亡、网络能量利用率低的问题,提出了一种改进的最优簇头数计算方法.该方法根据所有节点在一轮消耗的总能量,从能量消耗最小的角度推算出了最佳的簇头数范围,通过控制簇头的数量来改善网络的性能,MATLAB仿真结果表明,该方法均衡了网络中的能量消耗,延长了网络的寿命.【期刊名称】《微型机与应用》【年(卷),期】2013(032)003【总页数】4页(P61-63,66)【关键词】无线传感器网络;LEACH路由协议;能量消耗;最优簇头数【作者】郭前岗;周德祥;周西峰【作者单位】南京邮电大学自动化学院,江苏南京210046;南京邮电大学自动化学院,江苏南京210046;南京邮电大学自动化学院,江苏南京210046【正文语种】中文【中图分类】TP393无线传感器网络是由大量传感器节点以自组织的方式构成的无线网络,其目的是协作地感知、采集和处理区域中感知对象的信息,并发布给观察者[1]。
由于传感器节点的计算、通信能力及能量都十分有限,因此,如何有效地使用能量均衡能量的消耗并延长网络生存时间成为无线传感器网络研究的重点之一[2]。
本文研究了低功耗自适应集群分层型路由协议LEACH。
在簇头数选取时,如果簇头数过多,簇头要与远距离的基站通信,其消耗的能量将远远大于其他的成员节点,同时采集到的数据有冗余,浪费了较多的能量。
如果簇头数太少,也就失去了LEACH协议分层的意义,同时簇头节点接收的信息量大,会增加簇头的工作量,导致簇头节点能量过快地消耗完而死亡[3]。
因此,簇头数量的多少直接影响网络的能量消耗,选择一个合适的簇头数能够使网络的能量消耗平均到每一个节点,延长网络的寿命。
参考文献[4]针对最优簇头数的计算进行了研究,但是其只考虑了稳定传输阶段的能量消耗,而没有考虑建立阶段节点的能量消耗,本文在其基础上进行改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DEAD_N(r+1)=dead_n;
DEAD_A(r+1)=dead_a;
%When the first node dies
if (dead==1)
if(flag_first_dead==0)
first_dead=r
flag_first_dead=1;
if S(i).E>0
S(i).type='N';
end
end
%plot(S(n+1).xd,S(n+1).yd,'x');
if (dead == n)%节点全部死亡退出循环
break;
end
STATISTICS(r+1).DEAD=dead;
leach分簇算法仿真(基于matlab)
2007-12-07 21:46
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
%Eelec=Etx=Erx
ETX=50*0.000000001;
ERX=50*0.000000001;
%Transmit Amplifier types
Efs=10*0.000000000001;
Emp=0.0013*0.000000000001;
%Data Aggregation Energy
% You can find full documentation and related information at: %
% /sep %
% %
% IEEE Transactions on Wireless Communications, 1(4):660-670,2002 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is the LEACH [1] code we have used. %
% The same code can be used for FAIR if m=1 %
% %
end
end
countCHs=0;
cluster=1;
for i=1:1:n
if(S(i).E>0)
temp_rand=rand;
if ( (S(i).G)<=0) %如果该节点在候选集合中
%Election of Cluster Heads
% To report your comment or any bug please send e-mail to: %
% gsmaragd@ %
% %
EDA=5*0.000000001;
%Values for Hetereogeneity
%Percentage of nodes than are advanced
m=1;
%\alpha
a=1;
INFINITY = 999999999999999;
%maximum number of rounds
flag_first_dead=0;
for r=0:1:rmax %主循环,每次1轮
r
%Operation for epoch
if(mod(r, round(1/p) )==0)
for i=1:1:n
S(i).G=0;
S(i).cl=0;
end
figure(1);
for i=1:1:n
%checking if there is a dead node
if (S(i).E<=0)
% plot(S(i).xd,S(i).yd,'red .');
dead=dead+1;
end
C(cluster).xd = S(i).xd;
end
hold off;
%Number of dead nodes
dead=0;
%Number of dead Advanced Nodes
dead_a=0;
%Number of dead Normal Nodes
dead_n=0;
%counter for bit transmitted to Bases Station and to Cluster Heads
rmax=2000
%%%%%%%%%%%%%%%%%%%%%%%%% END OF PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%
%Computation of do
do=sqrt(Efs/Emp);
%Creation of the random Sensor Network
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
%First Iteration
figure(1);
%counter for CHs
countCHs=0;
%counter for CHs per round
rcountCHs=0;
cluster=1;
countCHs;
rcountCHs=rcountCHs+countCHs;
% S(i).ENERGY=1;
% %plot(S(i).xd,S(i).yd,'+');
% %hold on;
% end
end
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
%plot(S(n+1).xd,S(n+1).yd,'x');
clear;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Field Dimensions - x and y maximum (in meters)
xm = 200;
ym = 200;
%x and y Coordinates of the Sink
sink.x =0.5 * xm;
sink.y = ym + 50;
%Number of Nodes in the field
n = 200
%Optimal Election Probability of a node
% [1] W.R.Heinzelman, A.P.Chandrakasan and H.Balakrishnan, %
% "An application-specific protocol architecture for wireless %
% microsensor networks" %
% SEP: A Stable Election Protocol for clustered %
% heterogeneous wireless sensor networks %
% %
packets_TO_BS=0;
packets_TO_CH=0;
%counter for bit transmitted to Bases Station and to Cluster Heads
%per round
PACKETS_TO_CH(r+1)=0;
PACKETS_TO_BS(r+1)=0;
%to become cluster head
p=0.05;
packetLength = 4000;%数据包长度
ctrPacketLength = 100;%控制包长度
%Energy Model (all values in Joules)
%Initial Energy
Eo = 0.5;
S(i).type='N';%普通节点
temp_rnd0 = i;
%Random Election of Normal Nodes
%if (temp_rnd0>=m*n+1)
S(i).E=Eo;
S(i).ENERGY=0;
figure(1);
for i=1:1:n
S(i).xd=rand(1,1)*xm;%坐标
XR(i)=S(i).xd;
S(i).yd=rand(1,1)*ym;
YR(i)=S(i).yd;
S(i).G=0;
%initially there are no cluster heads only nodes
% (c) Georgios Smaragdakis %
% WING group, Computer Science Department, Boston University %
% %
if( temp_rand <= (p/(1-p*mod(r,round(1/p)))))
countCHs = countCHs+1;
S(i).type = 'C';