久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1355|回復(fù): 0
收起左側(cè)

leach仿真改進(jìn)代碼

[復(fù)制鏈接]
ID:752513 發(fā)表于 2020-5-16 10:24 | 顯示全部樓層 |閱讀模式
%只考慮簇首能量和簇首多跳
clear;
r=75;
w1=0.3,w2=0.1,w3=0.6
xm = 100;
ym = 100;
sink.x=50;
sink.y=175;
n=100
T=zeros(1,n);
p=0.05;
packetLength =4000;%數(shù)據(jù)包長(zhǎng)度  
ctrPacketLength = 100;%控制包長(zhǎng)度
Eo = 1;
ETX=50*0.000000001;
ERX=50*0.000000001;
Efs=10*0.000000000001;
Emp=0.0013*0.000000000001;
EDA=5*0.000000001;
INFINITY = 999999999999999;
rmax=6000
do=sqrt(Efs/Emp);
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
for i=1:1:n
    S(i).xd=rand(1,1)*xm;%坐標(biāo)
    XR(i)=S(i).xd;
    S(i).yd=rand(1,1)*ym;
    YR(i)=S(i).yd;
    S(i).G=0;
    S(i).type='N';%普通節(jié)點(diǎn)
    S(i).E=Eo;
    S(i).ENERGY=0;
    S(i).d=sqrt((S(i).xd-(S(n+1).xd))^2 + (S(i).yd-(S(n+1).yd))^2);
    for j=1:1:10
        if (j-1)*r<S(i).d<j*r
            S(i).TABLEID=j;
        end
    end
end
countCHs=0;
rcountCHs=0;
cluster=1;
countCHs;
rcountCHs=rcountCHs+countCHs;
flag_first_dead=0;
for r=0:1:rmax %主循環(huán),每次1輪
  r
  if(mod(r, round(1/p))==0)
     for i=1:1:n
        S(i).G=0;
        S(i).cl=0;
     end
  end
dead=0;
packets_TO_BS=0;
packets_TO_CH=0;
PACKETS_TO_CH(r+1)=0;
PACKETS_TO_BS(r+1)=0;
for i=1:1:n
     if (S(i).E<=0)
       dead=dead+1;
     end
     if (S(i).E>0)
        S(i).type='N';
     end
end
if (dead == n)%節(jié)點(diǎn)全部死亡退出循環(huán)
   break;
end
STATISTICS(r+1).DEAD=dead;
DEAD(r+1)=dead;
if (dead==1)
    if(flag_first_dead==0)
        first_dead=r
        flag_first_dead=1;
    end
end
for g=1:1:5
    xiao(g)=INFINITY;
    for i=1:1:n
    if(S(i).E>0)
       distance=sqrt((S(i).xd-(S(n+1).xd))^2 + (S(i).yd-(S(n+1).yd))^2);%到sink的距離
      W(i)=w1*(Eo-S(i).E)+w2*T(i)+w3*distance;
     if ((S(i).G)<=0) %如果該節(jié)點(diǎn)在候選集合中
     if W(i)<xiao(g)
        xiao(g)=W(i);
        C(g).id = i;
        W(i)=INFINITY;
        S(i).type = 'C';
        S(i).G=1;
        C(g).xd = S(i).xd;
        C(g).yd = S(i).yd;
        C(g).distance = distance;
        C(g).id = i;
        X(g)=S(i).xd;
        Y(g)=S(i).yd;
     distanceBroad = sqrt(xm*xm+ym*ym);
            if (distanceBroad >=do)
                S(i).E = S(i).E-(ETX*ctrPacketLength + Emp*ctrPacketLength*(distanceBroad*distanceBroad*distanceBroad*distanceBroad));%廣播自成為簇頭
            else
                S(i).E = S(i).E-(ETX*ctrPacketLength + Efs*ctrPacketLength*(distanceBroad*distanceBroad));
            end
            packets_TO_BS = packets_TO_BS+1;
            PACKETS_TO_BS(r+1) = packets_TO_BS;
        end        
    end
end
i=i+1;
end
T(C(g).id)=T(C(g).id)+1;
end
for g = 1:1:cluster-1
    if S(C(g).id).TABLEID~=1
        for k=S(C(g).id).TABLEID:(-1):1
            for j=1:1:cluster-1
                if S(C(g).id).TABLEID==k-1
                   S(C(g).id).E=S(C(g).id).E-(ERX + EDA)*packetLength;
               end
           end
       end
   else
       S(i).E = S(i).E-((ETX+EDA)*packetLength+ Efs*packetLength*(distance*distance));
   end
