✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
早期的无线传感器网络(wireless sensor networks,简称 WSNs)分簇路由协议通常采用均匀分簇的方法,将整个网络划分为大小均等的簇,每个簇的簇内成员节点数近似相等,簇半径也近似相等.LEACH[1]协议是 WSNs 中典型的均匀分簇路由协议,采用随机分簇策略和周期性簇头轮换.由于簇的大小相等,每个簇内的成员数相等,因此从理论上讲,各个簇中的平均簇内通信能耗相等.LEACH 协议中,簇头与汇聚节点的通信(即数据报告)采用单跳方式,距离汇聚节点越远的簇头在数据报告时的发射功率越大,其数据报告能耗就越大.虽然 LEACH 协议通过簇头轮转的方式来维持节点的能量平衡,但这种平衡只是局部的,从全局的角度看,远离汇聚节点的簇头仍然具有更大的能耗.这些节点容易较早失效,从而造成传感器网络覆盖区域缩小,影响监测任务的执行.
数据报告采用多跳方式的分簇网络中,距离汇聚节点越近的簇头承担的数据转发任务越重,其数据转发能量消耗越大.因此,网络中也存在簇间能量消耗不均衡的问题,距离汇聚节点越近的节点越容易过早地耗尽能量而失效.如果汇聚节点周围的节点成块失效,则离汇聚节点较远的传感器节点采集的数据将无法继续传输,网络中虽然仍有大量存活的节点,但网络的生命周期已提前结束.
由此可见,均匀分簇网络无论采用单跳或多跳的数据报告方式,均存在簇间能耗不均衡问题.针对这个问题,很多研究人员采用非均匀分簇策略来平衡簇头的能量消耗.EECS[2]中,簇头到汇聚节点与 LEACH 一样采用单跳通信,但是普通节点在选择簇头时不仅要考虑自身离簇头的距离,而且要考虑簇头到汇聚节点的距离,从而构造出大小非均匀的簇.EECS 中,距离汇聚节点较远的簇具有较小的几何尺寸,使得这些簇头的簇内通信能耗较小,以平衡其较大的数据报告能耗.但 EECS 的能量平衡措施只能缓解簇头间的能量消耗不均衡现象,无法从整体上实现节点间的能量平衡.
提出了一种能量高效均衡、非均匀分簇和簇间多跳路由有机结合的无线传感器网络分布式分簇路由协议 DEBUC(distributed energy-balanced unequal clustering routing protocol).该协议采用基于时间的簇头竞争算法,广播时间取决于候选簇头的剩余能量和其邻居节点的剩余能量.同时,通过控制不同位置候选簇头的竞争范围,使得距离基站较近的簇的几何尺寸较小.这样,网络中不同位置节点之间的簇内和簇间通信能耗得以互相补偿.DEBUC 采用簇间多跳路由,根据节点剩余能量、簇内通信代价和簇间通信代价,每个簇头在邻居簇头集合中运用贪婪算法选择其中继节点.仿真实验结果表明,DEBUC 能够有效地节约单个节点能量、均衡网络能耗、延长网络生存周期.
📣 部分代码
% 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);
⛳️ 运行结果
🔗 参考文献
[1] 曹庆聪.无线传感器网络分簇路由协议的研究[D].杭州电子科技大学[2023-12-12].