資源簡介
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
- 上一篇:非下采樣輪廓波變換matlab代碼
- 下一篇:simuli
nk永磁同步電機仿真(4)
評論
共有 條評論