当前位置: 代码网 > it编程>编程语言>C/C++ > 【LEACH低能耗自适应聚类层次】采用模糊逻辑LEACH协议研究(Matlab代码实现)

【LEACH低能耗自适应聚类层次】采用模糊逻辑LEACH协议研究(Matlab代码实现)

2024年08月03日 C/C++ 我要评论
模拟显示,与仅使用本地信息概率地选择节点作为簇首相比,根据网络配置的不同,可以实现网络寿命的显著增加。对于一个簇,由基站选出的节点是具有最大机会成为簇首的节点,使用三个模糊描述符 - 节点集中度、每个节点的能量水平和节点相对于整个簇的中心性,从而减少所有节点的能量消耗,增加网络的寿命。传感器节点的能量供应是无线传感器网络设计中的主要约束之一。这些称为簇首的节点收集该簇中每个节点发送的数据,压缩数据然后将聚合数据传输到基站。在LEACH的情况下,为了成为簇首,每个节点n选择一个介于0和1之间的随机数。

💥1 概述

5.1 引言
传感器节点的能量供应是无线传感器网络设计中的主要约束之一。通过仅允许一些节点与基站通信,可以减少能量消耗。这些称为簇首的节点收集该簇中每个节点发送的数据,压缩数据然后将聚合数据传输到基站。适当的簇首选择可以显著减少能量消耗并增强wsn的寿命。

提出了一种基于三个描述符 - 能量、集中度和中心性的模糊逻辑方法来选择簇首 [16]。模拟显示,与仅使用本地信息概率地选择节点作为簇首相比,根据网络配置的不同,可以实现网络寿命的显著增加。对于一个簇,由基站选出的节点是具有最大机会成为簇首的节点,使用三个模糊描述符 - 节点集中度、每个节点的能量水平和节点相对于整个簇的中心性,从而减少所有节点的能量消耗,增加网络的寿命。

模糊逻辑控制能够在不完整信息的情况下做出实时决策。传统控制系统依赖于对环境的准确表示,而这在现实中通常不存在。模糊逻辑系统可以以自然的方式操纵语言规则,因此在这方面非常适用。此外,它可以用于通过混合不同的参数进行上下文推断 - 将规则组合在一起以产生适当的结果。

与一种称为leach(低能耗自适应聚类层次)的热门簇首选择技术进行比较。leach基于随机模型,采用了局部化聚类。节点自行选择作为簇首,而无需基站处理。附近的其他节点加入最近的簇首并向其传输数据。

5.2 假设
对于wsn场景,我们做出以下假设:
• 基站远离传感器节点且不可移动。
• 网络中的所有节点都是同质且能量受限的。
• 对称传播通道。
• 基站执行簇首选举。
• 节点在设置阶段向基站发送其位置信息及相应能量水平。
• 节点几乎不移动或不移动。

5.3 先前的簇首选举协议
已经提出了许多选择簇首的提案。在leach的情况下,为了成为簇首,每个节点n选择一个介于0和1之间的随机数。如果该数字小于阈值t(n),则该节点将成为当前轮次的簇首。详细文档见第4部分。

 

📚2 运行结果

部分代码:

function netarch = newnetwork(length, width, sinkx, sinky, initenergy...
    , transenergy, recenergy, fsenergy, mpenergy, aggrenergy)
% create the network architecture with desired parameters
%   
%   input:
%       length      length of the yard
%       width       width of the yard
%       sinkx       x cordination of base station
%       sinky       y cordination of base station
%       initenergy  initial energy of each node
%       transenergy enery for transferring of each bit (etx)
%       recenergy   enery for receiving of each bit (etx)
%       fsenergy    energy of free space model
%       mpenergy    energy of multi path model
%       aggrenergy  data aggregation energy     
%   example:
%       netarch = createnetwork();

    %%%% create the yard
    yard.type = 'rect'; % rectangular
    if ~exist('length','var')
        yard.length = 100; % default of the yard is 100 in x cordination
    else
        yard.length = length;
    end
    if ~exist('width','var')
        yard.width = 100; % default of the yard is 100 in y cordination
    else
        yard.width = width;
    end
    
    %%%% create base station
    % x and y coordinates of the base station
    % default of the base station is in the center of the yard
    if ~exist('sinkx','var')
        sink.x = yard.length / 2;
    else
        sink.x = sinkx;
    end
    if ~exist('sinky','var')
        sink.y = yard.width / 2;
    else
        sink.y = sinky;
    end

    %%%% energy model (all values in joules)
    % initial energy
    if ~exist('initenergy','var')
        energy.init = 0.5; 
    else
        energy.init = initenergy; 
    end
    
    % enery for transferring of each bit (etx)
    if ~exist('transenergy','var')
        energy.transfer = 50*0.000000001;
    else
        energy.transfer = transenergy; 
    end
    if ~exist('recenergy','var')
        energy.receive = 50*0.000000001;
    else
        energy.receive = recenergy; 
    end
    
    % transmit amplifier types
    if ~exist('recenergy','var')
        energy.freespace = 10*0.000000000001;
    else
        energy.freespace = fsenergy; 
    end
    if ~exist('recenergy','var')
        energy.multipath = 0.0013*0.000000000001;
    else
        energy.multipath = mpenergy; 
    end
    
    %data aggregation energy
    if ~exist('recenergy','var')
        energy.aggr = 5*0.000000001;
    else
        energy.aggr = aggrenergy; 
    end

    netarch = struct('yard',   yard, ...
                     'sink',   sink, ...
                     'energy', energy);
end

🎉3 参考文献

[1]冉戈.基于模糊逻辑的无线传感器网络路由协议研究[d].山东大学,2011.doi:10.7666/d.y1936629.

[2]闫会芹,何加铭,郑紫微,等.无线传感器网络模糊逻辑分簇路由协议[j].无线电通信技术, 2013, 39(6):5.doi:10.3969/j.issn.1003-3114.2013.06.006.

[3]沈晓瑞.基于模糊逻辑的无线传感器网络分簇路由协议的研究[d].太原理工大学,2010.doi:10.7666/d.d082588.

[4]杨健冬,王文娟.基于模糊逻辑推理的wsns非均匀分簇算法[j].传感技术学报, 2017(6).doi:10.3969/j.issn.1004-1699.2017.06.021.

🌈4 matlab代码、文档

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com