版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学信息科学与工程学院物联网定位技术实验报告书实验名称: 网络定位算法研究成 员: 董嘉伟指导老师:张士庚完成时间: 2013-6-1目录实验目的实验设备实验要求实验背景实验原理实验实现(部分)实验结果展示及分析实现小结一、实验目的掌握常用网络定位算法,并能够独立完成和实现。二、实验设备硬件:计算机软件:VS2012、C#4.0三、实验要求在给定的两个网络中,编程实现前面所讲的定位算法选择至少两个定位算法进行实现计算所得的定位结果的误差对不同定位算法的效果进行分析比较撰写实验报告扩展:考虑距离测量有误差的情况?四、实验背景无线传感器网络(WSN)定位问题在军事、楼宇自动化、跟踪与监测等方面
2、都有广 泛的应用,一直是WSN的技术热点之一。尽管全球无线定位系统(GPS)提供了 很好定位手段,并在很多方面发挥着重要的作用,但也存在着一些不足。比如: GPS不适合于室内环境定位,其能量消耗将减少传感器节点的生存寿命,GPS 及其天线增大了节点的体积等,因此GPS并不适用于无线传感器网络。针对无线传感器网络开展专门的不依赖 于GPS的定位研究(特别是分布式定位算法),具有重要的意义。很多学者研究了无线传感器网络节点精确定位问题,提出了许多有效的算法。这 些算法依据是否计算节点间的距离,可分为距离无关定位算法和距离相关定位算 法。距离无关定位算法如最小包含圆算法、DV-Hop(distanc
3、e vector-hop)算法、多 向度量法(MDS )等。这些方法大多通过几何方法实现,依赖于网络的拓扑结构, 从而影响了定位精度。距离相关定位算法一般先通过某种测距方法确定未知节点 与初始锚节点的距离,然后根据这个距离利用三边关系、多边关系或边角关系等 确定未知节点的位置。测距方法有到达时间法(TOA)、到达时间差法(TDOA)、 接收信号强度法(RSSI )等。距离相关定位算法的定位精度依赖于测距的准确性, 其测距误差可用测距的百分比来衡量。依据到初始锚节点的跳数可以分为单跳定 位和多跳定位,单跳定位算法如APIT定位算法,到达角定位算法10等。多跳 定位算法如 DV-Hop(dista
4、nce vector-hop)算法、迭代多边定位 (iterative multilateration)算法等。单跳定位早于无线传感器网络的出现,是多跳 定位的基本技术。五、实验原理当网络的连通性较好时(每个节点至少有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)表示:) =1+(匕此F I, i=l,23#求解如下最小二乘估计来获得最优的位置估计(
5、x0, y0):A =b_为一一2成-02(匕T)一 TOC o 1-5 h z M F 2(匕一*) =Iif0-土|)2(*m仃7)-0:-总)-(站-咋)(廿一 4)一0;一打)一(坤一昨)b =一遗4)-(王如-弋)-(吃-蜡)当矩阵A是列满秩时可以得到如式所示的最小二乘解。二以如)-顼七迭代多边定位过程如下:首先由预定的锚节点(坐标给定)通过式估计盲节点的 坐标,然后将这些已定位的盲节点当作参考节点参与其他盲节点的定位,下一轮 得到坐标的盲节点又可以做为参考节点参与其他盲节点的定位。依次类推,式层 层迭代运行,对网络中的所有盲节点进行定位(如图1所示)。图1多边定位迭代运行 在图1中
6、初始锚节点1 ,节点2 ,节点3可用来估计节点4的位置,初始锚 节点3,节点5,节点6可用来估计节点7的位置,节点4和节点7当做 参考节点,和节点6 一起估计节点8的位置。当然节点8可以当作参考节点去 参与其他盲节点的定位。六、实验实现本次使用C#语言来实现,详细源码看压缩包中工程文件。节点类Node:using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;namespace网络定位算法比较class Node/节点类节点属性privat
7、e int NodeID;/节点。号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 get
8、RealX()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;elsethis.IsBasic = false;public bool getIsBasic()return this.IsBasic;public double X set; get; public double Y set; get;
9、/索引器public Node thisint indexget 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;/参
10、与计算的节点数量,最大值为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);/矩阵AMatrix Matrixb = new Matrix(num,1);/矩阵b for (int s = 0; s nodesum; s+
11、) 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
12、* 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
13、 (NodeListi - 1.getIsBasic() = true)/|i!=124) continue;cnt = 0;for (int s = 1; s 0 & NodeLists - 1.getIsBasic()=true)cnt+;/MessageBox.Show(T);if (cnt tcnt)tid = i;tcnt = cnt;if (tcnt = 3)flag = true;Calc(tid, tcnt);七、实验结果展示及分析程序主界面展示无线传感器确定位算法比较导;M苗节点信息C: i.Ue ers VS i RoCC o i.D ezktop L实蛤,二资料立 11
14、_p o e . tx t导入节点相邻信息C: i.Users VS i RoCC 口 III e sktup、实验三资丰斗 Lne tl_t op u_ ert浏览文件导;M苗节点信息浏览文件导入节点相邻信息选择定位算法迭代多边式DV-H0PMDS开始计算误差计算夏分析请输入节点皿号误差计算该节点真实经度:该节点真实纬度:经度误差:该节点计算经度:该节点计算纬度: 纬度误差:言霹iE入节10中南导入锚节点信息C: UsersSiRoCCoDesktop实验三资料netl_pos. txt浏览文件导入锚节点信息导入节点相邻信息C: Us er s S i RoCC o D e skt op 实
15、验三资料netl_topci_eri浏览文件导入节点相邻信息迭择定位算法:迭代多边式DV-H0PMDS开始计算误差计算授分析请输入节点ID号124误差计算159.8292该节点真实经度:该节点真实纬度:经度误差:2. 46242426731126E-05%107.5409该节点计算经度:159.82916064327 该节点计算纬度:1 口7. 540871542665 纬度误差:2. 64618720118777E-05%黑H霍雾算得出10误差计算中南:如上图展示过程中一样,该程序初步完成实验要求。在误差计算及分析模块 中,可以看到在输入非锚节点124后,通过迭代多边式定位计算得出节点124 的位置,存在误差但误差及其微小,可以忽略不计。之所以取得较好的实验效果,是因为导入的节点信息和拓扑信息较全,未知 节点周围存在较多的锚节点和计算后升级成的锚节点,误差较小。实际生活过程中,锚节点分布并非均匀,而且迭代计算中计算量较大,当节 点数目庞大时,会带来巨大的计算问题。所以迭代式多边定位适合节点数目较少 且节点拓扑信息完整的网络中。八、实验小结通过本次试验,我掌握了多种网络定位算法,对迭代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技中介服务机构如何运用产业大脑实现服务资源智能调度
- 2026 年 ICU 护生专科思维培养带教研讨
- 2026年猩红热护理个案研讨宣讲
- 2026年个体门店简易设备租赁合同
- 行政执法证据收集考试题库完整版及答案2026年
- 小学道德与法治学科教师专业素质真题考试试题及答案
- 数控铣床中级考试试题及答案
- 露天矿山开采安全管控培训考试题库带答案
- 二级造价工程师考试模拟题库及答案:建设工程计量与计价实务、水利工程(河南省郑州市2026年)
- 2026风电场接入电力系统设计内容深度规定 第2部分海上风电
- DB11∕T 2406-2025 建筑工程智能建造技术规程
- 2025年网格员考试题库含完整答案(历年真题)
- 一般安全隐患整改时限
- 2025年农业保险从业人员求职面试指南及常见问题解析
- aed自动体外除颤仪培训课件
- 脑梗分期和治疗讲课件
- 2026届新高考英语热点复习高考英语读后续写句式升格训练
- 设备联动试运转时间记录
- Songmont山下有松品牌手册资料全收录
- 腰椎间盘突出护理疑难病例讨论
- 有机材料与器件-有机电致发光
评论
0/150
提交评论