• 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电子书和数学建模资料

     

  • 相关阅读:
    07-架构2023版-centos+docker部署Canal 实现多端数据同步
    MyBatisPlus之条件查询(常规查询、范围查询、模糊查询、null值处理等)
    二十一、数组(3)
    Debian12 中重新安装MSSQL 并指定服务器、数据库、数据表字段的字符排序规则和默认语言等参数
    0基础学习PyFlink——模拟Hadoop流程
    领导提拔项目经理,看的从来不是努力
    (附源码)计算机毕业设计SSM健身房管理系统
    Linux 安装配置Nginx
    Mybatis中@MapKey注解简介说明
    如何让设计师快速提高设计美感?这5个网站就够了
  • 原文地址:https://blog.csdn.net/qq_59747472/article/details/128006316