LEACH分簇算法实现和能量控制算法实现.doc

LEACH分簇算法实现和能量控制算法实现.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word格式整理版 文档可编辑 一:题目 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的随机数字,如果该数字小于阈值Tn T 其中,P为预期的簇头百分比,r为当前轮数,G是最近1/p轮里没有成为簇头的节点的集合。 首先确定传感器网络中的节点个数为100个,并对所有节点初始化其三个属性,分别有type(节点类型),selected(是否当选过簇头)和temp_rand(随机数)。设定簇头产生概率p=0.08。 算法步骤如下: Step1:随机生成100个节点位置,并赋值随机数temp_rand,设置type和selected为’N’。 Step2:将所有selected为’N’的节点随机值与Tn做比较,若temp_rand小于等于Tn则转向Step3,否则转向Step Step3:表明节点当选为簇头节点,将type赋值’C’, selected赋值’O’。 Step4:表明节点为普通节点,将type扔赋值’N’, selected不改变赋值。 Step5:遍历所有节点,若节点type为’C’,将节点在图上标记’*’,并标上节点数目。否则将节点在图上标记为’o’,同时标记上节点数目。 Step6:如果节点为普通节点,则计算其与所有簇头的欧式距离,形成距离矩阵。 Step7:利用min函数,找到与普通节点相距最近的簇头,并将其相连接。 Step8:一轮分簇结束,返回Step1开始下一轮分簇过程。 所以在试验中通过计算每个普通节点到所有簇头的距离,并将该普通节点与相距最近的簇头节点相连,并将簇头节点的selected属性标记,保证当过簇头的节点在之后的分簇过程中不会再当选为簇头节点。在10轮的分簇试验中选取5张分簇网络图,具体分簇情况分别如下: 图1 第一轮分簇网络拓扑图 第一轮分簇的簇头和簇成员的分类表如下: 簇头 簇成员 71 3,27,22 28 72,82,40,57,20,28,87,15,48,38,48,25 6 97,55,75,33,78,5,18,99 11 49,83,12,36,89,9,61,52,62 00 98,24,84,17,11,66,69,45,81,96,35,46,84,54,64,54,21 14 13,73,44,47,01 43 16,10,60,74,29,51,19,59,92,56 93 02,58,08,88,67,79,96,33,50,32,53,77,34,39,65,35,37,42,31,70,76,91,30,26 图2 第二,三,四,五轮分簇网络拓扑图 (2)节点能量消耗 试验中通过对能量消耗规律的分析可以得出:假设某轮分簇中第i个簇头的簇成员有a个,所以在这一轮中的通信过程中簇头消耗的能量为2+11*a,簇成员消耗的能量为22。所以增加节点的一个属性为S(i).power,从而到达能量消耗监测的目的。设置标志位,当发现第一个节点能量耗尽情况出现时,则结束程序,并用黑色标记。而已做过簇头的节点用红色标记。 在一次实验中,第一次能量耗尽出现在第5轮。前5轮的图像如下: 图3 前四轮节点能量均剩余情况 图4 第五轮25节点能量耗尽 四:实验结论 在本次实验中首先通过对LEACH算法的分析研究,学习了其进行传感器节点网络分簇的步骤,同时在P=0.08和节点数目为100的前提下通过MATLAB仿真在节点数目不变的情况下10轮的分簇结果。在能量的消耗试验中,首先通过对簇头以及簇成员在一轮分簇通信过程中的能量消耗规律统计,简化了实验步骤。通过仿真,第一个节点

文档评论(0)

smdh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档