无线网络协议原理_第1页
无线网络协议原理_第2页
无线网络协议原理_第3页
无线网络协议原理_第4页
无线网络协议原理_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——无线网络协议原理武

计算机科学与工程学院

《无线网络协议原理》试验报告

专业班级

试验地点

学生学号

指导教师

学生姓名

试验时间

试验工程试验二:LEACH协议仿真试验试验类别操作性()

验证性()

设计性(

综合性()

其它()

试验目的及要求

(1)试验目的通过此试验使学生加深理解leach成簇协议,分析算法优、缺点。

(2)试验要求a)

编写簇头选举代码;b)编写普通节点参与簇代码;c)编写能量消耗代码;d)和PEGASIS协议试验结果比较并分析原因。

e)尝试对节点初始能量不均匀状况改进簇头选举算法。

成绩评定表类

别评分标准分值得分合

计上机表现积极出勤、遵守纪律主动完成试验设计任务

030分

程序代码对比规范、基本正确功能达到试验要求

030分

试验报告及时递交、填写规范内容完整、表达收获

040分

说明:

评阅教师:

日期:

实验内容一、试验目的1编写WSN网络节点生成代码2编写簇头选举代码3编写普通节点参与簇代码4编写路由能量消耗代码5尝试对节点初始能量不均匀状况改进簇头选举算法(可选)

6画出分簇效果图7和PEGASIS协议能量消耗性能比较并分析原因

二、试验准备

1、试验中会用到的库函数有rand()函数:随机数生成函数,即生成0~1的随机数,里面参数表示矩阵大小Round()函数:四舍五入取整函数Plot()函数:二维曲线绘图函数2、把握LEACH协议的基本类容,根据簇的划分以及簇头的选择编写代码

并得到仿真结果。

设置区域范围、节点坐标、区域内节点数目、节点成为簇头概率以及各种能

量和最大轮数的设定利用rand()函数创立随机的传感器网络,并设定集聚节点位置根据节点能量是否大于零来判断节点是否死亡并在图中画出节点的位置,死亡的节点用红点表示,没有死亡的普通节点用"。'表示并用plot()函数画出这些节点的曲线图根据LEACH协议中簇头节点的选取要求选出簇头,根据簇头节点的坐标用plot()函数在图上将簇头表示黑*,并计算簇头节点到集聚节点的距离,将距离与通信路径进行对比计算出各簇头的能量消耗选取正常节点的相关簇头,在n个节点中选取出节点类型为N且能量大于零的节点,计算这些节点到集聚界定的距离,设定距离最小最小簇头数为1,计算该节点与各簇头的距离,取最小距离的簇头节点为该节点簇头,并计算出各普通节点的能量消散用plot()函数画出各簇头节点和普通节点的划分图

三、试验步骤

clear;

xm=100;

ym=100;//设置区域为100*100

sink.x=0.5*xm;

sink.y=0.5*ym;//集聚节点坐标

n=100//区域内节点数目

p=0.1;//节点成为簇头的概率

Eo=0.5;//节点初始能量

ETX=50*0.000000001;//发射单位报文损耗能量

ERX=50*0.000000001;//接收单位报文损耗能量

Efs=10*0.000000000001;//自由空间能量

Emp=0.0013*0.000000000001;//衰减空间能量

EDA=5*0.000000001;多路径衰减能量

rmax=20最大的轮数do=sqrt(Efs/Emp);//计算通信路径do1、下面利用for循环语句和rand()函数在n个节点中随机生成普通节点类型的节点,并表示出它的坐标以及初始能量,普通类型节点用N表示。(请按要求在"*'处填上适合的代码)

for******fori=1:1:n

S(i).xd=rand(1,1)*xm;

S(i).yd=rand(1,1)*ym;

S(i).G=0;

S(i).type="N";

S(i).E=Eo;

end****

End定义集聚节点的位置坐标S(n+1).xd=sink.x;

S(n+1).yd=sink.y;cluster=1;利用for循环语句初始化每个节点的簇头节点forr=0:1:rmax

if(mod(r,round(1/p))==0)

fori=1:1:n

S(i).G=0;

end

end

holdoff;

figure(1);2、请分析下段代码的功能。

