• 【WSN路由】异构无线传感器网络分布式节能分簇算法的设计(DEEC)附Matlab代码


    1 内容介绍

    展的代,无线传感术的了人们自古以来靠自身觉、嗅觉、视觉感知息的状,它信息世界观的物理系在一起,大高了人认识世界、

    造世界的为。无线器网络由大微型传节点成,

    这些节点被随机布在测区域内,并借助无线通信組织方组网运行。它涵盖了无线信传感器、微电子、计算机等多种

    ,可以对测区集、处输。无线传络可

    以快且易网,无需固定的设施和预,因而有广阔展前景和巨用价值。目前已经应用于境监测、军察、医疗救护、城市管理、智家居、目标领域。在线络中,根器节点的异同可以将分为同构线传感器网构无线感器络。如果网络中的点以相同的准进置,则为当前网络为同线传感器网络。如节点在初始能量、网信方式、监知能力、存储间大某一方或某不同,则网络定义为异构线传感器网络。

    2 部分代码

    clc;

    clear;

    %% 1.初始参数设定模块

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

    xm = 100;

    ym = 100;

    % (1)汇聚节坐标给定

    sink.x = 0.5*xm;

    sink.y = 0.5*ym;

    % 区域内传器节点数

    n = 100;

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

    P = 0.1;

    p = 0.1;

    % 能量模型(单位 J)

    % 初始化能量模型

    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;

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

    m = 0.1;

    a = 5;

    % 最大循环次数

    rmax = 8000;

    % 算出参数 do

    do = sqrt(Efs/Emp);

    Et = 0;

    % 数据包大小(单位 bit)

    packetLength = 4000;        % 数据包大小

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

    %% 3.网络运行模块

    p = 0.1;

    % 节点死亡标志

    flag_first_dead2 = 0;

    flag_teenth_dead2 = 0;

    flag_all_dead2 = 0;

    % 死亡节点数

    first_dead2 = 0;

    teenth_dead2 = 0;

    all_dead2 = 0;

    % 活动节点数

    alive2 = n;

    % 传输到基站和簇头的比特计数器

    packets_TO_BS2 = 0;

    packets_TO_CH2 = 0;

    % (1)循环模式设定

    for r = 0:rmax     % 该 for 循环将下面的所有程序包括在内,直到最后 end 才结束循环

        r

        % 每过一个轮转周期(本程序为10次)使各节点的S(i).G参数(该参数用于后面的簇选举,在该轮转周期内已当选过簇头的节点不能再当选)恢复为零

        if mod(r, round(1/p)) == 0

            for i = 1:n

                S2(i).G = 0;

            end

        end

        % (2)死亡节点检查模块

        dead = 0;

        Et = 0;

        for i = 1:n

            % 检查有无死亡节点

            if S2(i).E <= 0

                dead = dead+1;

                % (3)第一个死亡节点的产生时间(用轮次表示)

                % 第一个节点死亡时间

                if dead == 1

                    if flag_first_dead2 == 0

                        first_dead2 = r;

                        flag_first_dead2 = 1;

                    end

                end

                % 10%的节点死亡时间

                if dead == 0.1*n

                    if flag_teenth_dead2 ==0

                        teenth_dead2= r;

                        flag_teenth_dead2 = 1;

                    end

                end

                if dead == n

                    if flag_all_dead2 == 0

                        all_dead2 = r;

                        flag_all_dead2 = 1;

                    end

                end

            end

            if S2(i).E > 0

            end

        end

    4(i).E- (ETX*packetLength + Emp*packetLength*min_dis^4);

                    else

                        S4(i).E = S4(i).E- (ETX*packetLength + Efs*packetLength*min_dis^2);

                    end

                    packets_TO_BS4 = packets_TO_BS4+1;

                end

            end

        end

        STATISTICS.PACKETS_TO_CH4(r+1) = packets_TO_CH4;

        STATISTICS.PACKETS_TO_BS4(r+1) = packets_TO_BS4;

    end

    %% 绘图比较

    r = 0:rmax;

    figure;

    plot(r, STATISTICS.ALIVE1, 'r', r, STATISTICS.ALIVE2, 'b--', r, STATISTICS.ALIVE3, 'm:', 'linewidth', 2);

    hold on;

    plot(r, STATISTICS.ALIVE4, '--.', 'color', [1, 0.5, 0], 'linewidth', 2);

    xlabel 'Time(Round)'; ylabel 'Number of nodes alive';

    legend('DEEC', 'LEACH-E', 'SEP', 'LEACH');

    figure;

    plot(r, STATISTICS.PACKETS_TO_BS1, 'r', r, STATISTICS.PACKETS_TO_BS2, 'b--', ...

        r, STATISTICS.PACKETS_TO_BS3, 'm:', 'linewidth', 2);

    hold on;

    plot(r, STATISTICS.PACKETS_TO_BS4, '--.', 'color', [1, 0.5, 0], 'linewidth', 2);

    xlabel 'Time(Round)'; ylabel 'Number of message';

    legend('DEEC', 'LEACH-E', 'SEP', 'LEACH');

    3 运行结果

    4 参考文献

    [1]刘静静. 基于能耗均衡的异构无线传感器网络分簇路由算法研究[D]. 安徽大学, 2015.

    [2]郑志明, 郑燕娥, 李智仁. 一种基于DEEC的异构节能分簇改进算法[J]. 西华大学学报(自然科学版), 2016, 035(001):85-88.

    [3]刘静静. 基于能耗均衡的异构无线传感器网络分簇路由算法研究. Diss. 安徽大学, 2015.

    博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

  • 相关阅读:
    【linux】Valgrind工具集详解(十六):交叉编译、移植到arm(失败)
    在Android 上开发一个显示系统属性的APK应用
    Java从入门到精通-流程控制(二)
    SQL 的执行流程是什么样的
    超图Web许可无法访问
    隆云通CO2、PM2.5、PM10三参数传感器
    若依分离版 后端自定义分页
    python脚本容器化运行
    python永久配置pip下载镜像源方法(window版本)
    王者荣耀头像大小怎么调?调整图片尺寸大小工具分享
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126693744