无线传感器网络实验指导书

合集下载

无线传感器网络实验报告

无线传感器网络实验报告

一、实验背景随着物联网技术的飞速发展,无线传感器网络(Wireless Sensor Networks,WSN)作为一种重要的信息获取和传输手段,在军事、环境监测、智能交通、智能家居等领域得到了广泛应用。

为了深入了解无线传感器网络的工作原理和关键技术,我们进行了本次实验。

二、实验目的1. 熟悉无线传感器网络的基本概念和组成;2. 掌握无线传感器网络的通信协议和拓扑结构;3. 熟悉无线传感器网络的编程与调试方法;4. 通过实验,提高动手能力和实践能力。

三、实验内容1. 无线传感器网络概述无线传感器网络由传感器节点、汇聚节点和终端节点组成。

传感器节点负责感知环境信息,汇聚节点负责收集和转发数据,终端节点负责处理和显示数据。

传感器节点通常由微控制器、传感器、无线通信模块和电源模块组成。

2. 无线传感器网络通信协议无线传感器网络的通信协议主要包括物理层、数据链路层和网络层。

物理层负责无线信号的传输,数据链路层负责数据的可靠传输,网络层负责数据路由和传输。

3. 无线传感器网络拓扑结构无线传感器网络的拓扑结构主要有星形、树形、网状和混合形等。

星形拓扑结构简单,但易受中心节点故障影响;树形拓扑结构具有较高的路由效率,但节点间距离较长;网状拓扑结构具有较高的可靠性和路由效率,但节点间距离较远。

4. 无线传感器网络编程与调试本实验采用ZigBee模块作为无线通信模块,利用IAR Embedded WorkBench开发环境进行编程。

实验内容如下:(1)编写传感器节点程序,实现数据的采集和发送;(2)编写汇聚节点程序,实现数据的收集、处理和转发;(3)编写终端节点程序,实现数据的接收和显示。

5. 实验步骤(1)搭建实验平台,包括传感器节点、汇聚节点和终端节点;(2)编写传感器节点程序,实现数据的采集和发送;(3)编写汇聚节点程序,实现数据的收集、处理和转发;(4)编写终端节点程序,实现数据的接收和显示;(5)调试程序,确保各节点间通信正常;(6)观察实验结果,分析实验现象。

无线传感器网络实验手册cygwin

无线传感器网络实验手册cygwin

XLUC目录实验一开发环境搭建实验 (2)实验二程序烧录实验 (10)实验三硬件接口实验 (13)实验四 ADC采样实验 (19)实验五串口通讯实验 (24)实验六点对点射频实验 (32)实验七传感器添加实验 (39)实验八基于网关板的pc机数据采集和分析实验 (48)实验九基于sink节点数据采集和分析实验 (57)实验十基于web的数据录入和数据访问实验 (61)实验一开发环境搭建实验以下步骤描述了如何逐步搭建无线传感器网络实验开发环境注:本开发环境是在Windows XP操作系统下搭建的先决条件:∙AtoseNet环境:Cygwin atos4tinyos.msi安装包,在光盘的路径为,无线传感器网络1.5\TinyOS2\TinyOS_install\atos4tinyos.msi 。

∙Keil C51编译器安装包:c51v808a.exe,在光盘的路径为,无线传感器网络1.5\TinyOS2\TinyOS_install\c51v808a.exe 。

∙IIS服务器:准备一张Windows XP professional 的安装光盘。

∙SQL SERVER 2005数据库管理工具:准备一张SQL SERVER 2005的安装光盘。

创建AtoseNet环境:Cygwin1.打开无线传感器网络光盘,进入如下路径\TinyOS2\TinyOS_install\, 双击atos4tinyos.msi 进入安装过程2.进入如下界3.单机下一步4.选择合适的路径(这里选择缺省路径),点击“下一步”5.单击安装,进入安装进程如下6.安装完成后将出现如下两个界面7.选择完路径后单击“点击开始安装”8.进入Cygwin安装界面,安装完成后自动弹出如下界面:9.请任意键后即可完成安装。

