资源简介
很齐全的WSN的matlab仿真希望贵大家有所帮助
代码片段和文件信息
clear
m=1;
for a=0:0.5:5
%1.初始参数设定模块
%.传感器节点区域界限(单位 M)
xm=100;
ym=100;
%(1)汇聚节坐标给定
sink.x=0.5*xm;
sink.y=0.5*ym;
%区域内传器节数
n=100
%簇头优化比例(当选簇头的概率)
p=0.1;
P=0.1;
%能量模型(单位 焦)
%初始化能量模型
Eo=0.5;
%Eelec=Etx=Erx
ETX=50*0.000000001;
ERX=50*0.000000001;
%Transmit Amplifier types
Efs=10*0.000000000001;
Emp=0.0013*0.000000000001;
%Data Aggregation Energy
EDA=5*0.000000001;
%最大循环次数
rmax=5000
%算出参数 do
do=sqrt(Efs/Emp);
Et=0;
%2.无线传感器网络模型产生模块
%构建无线传感器网络在区域内均匀投放100个节点并画出图形
for i=1:1:n
S1(i).xd=rand(11)*xm;
S2(i).xd=S1(i).xd;
S3(i).xd=S1(i).xd;
S4(i).xd=S3(i).xd;
XR4(i)=S4(i).xd;
XR3(i)=S3(i).xd;
XR2(i)=S2(i).xd;
XR1(i)=S1(i).xd;
S1(i).yd=rand(11)*ym;
S2(i).yd=S1(i).yd;
S3(i).yd=S1(i).yd;
S4(i).yd=S3(i).yd;
YR4(i)=S4(i).yd;
S4(i).G=0;
YR3(i)=S3(i).yd;
S3(i).G=0;
YR2(i)=S2(i).yd;
YR1(i)=S1(i).yd;
S1(i).G=0;
S2(i).G=0;
S1(i).E=Eo*(1+rand*a);
S2(i).E=S1(i).E;
S3(i).E=S1(i).E;
S4(i).E=S3(i).E;
E3(i)= S3(i).E;
E4(i)= S4(i).E;
Et=Et+E3(i);
%initially there are no cluster heads only nodes
S1(i).type=‘N‘;
S2(i).type=‘N‘;
S3(i).type=‘N‘;
S4(i).type=‘N‘;
end
S2(n+1).xd=sink.x;
S2(n+1).yd=sink.y;
%3.网络运行模块
%簇头节点数
countCHs2=0;
cluster=1;%此定义的目的仅仅是给定一个1开始的下标参数,真正的簇头数应该还减去1
flag_first_dead2=0;
flag_teenth_dead2=0;
%死亡节点数
dead2=0;
first_dead2(m)=0;
teenth_dead2(m)=0;
%活动节点数
allive2=n;
%(1)循环模式设定
for r=0:1:rmax %该 for 循环将下面的所有程序包括在内,直到最后一 end 才结束循环
r;
%每过一个轮转周期(本程序为10次)使各节点的S(i).G参数(该参数用于后面的簇选举,在该轮转周期内已当选过簇头的节点不能再当选)恢复为零
if(mod(r round(1/p) )==0)
for i=1:1:n
S2(i).G=0;
S2(i).cl=0;
end
end
%(2)死亡节点检查模块
dead2=0;
for i=1:1:n
%检查有无死亡节点
if (S2(i).E<=0)
dead2=dead2+1;
%(3)第一个死亡节点的产生时间(用轮次表示)
%第一个节点死亡时间
if (dead2==1)
if(flag_first_dead2==0)
first_dead2(m)=r;
flag_first_dead2(m)=1;
end
end
%10%的节点死亡时间
if(dead2==0.1*n)
if(flag_teenth_dead2==0)
teenth_dead2(m)=r;
flag_teenth_dead2=1;
end
end
end
if S2(i).E>0
S2(i).type=‘N‘;
end
end
%(4)簇头选举模块
countCHs2=0;
cluster2=1;
for i=1:1:n
if(S2(i).E>0)
temp_rand=rand;
if ( (S2(i).G)<=0)
%簇头的选举,当选的簇头会把各种相关信存入下面程序所给定的变量中
if(temp_rand<= (p/(1-p*mod(rround(1/p)))))
countCHs2=countCHs2+1;
S2(i).type=‘C‘;
S2(i).G=round(1/p)-1;
C2(cluster2).xd=S2(i).xd;
C2(cluster2).yd=S2(i).yd;
distance=sqrt( (S2(i).xd-(S2(n+1).xd) )^2 + (S2(i).yd-(S2(n+1).yd) )^2 );
C2(cluster2).distance=distance;
C2(cluster2).id=i;
X2(cluster2)=S2(i).xd;
Y2(cluster2)=S2(i).yd;
cluster2=cluster2+1;
%计算簇头发送4000bit数据到基站的能量消耗(这里
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6118 2007-05-28 22:11 WSN\leachs1.m
文件 12135 2007-06-04 19:02 WSN\leachs1vsleachs2.m
文件 6346 2007-05-25 14:40 WSN\leachs2.m
文件 22337 2007-06-03 23:10 WSN\leachvsdeec.m
文件 10454 2007-05-25 19:47 WSN\bp2.m
文件 19002 2007-05-25 19:52 WSN\bp4.m
文件 12515 2007-06-04 19:02 WSN\DEEC1VSDEEC2.m
文件 6637 2007-05-25 10:39 WSN\DEEC2.m
文件 20473 2007-06-04 20:15 WSN\fps.m
文件 5954 2007-05-25 11:23 WSN\leachm1.m
文件 10957 2007-05-25 15:37 WSN\leachm1vsleachm2.m
文件 6402 2007-05-25 11:24 WSN\leachm2.m
目录 0 2007-10-24 10:35 WSN
----------- --------- ---------- ----- ----
139330 13
相关资源
- gps基本原理及其matlab仿真199992
- 超声波模拟仿真Field Ⅱ适用于win10的
- 信号分析与处理——MATLAB语言及应用
- MATLAB编程100例
- 扫描文件的光学字符分割文字分割M
- 交替方向乘子法ADMM算法的matlab代码
-
PN码同步仿真源程序simuli
nk - 图像插值方法3种方法,MATLAB代码
- AF、DF协议的MATLAB仿真
- tobii眼动仪视觉追踪程序源码,MATLA
- ADMM工具包
- Matlab实现FCM算法
- matlab 计算李雅普诺夫指数的方法集合
- 多径多普勒效应讲义(含matlab程序)
- 基于Matlab的数字图像处理课程设计
- 房价预测模型算法源代码
- 雷达系统设计MATLAB仿真.pdf196612
- Matlab 揭秘 全本
- MATLAB建模与仿真应用教程(第2版 )
- 精简版绿色Matlab
- DTFT、DFT、FFT原理及编程
- 无线传感器网络定位程序(matlab可以
- 雷达系统设计及matlab仿真 全文书籍
- 基于matlab图像处理系统含GUI
- 虹膜识别matlab程序源代码
- MATLAB程序——癫痫病人的脑电信号提
- KNN算法对MNIST数据集分类
- 系统辨识与自适应控制MATLAB仿真1904
- PIV matlab程序
- MATLAB在时间序列分析中的应用_张善文
评论
共有 条评论