资源简介
无线传感器网络分簇路由算法的matlab代码,比较齐全。
代码片段和文件信息
clear
%1.初始参数设定模块
%.传感器节点区域界限(单位 M)
xm=150;
ym=150;
%(1)汇聚节坐标给定
sink.x=0.5*xm;
sink.y=0.5*ym;
%区域内传器节数
n=250
%簇头优化比例(当选簇头的概率)
p=0.05;
P=0.05;
INFINITY = 999999999999999;
%packetLength=4000;
%能量模型(单位 焦)
%初始化能量模型
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=2500
%算出参数 do
do=sqrt(Efs/Emp);
Et=0;
%2.无线传感器网络模型产生模块
%构建无线传感器网络在区域内均匀投放100个节点并画出图形
for i=1:1:n
S1(i).xd=rand(11)*xm;
S2(i).xd=S1(i).xd;
S3(i).xd=S1(i).xd;
S4(i).xd=S1(i).xd;
S5(i).xd=S1(i).xd;
XR5(i)=S5(i).xd;
XR4(i)=S4(i).xd;
XR3(i)=S3(i).xd;
XR2(i)=S2(i).xd;
XR1(i)=S1(i).xd;
S1(i).yd=rand(11)*ym;
S2(i).yd=S1(i).yd;
S3(i).yd=S1(i).yd;
S4(i).yd=S1(i).yd;
S5(i).yd=S1(i).yd;
YR5(i)=S5(i).yd;
S5(i).G=0;
YR4(i)=S4(i).yd;
S4(i).G=0;
YR3(i)=S3(i).yd;
S3(i).G=0;
YR2(i)=S2(i).yd;
YR1(i)=S1(i).yd;
S1(i).G=0;
S2(i).G=0;
S1(i).E=Eo;
S2(i).E=S1(i).E;
S3(i).E=S1(i).E;
S4(i).E=S1(i).E;
S5(i).E=S1(i).E;
E3(i)= S3(i).E;
E4(i)= S4(i).E;
Et=Et+E3(i);
%initially there are no cluster heads only nodes
S1(i).type=‘N‘;
S2(i).type=‘N‘;
S3(i).type=‘N‘;
S4(i).type=‘N‘;
S5(i).type=‘N‘;
end
S1(n+1).xd=sink.x;
S1(n+1).yd=sink.y;
S2(n+1).xd=sink.x;
S2(n+1).yd=sink.y;
%3.网络运行模块
%簇头节点数
countCHs1=0;
cluster1=1;%此定义的目的仅仅是给定一个1开始的下标参数,真正的簇头数应该还减去1
flag_first_dead1=0;
flag_all_dead1=0;
%死亡节点数
dead1=0;
first_dead1=0;
all_dead1=0;
%活动节点数
allive1=n;
%counter for bit transmitted to bases Station and to Cluster Heads
packets_TO_BS1=0;
packets_TO_CH1=0;
%(1)循环模式设定
for r=0:1:rmax %该 for 循环将下面的所有程序包括在内,直到最后一 end 才结束循环
r
%每过一个轮转周期(本程序为10次)使各节点的S(i).G参数(该参数用于后面的簇选举,在该轮转周期内已当选过簇头的节点不能再当选)恢复为零
if(mod(r round(1/p) )==0)
for i=1:1:n
S1(i).G=0;
S1(i).cl=0;
end
end
%(2)死亡节点检查模块
dead1=0;
for i=1:1:n
%检查有无死亡节点
if (S1(i).E<=0)
dead1=dead1+1;
%(3)第一个死亡节点的产生时间(用轮次表示)
%第一个节点死亡时间
if (dead1==1)
if(flag_first_dead1==0)
first_dead1=r;
flag_first_dead1=1;
end
end
if(dead1==n)
if(flag_all_dead1==0)
all_dead1=r;
flag_all_dead1=1;
end
end
end
if S1(i).E>0
S1(i).type=‘N‘;
end
end
STATISTICS.DEAD1(r+1)=dead1;
STATISTICS.ALLIVE1(r+1)=allive1-dead1;
%(4)簇头选举模块
countCHs1=0;
cluster1=1;
for i=1:1:n
if(S1(i).E>0)
temp_rand=rand;
if ( (S1(i).G)<=0)
%簇头的选举,当选的簇头会把各种相关信存入下面程序所给定的变量中
if(temp_rand<= (p/(1-p*mod(rround(1/p)))))
countCHs1=countCHs1+1;
packets_TO_BS1=packets_TO_BS1+1;
PACKETS_TO_BS1(r+1)=packets
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21684 2014-10-21 15:36 route\akskflhalsfhaslf.m
文件 10454 2007-05-25 19:47 route\bp2.m
文件 19001 2014-09-11 03:01 route\bp4.m
文件 12515 2007-06-04 19:02 route\DEEC1VSDEEC2.m
文件 6637 2014-09-13 00:53 route\DEEC2.m
文件 13674 2014-10-19 19:39 route\duibi0000.m
文件 7854 2014-09-15 17:06 route\duo1.fig
文件 4542 2008-05-21 07:04 route\duotiao.m
文件 9771 2014-10-15 14:58 route\EAMMH.m
文件 313 2007-08-23 18:28 route\energy1.m
文件 1418 2007-08-24 10:04 route\energybalancemodel.m
文件 20215 2014-09-10 10:25 route\fencu.m
文件 20473 2007-06-04 20:15 route\fps.m
文件 8071 2014-10-18 20:38 route\gaijin000.m
文件 8164 2014-10-21 10:53 route\gaijin001.m
文件 4548 2010-06-26 15:03 route\ga_wsn.m
文件 25539 2014-09-11 09:22 route\GJ.m
文件 18776 2007-04-09 14:39 route\heed.m
文件 2181 2010-12-02 10:27 route\hopbyhop.m
文件 12481 2014-10-23 15:24 route\hunhe1.m
文件 8244 2014-08-31 11:18 route\LEACH00.m
文件 6764 2014-10-21 17:20 route\leach1.m
文件 5955 2014-10-10 19:16 route\leachm1.m
文件 10974 2014-08-31 11:18 route\leachm1vsleachm2.m
文件 6402 2007-05-25 11:24 route\leachm2.m
文件 6118 2007-05-28 22:11 route\leachs1.m
文件 12137 2014-09-03 08:13 route\leachs1vsleachs2.m
文件 6346 2014-10-10 19:10 route\leachs2.m
文件 20471 2012-04-14 21:56 route\leachvsdeec.m
文件 9012 2014-10-14 09:32 route\LEACH_ENERGY2.m
............此处省略49个文件信息
- 上一篇:matlab求解图像灰度梯度
- 下一篇:基于人工势场法做的matlab路径规划算法
相关资源
- 基于人工势场法做的matlab路径规划算
- matlab求解图像灰度梯度
- Dollar的人体行为识别的代码(cuboids
- libsvm SVM分类器
- 剪切波变换 (shearlet transform)
- 稀疏表示分类算法SRC在ORL人脸库上的
-
context-aware-saliency-detection 论文<
- matlab对一个混合灵敏度的系统进行H无
- matlab的SIFT算法程序
- 非线性算法合集(nonlinear algorithm)
- 微电网下逆变器PI环控制
- LTE_A_PUSCH LTE上行双用户matlab仿真代码
- 用于大气辐射传输模型modtran5的matla
- matlab的libsvm3.18工具箱
- 《MATLAB小波分析超级学习手册》随书
- 《MATLAB信号处理超级学习手册》随书
- matlab的随机子空间算法
- 5th WENO Matlab Example 计算流体力学 五阶
-
matlab/simuli
nk仿真的无刷直流电机( - matlab编写的船舶动力定位PID控制函数
- matlab多聚焦图像融合(contourlet)
- Final_PMSM_model
- 透射反射曲线(transmission line )求解
- SOM算法的matlab程序
-
定速风电机组的Matlab/Simuli
nk模型仿 - ARIMA ARIMA模型全称为差分自回归移动平
- matlab ARIMA模
- rotordynamic matlab code 转子动力学分析相
- BCS贝叶斯压缩感知和分布式贝叶斯压
- 医学图像处理MRI脑仿真库BrainWeb
评论
共有 条评论