




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、无线传感器网络实验指导书信息工程学院实验一 质心算法一、实验目的掌握合并质心算法的基本思想;学会利用MATLAB实现质心算法;学会利用数学计算软件解决实际问题。二、实验内容和原理无需测距的定位技术不需要直接测量距离和角度信息。定位精度相对较低,不过可以满足某些应用的需要。在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。假设多边形定点位置的坐标向量表示为pi= (xi,yi)T,则这个多边形的质心坐标为:例如,如果四边形 ABCD 的顶点坐标分别为 (x1, y1),(x2, y2), (x3, y3) 和(x4,y4),则它的质心坐标计算如下:这种方法的计算与
2、实现都非常简单,根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后,就可以计算这些锚点所组成的多边形的质心,作为确定出自身位置。由于质心算法完全基于网络连通性,无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。三、实验内容及步骤该程序在Matlab环境下完成无线传感器中的质心算法的实现。在长为100米的正方形区域,信标节点(锚点)为90个,随机生成50个网络节点。节点的通信距离为30米。需完成:分别画出不同
3、通信半径,不同未知节点数目下的误差图,并讨论得到的结果所用到的函数:1. M = min(A)返回A最小的元素.如果A是一个向量,然后min(A)返回A的最小元素.如果A是一个矩阵,然后min(A)是一个包含每一列的最小值的行向量。2. randX = rand返回一个单一均匀分布随机数在区间 (0,1)。X = rand(n)返回n-n矩阵的随机数字。3. S = sum(A)返回 A 沿其大小不等于 1 的第一个数组维度的元素的总和。如果A是一个向量,sum(A)可返回元素的总和。如果A是一个矩阵,然后sum(A)返回一个行向量包含每个列的总和。4. inf无穷大此 MATLAB 函数 返
4、回正无穷大的 IEEE 算术表示。除以零和溢出等操作会生成无穷值,从而导致结果因太大而无法表示为传统的浮点值5. zeros - 创建全零数组X = zeros返回标量0.X = zeros(n) -由-n矩阵的零返回n.6. plot(X,Y)画出Y随X变化的2D 曲线。plot(X,Y,o)用o描述(X,Y)这一点。7.n= norm(v)返回的 2-范数或欧氏范数的向量v.n = norm (v,p)返回向量范数定义的sum(abs(v)p)(1/p),这里p是任何正值, Inf或-Inf.8.s = num2str(A)数值数组转换为字符数组输出,它表示的数字。输出格式取决于原始值的大
5、小。num2str是用于标签和标题情节与数字值。所用到的变量:xy:均匀分布的信标节点位置矩阵n:未知节点数量SS: 未知节点位置矩阵dm:通信半径cent:质心MM:未知节点估计坐标矩阵e:估计位置和实际位置距离矩阵(误差)四、源程序clearclc%锚节点节点设置for i=1:1:10%1到10,步长是1;画出锚点,前一个括号是标号。 for j=1:1:10 x(j+(i-1)*10)=(i-1)*10; y(j+(i-1)*10)=(j-1)*10; endendfigure%出现图形界面plot(x,y,'k.'); %黑点hold on %继续画图axis(0 1
6、00 0 100);xy=x;y;把X,Y的坐标付给矩阵XYxy;hold onxm=90;ym=90;n=50; %未知节点 for i=1:1:n Sx(i)=rand(1,1)*xm;%产生一个一行一列的矩阵;依然是0-1中任意一个值。 Sy(i)=rand(1,1)*ym; plot(Sx(i),Sy(i),'r*');% 红星 xlabel('x轴'); ylabel('y轴'); hold onenddm=30 ;%通信半径m=100; 一共100个点;for j=1:1:n%未知节点循环;每一个未知节点都与在通讯范围内所有的锚点算一
7、遍距离,放到一个矩阵中,通讯距离以外的点为零。 SS=Sx(j);Sy(j); k=0;%表示通信半径内的信标节点数 for i=1:1:m d=norm(xy(:,i)-SS),2);%2范数就是求直线距离;不管行,第i列; if d<=dm 是否在范围内,取出信标节点,放到XX,yy中 xx(j,i)=xy(1,i);第1行第i列;%X坐标都给了XX yy(j,i)=xy(2,i); 第2行第i列; k=k+1; else xx(j,i)=0; yy(j,i)=0; end end if k=0%k不等于零 cent(:,j)=sum(xx(j,:);sum(yy(j,:)/k;%第
8、j行的所有列 else cent(:,j)=0; 令第j列的所有元素为零。 end plot(cent(1,j),cent(2,j),'o') ; hold on plot(cent(1,j) Sx(j),cent(2,j) Sy(j),'R-') ;%估计位置和真实位置连接 title('Centroid'); hold on MM=cent(1,j);cent(2,j); e(j)=norm(MM-SS),2); %定位误差end% figure/dm% axis(0 n 0 1)% j=1:1:n% plot(j,e(j) ,'-r
9、.')% hold on% title('Centroid')% E=sum(e)/nE=sum(e)/(n*dm);disp('定位误差=',num2str(E); %将结果转换成字符串输出实验二 DV-hop算法一、 实验目的掌握DV-hop算法的基本思想;学会利用MATLAB实现DV-hop算法;学会利用数学计算软件解决实际问题。二、实验内容和原理DV-Hop算法解决了低锚点密度引发的问题,它根据距离矢量路由协议的原理在全网范围内广播跳数和位置。已知锚点L1与L2、L3之间的距离和跳数。L2计算得到校正值(即平均每跳距离)为(40+75)/(2+5
10、)=16.42m。假设传感器网络中的待定位节点A从L2获得校正值,则它与3个锚点之间的距离分别是L1=3×16.42,L2=2×16.42,L3=3×16.42,然后使用多边测量法确定节点的位置。图1 DV hop 算法示意图三、实验内容及步骤该程序在Matlab环境下完成无线传感器中的DV-Hop算法的实现。在长为100米的正方形区域,随机生成100个网络节点,其中信标节点(锚点)为8个,未知坐标节点为92个。节点的通信距离为50米。可算出最短路经算法计算节点间跳数、每个信标节点的校正值并可用用跳数估计距离。(1000-1000, 300个节点,60个信标节点)
11、所用到的函数:参见上节:质心算法;需完成:1) 运行程序,生成随机分布的节点;2) 更正程序中的错误,求每个信标节点的校正值;3) 继续运行程序,利用跳数估计待求节点的距离。四、源程序% DV-Hop算法 % BorderLength-正方形区域的边长,单位:m% NodeAmount-网络节点的个数% BeaconAmount-信标节点数% Sxy-用于存储节点的序号,横坐标,纵坐标的矩阵%Beacon-信标节点坐标矩阵;BeaconAmount*BeaconAmount%UN-未知节点坐标矩阵;2*UNAmount% Distance-未知节点到信标节点距离矩阵;2*BeaconAmoun
12、t%h-节点间初始跳数矩阵%X-节点估计坐标初始矩阵,X=x,y'% R-节点的通信距离,一般为10-100mclear,close all;BorderLength=100;NodeAmount=100;BeaconAmount=8;UNAmount=NodeAmount-BeaconAmount;R=50;% D=zeros(NodeAmount,NodeAmount);%未知节电到信标节点距离初始矩阵;BeaconAmount行NodeAmount列h=zeros(NodeAmount,NodeAmount);%初始跳数为0;NodeAmount行NodeAmount列X=zer
13、os(2,UNAmount);%节点估计坐标初始矩阵%在正方形区域内产生均匀分布的随机拓扑C=BorderLength.*rand(2,NodeAmount);%带逻辑号的节点坐标Sxy=1:NodeAmount;C;%将1-NodeAmount与C上下合到一起,产生一个总矩阵。Beacon=Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount);%信标节点坐标UN=Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmount);%未知节点坐标%画出节点分布图plot(Sxy(2,1:B
14、eaconAmount),Sxy(3,1:BeaconAmount),'r*',Sxy(2,(BeaconAmount+1):NodeAmount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')xlim(0,BorderLength);ylim(0,BorderLength);title('* 红色信标节点 . 黑色未知节点')%初始化节点间距离、跳数矩阵for i=1:NodeAmount for j=1:NodeAmount Dall(i,j)=(Sxy(2,i)-Sxy(2,j)2+(Sxy(3,i)-S
15、xy(3,j)2)0.5;%所有节点间相互距离 if (Dall(i,j)<=R)&(Dall(i,j)>0) h(i,j)=1;%初始跳数矩阵 elseif i=j h(i,j)=0;%自己到自己的距离 else h(i,j)=inf; end endend%最短路经算法计算节点间跳数for k=1:NodeAmount for i=1:NodeAmount for j=1:NodeAmount if h(i,k)+h(k,j)<h(i,j)%min(h(i,j),h(i,k)+h(k,j) h(i,j)=h(i,k)+h(k,j); end end endendh
16、%求每个信标节点的校正值h1=h(1:BeaconAmount,1:BeaconAmount);%从大矩阵中取出信标节点的跳数D1=Dall(1:BeaconAmount,1:BeaconAmount); %从大矩阵中取出信标节点的距离for i=1:BeaconAmount dhop(i,1)=sum(D1(i,:)/sum(h1(i,:);%每个信标节点的平均每跳距离endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%新标节点与未知节点的距离,逗号前面是行的范围,后面是列的范围。 for i=1:BeaconAmount for
17、j=1:UNAmount if min(D2(:,j)=D2(i,j) Dhop(1,j)= dhop (i,j);%未知节点从最近的信标获得校正值 end endendDhop%用跳数估计距离hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount)%未知节点到信标跳数,BeaconAmount行UNAmount列for i=1:UNAmount hop=Dhop(1,i);%hop为从最近信标获得的校正值 Distance(:,i)=hop*hop1(:,i);%Beacon行UN列;end% %最小二乘法求未知点坐标 d=Distance; fo
18、r i=1:2 for j=1:(BeaconAmount-1) a(i,j)=Beacon(i,j)-Beacon(i,BeaconAmount); end end %a为第一个信标节点和最后一个信号节点的坐标差值,保留最后一个信标节点% a' A=-2*(a');% d=d1' for m=1:UNAmount for i=1:(BeaconAmount-1) B(i,1)=d(i,m)2-d(BeaconAmount,m)2-Beacon(1,i)2+Beacon(1,BeaconAmount)2-Beacon(2,i)2+Beacon(2,BeaconAmount)2; % 前九个信标节点到未知节点的距离平方% 最后信标节点到未知节点的距离平方% 前九个信标节点横坐标平方% 最后信标节点到未知节点的横坐标平方 % 前九个信标节点纵坐标平方% 最后信标节点纵坐标平方 end X1=inv(A'*A)*A'*B; %inv是求逆矩阵 X(1,m)=X1(1,1); X(2,m)=X1(2,1); end %X为估计的未知节点位置 for i=1:UNAmount error(Z,i)=(X(1,i)-UN(1,i)2+(X(2,i)-UN(2,i)2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨科危重护理
- 硬盘陈列知识培训总结课件
- 焊工考试题模拟题及答案
- 植被火险评估-洞察与解读
- 血管内导管相关性血流感染预防与诊治指南2025年
- 海南近年会考试卷及答案
- 海口历年中考试题及答案
- 2025年康复医学治疗技术主任医师试题及答案
- 2025年行政强制法知识竞赛抢答题库(附答案)
- 2025年度凯里市继续教育公需科目考试题(含答案)
- 2024年山东济南轨道交通集团有限公司招聘笔试参考题库含答案解析
- 仿生机器鱼行业规模分析
- DZ-T 0270-2014地下水监测井建设规范
- 中英文员工评估表
- β内酰胺类抗菌药物皮肤试验指导原则(2021版)
- 小学语文论文:浅谈小学六年级语文有效教学
- 学生资助政策宣传主题班会PPT
- 大一统专题复习-高中历史教学资料
- YS/T 1018-2015铼粒
- 【高等数学练习题】沈阳大学专升本自考真题汇总(附答案解析)
- 合作项目管理办法
评论
0/150
提交评论