首页 > 行业资讯 > 【路由优化】基于能量均衡高效的LEACH协议改进算法附matlab代码

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

时间:2022-04-28 来源: 浏览:

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

天天Matlab 天天Matlab
天天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代码问题可私信交流。

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

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