• DEEC算法附Matlab代码


    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

    🍎个人主页:Matlab科研工作室

    🍊个人信条:格物致知。

    更多Matlab仿真内容点击👇

    智能优化算法  神经网络预测 雷达通信  无线传感器

    信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

    ⛄ 内容介绍

    无线传感器网络(Wireless Sensor Networks,WSN)是基于数字电路,无线通信,微电机系统等学科发展起来的一个新的研究领域.它是由部署在检测区域内大量廉价的小型传感器节点组成,通过无线通信方式形成的一个自组织无线网络,其作用就是感知周围信息,采集和处理所感知对象的信息,并发送给用户. 本文首先介绍了无线传感器网络的基本概念,体系结构,特点和网络协议栈;然后介绍了无线传感器网络路由协议概念,设计要求和各项性能指标,并对现有几种典型的无线传感器路由协议进行分析比较,总结分簇路由协议的优点,重点分析以DEEC为代表的分簇路由算法:

    ⛄ 部分代码

    clear

    %1.初始参数设定模块

    %.传感器节点区域界限(单位 M)

    xm=100;

    ym=100;

    %(1)汇聚节坐标给定

    sink.x=0.5*xm;

    sink.y=0.5*ym;

    %区域内传器节数

    n=100

    %簇头优化比例(当选簇头的概率)

    p=0.1;

    %能量模型(单位 焦)

    %初始化能量模型

    Eo=0.5;

    %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

    EDA=5*0.000000001;

    %高能量节点超出一节点能量的百分比

    a=1;

    %最大循环次数

    rmax=5000

    %算出参数 do

    do=sqrt(Efs/Emp);

    %2.无线传感器网络模型产生模块

    %构建无线传感器网络,在区域内均匀投放100个节点,并画出图形

    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;

        S(i).E=Eo*(1+rand*a);

        %initially there are no cluster heads only nodes

        S(i).type='N';

    end

    S(n+1).xd=sink.x;

    S(n+1).yd=sink.y;

    %3.网络运行模块

    %簇头节点数

    countCHs=0;

    cluster=1;%此定义的目的仅仅是给定一个1开始的下标参数,真正的簇头数应该还减去1

    flag_first_dead=0;

    flag_teenth_dead=0;

    flag_all_dead=0;

    %死亡节点数

    dead=0;

    first_dead=0;

    teenth_dead=0;

    all_dead=0;

    STATISTICS.COUNTCHS(r+1)=countCHs;

    end

    STATISTICS.PACKETS_TO_CH(r+1)=packets_TO_CH;

    STATISTICS.PACKETS_TO_BS(r+1)=packets_TO_BS;

    end

    first_dead

    teenth_dead

    all_dead

    STATISTICS.DEAD(r+1)

    STATISTICS.ALLIVE(r+1)

    STATISTICS.PACKETS_TO_CH(r+1)

    STATISTICS.PACKETS_TO_BS(r+1)

    STATISTICS.COUNTCHS(r+1)

    r=0:5000;

    subplot(2,2,1);

    plot(r,STATISTICS.DEAD);

    subplot(2,2,2);

    plot(r,STATISTICS.ALLIVE);

    subplot(2,2,3);

    plot(r,STATISTICS.PACKETS_TO_BS);

    subplot(2,2,4);

    plot(r,STATISTICS.COUNTCHS);

    %STATISTICS,结构体数组,包括下面的5个变量;

    %countCHs(r+1),每一轮所选出的簇头数目;

    %packets_TO_BS(r+1),基站收到的数据包总数;

    %PACKETS_TO_CH(r+1),簇头收到的数据包总数;

    %first_dead,第一个节点死亡的时间;

    %teenth_dead=r,10%的节点死亡的时间;

    %dead(r+1),每一轮的死亡节点数;

    %allive(r+1),每一轮的活动节点数。

    ⛄ 运行结果

    ⛄ 参考文献

    [1]陈硕. 无线传感器网络DDEEC算法的研究与改进[D]. 山东大学, 2014.

    ⛄ Matlab代码关注

    ❤️部分理论引用网络文献,若有侵权联系博主删除

    ❤️ 关注我领取海量matlab电子书和数学建模资料

     

  • 相关阅读:
    第十章:枚举和注解
    3.1虚拟化和安装Docker
    8/11 二分图染色+KM算法变型+后缀数组+图论
    汇编攻城记-LDR/STR/LDM/STM数据传输
    Spring ApplicationListener监听器用法
    有一种密码学专用语言叫做ASN.1
    01 pyechars 特性、版本、安装介绍
    老卫带你学---leetcode刷题(19. 删除链表的倒数第 N 个结点)
    《深度探索C++对象模型》阅读笔记 第五章 构造、解构、拷贝语意学
    wangshusen学习笔记
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/128006316