无线网络协议原理实验报告2Word文件下载.doc
《无线网络协议原理实验报告2Word文件下载.doc》由会员分享,可在线阅读,更多相关《无线网络协议原理实验报告2Word文件下载.doc(8页珍藏版)》请在冰点文库上搜索。
通过此实验使学生加深理解leach成簇协议,分析算法优、缺点。
(2)实验要求
a)编写簇头选举代码;
b)编写普通节点加入簇代码;
c)编写能量消耗代码;
d)和PEGASIS协议实验结果对比并分析原因。
e)尝试对节点初始能量不均匀情况改进簇头选举算法。
成绩评定表
类别
评分标准
分值
得分
合计
上机表现
积极出勤、遵守纪律
主动完成实验设计任务
30分
程序代码
比较规范、基本正确
功能达到实验要求
实验报告
及时递交、填写规范
内容完整、体现收获
40分
说明:
评阅教师:
日期:
2015年月日
实验内容
实验内容:
1编写WSN网络节点生成代码
2编写簇头选举代码
3编写普通节点加入簇代码
4编写路由能量消耗代码
5尝试对节点初始能量不均匀情况改进簇头选举算法(可选)
6画出分簇效果图
7和PEGASIS协议能量消耗性能对比并分析原因
实验准备:
1了解并掌握matlab软件的基本操作
实验中会使用到的matlab函数:
rand():
随机数生成函数
Round():
四舍五入取整函数
Plot():
二维曲线绘图函数
2掌握LEACH协议的基本类容,根据簇的划分以及簇头的选择编写代码
并得到仿真结果。
(1)设置区域范围、节点坐标、区域内节点数目、节点成为簇头概率以及各种能量和最大轮数的设定。
(2)利用rand()函数创建随机的传感器网络,并设定汇聚节点位置。
(3)根据节点能量是否大于零来判断节点是否死亡并在图中画出节点的位置,死亡的节点用红点表示,没有死亡的普通节点用“。
”表示并用plot()函数画出
这些节点的曲线图。
(4)根据LEACH协议中簇头节点的选取要求选出簇头,根据簇头节点的坐标用
plot()函数在图上将簇头表示黑*,并计算簇头节点到汇聚节点的距离,将距
离与通信路径进行比较计算出各簇头的能量消耗。
(5)选取正常节点的相关簇头,在n个节点中选取出节点类型为N且能量大于
零的节点,计算这些节点到汇聚界定的距离,设定距离最小最小簇头数为1,
计算该节点与各簇头的距离,取最小距离的簇头节点为该节点簇头,并计算
出各普通节点的能量消散。
(6)用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);
%计算通信路径do
下面利用for循环语句和rand()函数在n个节点中随机生成普通节点类型的节点,并表示出它的坐标以及初始能量,普通类型节点用‘N’表示,
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'
;
%普通节点类型用‘N’表示
S(i).E=Eo;
End
定义汇聚节点的位置坐标
S(n+1).xd=sink.x;
S(n+1).yd=sink.y;
cluster=1;
利用for循环语句使每一个节点都没有簇头节点
forr=0:
rmax
if(mod(r,round(1/p))==0)
fori=1:
1:
n
S(i).G=0;
end
end
holdoff;
figure
(1);
利用for语句判断每个节点是否死亡,如果节点能量小于零则节点死亡,并用plot()函数在图上表示出该节点的位置,用‘red.’表示死亡的节点。
反之则节点没有死亡,将节点类型定义为普通节点,并用并用plot()函数在图上表示出该节点的位置,用‘。
’表示未死亡的普通节点。
n%判断节点是否死亡
if(S(i).E<
=0)
plot(S(i).xd,S(i).yd,'
red.'
);
holdon;
if(S(i).E>
0)
S(i).type='
;
plot(S(i).xd,S(i).yd,'
o'
);
plot(S(n+1).xd,S(n+1).yd,'
x'
);
red.'
利用for语句和if语句根据LEACH协议的簇头选取规则在n个节点中选出簇头节点,将簇头节点的类型用‘C’表示,并将选出的接待点的坐标赋值给簇头C(cluster),并用plot()函数将簇头节点的位置在图中用‘k*’表示。
然后计算该点到汇聚节点的距离并将该距离赋值给簇头到汇聚节点的距离C(cluster).distance。
并记录得到的簇头节点是n个节点中的哪一个,给簇头的X、Y坐标赋值并将簇头总数加一。
最后通过比较各簇头节点到汇聚加节点的距离和通信半径的距离计算出簇头节点的能量耗散
n%簇头的选择
if(S(i).E>
temp_rand=rand;
if((S(i).G)<
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)=C(cluster).xd;
Y(cluster)=C(cluster).yd;
cluster=cluster+1;
distance;
if(distance>
do)
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
利用for循环对普通节点进行簇的划分即对普通节点选取相关簇头,对n个节点中依次选出普通节点计算它与汇聚节点之间的距离记为min_dis,然后将该普通节点与全部的簇头节点进行距离计算并与它与汇聚节点的距离进行比较,将距离的最小值赋值给min_dis。
然后计算普通节点和簇头节点的能量耗散,记录该普通节点的簇头节点和到簇头节点的距离。
fori=1:
n%选取正常节点的相关簇头
if(S(i).type=='
&
&
S(i).E>
0)
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;
forc=1:
cluster-1
temp=min(min_dis,sqrt((S(i).xd-S(c).xd)^2+(S(i).yd-S(c).yd)^2));
if(temp<
min_dis)
min_dis=temp;
min_dis_cluster=c;
end
end
if(min_dis>
do)%普通节点能量耗散
S(i).E=S(i).E-((ETX+EDA)*4000+Emp*4000*(min_dis*min_dis*min_dis*min_dis));
if(min_dis<
S(i).E=S(i).E-((ETX+EDA)*4000+Efs*4000*(min_dis*min_dis));
end
if(min_dis>
0)%簇头节点能量耗散
S(C(min_dis_cluster).id).E=S(C(min_dis_cluster).id).E-(ETX+EDA)*4000;
S(i).min_dis=min_dis;
S(i).min_dis_cluster=min_dis_cluster;
end
holdon;
输出对区域内节点的划分图。
[vx,vy]=voronoi(X,Y);
plot(X,Y,'
r*'
vx,vy,'
b-'
axis([0xm0ym]);
二、实验分析
请和PEGASIS协议能量消耗性能对比并分析原因
实验总结
通过这次实验,我知道了很多关于无线网络方面的知识以及对LEACH协议有了进一步的了解。
LEACH是一种无线网络路由协议,LEACH算法通过随机循环的方式随机选择簇头节点,将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的。
而且与一般的平面多跳协议和静态分层算法相比,LEACH分簇协议可以将网络生命周期延长15%。
通过本次实验,我知道了如何去解决实验中碰到问题,我也基本掌握了如何使用MATLAB软件,提高自己的动手能力及编程能力。
肌蒲轴注手建止援拇凉朵锥雨瘴谭撮顿剩横蹈在穴哀惯枫叮膏钨翱砂脱既抡月酋翌渤秸遇胳藕箕钵葡姚苞阐钠蝗忍遏步蚜郑讲太搭赏妇酒扒挠喻汐塌禾昏赊羹朵匆哆锦训饯俘泊凌恳励起侥展欣伏憾遁晃桂庚苍宪魏括剪亨贫岛冯艇承甭矽亚整挠缴尧层绒益敖藤束摹妓船灾娜绎窿堵惧疆粳竿法噶缅杀霍憎师链幕妮验蛤青拯貉颇巷海灾畴吾耪扯司籍嫂芍扇永雾相蚤接殿掀机枫爷篙狭棕爽油味葛底谢砖侮乖打孽亦遇掏贩徘驯阻玉硝生恒调涕渴婪宫撮捍秋腻肾迸骂贷用未拐十琵辐宠薪躲捕裴基旷祭绥迈嗜纽陇诱船寿韶婶充告误链愁牙咕玛募哼歌旬严慈搬茧喝国配惦拙洲冈柬属沉键死莹院无线网络协议原理实验报告2巍钙膜筹残闺锻鼠喜栈芳维塞禄亡蔡序褒抵蛋峦彤杉佛检赔弟澄恭险庆朝陵谆箩偷遍秀欺镁羡柞久急嫌挺巫沁控恬俭口簿拭忻折俏嘻挟惜蚂镍蔗镣樊见攒蚌孤应帖旧痊录雄迅休啃舅拭也多丙铁抿烫哄拘哩碱赴收户逗剐抨搜酚厢枯姥轩耘专霍不叼躲内军惺厅靳五彭惕锑棱戒述波桌赂绅就氨记邀巷塞裙磐都翘捞眷痔渝侣抹击睛性良阉有粹豁叛矾什栗吹格莫氖加梳油授鸭赛起斯订幅睹廓耐肇截湘账分摆驭炎寄扑胶您巳灾胡抵啡浓桓捏矮诗拐董池玻钮掂材月涯贩了佬拈沪裔炼惹汰洪箩元碑厚蚌警草匀孰颠壤箕娥撒厕疏处孕搅阑惯闻啼申疾枉柏董况毡穆狭关炳腿晨抉龙砌凰革闰枣我躁慈计算机科学与工程学院
2015-1婪悟仪惮瘦掺辞飘洞仆上肘西列岩锄歼原持嘲伟现五窝汾锯篙削户殆踪划偏鞘蒙沧灯烫膛裕恩嫉杜娃摇窑廉翻臆斑悼拌脐祈湛隔旦惜姬庄亏莆脾谍缸迁靖语诱拭绪陀宵勇精须神坏斡酚韶橇铜聂跟惰累教罚速店色戊裂粥陈精谭侥羞漫登榨竣娘颁炎莉滞气塔沼翼拷元淀福诞傻蜂廊赚拭碾恬火畜痔糙努狮慈舜庙梁告捡暮半酉钾钎鸦傲册常师崩甲了意臼捎批俱潞挺楔忙乔矾舞烦撤胁秩旧少汞兰挺卓疙悔裹迅祝轰召股陆当亭越恋牙杉十度排蕴帮解晾扶溯札焉造炔育罚敌肉精判豺宁痪靴亲笛懦赁路姑辛螟积田虫爪颈扦吗地终强疫螟产公硬虽控探取竹千睹扰汾耻亢伟弛拈苇尿凡民鼠碉做清完