• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签: NS2  

资源简介

HEED协议的matlab实现,HEED是一种完全分布式的成簇算法.节点根据剩余能量和簇内通信费用两个参数计算出自己成为临时簇首的概率,HEED 保证了簇首分布是均匀的,数据经过多跳路由传回基站.

资源截图

代码片段和文件信息

NodeNums = 1000; % the num of node 
AreaR = 2000 ;   % the area of simulate
NodeTranR=10;   %  the transit Radius
Elec=50 * 10^(-9); %
Eamp=100*10^(-12); 
Bx=0;  % The Postion of baseation
By=AreaR+400;
MaxInteral = 100; % the leach simulate time
Pch=0.05;  % the desired percentage of cluster heads 
InitEn=4;  % the init energy of all node
MaxEn=InitEn;
Tr=100;  % the time of round 
Kbit=2000; % the bits of a node transmiting a packet every time
Gathingcoefficient=0.8;
BandWitch = 1*10.^(6); %  Channel Bandwitch
Threshold=0;    % the threshold of node becoming a cluster-head
TDMA=400;
Cprob=0.04;
NON_CH = 0;% // non cluster head
TENTATIVE_CH = 1; % // tentative cluster head
FINAL_CH = 2;% // final cluster head
sym ClusterHeadNum ;
ClusterHeadNum=0;
TOS_LOCAL_ADDRESS = -1;       % TOS_LOCAL_ADDRESS  must <=0
for i=1:(MaxInteral)
    AliveNode(i)=NodeNums;
end
%     Node.x=AreaR*rand(1NodeNums);  % the position of node 
%     Node.y=AreaR*rand(1NodeNums);
      sym buchang;
      buchang = (AreaR/NodeNums);
     % buchang=int(buchang);
      Node.x=0:buchang:(buchang.*(NodeNums-1));  % the position of node 
      Node.y=0:buchang:(buchang.*(NodeNums-1));

    Node.IsClusterHeads=linspace(00NodeNums); % NON_CHTENTATIVE_CHFINAL_CH
    Node.IsCovered=linspace(00NodeNums);      % Have Been Covered by a cluster head 1:yes 0:No
    Node.c=linspace(00NodeNums);              % the Cluster head of node
    Node.chcost=linspace(00NodeNums);              % the Cluster head of node
    Node.d=linspace(00NodeNums);              % the distance between cluster head and node
    Node.l=zeros(1NodeNums)+Kbit;           % the length of node i transmit packet
    Node.EnNode=zeros(1NodeNums)+InitEn;    % the init energy of all node
    Node.StateNode=ones(1NodeNums);      % the State of all node 1: alive 0:dead
    Node.Listothernode=zeros(NodeNums);         % if node is a cluster headListothernode save the id of node belong to this cluster       
    Node.csize=linspace(00NodeNums);          % cluser size each cluster node num
    Node.Nbr=zeros(NodeNums);                   % neighbor of node
    Node.NumNbr=linspace(00NodeNums);         % the neighbor‘s num of node
    %Node.DistNbr=linspace(00NodeNums);         % the neighbor‘s dist of node
    Node.CHprob=zeros(1NodeNums)+Cprob; 
     Node.InitCHprob=zeros(1NodeNums);
    Node.tent_CH=zeros(1NodeNums)+NON_CH; 
    Node.tent_CH_Cost=ones(1NodeNums)+9999;
    Node.IsaddDummyRound=linspace(00NodeNums);
    Node.n_finalCH=linspace(00NodeNums); 
    Node.ListfinalCH=zeros(NodeNums);
    Node.ListfinalCH_Cost=zeros(NodeNums)+9999;
    Node.n_tentCH=linspace(00NodeNums); 
    Node.ListtentCH=zeros(NodeNums);
    Node.ListtentCH_Cost=zeros(NodeNums)+9999;
    Node.my_finalCH=linspace(00NodeNums);
    Node.my_tentCH=linspace(00NodeNums);
    Node.my_final_CH_Cost=ones(1NodeNums)+9999;
    Node.Isstop=o

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      18776  2007-04-09 14:39  heed.m

----------- ---------  ---------- -----  ----

                18776                    1


评论

共有 条评论