✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
⛄ 内容介绍
无线传感器网络(Wireless Sensor Networks,WSN)是基于数字电路,无线通信,微电机系统等学科发展起来的一个新的研究领域.它是由部署在检测区域内大量廉价的小型传感器节点组成,通过无线通信方式形成的一个自组织无线网络,其作用就是感知周围信息,采集和处理所感知对象的信息,并发送给用户. 本文首先介绍了无线传感器网络的基本概念,体系结构,特点和网络协议栈;然后介绍了无线传感器网络路由协议概念,设计要求和各项性能指标,并对现有几种典型的无线传感器路由协议进行分析比较,总结分簇路由协议的优点,重点分析以DEEC为代表的分簇路由算法:
⛄ 部分代码
clear
%1.初始参数设定模块
%.传感器节点区域界限(单位 M)
xm=100;
ym=100;
%(1)汇聚节坐标给定
sink.x=0.5*xm;
sink.y=0.5*ym;
%区域内传器节数
n=100
%簇头优化比例(当选簇头的概率)
p=0.1;
%能量模型(单位 焦)
%初始化能量模型
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;
%高能量节点超出一节点能量的百分比
a=1;
%最大循环次数
rmax=5000
%算出参数 do
do=sqrt(Efs/Emp);
%2.无线传感器网络模型产生模块
%构建无线传感器网络,在区域内均匀投放100个节点,并画出图形
for i=1:1:n
S(i).xd=rand(1,1)*xm;
XR(i)=S(i).xd;
S(i).yd=rand(1,1)*ym;
YR(i)=S(i).yd;
S(i).G=0;
S(i).E=Eo*(1+rand*a);
%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;
%3.网络运行模块
%簇头节点数
countCHs=0;
cluster=1;%此定义的目的仅仅是给定一个1开始的下标参数,真正的簇头数应该还减去1
flag_first_dead=0;
flag_teenth_dead=0;
flag_all_dead=0;
%死亡节点数
dead=0;
first_dead=0;
teenth_dead=0;
all_dead=0;
STATISTICS.COUNTCHS(r+1)=countCHs;
end
STATISTICS.PACKETS_TO_CH(r+1)=packets_TO_CH;
STATISTICS.PACKETS_TO_BS(r+1)=packets_TO_BS;
end
first_dead
teenth_dead
all_dead
STATISTICS.DEAD(r+1)
STATISTICS.ALLIVE(r+1)
STATISTICS.PACKETS_TO_CH(r+1)
STATISTICS.PACKETS_TO_BS(r+1)
STATISTICS.COUNTCHS(r+1)
r=0:5000;
subplot(2,2,1);
plot(r,STATISTICS.DEAD);
subplot(2,2,2);
plot(r,STATISTICS.ALLIVE);
subplot(2,2,3);
plot(r,STATISTICS.PACKETS_TO_BS);
subplot(2,2,4);
plot(r,STATISTICS.COUNTCHS);
%STATISTICS,结构体数组,包括下面的5个变量;
%countCHs(r+1),每一轮所选出的簇头数目;
%packets_TO_BS(r+1),基站收到的数据包总数;
%PACKETS_TO_CH(r+1),簇头收到的数据包总数;
%first_dead,第一个节点死亡的时间;
%teenth_dead=r,10%的节点死亡的时间;
%dead(r+1),每一轮的死亡节点数;
%allive(r+1),每一轮的活动节点数。
⛄ 运行结果
⛄ 参考文献
[1]陈硕. 无线传感器网络DDEEC算法的研究与改进[D]. 山东大学, 2014.