资源简介

无线传感器网络分簇路由算法的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个文件信息

评论

共有 条评论