物联网定位技术实验报告书.doc_第1页
物联网定位技术实验报告书.doc_第2页
物联网定位技术实验报告书.doc_第3页
物联网定位技术实验报告书.doc_第4页
物联网定位技术实验报告书.doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

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

文档简介

中南大学信息科学与工程学院物联网定位技术实验报告书实验名称: 网络定位算法研究 成 员: 董嘉伟 指导老师: 张士庚 完成时间: 2013-6-1 目录l 实验目的l 实验设备l 实验要求l 实验背景l 实验原理l 实验实现(部分)l 实验结果展示及分析l 实现小结一、实验目的掌握常用网络定位算法,并能够独立完成和实现。二、实验设备硬件:计算机 软件:VS2012、C#4.0三、实验要求l 在给定的两个网络中,编程实现前面所讲的定位算法l 选择至少两个定位算法进行实现l 计算所得的定位结果的误差l 对不同定位算法的效果进行分析比较l 撰写实验报告l 扩展:考虑距离测量有误差的情况?4、 实验背景无线传感器网络(WSN)定位问题在军事、楼宇自动化、跟踪与监测等方面都有广泛的应用,一直是WSN的技术热点之一。尽管全球无线定位系统(GPS)提供了很好定位手段,并在很多方面发挥着重要的作用,但也存在着一些不足。比如:GPS不适合于室内环境定位,其能量消耗将减少传感器节点的生存寿命,GPS及其天线增大了节点的体积等,因此GPS并不适用于无线传感器网络。针对无线传感器网络开展专门的不依赖于GPS的定位研究(特别是分布式定位算法),具有重要的意义。很多学者研究了无线传感器网络节点精确定位问题,提出了许多有效的算法。这些算法依据是否计算节点间的距离,可分为距离无关定位算法和距离相关定位算法。距离无关定位算法如最小包含圆算法、DV-Hop(distancevector-hop)算法、多向度量法(MDS)等。这些方法大多通过几何方法实现,依赖于网络的拓扑结构,从而影响了定位精度。距离相关定位算法一般先通过某种测距方法确定未知节点与初始锚节点的距离,然后根据这个距离利用三边关系、多边关系或边角关系等确定未知节点的位置。测距方法有到达时间法(TOA)、到达时间差法(TDOA)、接收信号强度法(RSSI)等。距离相关定位算法的定位精度依赖于测距的准确性,其测距误差可用测距的百分比来衡量。依据到初始锚节点的跳数可以分为单跳定位和多跳定位,单跳定位算法如APIT定位算法,到达角定位算法10等。多跳定位算法如DV-Hop(distancevector-hop)算法、迭代多边定位(iterativemultilateration)算法等。单跳定位早于无线传感器网络的出现,是多跳定位的基本技术。5、 实验原理当网络的连通性较好时(每个节点至少有3个邻居节点),设盲节点(xi,Yi)的周围有k个参考节点(x1,y1),(x2,y2),(x3,y3)(x4,Y4),它们与盲节点(xi,yi)的之间的测距离为r,1,r2,r3,rk。设(Xi,yi)的估计值为(x0,y0)。参考节点到估计位置距离与测距之间的差异用fi(x0,y0)表示:求解如下最小二乘估计来获得最优的位置估计(x0, y0): 当矩阵A 是列满秩时可以得到如式所示的最小二乘解。 迭代多边定位过程如下:首先由预定的锚节点( 坐标给定) 通过式估计盲节点的坐标,然后将这些已定位的盲节点当作参考节点参与其他盲节点的定位,下一轮得到坐标的盲节点又可以做为参考节点参与其他盲节点的定位。依次类推,式层层迭代运行,对网络中的所有盲节点进行定位( 如图1 所示) 。 图1 多边定位迭代运行 在图1 中初始锚节点1 ,节点2 ,节点 3可用来估计节点4 的位置,初始锚节点 3 ,节点5 ,节点6 可用来估计节点 7 的位置,节点 4 和节点7 当做参考节点,和节点 6 一起估计节点8 的位置。当然节点8 可以当作参考节点去参与其他盲节点的定位。6、 实验实现本次使用C#语言来实现,详细源码看压缩包中工程文件。节点类Node:using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;namespace 网络定位算法比较 class Node/节点类 /节点属性 private int NodeID;/节点ID号 private double realX;/节点的真实经度 private double realY;/节点的真实纬度 private bool IsBasic;/是否为锚节点 private ArrayList arNode = new ArrayList();/索引器数组 public void setID(int id) this.NodeID=id; public int getID() return this.NodeID; public void setRealX(double realX) this.realX = realX; public double getRealX() return this.realX; public void setRealY(double realY) this.realY = realY; public double getRealY() return this.realY; public void setIsBasic(int a) if (a = 1) this.IsBasic = true; else this.IsBasic = false; public bool getIsBasic() return this.IsBasic; public double X set; get; public double Y set; get; /索引器 public Node thisint index get return (Node)arNodeindex; set arNode.Insert(index, value); 迭代计算方法Calc():public void Calc(int id, int num) /Node node = NodeList.ToArray(); double nodeX= new doublenum;/存放锚节点X坐标信息 double nodeY= new doublenum;/存放锚节点Y坐标信息 double dist=new doublenum;/存放距离信息 int nodesum=0;/参与计算的节点数量,最大值为num-1 for (int i = 1; i 0 & NodeListi - 1.getIsBasic() = true) nodeXnodesum = NodeListi - 1.getRealX(); nodeYnodesum = NodeListi - 1.getRealY(); distnodesum =distanceid,i; nodesum+; Matrix MatrixA = new Matrix(num,2);/矩阵A Matrix Matrixb = new Matrix(num,1);/矩阵b for (int s = 0; s nodesum; s+) MatrixAs,0=2*(nodeXnodesum-1-nodeXs); MatrixAs,1=2*(nodeYnodesum-1-nodeYs); Matrixbs, 0 = dists * dists - distnodesum-1 * distnodesum-1 - (nodeXs * nodeXs - nodeXnodesum-1 * nodeXnodesum-1) - (nodeYs * nodeYs - nodeYnodesum-1 * nodeYnodesum-1); Matrix temp1 = MatrixA.Transpose(); Matrix temp2 = temp1 * MatrixA; Matrix temp3 = temp2.Inverse(); Matrix temp4 = temp3 * temp1; Matrix temp5 = temp4 * Matrixb; NodeListid - 1.X = temp50, 0; NodeListid - 1.Y = temp51, 0; NodeListid - 1.setIsBasic(1); 迭代过程: bool flag=true; int tid, tcnt, cnt; while (flag) flag = false; tid = -1; tcnt = 0; for (int i = 1; i = 320; i+) if (NodeListi - 1.getIsBasic() = true)/|i!=124) continue; cnt = 0; for (int s = 1; s 0 & NodeLists - 1.getIsBasic() = true) cnt+; /MessageBox.Show(1); if (cnt tcnt) tid = i; tcnt = cnt; if (tcnt = 3) flag = true; Calc(tid, tcnt); 7、 实验结果展示及分析 程序主界面展示 导入节点信息 误差计算 如上图展示过程中一样,该程序初步完成实验要求。在误差计算及分析模块中,可以看到在输入非锚节点124后,通过迭代多边式定位计算得出节点124的位置,存在误差但误差及其微小,可以忽略不计。 之所以取得较好的实验效果,是因为导入的节点信息和拓扑信息较全,未知节点周围存在较多的锚节点和计算后升级成的锚节点,误差较小。 实际生活过程中,锚节点分布并非均匀,而且迭代计算中计算量较大,当节点数目庞大时,会带来巨大的计算问题。所以迭代式多边定位适合节点数目较少且节点拓扑信息完整的网络中。8、 实验小结通过本次试验,我掌握了多种网络定位算法,对迭代多边式定位算法有了更深入的了解。除此之外,我还复习

温馨提示

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

评论

0/150

提交评论