在信息技术飞速发展的时代,无线传感器网络技术的产生改变了人们自古以来依靠自身触觉、嗅觉、视觉感知信息的现状,它将逻辑的信息世界和客观的物理世界联系在一起,大大提高了人类认识世界、
改造世界的能为。无线传感器网络由大量微型传感器节点组成,
这些节点被随机撤布在网络监测区域内,并借助无线通信組织方式组网运行。它涵盖了无线通信传感器、微电子、计算机等多种技术
,可以对监测区域进行数据采集、处理和传输。无线传感器网络可
以快速部署且易于组网,无需固定的基础设施和人工干预,因而具有广阔的发展前景和巨大的应用价值。目前已经应用于环境监测、军事侦察、医疗救护、城市管理、智能家居、目标追踪等领域。在无线传感器网络中,根据传感器节点的异同可以将网络分为同构无线传感器网络和异构无线传感器网络。如果网络中的所有节点以相同的标准进巧配置,则认为当前网络为同构无线传感器网络。如果节点在初始能量、网络通信方式、监测感知能力、存储空间大小等某一方面或某几个方面配置不同,则将网络定义为异构无线传感器网络。
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');
[1]刘静静. 基于能耗均衡的异构无线传感器网络分簇路由算法研究[D]. 安徽大学, 2015.
[2]郑志明, 郑燕娥, 李智仁. 一种基于DEEC的异构节能分簇改进算法[J]. 西华大学学报(自然科学版), 2016, 035(001):85-88.
[3]刘静静. 基于能耗均衡的异构无线传感器网络分簇路由算法研究. Diss. 安徽大学, 2015.
部分理论引用网络文献,若有侵权联系博主删除。