当前位置 : 主页 > 编程语言 > python >

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 随着信息技术时代的来临,无线传感网络(简称WSN)作为一种新型网络技术,引起了国内外研究学者的重视。WSN与传统的网络不同,它将无线传感技术与传统网络技术结合,在现实生活的

1 简介

随着信息技术时代的来临,无线传感网络(简称WSN)作为一种新型网络技术,引起了国内外研究学者的重视。WSN与传统的网络不同,它将无线传感技术与传统网络技术结合,在现实生活的各个方面有广泛的应用。WSN主要由散落在监测区域的各种传感器节点构成,其特色是运用范围灵活广泛,应用成本低,可远程操控等。但是,传感器节点的缺点是没有源源不断的能量供应,设计WSN的路由时应着重考虑能耗问题。低功耗自适应分簇路由协议(简称LEACH协议)被称为WSN中的众多重要路由协议之一。许多改进的分簇路由协议都是基于此协议,如PEGASIS协议和HEED协议等。LEACH协议将网络传输时间划分成连续的时间周期。每个周期分为路由建立阶段和网络传输阶段;每个周期中都会选取一个簇首,网络划分成簇。但是,在LEACH路由协议中,每个循环都是通过阈值随机选择簇首的,没有考虑簇首的能量和地理位置因素,易造成能量较低和地理位置不佳的节点当选簇首的现象。并且,LEACH协议只适用节点间和节点与基站之间可以直接传递数据的网络场景。本文提出了一种基于能量均衡高效的LEACH路由协议综合优化策略。在该策略中,分为簇内和簇间路由协议两个改进方向。簇内方向,对于LEACH路由协议簇内随机选取簇首问题,加入了剩余能量因子、间距因子和节点密度因子来优化阈值公式,整体考虑了节点剩余能量和地理位置来选择簇首。此外,在不同WSN的应用场景中,根据剩余能量和地理位置对于簇首的选择起到的作用大小不同,引入加权因子,提出了二分法控制加权因子的算法。并且,构造了时间动态函数,提出了动态地调整剩余能量因子加权值的算法。在簇间路由协议方面,给出了最佳簇首数量的研究方法。并且,引入了节点能耗函数和最短转发距离,找到了节点入簇的最佳方法和簇首之间数据传输的路由协议。通过MATLAB仿真实验验证,改进后的算法有效地节省了网络的能量消耗,减缓了节点枯竭的速率。具体研究内容如下:(1)对于LEACH路由协议通过阈值随机循环选取簇首问题,采用改进阈值公式的方法,加入剩余能量因子、间距因子、距离因子和加权因子。综合考虑了候选节点的位置和能量条件。(2)并且通过实验验证了密度因子在不同实验场景中,其重要性不同。因此,可以根据不同的网络环境,进行仿真实验得出最佳的密度因子加权值。在本文实验场景中,通过实验得出了在此实验场景中的最佳密度因子的加权值。(3)对于剩余能量因子的加权值,创新性地提出了二分法。将节点的剩余能量一分为二,给出了调整剩余能量因子的加权值的改进算法。并将二分法与恒值法进行了比较。但是二分法的缺点是能量敏感度小。(4)针对二分法缺点,构造了时间动态函数,创新性地提出了动态法改变剩余能量因子的加权值的算法。在此算法中,随着网络信息传输时间的进行,动态地调节剩余能量的加权值,使得节点剩余能量因子加权值的敏感度更高。(5)对于LEACH协议节点分成簇的数量多少对网络性能影响较大,给出了最佳簇首比率算法,并通过实验验证了其准确性。(6)引入能耗函数,给出了节点基于能耗最低的节点入簇方案;对于簇首到基站的数据传输的算法,引入了最短转发路径,得到了簇首间数据传输的较优中转跳数。

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_二分法

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_二分法_02

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_权值_03

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_权值_04

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_权值_05

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_二分法_06

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_二分法_07

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_路由协议_08

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_权值_09

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_二分法_10

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_路由协议_11

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_路由协议_12

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 仿真结果

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_二分法_13

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_权值_14

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_路由协议_15

4 参考文献

[1]黄利晓. 基于能量均衡高效的LEACH路由协议优化策略[D]. 浙江师范大学, 2018.

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

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

【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码_路由协议_16



【文章由香港云服务器 http://www.1234xp.com 复制请保留原URL】
上一篇:【WSN通信】分簇算法LEACH附matlab代码
下一篇:没有了
网友评论