传感器网络实验之LEACH分簇

Posted by 周宝航 on May 1, 2018

实验目的

通过模拟LEACH协议的实现,探讨该算法在控制网络能量消耗、提升网络整体生存时间的效果。(其实是想,有缘的学弟学妹们会需要这份报告。毕竟老师十分优秀,要自己写代码实现:)

实验要求

  • 在给定节点数目的情况下,随机生成传感器网络。之后,按照LEACH的介绍,实现对WSN的分簇。实验过程中,记录前K轮并绘制第K轮时,网络的分簇情况,即每个节点的角色及其关系,如是簇成员,标记其所属的簇头。
  • 基于上一实验要求,考虑如下两种情况:(1)给定所有节点具有相同能量,考查第一个节点能量耗尽出现在第几轮。(2)节点具有不同的能量,考查第一个节点能量耗尽出现在第几轮。根据简化后的通信过程,完成这一实验要求。

实验结果

  • 第一部分,分簇结果。展示了第三轮、第四轮的分簇结果图,其中,’X’号表示已被选为簇头的节点,而不再成为簇头;圆点表示普通节点;方形节点表示当前轮选为簇头的节点。对比第3轮与第4轮的分簇结果,可以看到上一轮成为簇头的节点,在这一轮将不再成为簇头。在第4轮中,实验得到了6个簇头,并将网络分为相应的6个簇。

Alt text Alt text

  • 第二部分,能量控制结果。由于分簇过程中,节点能量会随着通信过程而减少。LEACH的主要功能在于负载均衡,提高网络的生存周期。实验中,网络共有100个节点,起始能量为5000。根据上图结果,我们看出在第106轮分簇中,出现了第一个节点能量耗尽的情况。 Alt text

实验结论

  • 根据LEACH算法,在每轮分簇中,每个节点产生一个0~1之间的随机数,若该随机数小于阈值,则该节点成为簇头。在实验中,虽然预先设定选取5个簇头节点,但实际运行时,可能得到不同数目的簇头。这一点是随机值产生的影响。在实际工程中,这一点对于孤立节点不具有较好的鲁棒性,容易导致孤立节点的能量消耗加快。

  • 不过,在实际布撒传感器节点后,LEACH算法将整个网络的能量负载均匀分配到网络中的每个传感器节点,从而达到降低网络能耗,提高网络生存周期的目的。这对于指导实际工程中传感器网络能量控制有着重要的意义。

Matlab代码下载