💥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.
发表评论