1 简介

提出了一种能量高效均衡、非均匀分簇和簇间多跳路由有机结合的无线传感器网络分布式分簇路由协议DEBUC(distributed energy-balanced unequal clustering routing protocol).该协议采用基于时间的簇头竞争算法,广播时间取决于候选簇头的剩余能量和其邻居节点的剩余能量.同时,通过控制不同位置候选簇头的竞争范围,使得距离基站较近的簇的几何尺寸较小.这样,网络中不同位置节点之间的簇内和簇间通信能耗得以互相补偿.DEBUC采用簇间多跳路由,根据节点剩余能量、簇内通信代价和簇间通信代价,每个簇头在邻居簇头集合中运用贪婪算法选择其中继节点.仿真实验结果表明,DEBUC能够有效地节约单个节点能量、均衡网络能耗、延长网络生存周期.

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_d3

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_d3_02编辑

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_路由协议_03

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_路由协议_04编辑

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_路由协议_05

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_matlab代码_06编辑

2 部分代码

%能量均衡的无线传感器网络非均匀分簇路由协议
close all;
clear;
clc;
% Network coverage (0,0)~(400,400)m
xm = 400;
ym = 400;
% Base station location (200,450)m
BS.x = 200;
BS.y = 450;
% Node number 1600
NodeNums = 1600;
% Initial energy 0.3J
Eo = 0.3;
% Data packet size 4000bits
packetLength = 4000;
% Data packet header 100bits
ctrPacketLength = 100;
% Energy dissipation parameter
% Eelec=50nJ/bit
% Efs=10pJ/bit/m^2,Emp=0.0013pJ/bit/m^4
% ED=5nJ/bit,dcrossover=87m
Eelec = 50*10^(-9);
Efs=10*10^(-12);
Emp=0.0013*10^(-12);
ED=5*10^(-9);
dcrossover = 87;
% 参数
T = 0.2; % 簇头比例
Rcomp = 90; % 预先定义的最大竞争半径
c = 0.5; % 0~1的常数
alpha = 0.3;
beta = 0.3;
gamma = 0.4;
delta = 0.4; % alpha+beta+gamma = 1
do = 246; % 簇头至基站距离临界值
% 节点距基站的最大和最小距离
dmax = 0;
dmin = 9999;
% 最大轮数
rmax = 10;
% 簇头选择所需时间(s)
TCH = 60;
%% 节点随机分布
figure(1);
for i = 1:NodeNums
Node(i).x = rand(1,1)*xm;
Node(i).y = rand(1,1)*ym;
Node(i).beVolunteerNode = false; % 候选簇头标志
Node(i).RE = Eo; % 节点剩余能量
Node(i).flag_final_send = false; % 最终簇头发送消息标志
Node(i).flag_final_receive = false; % 接收最终簇头的消息标志
Node(i).flag_t = false; % 等待时间的标志
Node(i).flag_send_BS = false;
Node(i).flag_send_CH = false;
Node(i).CH = 0; % 0 非簇头 -1 自己是最终簇头
Node(i).ENT = 0; % 邻居节点的平均剩余能量
Node(i).List_v_CH = zeros(1, NodeNums); % 候选簇头邻居节点信息表
Node(i).List_v_CH_num = 0; % 候选簇头邻居节点个数
Node(i).List_n_CH = zeros(1,NodeNums); % 邻居簇头信息表
Node(i).List_n_CH_num = 0; % 邻居簇头个数
Node(i).member_num = 0; % 簇头i的邻居簇头成员节点数
Node(i).link = i; % 中继节点
% 计算节点和基站的最大和最小距离
dcurrent = sqrt((Node(i).x-BS.x)^2+(Node(i).y-BS.y)^2);
if dmax < dcurrent
dmax = dcurrent;
end
if dmin > dcurrent
dmin = dcurrent;
end
hold on;
plot(Node(i).x, Node(i).y, 'o', BS.x, BS.y,'*r');
title 'Wireless Sensor Network';
xlabel 'X-coordinates';
ylabel 'Y-coordinates';
end

3 仿真结果

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_路由协议_07

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_d3_08编辑

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_路由协议_09

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_matlab代码_10编辑

4 参考文献

[1]蒋畅江, 石为人, 唐贤伦,等. 能量均衡的无线传感器网络非均匀分簇路由协议[J]. 软件学报, 2012, 23(5):11.

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

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

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_matlab代码_11

【WSN通信】能量均衡的无线传感器网络非均匀分簇路由协议附matlab代码_d3_12编辑