桌面上会自动建立Cygwin的快捷方式,单击进入即可安装Keil C51 编译器10.打开无线传感器网络光盘,进入如下路径\TinyOS2\TinyOS_install\, 双击c51v808a.exe 进入安装过程11.单击“Next”并且选中“I agree to all the terms of the preceding LicenseAgreement”12.选择默认的路径13.选择安装路径后,单击“Next”:14.输入用户名等资料后单击“Next”进入安装进度界面:15.单击“Finish”完成安装过程。

无线传感器网络实验指导书

无线传感器网络实验指导书

无线传感器网络实验指导书信息工程学院实验一 质心算法一、实验目的掌握合并质心算法的基本思想;学会利用MATLAB 实现质心算法;学会利用数学计算软件解决实际问题。

二、实验内容和原理无需测距的定位技术不需要直接测量距离和角度信息。

定位精度相对较低,不过可以满足某些应用的需要。

在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。

假设多边形定点位置的坐标向量表示为p i = (x i ,y i )T ,则这个多边形的质心坐标为:例如,如果四边形 ABCD 的顶点坐标分别为 (x 1, y 1),(x 2, y 2), (x 3, y 3) 和(x 4,y 4),则它的质心坐标计算如下:这种方法的计算与实现都非常简单,根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。

锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。

当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后,就可以计算这些锚点所组成的多边形的质心,作为确定出自身位置.由于质心算法完全基于网络连通性,无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。

三、实验内容及步骤该程序在Matlab 环境下完成无线传感器中的质心算法的实现。

在长为100米的正方形区域,信标节点(锚点)为90个,随机生成50个网络节点。

节点的通信距离为30米.需完成:分别画出不同通信半径,不同未知节点数目下的误差图,并讨论得到的结果所用到的函数:1. M = min(A)返回A 最小的元素.如果A 是一个向量,然后min (A )返回A 的最小元素。

如果A 是一个矩阵,然后min (A)是一个包含每一列的最小值的行向量。

2。

rand()12341234,,44x x x x y y y y x y ++++++⎛⎫= ⎪⎝⎭X = rand返回一个单一均匀分布随机数在区间 (0,1)。

无线传感器网络技术实验指导书(苏明霞)

无线传感器网络技术实验指导书(苏明霞)

⽆线传感器⽹络技术实验指导书(苏明霞)实验⼀外部中断实验1.实验环境硬件:ZigBee(CC2530)模块,ZigBee下载调试板,USB仿真器,PC机。

软件:IAR Embedded Workbench for MCS-512.实验⽬的阅读 ZigBee2530开发套件 ZigBee 模块硬件部分⽂档,熟悉 ZigBee 模块按键接⼝中断使⽤⽅式。

使⽤ IAR 开发环境设计程序,利⽤ CC2530 的电源管理控制寄存器控制系统⼯作状态。

3.实验原理3.1硬件接⼝原理按键接⼝,如图3.1.1所⽰。

图3.1.1CC2530开发板有三个按键,⼀个复位按键。

其余两个按键可以通过编程进⾏控制。

当按键按下时,相应的管脚输出低电平。

在此我们采⽤下降沿触发中断的⽅式来检测是否有按键按下。

ZigBee(CC2530)模块 LED 硬件接⼝图 3.1.2 LED 硬件接⼝ CC2530 相关寄存器图3.1.2 P1寄存器图3.1.3 P1SEL寄存器图3.1.4 P1DIR寄存器图3.1.5 P1INP 寄存器图3.1.6 P2INP 寄存器图3.1.7 PICTL寄存器图3.1.8 P1IEN 寄存器图3.1.9 IEN2 寄存器4、实验内容按键按下⼀次,led1亮,led2灭。

按键按下2次,led1灭,led2亮。

按键按下3次,都亮。

按键按下4次,都灭。

下降沿触发中断。