fori=1:1:n

if(S(i).E=0)

plot(S(i).xd,S(i).yd,"red.");

holdon;

end

if(S(i).E0)

S(i).type="N";

plot(S(i).xd,S(i).yd,"o");

holdon;

end

endplot(S(n+1).xd,S(n+1).yd,"x");

plot(S(n+1).xd,S(n+1).yd,"red.");cluster=1;

功能:利用for语句判断每个节点是否死亡,假如节点能量小于零则节点死亡,并用plot()函数在图上表示出该节点的位置,用red.表示死亡的节点。反之则节点没有死亡,将节点类型定义为普通节点,并用并用plot()函数在图上表示出该节点的位置,用。表示未死亡的普通节点。并表示出集聚节点的位置,并将其记为第一个簇头,判断节点是否死亡。

3、利用for语句和if语句根据LEACH协议的簇头选取规矩在n个节点中选出簇头节点,将簇头节点的类型用C表示,并将选出的接待点的坐标赋值给簇头C(cluster),并用plot()函数将簇头节点的位置在图中用k*表示。然后计算该点到集聚节点的距离并将该距离赋值给簇头到集聚节点的距离C(cluster).distance。并记录得到的簇头节点是n个节点中的哪一个,给簇头的X、Y坐标赋值并将簇头总数加一。最终通过对比各簇头节点到集聚加节点的距离和通信半径的距离计算出簇头节点的能量耗散(请按要求补全以下横线处的代码)

fori=1:1:n//簇头的选择

if(S(i).E0)

temp_rand=rand;

if((S(i).G)=0)

if(temp_rand=(p/(1-p*mod(r,round(1/p)))))

S(i).type="C'

;

S(i).G=round(1/p)-1;

C(cluster).xd=

S(i).xd

;

C(cluster).yd=

S(i).yd

;

plot(

S(i).xd,S(i).yd,"k*"

);

distance=

sqrt((S(i).xd-(S(n+1).xd))^2+(S(i).yd-(S(n+1).yd))^2)

;

C(cluster).distance=

distance

;

C(cluster).id=

i

;

X(cluster)=

S(i).xd

;

Y(cluster)=

S(i).yd

;

cluster=

cluster+1

;

distance;

if(distancedo)

S(i).E=

S(i).E-(ETX+EDA)*(4000)+Emp*4000*(distance*distance*distance*distance));

end

if(distance=do)

S(i).E=

S(i).E-((ETX+EDA)*(4000)

+Efs*4000*(distance*distance))

;

end

end

end

end

end4、利用for循环对普通节点进行簇的划分即对普通节点选取相关簇头,首先初始化该点的通信最短距离,即该点到集聚节点的距离,并记录下它的簇头为集聚节点。然后将该普通节点与全部的簇头节点进行距离计算并与它与集聚节点的距离进行对比,将距离的最小值赋值给min_dis。然后计算普通节点和簇头节点的能量耗散,记录该普通节点的簇头节点和到簇头节点的距离。(请按要求补全以下横线处的代码)

fori=1:1:n

//选取正常节点的相关簇头

if(S(i).type=="N"S(i).E0)

if(cluster-1=1)

min_dis=

sqrt((S(i).xd-S(n+1).xd)^2+(S(i).yd-S(n+1).yd)^2)

;

min_dis_cluster=

1

;

for

c=1:1:cluster-1

temp=min(min_dis,

sqrt((S(i).xd-C(c).xd)^2+(S(i).yd-C(c).yd)^2)

);

if(tempmin_dis)

min_dis=temp

;

min_dis_cluster=c;

;

end

end

if(min_disdo)

//普通节点能量耗散

S(i).E=

S(i).E-(ETX*(4000)+Emp*4000*(min_dis*min_dis*min_dis*min_dis));

;

end

if

(min_dis=do)

S(i).E=S(i).E-(ETX*(4000)+Efs*4000*(min_dis*

min_dis))

;

end

if(min_dis0)

//簇头节点能量耗散

S(C(min_dis_cluster).id).E=

S(C(min_dis_cluster).id).E-((ERX+EDA)*4000)

;

end

S(i).min_dis=

min_dis

;

S(i).min_dis_clust

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论