-
leach
分簇算法仿真
(
基于
matlab)
leach
分簇算法仿真(基于
matlab
)
2007-12-07 21:46
%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%%%%%%%%%%%%%%%%%%%%%
%
%
% SEP: A Stable Election
Protocol for clustered
%
%
heterogeneous wireless sensor networks
%
%
%
% (c) Georgios Smaragdakis
%
% WING group, Computer
Science Department, Boston University
%
%
%
% You can find full
documentation and related information at:
%
% /sep
%
%
%
%
To report your comment or any bug please send
e-mail to:
%
%
gsmaragd@
%
%
% <
/p>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%
%%%%%%
%
%
% This is the LEACH [1] code we have
used.
%
% The same
code can be used for FAIR if m=1
%
%
%
% [1] lman,
A.P
.Chandrakasan and ishnan,
%
%
"An
application-specific protocol architecture for
wireless
%
%
microsensor
networks"
%
%
IEEE
Transactions on Wireless Communications,
1(4):660-670,2002 %
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%
%%%%%%%
clear;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Field Dimensions - x and y
maximum (in meters)
xm = 200;
ym = 200;
%x and
y Coordinates of the Sink
sink.x =0.5 *
xm;
sink.y = ym + 50;
%Number of Nodes in the field
n = 200
%Optimal
Election Probability of a node
%to
become cluster head
p=0.05;
packetLength =
4000;%
数据包长度
ctrPacketLength =
100;%
控制包长度
%Energy Model (all values in Joules)
%Initial Energy
Eo = 0.5;
%Eelec=Etx=Erx
ETX=50*0.000000001;
ERX=50*0.000000001;
%Transmit Amplifier types
Efs=10*0.;
Emp=0.0013*0.;
%Data Aggregation Energy
EDA=5*0.000000001;
%Values for Hetereogeneity
%Percentage of nodes than are advanced
m=1;
%alpha
a=1;
INFINITY = 999999999999999;
%maximum number of rounds
rmax=2000
%%%%%%%%%%%%%%%%%%%%%%%%%
PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%
%Computation of do
do=sqrt(Efs/Emp);
%Creation of the random Sensor Network
figure(1);
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;
%initially there are no cluster heads
only nodes
S(i).type='N';%
普通节点
temp_rnd0 = i;
%Random
Election of Normal Nodes
%if
(temp_rnd0>=m*n+1)
S(i).E=Eo;
S(i).ENERGY=0;
%
plot(S(i).xd,S(i).yd,'o');
%
hold on;
% end
%Random
Election of Advanced Nodes
% if
(temp_rnd0<m*n+1)
%
S(i).E=Eo*(1+a)
%
S(i).ENERGY=1;
%
%plot(S(i).xd,S(i).yd,'+');
%
%hold on;
% end
end
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
END
OF
%plot(S(n+1).xd,S(n+1).yd,'x');
%First
Iteration
figure(1);
%counter for CHs
countCHs=0;
%counter for CHs per round
rcountCHs=0;
cluster=1;
countCHs;
rcountCHs=rcountCHs+countCHs;
flag_first_dead=0;
for r=0:1:rmax %
主循环
,
每次
1
轮
r
%Operation
for epoch
if(mod(r, round(1/p) )==0)
for i=1:1:n
S(i).G=0;
S(i).cl=0;
end
end
hold off;
%Number of dead nodes
dead=0;
%Number of dead
Advanced Nodes
dead_a=0;
%Number of dead Normal Nodes
dead_n=0;
%counter for bit transmitted to Bases
Station and to Cluster Heads
packets_TO_BS=0;
packets_TO_CH=0;
%counter
for bit transmitted to Bases Station and to
Cluster Heads
%per round
PACKETS_TO_CH(r+1)=0;
PACKETS_TO_BS(r+1)=0;
-
-
-
-
-
-
-
-
-
上一篇:全球MAC地址分配
下一篇:(完整版)VB常用算法——排序