5、注意事项1、实验前,请正确安装RF2530模块,注意其丝印⽅向应与底板丝印⽅向⼀致,严禁反接;2、实验过程中,严禁带电插拨器件,防⽌损坏电路;3、实验过程中,严禁⽤⼿触摸裸露的器件特别是芯⽚,防⽌造成短路或损坏芯⽚;4、所有模块出⼚前均已调试完毕,除⾮有特别说明,否则不建议⾃⾏对电路中可调部分进⾏调节。

6、实验步骤1、将⼀个RF2530模块插⼊到WSN通⽤底板的相应位置。

2、zigbee多功能仿真器的⼀端通过10 pin下载线接到WSN通⽤底板的JTAG 接⼝上,另⼀端通过USB线接到PC机上,并通过SmartRF Flash Programmer软件正确下载⾃⼰编写的实验源码。

【优质】zigbee实验指导书-实用word文档 (19页)

【优质】zigbee实验指导书-实用word文档 (19页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==zigbee实验指导书篇一:zigbee实验无线传感网络设计-----基于手机(联想a698t)计算机科学与技术1205班0911120513孙斌1.手机中所包括的终端设备及传感器:手机操作系统为Android OS 4.0网络连接 GSM/TD-SCDMA/GPRS/EDGE支持频段:2G:GSM 900/1800/19003G:TD-SCDMA 201X-2025MHz支持WAPI兼容WIFI(802.11n) 电容触摸屏摄像头传感器类型为CMOS支持重力传感器支持光线传感器支持距离传感器电容触摸屏2.家庭环境智能监测系统设计家庭环境智能监测系统是智能家居系统中至关重要的一部分,一般包括温度、湿度、光线、火灾,.有毒气体等的监测。

通过获得的这些对象信息,用户可以多种方式感知家庭内部的环境信息并且对家庭进行相应的处理和控制。

当采集到的光强数据低于设定值时,用户可以通过软件调节灯光的强弱;当感知到的温度高于或低于人的舒适温度时,系统自动打空调;当家庭环境的湿度过低时,管理中心控制加湿器的打开;当家庭煤气发生泄漏或发火灾时候,烟雾传感器将感知数据发送给用户,实施报警。

家庭环境智能监测为用户提供了可靠、完善的居所环境信息,使得人们的生活更加舒适、高效、安全。

本系统设计特点如下:(1)提供全面的家庭环境真实信息,保证了家庭内部的安全。

(2)据弃了有线家庭环境监测系统铺设成本高,扩展性和维护性差的缺点。

(3)不受地理和空间限制,只要在网络覆盖范围内,就可以通过手机随时掌握家庭环境的最新信息。

图1家庭环境智能监测系统结构如图1所示,由家庭内部网络、家庭网关和外部网络三部分组成,各自功能如下:(1)家庭内部网络采用ZigBee无线技术实现内部网络的组建。

网络中主节点举起网络后,传感器节点以关联方式加入ZigBee网络,在每个传感器节点上都搭载了温度、湿度、光强和烟雾传感器以及LED灯。

《无线传感器网络》实验指导书

《无线传感器网络》实验指导书

《无线传感器网络》 实验指导书机械与电气工程学院郑晖编广州大学 2011年目录1实验一、处理器基础实验 (4)1.1 实验目的 (4)1.2 参考资料 (4)1.3 实验内容及步骤 (4)1.3.1开发环境搭建 (4)1.3.2了解开发环境的使用 (4)1.3.3基本I/O读写 (6)1.3.4简单A/D转换 (7)1.3.5基本定时 (8)1.3.6PWM输出 (8)2实验二、点到点无线通信实验 (9)2.1 实验目的 (9)2.2 参考资料 (9)2.3 实验内容及步骤 (9)2.3.1发送模块代码分析 (9)2.3.2接收模块代码分析 (9)2.3.3运行示例项目 (9)2.3.4应用设计 (10)3实验三、无线传感器组网实验 (11)3.1 实验目的 (11)3.2 参考资料 (11)3.3 实验内容及步骤 (11)3.3.1协调器模块代码分析 (11)3.3.2路由器模块代码分析 (12)3.3.3终端模块代码分析 (12)3.3.4运行示例项目 (14)3.3.5修改示例项目 (14)4大作业 (15)4.1 目的 (15)4.2 任务 (15)4.2.1题目1:LED跑马灯控制 (15)4.2.2题目2:超声波测距 (15)4.2.3题目3:语音通信 (15)4.2.4题目4:其它经老师同意的题目 (15)实验课时安排建议实验名称 课时实验一处理器基础实验 2实验二点到点无线通信实验 24实验三无线传感器组网实验1 实验一、处理器基础实验实验目的1.11. 掌握开发环境的搭建方法;2. 掌握基本调试步骤及方法;3. 掌握基本I/O、定时器、A/D的编程方法;1.2 参考资料1. IAR安装步骤说明:“C51RF-CC2530系统使用说明书\ IAR安装与使用.pdf”;2. 无线龙CC2530模块说明书:“C51RF-CC2530-PK使用说明书\C51RF-CC2530-PK使用说明书V1.01.pdf”;3. IAR开发环境使用方法:“C51RF-CC2530系统使用说明书\ IAR IDE用户手册.pdf”;4. CC2530芯片说明书:“C51RF-CC2530数据手册\CC253x.pdf”;5. 本实验指导书所附例程;“C51RF-CC2530-PK使用说明书\CC25306. 无线龙CC2530模块基础实验说明:基础实验V1.00.pdf”;7. 无线龙CC2530模块基础实验例程:“C51RF-CC2530演示程序\CC2530单片机基础实验”;1.3 实验内容及步骤1.3.1 开发环境搭建按照参考资料[1]、[2]的指导,安装IAR软件,安装仿真器驱动程序。

无线传感器网络实验指导——学生用2

无线传感器网络实验指导——学生用2

主要事项1.实验必须小心谨慎,一丝不苟;2.对各个模块必须轻拿轻放;3.对损坏的器件将照价赔偿;4.要准备跳线;5.每个同学要记录实验箱号码;6.带几个U盘考原程序;7.写一篇实验感想。

实验八CC2530 ADC实验一、硬件环境智能主板(可以不接传感器)见图1、cc2530仿真器(cc debuger),1根JTAG (10芯线),2根USB(A/B)或1根USB(A/B)和1根8路USB(A/B)。

图1 智能主板二、软件环境安装IAR:调试程序;安装SmartRF Flash Programer:烧写程序。

三、实验步骤1.新建一个文件夹新建一个文件夹如zhangsan(以英文姓名命名),将\OURS_CC2530LIB\lib9(ADC)单独拷贝粘贴成一个单独的文件夹lib9(ADC)放在zhangsan文件夹中,在zhangsan件夹中,再建一个文件夹,以实验项目命名,如adc。

2.创建一个工作区窗口使用IAR 开发环境首先应建立一个新的工作区workspace。

在一个工作区中可创建一个或多个工程。

用户打开IAR Embedded Workbench 时,已经建好了一个工作区,或选择File\New\Workspace。

可创建新的工程并把它放入工作区。

也可选择打开最近使用的工作区或向当前工作区添加新的工程。

3. 建立一个新工程单击Project 菜单,选择Create New Project,弹出图2选择工程类型对话框,确认Tool chain 栏已经选择8051,单击OK 按钮。

图2选择工程类型将工程保存在adc文件夹中,更改工程名,如adc,单击Save保存,如图3所示,这样工程就出现在工作区窗口中了,如图 3 所示。

工程保存后的界面如图4所示图4工程保存后的界面系统产生两个创建配置:调试(Debug)和发布(release),我们只使用Debug。

项目名称后的星号*表示修改还没有保存。

无线传感器网络实验报告

无线传感器网络实验报告

无线传感器网络实验报告无线传感器网络实验报告引言:无线传感器网络(Wireless Sensor Networks,简称WSN)是一种由大量分布式无线传感器节点组成的网络系统。

这些节点能够感知环境中的各种物理量,并将所感知到的信息通过无线通信传输给基站或其他节点。

WSN广泛应用于农业、环境监测、智能交通等领域。

本实验旨在通过搭建一个简单的无线传感器网络系统,了解其工作原理和性能特点。

一、实验背景无线传感器网络是现代信息技术的重要组成部分,其应用领域广泛且前景十分广阔。

通过实验,我们可以深入了解WSN的工作原理和应用场景,为今后的研究和开发提供基础。

二、实验目的1. 掌握无线传感器网络的基本概念和原理;2. 理解无线传感器网络的组网方式和通信协议;3. 了解无线传感器网络的性能特点和应用领域。

三、实验设备1. 无线传感器节点:本实验使用了10个无线传感器节点,每个节点都具备感知和通信功能;2. 基站:作为无线传感器网络的中心节点,负责接收并处理来自传感器节点的数据;3. 电脑:用于控制和监控整个无线传感器网络系统。

四、实验步骤1. 搭建无线传感器网络:将10个传感器节点分别放置在不同的位置,并保证它们之间的通信范围有重叠部分;2. 配置传感器节点参数:通过电脑连接到基站,对每个传感器节点进行参数配置,包括通信频率、传输功率等;3. 数据采集与传输:传感器节点开始感知环境中的物理量,并将采集到的数据通过无线通信传输给基站;4. 数据处理与展示:基站接收到传感器节点的数据后,进行数据处理和分析,并将结果展示在电脑上。

五、实验结果与分析通过实验,我们成功搭建了一个简单的无线传感器网络系统,并进行了数据采集和传输。

我们发现,传感器节点能够准确地感知环境中的物理量,并将数据可靠地传输给基站。

基站对接收到的数据进行了处理和分析,展示了环境中物理量的变化趋势。

六、实验总结通过本次实验,我们深入了解了无线传感器网络的工作原理和性能特点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无线传感器网络实验指导书信息工程学院实验一 质心算法一、实验目的掌握合并质心算法的基本思想; 学会利用MATLAB 实现质心算法; 学会利用数学计算软件解决实际问题。

二、实验内容和原理无需测距的定位技术不需要直接测量距离和角度信息。

定位精度相对较低,不过可以满足某些应用的需要。

在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。

假设多边形定点位置的坐标向量表示为p i = (x i ,y i )T ,则这个多边形的质心坐标为:例如,如果四边形 ABCD 的顶点坐标分别为 (x 1, y 1),(x 2, y 2), (x 3, y 3) 和(x 4,y 4),则它的质心坐标计算如下:这种方法的计算与实现都非常简单,根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。

锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。

当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后,就可以计算这些锚点所组成的多边形的质心,作为确定出自身位置。

由于质心算法完全基于网络连通性,无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。

三、实验内容及步骤该程序在Matlab 环境下完成无线传感器中的质心算法的实现。

在长为100米的正方形区域,信标节点(锚点)为90个,随机生成50个网络节点。

节点的通信距离为30米。

需完成:分别画出不同通信半径,不同未知节点数目下的误差图,并讨论得到的结果所用到的函数:1. M = min(A)返回A 最小的元素.如果A 是一个向量,然后min(A)返回A 的最小元素.如果A 是一个矩阵,然后min(A)是一个包含每一列的最小值的行向量。

2. rand()12341234,,44x x x x y y y y x y ++++++⎛⎫=⎪⎝⎭X = rand返回一个单一均匀分布随机数在区间(0,1)。

X = rand(n)返回n--n矩阵的随机数字。

3. S = sum(A)返回A 沿其大小不等于1 的第一个数组维度的元素的总和。

如果A是一个向量,sum(A)可返回元素的总和。

如果A是一个矩阵,然后sum(A)返回一个行向量包含每个列的总和。

4. inf无穷大此MA TLAB 函数返回正无穷大的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)数值数组转换为字符数组输出,它表示的数字。

