【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码
【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
随着信息技术时代的来临,无线传感网络(简称WSN)作为一种新型网络技术,引起了国内外研究学者的重视。WSN与传统的网络不同,它将无线传感技术与传统网络技术结合,在现实生活的各个方面有广泛的应用。WSN主要由散落在监测区域的各种传感器节点构成,其特色是运用范围灵活广泛,应用成本低,可远程操控等。但是,传感器节点的缺点是没有源源不断的能量供应,设计WSN的路由时应着重考虑能耗问题。低功耗自适应分簇路由协议(简称LEACH协议)被称为WSN中的众多重要路由协议之一。许多改进的分簇路由协议都是基于此协议,如PEGASIS协议和HEED协议等。LEACH协议将网络传输时间划分成连续的时间周期。每个周期分为路由建立阶段和网络传输阶段;每个周期中都会选取一个簇首,网络划分成簇。但是,在LEACH路由协议中,每个循环都是通过阈值随机选择簇首的,没有考虑簇首的能量和地理位置因素,易造成能量较低和地理位置不佳的节点当选簇首的现象。并且,LEACH协议只适用节点间和节点与基站之间可以直接传递数据的网络场景。本文提出了一种基于能量均衡高效的LEACH路由协议综合优化策略。在该策略中,分为簇内和簇间路由协议两个改进方向。簇内方向,对于LEACH路由协议簇内随机选取簇首问题,加入了剩余能量因子、间距因子和节点密度因子来优化阈值公式,整体考虑了节点剩余能量和地理位置来选择簇首。此外,在不同WSN的应用场景中,根据剩余能量和地理位置对于簇首的选择起到的作用大小不同,引入加权因子,提出了二分法控制加权因子的算法。并且,构造了时间动态函数,提出了动态地调整剩余能量因子加权值的算法。在簇间路由协议方面,给出了最佳簇首数量的研究方法。并且,引入了节点能耗函数和最短转发距离,找到了节点入簇的最佳方法和簇首之间数据传输的路由协议。通过MATLAB仿真实验验证,改进后的算法有效地节省了网络的能量消耗,减缓了节点枯竭的速率。具体研究内容如下:(1)对于LEACH路由协议通过阈值随机循环选取簇首问题,采用改进阈值公式的方法,加入剩余能量因子、间距因子、距离因子和加权因子。综合考虑了候选节点的位置和能量条件。(2)并且通过实验验证了密度因子在不同实验场景中,其重要性不同。因此,可以根据不同的网络环境,进行仿真实验得出最佳的密度因子加权值。在本文实验场景中,通过实验得出了在此实验场景中的最佳密度因子的加权值。(3)对于剩余能量因子的加权值,创新性地提出了二分法。将节点的剩余能量一分为二,给出了调整剩余能量因子的加权值的改进算法。并将二分法与恒值法进行了比较。但是二分法的缺点是能量敏感度小。(4)针对二分法缺点,构造了时间动态函数,创新性地提出了动态法改变剩余能量因子的加权值的算法。在此算法中,随着网络信息传输时间的进行,动态地调节剩余能量的加权值,使得节点剩余能量因子加权值的敏感度更高。(5)对于LEACH协议节点分成簇的数量多少对网络性能影响较大,给出了最佳簇首比率算法,并通过实验验证了其准确性。(6)引入能耗函数,给出了节点基于能耗最低的节点入簇方案;对于簇首到基站的数据传输的算法,引入了最短转发路径,得到了簇首间数据传输的较优中转跳数。
2 部分代码
clc;
clear;
close
all
%%
1
.初始参数设定模块
%.传感器节点区域界限(单位
m
)
xm =
100
;
ym =
100
;
% (
1
)汇聚节坐标给定
sink.x =
50
;
sink.y =
50
;
% 区域内传器节数
n =
100
;
% 簇头优化比例(当选簇头的概率)
p =
0
.
05
;
% 能量模型(单位 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
;
% 最大循环次数
rmax =
2000
;
% 算出参数
do
do
=
sqrt
(Efs/Emp);
% 包大小(单位 bit)
packetLength =
4000
; % 数据包大小
ctrPacketLength =
100
; % 控制包大小
% 感知半径
R =
sqrt
(xm*ym/(pi*n*p));
%%
2
.无线传感器网络模型产生模块
% 构建无线传感器网络,在区域内均匀投放
100
个节点,并画出图形
for
i =
1
:n
S(i).xd =
rand
(
1
,
1
)*xm;
S(i).yd =
rand
(
1
,
1
)*ym;
S(i).d =
sqrt
((S(i).xd-sink.x)^
2
+(S(i).yd-sink.y)^
2
);
S(i).G =
0
;
S(i).E = Eo;
S(i).Nbr =
0
;
% initially there are
no
cluster heads only nodes
S(i).type =
’N’
;
end
S(n+
1
).xd = sink.x;
S(n+
1
).yd = sink.y;
%% 绘图比较
r =
1
:rmax+
1
;
figure;
plot(r, ALIVE_LEACH,
’rp-’
, r, ALIVE_LEACH_E,
’gs-’
, r, ALIVE_LEACH_improved,
’ko-’
,
’linewidth’
,
1
,
’MarkerSize’
,
2
);
xlabel
’时间(轮)’
; ylabel
’存活节点数目’
;
legend(
’LEACH’
,
’LEACH-E’
,
’LEACH-improved’
);
xlim([
0
,
2000
])
figure;
plot(r, ENERGY_LEACH,
’rp-’
, r, ENERGY_LEACH_E,
’gs-’
, r, ENERGY_LEACH_improved,
’ko-’
,
’linewidth’
,
1
,
’MarkerSize’
,
2
);
xlabel
’时间(轮)’
; ylabel
’网络剩余能量(J)’
;
legend(
’LEACH’
,
’LEACH-E’
,
’LEACH-improved’
);
xlim([
0
,
2000
])
figure;
plot(r, PACKETS_LEACH,
’rp-’
, r, PACKETS_LEACH_E,
’gs-’
, r, PACKETS_LEACH_improved,
’ko-’
,
’linewidth’
,
1
,
’MarkerSize’
,
2
);
xlabel
’时间(轮)’
; ylabel
’基站接收的数据量(bit)’
;
legend(
’LEACH’
,
’LEACH-E’
,
’LEACH-improved’
);
xlim([
0
,
2000
])
3 仿真结果
4 参考文献
[1]黄利晓. 基于能量均衡高效的LEACH路由协议优化策略[D]. 浙江师范大学, 2018.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
