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