输出格式取决于原始值的大小。

num2str是用于标签和标题情节与数字值。

所用到的变量:xy:均匀分布的信标节点位置矩阵n:未知节点数量SS: 未知节点位置矩阵dm:通信半径cent:质心MM:未知节点估计坐标矩阵e:估计位置和实际位置距离矩阵(误差)四、源程序clearclc%锚节点节点设置for i=1:1:10%1到10,步长是1;画出锚点,前一个括号是标号。

for j=1:1:10x(j+(i-1)*10)=(i-1)*10;y(j+(i-1)*10)=(j-1)*10;endendfigure%出现图形界面plot(x,y,'k.'); %黑点hold on %继续画图axis([0 100 0 100]);xy=[x;y];把X,Y的坐标付给矩阵XYxy;hold onxm=90;ym=90;n=50; %未知节点for i=1:1:nSx(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%未知节点循环;每一个未知节点都与在通讯范围内所有的锚点算一遍距离,放到一个矩阵中,通讯距离以外的点为零。

SS=[Sx(j);Sy(j)];k=0;%表示通信半径内的信标节点数for i=1:1:md=norm((xy(:,i)-SS),2);%2范数就是求直线距离;不管行,第i列;if d<=dm 是否在范围内,取出信标节点,放到XX,yy中xx(j,i)=xy(1,i);第1行第i列;%X坐标都给了XXyy(j,i)=xy(2,i); 第2行第i列;k=k+1;elsexx(j,i)=0;yy(j,i)=0;endendif k~=0%k不等于零cent(:,j)=[sum(xx(j,:));sum(yy(j,:))]/k;%第j行的所有列elsecent(:,j)=0; 令第j列的所有元素为零。

endplot(cent(1,j),cent(2,j),'o') ;hold onplot([cent(1,j) Sx(j)],[cent(2,j) Sy(j)],'R--') ;%估计位置和真实位置连接title('Centroid');hold onMM=[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.')% 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)=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个信标节点)所用到的函数:参见上节:质心算法;需完成:1)运行程序,生成随机分布的节点;2)更正程序中的错误,求每个信标节点的校正值;3)继续运行程序,利用跳数估计待求节点的距离。

四、源程序%~~~~~~~~~~ DV-Hop算法~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~% BorderLength-----正方形区域的边长,单位:m% NodeAmount-------网络节点的个数% BeaconAmount---信标节点数% Sxy--------------用于存储节点的序号,横坐标,纵坐标的矩阵%Beacon----------信标节点坐标矩阵;BeaconAmount*BeaconAmount%UN-------------未知节点坐标矩阵;2*UNAmount% Distance------未知节点到信标节点距离矩阵;2*BeaconAmount%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=zeros(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:BeaconAmount),Sxy(3,1:BeaconAmount),'r*',Sxy(2,(BeaconAmount+1):Node Amount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')xlim([0,BorderLength]);ylim([0,BorderLength]);title('* 红色信标节点. 黑色未知节点')%~~~~~~~~~~~~~~~~~~~~~~~~~~~~初始化节点间距离、跳数矩阵~~~~~~~~~~~~~~~~~~~~~~for i=1:NodeAmountfor j=1:NodeAmountDall(i,j)=((Sxy(2,i)-Sxy(2,j))^2+(Sxy(3,i)-Sxy(3,j))^2)^0.5;%所有节点间相互距离if (Dall(i,j)<=R)&(Dall(i,j)>0)h(i,j)=1;%初始跳数矩阵elseif i==jh(i,j)=0;%自己到自己的距离else h(i,j)=inf;endendend%~~~~~~~~~~~最短路经算法计算节点间跳数~~~~~~~~~~~~~~~~~~~~for k=1:NodeAmountfor i=1:NodeAmountfor j=1:NodeAmountif 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);endendendendh%~~~~~~~~~~~~~求每个信标节点的校正值~~~~~~~~~~~~~~~~~~~~~~~~~~h1=h(1:BeaconAmount,1:BeaconAmount);%从大矩阵中取出信标节点的跳数D1=Dall(1:BeaconAmount,1:BeaconAmount); %从大矩阵中取出信标节点的距离for i=1:BeaconAmountdhop(i,1)=sum(D1(i,:))/sum(h1(i,:));%每个信标节点的平均每跳距离endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%新标节点与未知节点的距离,逗号前面是行的范围,后面是列的范围。

相关文档
最新文档