当前位置: 首页 > news >正文

一种基于非均匀分簇和建立簇间路由的算法的无线传感器网络路由协议(Matlab代码实现)

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

本文准备了一种路由方法,该方法使传感器通过有效地使用能量将数据从发送方加载到接收器,因为它在 LEACH 协议中使用簇头形成。作为接收器的“水槽”在整个范围内从一个地方随机移动到另一个地方。

传感器节点最初是在给定范围内和相同能量中随机创建的,经过几轮后,传感器的能量发生变化,然后根据该能量选择集群头 ,死节点以红色表示。我们可以在使用寿命和平均能耗等两个因素中比较现有系统和我们提出的系统进行结果分析​。​

📚2 运行结果

主函数部分代码:

​
clc;
clear;
close all;
warning off all;
tic;
​
%% Create sensor nodes, Set Parameters and Create Energy Model 
%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%Initial Parameters 
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%
n=100;                                  %
Number of Nodes 
inthe field[Area,Model]=setParameters(n);         %Set Parameters Sensors and Network
​
%%%%%%%%%%%%%%%%%%%%%%%%% configuration Sensors %%%%%%%%%%%%%%%%%%%%
CreateRandomSen(Model,Area);            %
Create a random scenarioload Locations                          %Load sensor Location
Sensors=ConfigureSensors(Model,n,X,Y);
Sender=n+1;     %Sink
TotalCH=[];
ploter(Sensors,Model,Sender,TotalCH);                  %Plot sensors
for i=1:ntext(Sensors(i).xd,Sensors(i).yd,int2str(i),'FontSize',10);
end
plot(Sensors(Sender).xd,Sensors(Sender).yd,'w*','MarkerSize',15);
​
%%%%%%%%%%%%%%%%%%%%%%%%%% Parameters initialization %%%%%%%%%%%%%%%%
countCHs=0;         %counter for CHs
flag_first_dead=0;  %flag_first_dead
deadNum=0;          %Number of dead nodes
​
initEnergy=0;       %Initial Energy
for i=1:ninitEnergy=Sensors(i).E+initEnergy;
end
​
SRP=zeros(1,Model.rmax);    %number of sent routing packets
RRP=zeros(1,Model.rmax);    %number of receive routing packets
SDP=zeros(1,Model.rmax);    %number of sent data packets 
RDP=zeros(1,Model.rmax);    %number of receive data packets 
​
Sum_DEAD=zeros(1,Model.rmax);
CLUSTERHS=zeros(1,Model.rmax);
AllSensorEnergy=zeros(1,Model.rmax);
​
%%%%%%%%%%%%%%%%%%%%%%%%% Start Simulation %%%%%%%%%%%%%%%%%%%%%%%%%
global srp rrp sdp rdp
srp=0;          %counter number of sent routing packets
rrp=0;          %counter number of receive routing packets
sdp=0;          %counter number of sent data packets 
rdp=0;          %counter number of receive data packets 
​
%Sink broadcast start message to all nodes
​
Receiver=1:n;   %All nodes
Sensors=SendReceivePackets(Sensors,Model,Sender,'Hello',Receiver);
​
% All sensor send location information to Sink .Sensors=disToSink(Sensors,Model);
% Sender=1:n;     %All nodes
% Receiver=n+1;   %Sink
% Sensors=SendReceivePackets(Sensors,Model,Sender,'Hello',Receiver);
​
%Save metrics
SRP(1)=srp;
RRP(1)=rrp;  
SDP(1)=sdp;
RDP(1)=rdp;
​
%% Main loop program
for r=1:1:Model.rmax
​
%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%
%%%Initialization 
%%%
%%%
%%%
%%%
%%%
%%%
%%%%This section Operate for each epoch   member=[];              %Member of each cluster in per periodcountCHs=0;             %Number of CH in per period%counter for bit transmitted to Bases Station and Cluster Headssrp=0;          %counter number of sent routing packetsrrp=0;          %counter number of receive routing packetssdp=0;          %counter number of sent data packets to sinkrdp=0;          %counter number of receive data packets by sink%initialization per roundSRP(r+1)=srp;RRP(r+1)=rrp;  SDP(r+1)=sdp;RDP(r+1)=rdp;   pause(1)    %pause simulationhold off;       %clear figure%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Sensors=resetSensors(Sensors,Model);%allow to sensor to become cluster-head. LEACH Algorithm  AroundClear=10;if(mod(r,AroundClear)==0) for i=1:1:nSensors(i).G=0;endend

🎉3 参考文献

[1]马震. 关于无线传感器网络节能的若干关键问题研究[D].北京交通大学,2009.

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

http://www.lryc.cn/news/69515.html

相关文章:

  • usb摄像头驱动打印信息
  • 银行半结构化和无领导群面注意事项
  • 今天公司来了个拿 30K 出来的测试,算是见识到了基础的天花板
  • SSM整合(单元测试、结果封装、异常处理)
  • C++ list
  • 【JavaScript】ES6新特性(2)
  • CST-FSS/周期谐振单元的仿真
  • 重新理解RocketMQ Commit Log存储协议
  • ROS 开发环境搭建(虚拟机版本)(一)
  • vue3做项目是需要注意的事项
  • docker日志轮转
  • 论文阅读_音频压缩_Encodec
  • 第06章_多表查询
  • 自学黑客(网络安全)有哪些技巧——初学者篇
  • CMD与DOS脚本编程【第四章】
  • Liunx安装Docker
  • docker:容器的数据卷
  • 【TCP】对TCP三次握手的个人理解
  • squid的基本代理
  • 【从零开始写视觉SLAM】v0.1基于特征点的简单VO
  • CentOS-7 安装 MariaDB-10.8
  • Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1
  • 五、c++学习(加餐1:汇编基础学习)
  • iOS正确获取图片参数深入探究及CGImageRef的使用(附源码)
  • Typescript 5.0 发布:快速概览
  • 【图像处理 】卡尔曼滤波器原理
  • YOLOv5 实例分割入门
  • 数字城市发展下的技术趋势,你知道多少?
  • linux 串口改为固定
  • 【SCI一区】考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型(Matlab代码实现)