91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-05
  • 語(yǔ)言: Matlab
  • 標(biāo)簽: wsn??仿真??

資源簡(jiǎn)介

用matlab實(shí)現(xiàn)無(wú)線傳感網(wǎng)的仿真過(guò)程,包括能量消耗模型,節(jié)點(diǎn)分布方式等。結(jié)合注釋,很容易看懂。適合初學(xué)者,有助于論文寫作的需要。

資源截圖

代碼片段和文件信息

%?my?leach?code?based?on?fuzzy?logical?method
clear;
%%?參數(shù)的初始化
????xm=100;?
????ym=100;?%?傳感區(qū)域范圍
????n=100;?%節(jié)點(diǎn)總數(shù)
????p=0.1;?%簇頭概率
????%?能量模型初始化數(shù)據(jù)
????E0=1;%初始能量
????Elec=50e-9;%發(fā)送、接收能量,每bit??
????Efs=10e-12;%耗散能量,每bit
????Emp=0.0013e-13;%融合能耗,每bit
????do?=?sqrt(?Efs/Emp?);
????cc=0.8;%融合率
????rmax=1000;%輪數(shù)設(shè)置
????MaxDis_CH_Node?=?sqrt(?(xm-0)^2?+?(ym-0)^2?);?%簇頭廣播范圍

????CM=25;%控制信息大小
????DM=4000;%數(shù)據(jù)信息大小
?????figure(1);%?顯示圖片?

????for?i=1:1:n
????????S(i).xd=rand(11)*xm;
????????S(i).yd=rand(11)*ym;
????????S(i).G=0;%每一個(gè)周期結(jié)束后,重新設(shè)置為0
????????S(i).E=E0;%節(jié)點(diǎn)的初始能量
????????S(i).type=‘N‘;%節(jié)點(diǎn)的類型為普通
????????plot(S(i).xdS(i).yd‘o‘);
???????hold?on;%保持所畫的圖像
????end

%%?計(jì)算網(wǎng)關(guān)節(jié)點(diǎn)與其他節(jié)點(diǎn)的距離,?找出節(jié)點(diǎn)與網(wǎng)關(guān)的最小距離
????MinDist_Node_Sink?=?zeros(1n);
????Sink(1).xd?=?0;?Sink(1).yd?=?0;
????Sink(2).xd?=?0;?Sink(2).yd?=?ym;
????Sink(3).xd?=?xm;?Sink(3).yd?=?ym;
????Sink(4).xd?=?xm;?Sink(4).yd?=?0;
????for?i?=?1:?n
????????????TempDist_Node_Sink?=?zeros(14);
????????????for?j?=?1?:?4
????????????????TempDist_Node_Sink(j)?=?sqrt(?(Sink(j).xd?-?S(i).xd)^2?+?(?Sink(j).yd?-?S(i).yd?)^2??);
????????????end
????????????MinDist_Node_Sink(i)?=?min(TempDist_Node_Sink);
????end
?%%
????first_dead_Round?=?0;?%第一個(gè)死亡節(jié)點(diǎn)出現(xiàn)的輪數(shù)
????flag_first_dead=0;?%?記錄第一個(gè)死亡節(jié)點(diǎn)
????half_dead_Round?=?0;
????flag_half_dead?=?0;
????Round_Alive_Num?=?zeros(?1rmax+1?);?%每輪存活節(jié)點(diǎn)數(shù)目記錄
????RoundCluster?=?zeros(?1rmax?);?%記錄每輪簇頭節(jié)點(diǎn)數(shù)目
????Remaining_En?=?zeros(1rmax);


%%?開始
for?r?=?1:1:rmax?
????%?如果輪數(shù)為一個(gè)周期的整數(shù)倍,?則將S(i).G?設(shè)置為0?,即所有節(jié)點(diǎn)都沒(méi)有成為簇頭節(jié)點(diǎn)
????if(?r>=2?)
????????if??(??Remaining_En(r-1)?==?0?)
????????????continue;
????????end
????end
???r+1;
????if(?mod(rround(1/p))==0?)
????????for?i?=?1:n
????????????S(i).G?=?0;
????????end
????end
????
?????hold?off;?%?每一輪重新繪制圖片
????
?????figure(1);????
????
???%%?死亡節(jié)點(diǎn)標(biāo)記為紅色
???dead?=?0;
????for?i?=?1:n
????????if(?S(i).E?<=?0?)
????????????plot(?S(i).xd?S(i).yd?‘red.‘?);
????????????S(i).E?=?0;?%?死亡節(jié)點(diǎn)剩余能量為0?
????????????dead?=?dead?+1;
????????????if(?dead?==?1?&&?flag_first_dead?==?0?)?%?標(biāo)記第一個(gè)死亡節(jié)點(diǎn)
????????????????first_dead_Round?=?r;
????????????????flag_first_dead?=?1;
????????????end
????????????if(?dead?==?(n/2)?&&?flag_half_dead?==?0?)
????????????????half_dead_Round?=?r;
????????????????flag_half_dead?=?1;
????????????end
????????????hold?on;
????????else
????????????S(i).type?=?‘N‘;
????????????plot(?S(i).xd?S(i).yd?‘o‘?);
????????????hold?on;
????????end?
????????Remaining_En(r)?=?Remaining_En(r)?+?S(i).E;?%?第r?輪總剩余能量
????end
?????Round_Alive_Num(r+1)?=?n?-?dead;?%記錄第?r?輪?存活節(jié)點(diǎn)個(gè)數(shù)
????
???%%?成簇階段,尋找簇頭節(jié)點(diǎn),并計(jì)算簇頭與基站的距離
???cluster?=?0;%?每一輪開始前?將簇頭數(shù)目重置為?0;
???for?i?=?1:n
????????if(?S(i).E?>?0?)
????????????if(?S(i).G?<=?0?)
????????????????temp

評(píng)論

共有 條評(píng)論

相關(guān)資源