end
for i=1:1:n
   if (S(i).type=='N' &S(i).E>0) %普通節(jié)點(diǎn)
     min_dis=INFINITY;
         min_dis_cluster = 1;
         for g = 1:1:5 %簇頭數(shù)量一共是cluster-1
            temp = sqrt((S(i).xd - C(g).xd)^2 + (S(i).yd - C(g).yd)^2);
            if (temp<min_dis)
                min_dis = temp;
                min_dis_cluster = g;
            end
            S(i).E = S(i).E - ETX * ctrPacketLength;
         end
         if (min_dis > do)
             S(i).E = S(i).E - (ETX*(ctrPacketLength) + Emp * ctrPacketLength*( min_dis * min_dis * min_dis * min_dis)); %向簇頭發(fā)送加入控制消息
             S(i).E = S(i).E - (ETX*(packetLength) + Emp*packetLength*( min_dis * min_dis * min_dis * min_dis)); %向簇頭數(shù)據(jù)包
         else
            S(i).E = S(i).E -(ETX*(ctrPacketLength) + Efs*ctrPacketLength*( min_dis * min_dis)); %向簇頭發(fā)送加入控制消息
            S(i).E = S(i).E -(ETX*(packetLength) + Efs*packetLength*( min_dis * min_dis)); %向簇頭數(shù)據(jù)包
         end
         S(i).E = S(i).E - ETX*(ctrPacketLength);  %接收簇頭確認(rèn)加入控制消息
         if(min_dis>0)
            S(C(min_dis_cluster).id).E = S(C(min_dis_cluster).id).E - ((ERX + EDA)*packetLength ); %接受簇成員發(fā)來的數(shù)據(jù)包
            S(C(min_dis_cluster).id).E = S(C(min_dis_cluster).id).E - ERX *ctrPacketLength ; %接收加入消息
            if (min_dis > do)%簇頭向簇成員發(fā)送確認(rèn)加入的消息
                S(C(min_dis_cluster).id).E = S(C(min_dis_cluster).id).E - ( ETX*(ctrPacketLength) + Emp * ctrPacketLength*( min_dis * min_dis * min_dis * min_dis));
            else
                S(C(min_dis_cluster).id).E = S(C(min_dis_cluster).id).E - ( ETX*(ctrPacketLength) + Efs * ctrPacketLength*( min_dis * min_dis));
            end
           PACKETS_TO_CH(r+1) = n - dead - 5 + 1; %所有的非死亡的普通節(jié)點(diǎn)都發(fā)送數(shù)據(jù)包
         end
         S(i).min_dis = min_dis;
         S(i).min_dis_cluster = min_dis_cluster;
  end
end
countCHs;
rcountCHs = rcountCHs + countCHs;
end
x=1:1:r;
y=1:1:r;
%z=1:1:r;
for i=1:1:r;
    x(i)=i;
    y(i) = n - STATISTICS(i).DEAD;
    %z(i)=CLUSTERHS(i);
end
%plot(x,y,'r',x,z,'b');
plot(x,y);
hold on;
axis([0,6000,0,100])


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区在线免费观看视频 | 国产一区二区三区 | 亚洲精品日韩一区二区电影 | 一区二区三区视频在线 | a爱视频| 久久精品视频在线观看 | 日韩精品免费一区二区在线观看 | 欧美区日韩区 | 成人不卡视频 | 亚洲免费成人 | 九九精品在线 | 97av视频在线 | 久久99精品国产麻豆婷婷 | 欧美精品综合 | 日本不卡一区 | 99精彩视频| 欧美午夜在线 | 成人国产精品免费观看视频 | 亚洲一区在线免费观看 | 午夜国产一区 | 亚洲 中文 欧美 日韩 在线观看 | 国产精品福利网 | 91在线电影| 国产成人jvid在线播放 | 国产成人精品免高潮在线观看 | 国产成人网 | 精品美女在线观看视频在线观看 | 欧美黄在线观看 | av一二三区| 久久精品黄色 | 中文字幕第十一页 | 日韩国产中文字幕 | 在线中文字幕av | www312aⅴ欧美在线看 | 超碰在线97国产 | 999热精品 | 综合国产 | 成人综合视频在线观看 | 精品一区国产 | 色狠狠桃花综合 | 日韩精品在线一区 |