无线传感网定位技术(精选十篇)
无线传感网定位技术 篇1
无线传感网技术已经应用到很多方面,例如,战场指挥、医疗急救、环境监测等。很多无线传感网应用都是以已知节点的位置信息为基础。由于无线传感网自身的限制,节点定位还面临着很多挑战。
目前已经存在很多技术和方法解决节点定位问题。在无线传感网中存在两种节点类型: 定位节点( 需要进行定位的节点)和锚节点( 已知自己位置的节点) 。根据是否需要测距分为测距和免测距定位。测距定位算法主要是通过利用到达时间、角度或者信号能量强度计算出节点距离,从而实现定位[1,2,3]。免测距定位算法只是利用节点之间的通信状态进行定位。以上定位方法只适用于节点静止的无线传感网。然而,在很多无线传感网应用中节点是移动的。静态定位方法只有通过实时重复计算才能得到节点的位置信息,并不能充分利用节点的移动性。为了利用节点的移动性增加定位精度,L. Hu等将蒙特卡洛思想引入到节点定位中,提出了MCL定位算法[4]。通过利用已经定位的定位节点的位置信息提高定位节点的定位精度,但是增加了无线网络的传输负担[5]。MCB算法通过建立信标盒子,缩小定位节点采样空间[6]。通过构建节点运动模型,进行运动预测、位置滤波提高了MCL定位精度[7,8]。利用传播范围的交点可以缩小MCB新标盒子的采样空间,提高MCB算法的采样成功率[9]。通过引入遗传算法,提高了MCB算法的定位精度[10]。在以上的定位算法中,锚节点是移动的,所以不能利用前一时刻一跳锚节点的位置信息。
对无线传感网进行分析,发现许多无线传感网存在如下特性: 锚节点固定,而未知节点移动,如机器人足球比赛、车联网定位等。针对锚节点静止这一特征,以MCB算法为基础,本文提出了SAMCB定位算法。由于锚节点静止,SAMCB( Static Anchors Monte Carlo localization Boxed) 定位算法利用前一时刻一跳锚节点位置信息优化了MCB算法。SAMCB定位算法相对于MCB定位算法主要有以下两个方面优点: 1) 可以利用前一时刻锚节点信息缩小定位节点的采样空间,提高采样效率,从而减少系统重复采样的次数、定位计算时间,以及系统的能源消耗;2) 利用前一时刻一跳锚节点信息排除不可能的样本点。由于利用了前一时刻一跳锚节点增加过滤条件,所以能比MCB算法过滤掉更多的不可能样本,从而提高了算法定位精度,达到比MCB更精确的定位效果。
1 MCB 算法
MCB定位算法是一种粒子过滤的定位算法。节点的位置信息是通过一个N个样本的集合进行表示p( St| O0,…,t) ≈{ sit,wit} i = 1,…,N,其中p( St| O0,…,t) 代表在时刻t节点位置的样本集合,O0,…,t代表前t时刻节点接收到的锚节点信息,sit代表系统在时刻t节点位置的第i个样本,wit代表样本sit的权重。
MCB定位算法主要包括三个阶段: 预测阶段、过滤阶段以及坐标计算阶段。在预测阶段,首先定位节点根据接收到一跳锚节点信息,建立锚节点信标盒子,如图1所示。
节点在t时刻的锚节点信标盒子为以锚节点lt为中心的虚边正方形。然后根据前一时刻样本st - 1和节点最大移动速度vmax,建立样本信标盒子,如图2所示。最后在锚节点信标盒子和样本信标盒子的重合部分内( 图2中以st - 1为中心,2vmax为边长的正方形) 预测当前时刻的节点样本st。图2中只显示了一个样本,其他样本类似。
在过滤阶段,当前时刻的节点样本预测完成后,定位节点根据信号的最大传播距离和一跳锚节点位置按照式( 1) 过滤掉不可能的样本点。
其中,l为定位节点在当前时刻t接收到的一跳锚节点信息,r为信号传播距离。当p( sit) = 1时,保留该样本,否则过滤掉。重复预测和过滤过程,直到样本个数满足期望值。在坐标计算阶段,节点根据当前时刻的样本集合计算出节点位置坐标。
2 SAMCB 算法
在锚节点静止的无线传感网中,前一时刻的一跳锚节点信息是可以利用的。由于MCB算法只利用了当前时刻的一跳锚节点信息建立信标盒子,所以并没有充分利用前一时刻锚节点的信息。根据节点和锚节点不同时刻的关系改变,可分为三种情况: 1) 进入关系,即节点前一时刻不在锚节点的一跳通信范围内,而当前时刻是锚节点的一跳邻居; 2) 离开关系,即节点前一时刻是锚节点的一跳邻居,当前时刻不在锚节点的一跳范围之内; 3) 不改变,节点前一时刻和当前时刻都在或都不在通信范围之内。
本文是在情况2下,利用前一时刻一跳锚节点位置信息改进了MCB定位算法。其改进的方法包括两方面。一方面根据前一时刻一跳锚节点和节点最大的移动速度建立锚节点信标盒子,缩小锚节点信标盒子,从而在一定程度上缩小了样本的采样空间以及减少了采样次数; 另一方面利用前一时刻一跳锚节点位置信息、信号传播距离以及最大移动速度,排除更多不可能的样本,从而提高了定位精度。
2. 1 利用前一时刻一跳锚节点建立信标盒子
SAMCB算法是利用当前时刻和前一时刻的一跳锚节点建立信标盒子。如果节点和锚节点的关系为进入或者不改变,则SAMCB算法建立锚节点信标盒子的过程和MCB算法相同。如果为离开关系,则SAMCB算法同时利用利用前一时刻的锚节点和节点的最大移动速度建立信标盒子,如图3所示。阴影部分即为SAMCB的锚节点信标盒子,从而缩小了MCB算法的锚节点信标盒子,其中v为节点的最大移动速度。
2. 2 利用前一时刻一跳锚节点过滤节点样本
SAMCB过滤节点样本和建立信标盒子相同,即只有当节点和锚节点的关系为离开时,才和MCB定位算法不同,增加节点样本的过滤条件为式( 2) 。增加过滤条件会过滤掉更多的样本点,从而比MCB算法定位更精确。因为节点前一时刻在锚节点的一跳通信范围内,而当前时刻不在,那么节点一定位于锚节点一跳范围之外,但是不会超过一跳范围加上节点最大移动速度的距离。SAMCB根据前一时刻的锚节点信息把不可能节点样本过滤掉。
其中vmax为节点的最大移动速度,lit - 1为节点前一时刻接收到的锚节点信息。
2. 3 SAMCB 的执行过程
SAMCB定位算法和MCB定位算法执行过程大致相同。SAMCB定位算法也分为三个阶段: 样本预测阶段、样本过滤阶段以及节点坐标计算阶段。
设St - 1= { sit - 1,wit - 1} i = 1,2,…,N为t - 1时刻的样本空间。ljt= ( xjt,yjt) 代表定位节点接收到锚节点ljt的坐标。Lt={ l1t,…,ljt} 为t时刻定位节点接收到的锚节点集合。
在样本预测阶段首先,定位节点根据前一时刻锚节点信息Lt - 1和当前时刻接收到的锚节点信息Lt,按照3. 1节的方法建立锚节点信标盒子。然后,定位节点利用前一时刻的样本集合St - 1和最大节点移动速度vmax生成样本信标盒子。最后在锚节点信标盒子和样本信标盒子的重合部分随机选择点作为当前时刻的节点样本sit。
在样本过滤阶段利用前一时刻和当前时刻的锚节点信息,即Lt - 1和Lt。按照3. 2节的方法过滤掉不可能的节点样本。当样本个数小于期望值N时,重复执行样本预测阶段和样本过滤阶段,直到样本个数等于N或者达到采样次数的最大值。
在节点坐标计算阶段在SAMCB的样本预测和样本过滤阶段执行完成之后,按照式( 3) 根据样本集合计算出节点位置坐标:
其中,rrange为分布区域的边长,即当节点样本个数N为0时,节点预测位置为网络分布区域的中心位置。
2. 4 算法复杂度的分析
在MCB算法中,定位节点需要保存前一时刻和当前时刻的样本信息以及当前时刻一跳邻居锚节点的信息。由于SAMCB算法需要用到前一时刻锚节点信息,所以该算法增加了锚节点信息的存储空间。定位节点增加的空间比例为:
其中c为一跳邻居锚节点的个数,N为节点样本个数。综合考虑粒子偏移和执行时间,N一般取值50。由于成本的限制,在现实情况中一跳锚节点的个数较低,c一般不会超过5,所以SAMCB算法存储空间增加比例不会超过5% 。
根据影响因素的不同,MCB算法和SAMCB算法的时间复杂度分为三个方面,即建立信标盒子、产生样本、定位计算。MCB算法的时间复杂度可以表示为:
其中O( c) 为建立信标盒子的时间复杂度,其跟一跳锚节点个数成正比,O( N/pMCB) 为产生样本需要的时间,O( 1) 为定位计算消耗的时间。由于SAMCB算法在建立信标盒子时,增加了前一时刻锚节点,所以SAMCB的时间复杂度增加了O( c) 。SAMCB算法的时间复杂度为:
但由于O( N/pMCB) 一般远大于O( c) ,所以SAMCB算法和MCB算法的时间复杂度的比较是O( N / pMCB) 和O( N/pSAMCB) 的比较,即产生样本所需要的重复次数比较。样本采样的重复次数跟采样成功率成反比。SAMCB算法缩小了样本的采样空间,从而影响了采样成功率pSAMCB。在本文中,由于节点的分布是随机的,所以采样空间对采样成功率的影响是不确定的。于是本文通过多次实验统计出SAMCB和MCB算法的具体重复采样次数,从而实现算法的时间复杂度比较。
3 模拟实验分析
为了验证本算法的性能,本文是利用模拟器MCL-SIMULATOR( www. cs. virginia. edu / mcl / ) 进行了模拟实验,节点随机地分布在500 m×500 m的正方形区域内,节点总数为320,锚节点的默认个数为64,锚节点的位置为随机分布,锚节点以及未知节点的通信半径为r = 50 m,vmax默认为0. 4r,期望样本数目为N= 50,模拟实验时间为tc = 30,定位节点个数为m = 32,重复执行次数为n = 10。定位的平均误差如下:
其中rsitj表示定位节点j在i次执行第t时刻的实际位置,sitj表示算法估计的定位节点位置。
本文是MCB的改进算法,因此本实验选择MCB算法与SAMCB算法进行比较。由于衡量算法的时间复杂度需要统计样本的采样次数,所以本文实验统计比较了两种算法的采样次数和定位精度。采样次数和定位精度主要受节点的最大移动速度和锚节点密度的影响。
3. 1 定位节点的最大移动速度
根据节点的最大移动速度建立节点样本盒子,节点的移动速度对定位精度有两方面的影响: 1) 随着速度的增加,定位节点会接收到更多的锚节点信息,从而增加节点的定位精度; 2) 随着速度的增加,定位节点的样本信标盒子也增加,那么定位精度就会下降。随着最大移动速度的变化,两种算法的定位精度比较如图4所示。当速度较低时,SAMCB在利用前一时刻锚节点建立的信标盒子较小,所以提高较为明显。随着最大移动速度的变化,两种算法的采样次数比较如图5所示。SAMCB利用前一时刻的锚节点建立锚节点信标盒子,缩小了采样空间,从而降低了采样次数。由图4、图5可知,无论节点以何种速度移动,SAMCB算法的定位精度和采样次数都优于MCB算法。在性能提高最大的情况下,SAMCB算法的定位精度比MCB算法的定位精度提高6% ,采样次数减少10% 。在性能提高最小的情况下,SAMCB算法的定位精度提高1% ,采样次数减少3% 。
3. 2 锚节点密度
随着锚节点密度的增加,节点的定位精度也会增加。因为当锚节点的密度增加时,节点接收到锚节点信息也会增多,建立的锚节点信标盒子也会更小。SAMCB算法利用了前一时刻的锚节点信息缩小了MCB算法的锚节点信标盒子,并增加了节点样本的过滤条件,所以在相同锚节点密度的情况下,SAMCB算法定位精度更高。随着锚节点密度的变化,SAMCB算法与MCB算法定位精度的比较如图6所示。随着锚节点密度的增加,SAMCB算法的采样次数会超过MCB算法。由于SAMCB算法只是缩小了MCB算法的信标盒子,但并不一定减少采样次数,而且SAMCB算法增加了过滤条件,所以当锚节点密度超过一定值后,SAMCB算法的采样次数会超过MCB定位算法。随着锚节点密度的变化,SAMCB算法与MCB算法采样次数的比较,如图7所示。由图6、图7可知,当锚节点密度较大时,SAMCB算法的采样次数要多5% 。虽然采样次数超过MCB算法,但定位精度优于MCB算法6% 。当锚节点密度较低时,SAMCB算法的采样次数要比MCB少10% 左右,定位精度提高4% 左右。由于现实应用和成本限制,锚节点的密度一般较低,所以SAMCB适合现实应用中的性能提高。
4 结 语
无线传感网实验报告 篇2
无线传感器网络 实验报告
学院:
班级: 学号: 姓名:
时间: 指导老师:
第一章 基础实验
了解环境
1.1 实验目的
安装 IAR 开发环境。CC2530 工程文件创建及配置。源代码创建,编译及下载。1.2 实验设备及工具
硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机
软件:PC 机操作系统 WinXP,IAR 集成开发环境,TI 公司的烧写软件。
1.3 实验内容
1、安装 IAR 集成开发环境
IAR 集成开发环境安装文件所在光盘目录:物联网光盘工具CD-EW8051-7601
2、ZIBGEE 硬件连接
安装完 IAR 和 Smartrf Flash Programmer 之后,按照图所示方式连接各种硬件,将仿真器的 20 芯 JTAG 口连接到 ZX2530A 型 CC2530 节点板上,USB 连接到 PC 机上,RS-232 串口线一端连接 ZX2530A 型 CC2530 节点板,另一端连接 PC 机串口。
3、创建并配置 CC2530 的工程文件 IAR 是一个强大的嵌入式开发平台,支持非常多种类的芯片。IAR 中的每一个 Project,都可以拥有自己的配置,具体包括 Device 类型、堆/栈、Linker、Debugger 等。(1)新建 Workspace 和 Project 首先新建文件夹 ledtest。打开 IAR,选择主菜单 File-> New-> Workspace 建立新的工作区域。
选择 Project-> Create New Project-> Empty Project,点击 OK,把此工程文件保存到文件夹 ledtest 中,命名为:ledtest.ewp(如下图)。
(2)配置 Ledtest 工程
选择菜单 Project->Options...打开如下工程配置对话框
选择项 General Options,配置 Target 如下 Device:CC2530;
(3)Stack/Heap 设置:XDATA stack size:0x1FF
(4)Debugger 设置:
Driver:Texas Instruments(本实验为真机调试,所以选择 TI;若其他程序要使用 IAR仿真器,可选 Simulator)
至此,针对本实验的 IAR 配置基本结束.4、编写程序代码并添加至工程
选择菜单 File->New->File 创建一个文件,选择 File->Save 保存为 main.c 将 main.c 加入到 ledtest 工程,将实验代码输入
然后选择 Project->Rebuild All 编译工程
编译好后,选择 Project->Download and debug 下载并调试程序 下载完后,如果不想调试程序,可点工具栏上的按钮终止调试。
到此,程序已经下载到了 cc2530 芯片的 flash 内,按下 ZX2530A 上的复位按钮可看到程序的运行效果。
LED 实验 2.1 实验目的
通过 I/O 控制小灯闪烁的过程。
在 ZX2530A 型 CC2530 节点板上运行自己的程序。2.2 实验设备及工具
硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机
软件:PC 机操作系统 WinXP,IAR 集成开发环境。2.3 实验结果
1.正确连接下载线和 ZX2530A 型 CC2530 节点板,打开 ZX2530A 型 CC2530 节点板电源。
2.在文件夹“基础实验2 LED”下打开工程 led,编译工程,并下载到 CC2530 节点板。3.观察 LED 的闪烁情况。
4.修改延时函数,可以改变 LED 小灯的闪烁间隔时间。
5.重新编译,并下载程序到 CC2530 节点板,观察 LED 的闪烁情况。
答:增加延时就会发现小灯闪烁的频率降低了。
串口实验 3.1 实验目的
本次实验将会学习如果使用串口实现与 PC 机的通讯。(实验中需要 PC 机与开发板之间使用RS232 交叉串口连接线)。
能正确配置 CC2530 的串口。3.2 实验设备及工具
硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机,交叉串口线一根。
软件:PC 机操作系统 WinXP,IAR 集成开发环境、串口调试助手。3.3 实验结果
CC2530 能与上位机通过串口正常通信
1.正确连接下载线和 ZX2530A 型 CC2530 节点板,用串口线正确连接上位机和 ZX2530A 型板,使能通过串口交换数据。
2.在文件夹“基础实验5 uart”下打开工程 uart,编译工程,并下载到 CC2530 节点板。
3.通过上位机上的串口调试助手,发送数据到 cc2530,然后检查 cc2530 回送给上位机的数据。
3.4 实验总结
通过这次实验,让我对无线传感器网络有了进一步的了解。在无线的世界,感觉一切都是那么神奇,二一切又是那么理所当然,记得小时候常常想,那些无线好神秘,画面,声音等怎么可以从一方到达另一方而可以完全不接触。虽然今天做的实验都是很小很简单的,比起显示中那些绚丽的感觉没什么值得赞扬的,但对于我来说,这个更有魅力,那些绚丽的我是以仰望的视角来对待,而这次我能深入它的原理去真正接触它,以平视来看待它。
第二章 射频实验
点对点射频通信实验 1 实验目的
在 ZX2530A 型 CC2530 节点板上运行相应实验程序。熟悉通过射频通信的基本方法。练习使用状态机实现收发功能。2 实验内容
接收节点上电后进行初始化,然后通过指令 ISRXON 开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据输出到 TXFIFO 中,再调用指令 ISTXONCCA 通过射频前端发送数据。3 实验设备及工具
硬件:ZX2530A 型 CC2530 节点板 2 块、USB 接口的仿真器,PC 机 Pentium100 以上。
软件:PC 机操作系统 WinXP、IAR 集成开发环境、串口监控程序。4 实验原理
发送节点通过串口接收用户的输入数据然后通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后,通过串口发送到 pc 在串口调试助手中显示出来。如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。以下为发送节点程序流程图:
以下为接收节点流程图: 实验步骤
1.打开光盘“无线射频实验2.点对点通信”双击 p2p.eww 打开本实验工程文件。2.打开 main.c 文件下面对一些定义进行介绍 RF_CHANNEL 此宏定义了无线射频通信时使用的信道,在多个小组同时进行实验是建议每组选择不同时信道。但同一组实验中两个节点需要保证在同一信道,才能正确通信。
PAN_ID 个域网 ID 标示,用来表示不同在网络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。SEND_ADDR 发送节点的地址 RECV_ADDR 接收节点的地址
NODE_TYPE 节点类型:0 接收节点,1:发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。
3.修改 NODE_TYPE 的值为 0,并编译下载到节点板。此节以下称为接收节点。
4.修改 NODE_TYPE 的值为 1,并编译下载到另外一个节点板。此节点板以下称为发送节点。
5.将接收节点的串口与 pc 的串口相连,并在 pc 端打开串口调试助手,配置波特率为 115200。
6.先将接收节点上电,然后将发送节点上电。7.从串口调试助手观察接收节点收到的数据。
8.修改发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。9.修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据观察接收节点能否正确接收数据。6 实验数据分析及结论
发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。发送数据的最大长度为 125(加上发送的据长度和校验,实际发送的数据长度为 128 字节)。7 实验心得
这次实验在原来的短距离无线通信中有所涉猎,所以应该这个对于我们来说还是很简单的,所以很快就做完实验了,就和几个同学好好研究了一下它的原理和一些它的展望,感觉这个学科以后有很大的发展前途,作为一个物联网的学生,对无线射频技术应该得很了解,指望它吃饭呢。这次实验也很简单,但是还是可以解除它的最底层的东西可以更加激发我们的兴趣。第三章 ZStack组网实验
多点自组织组网实验 1 实验目的
理解 zigbee 协议及相关知识。
在 ZX2530A 型 CC2530 节点板上实现自组织的组网。在 ZStack 协议栈中实现单播通信。2 实验内容
先启动协调器节点,协调器节点上电后进行组网操作,再启动路由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点 ID 封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给 PC,从 PC 上的串口监控程序查看组网情况。发送数据格式为(16 进制): FF 源节点(16bit)父节点(16bit)节点编号 ID(8bit)例如 FF 4B 00 00 00 01,表示 01 号节点的网络地址为 004B,发送数据到父节点,其网络地址为 00 00(协调器)。3 实验设备及工具
硬件:DZ2530 型 CC2530 节点板、USB 接口的仿真器,PC 机 Pentium100 以上。
软件:PC 机操作系统 WinXP、IAR 集成开发环境、ZTOOL 程序。4 实验原理
程序执行的流程图如图 5-4 所示,在进行一系列的初始化操作后程序就进入事件轮询状态。
对于终端节点,若没有事件发生且定义了编译选项 POWER_SAVING,则节点进入休眠状态。
协调器是 Zigbee 三种设备中最重要的一种。它负责网络的建立,包括信道选择,确定唯一的PAN 地址并把信息向网络中广播,为加入网络的路由器和终端设备分配地址,维护路由表等。Z-Stack 中打开编译选项 ZDO_COORDINATOR,也就是在 IAR 开发环境中选择协调器,然后编译出的文件就能启动协调器。具体工作流程是:操作系统初始化函数 osal_start_system 调用ZDAppInit 初 始 化 函 数,ZDAppInit 调 用 ZDOInitDevice 函 数,ZDOInitDevice 调 用
ZDApp_NetworkInit 函数,在此函数中设置 ZDO_NETWORK_INIT 事件,在 ZDApp_event_loop 任务中对其进行处理。由 第 一 步 先 调 用 ZDO_StartDevice 启动网络中的设备,再调用NLME_NetworkFormationRequest 函数进行组网,这一部分涉及网络层细节,无法看到源代 码,在库中处理。ZDO_NetworkFormationConfirmCB 和 nwk_Status 函数有申请结果的处理。如果成功则 ZDO_NetworkFormationConfirmCB 先执行,不成功则 nwk_Status 先执行。接着,在ZDO_NetworkFormationConfirmCB 函数中会设置 ZDO_NETWORK_START 事件。由于第三步,ZDApp_event_loop 任务中会处理 ZDO_NETWORK_START 事件,调用 ZDApp_NetworkStartEvt 函数,此函数会返回申请的结果。如果不成功能量阈值会按ENERGY_SCAN_INCREMENT 增加,并将App_event_loop 任务中的事件 ID 置为 ZDO_NETWORK_INIT 然后跳回第二步执行;如果成功则设置 ZDO_STATE_CHANGE_EVT 事件让 ZDApp_event_loop 任务处理。对 于 终 端 或 路 由 节 点,调 用 ZDO_StartDevice 后 将 调 用 函 数 NLME_NetworkDiscoveryRequest 进行信道扫描启动发现网络的过程,这一部分涉及网络层 细节,无法看到源代码,在库中处理,NLME_NetworkDiscoveryRequest函数执行的结果将会返回到函数ZDO_NetworkDiscoveryConfirmCB 中,该 函 数 将 会 返 回 选 择 的 网 络,并 设 置 事 件ZDO_NWK_DISC_CNF,在 ZDApp_ProcessOSALMsg 中对该事件进行处理,调用 NLME_JoinRequest加入指定的网络,若加入失败,则重新初始化网络,若加入成功则调用 ZDApp_ProcessNetworkJoin函数设置 ZDO_STATE_CHANGE_EVT,在对该事件的处理过程 中将调用ZDO_UpdateNwkStatus函数,此函数会向用户自定义任务发送事件 ZDO_STATE_CHANGE。本实验在 Zstack 的事例代码 simpleApp 修改而来。首先介绍任务初始化的概念,由于自定义任务需要确定对应的端点和簇等信息,并且将这些信息在 AF 层中注册,所以每个任务都要初始化然后才会进入 OSAL 系统循环。在 Z-Stack 流程图中,上层的初始 化集中在 OSAL 初始化(osal_init_system)函数中。包括了存储空间、定时器、电源管理和 各任务初始化。其中用户任务初始化的流程如下:
用户任务初始化流程图
任务 ID(taskID)的分配是 OSAL 要求的,为后续调用事件函数、定时器函数提供了参数。网络状态在启动的时候需要指定,之后才能触发 ZDO_STATE_CHANGE 事件,确定设备的类型。目的地址分配包括寻址方式,端点号和地址的指定,本实验中数据的发送使用单播方式。之后设置应 用 对 象 的 属 性,这 是 非 常 关 键 的。由 于 涉 及 很 多 参 数,Z-Stack 专 门 设 计 SimpleDescriptionFormat_t 这一结构来方便设置,其中的成员如下: EndPoint,该节点应用的端点,值在 1-240 之间,用来接收数据。AppProfId,该域是确定这个端点支持的应用 profile 标识符,从 Zigbee 联盟获取具体的 标识符。AppNumInClusters,指示这个端点所支持的输入簇的数目。pAppInClusterList,指向输入簇标识符列表的指针。AppNumOutClusters,指示这个端点所支持的输出簇的数目。pAppOutClusterList,指向输出簇标识符列表的指针。
本实验 profile 标识符采用默认设置,输入输出簇设置为相同 MY_PROFILE_ID,设 置完成后,调用 afRegister 函数将应用信息在 AF 层中注册,使设备知晓该应用的存在,初 始化完毕。一旦初始化完成,在进入 OSAL 轮询后 zb_HandleOsalEvent 一有事件被触发,就会得到及时的处理。事件号是一个以宏定义描述的数字。系统事件(SYS_EVENT_MSG)是强制的,其中包括了几个子事件的处理。ZDO_CB_MSG 事件是处理 ZDO 的响应,KEY_CHANGE 事件 处理按键(针对 TI 官方的开发板),AF_DATA_CONFIRM_CMD 则是作为发送一个数据包 后的确认,AF_INCOMING_MSG_CMD是接收到一个数据包会产生的事件,协调器在收到 该事件后调用函数 p2p_test_MessageMSGCB,将接收到的数据通过 HalUARTWrite 向串口 打印输出。ZDO_STATE_CHANGE 和网络状态的改变相关在此事件中若为终端或路由节点 则发送用户自定义的数据帧:FF 源节点短地址(16bit,调用 NLME_GetShortAddr()获得)、父节点短地址(16bit,调用 NLME_GetCoordShortAddr())、节点编号 ID(8bit,为长地址的最低字节,调用 NLME_GetExtAddr()获得,在启动节点前应先用 RFProgrammer 将非 0XFFFFFFFFFFFFFFFF 的长地址写到 CC2530 芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。终端和路由节点在用户自定义的事件 MY_REPORT_EVT中 发 送 数 据 并 启 动 定 时 器 来 触 发 下 一 次 的 MY_REPORT_EVT 事件,实现周期性的发送数据(发送数据的周期由宏定义 REPORT_DELAY 确定)。5 实验步骤
1.打开工程文件夹协议栈实验2.多点自组网ProjectszstackSamplesSimpleAppCC2530DB下的工程文件 SimpleApp.eww。2.选择工程
编译,生成协调器代码,并下载到 ZX2530A 开发板。此节点为协调器节点。3.选择工程
编译,生成终端节点代码,并下载到 ZX2530 开发板。此节点为终端节点。4.选择工程
编译,生成路由器节点代码,并下载到 ZX2530 开发板,此节点为路由器节点。5.用串口线将协调器节点与 pc 连接起来,在 pc 端打开 ZTOOL 程序。(ZTOOL 程序在 zstack 安装后自动安装)6.开启 ZX2530A 型 CC2530 节点板电源。7.在 ZTOOL 程序中观察组网结果。6 实验数据分析及结论
由接收数据的 DebugString 可以看出图中有两个节点加入了网了,其中一个节点的 DEVID 是21,网络地址:4f07,父节点地址是 0 即协调器。另外一个节点的 DEVID 是 11,网络地址:A6F7,父节点地址是 4f07 即上一节点。实验中可以试着改变不同节点的位置,然后通过 ZTOOL 看看组网结果有什么不同。7 实验心得
这次实验感觉比原来的更有趣,可以在手机上看到无线连接的组网,所以和同学们很有兴趣,虽然只有几个分支,但是几个的通信还是可以清晰可见的。同时也让我们看到了大型android手机的模样,以前都是看成品,这次看的是半成品,感觉很有意思。在组网的过程中,遇到了一些问题,刚开始不知道如何解决,就问同学和老师,有的是线的问题,由于实验器材本身的问题,导致一些松动之类的,但最后实验总算是顺利的完成了。在这感谢帮助我的同学和老师。第四章 传感器网络综合实验
Zigbee 节点控制程序设计 1.1 协调器节点工程
SimpleCoordinator 即协调器工程,如下图
协调器的应用功能代码实现文件是 SimpleCoordinator.c 在工程文件夹 App 目录下具体实现可参考源码。按下键盘上的 F7 即个编译协调器工程,编译好之后可将代码下载到协调器节点板。1.2 人体红外传感器节点工程
SimpleInfrared 即人体红外传感器工程,如下图
人体红外传感器节点应用控制代码可参考工程目录 App 下 SimpleInfrared.c 1.3 超声波距离传感器节点工程 SimpleDistanceSensor 即超声波距离传感器工程,如下图
超声波距离传感器节点实现代码可参考工程目录 App 下
SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。
1.4 湿度传感器节点工程
SimpleHumiditySensor 即湿度传感器节点工程,如下图
湿度传感器应用控制代码可参考工程目录 App 下SimpleHumiditySensor.c 文件,其湿度的测量驱动可参考温湿度传感器驱动 dht11.c 文件
平台控制操作 2.1 启动程序
1)安装好程序后,打开 android 应用程序面板,找到图标 点击进入程序。
2)直接点击登录按钮,进入到系统主界面。第一次进入是系统会自动连接到 zigbee 网关然后去搜索 zigbee 网络,默认的 zigbee 网关地址为本机 IP 地址,即 127.0.0.1。
3)如果你的 zigbee 网关地址不是本机,则需要修改默认网关地址。通过按下系统‘菜单’按键,会出现如下菜单,选择‘设置’菜单,可以设置默认的 zigbee 网关。如下图:
4)设置好网关后,下次启动程序就不用再次设置了。2.2 搜索网络
如果 zigbee 网关设置好,通过菜单选择‘搜索网络’就可以搜索 zigbee 网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确连接。如果 zigbee 网络上还有其它节点,可以在网络 TOP 图上一起显示出来。如下,是一个zigbee 网络 TOP 图:
图中共有 7 个节点,其中最上面那个是协调器节点,其它为传感器节点,其中地址为 58229的灯光设备带有路由功能,属路由器节点,它下面有两个子节点,分别为人体传感器和温度传感器。2.3 传感器节点操作
通过搜索到的 zigbee 网络 TOP 图,可以了解整个 zigbee 网络的节点分布情况。通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。
下图为温度传感器的监控界面:
其它界面读者可以自行实验,并且去了解。
实验心得
理智部署无线传感网 篇3
宾夕法尼亚州的一家电力公司想在自己的服务区域积极参与智能电网,覆盖他们的160万个客户,但这家电力公司很快认识到,部署传感器和通信设备需要相当高的成本。其高级顾问John Ahr说: “我们需要从远程仪表及其他设备收集数据,并且将收集来的数据与客户共享,以便客户能够在电力使用方面作出更明智的决策。但是我们又希望能减少投资,最好能继续使用原有系统。”
后来,该电力公司不得不求助于西弗吉尼亚州的奥古斯塔公司,这家公司最擅长利用客户的现有技术,整合从不同传感器网络系统获得的数据,从而降低成本。以这家电力公司为例,奥古斯塔公司的EdgeFrontier中间件和网络设备是整个项目的核心,通过一个智能电力系统通信及控制网络,把变压器监测仪、电力线传感器、电路交换机、电力感测设备、信息技术系统和互联网连接起来。
John Ahr说: “经过改造后,不但客户拥有了更多的信息,更了解自己的使用习惯和用电情况了,我们也能直接从客户处收集断电信息,帮助系统做出更快速、更合理的响应。另外,我们收集的有关温度和负载容量的变压器设备数据也极其重要。”
WSN为企业
节省开支
这个电力公司的案例表明了无线传感器网络(WSN)正在发挥更大的价值。据英国剑桥IDTechEx公司发布的《2009年至2019年无线传感器网络》报告称,到2019年,无线传感器网络将成长为产值近17.5亿美元的市场。
WSN由空间分布式自主设备组成,利用相互协作的传感器来监测物理或环境情况,如不同地方的温度、声音、震动、压力、运动或污染物。传感器网络中的每个节点通常配备无线电收发器或其他无线通信设备、小型微控制器和能量来源(通常是电池)。传感器节点大小不一,大的如同鞋盒,小的如同尘埃。
即便在当前经济不景气的形势下,很多公司也发现没有办法缩减对WSN的投资。Millennial Net公司市场营销副总裁Mark O’Hearne说: “领先的企业觉得正好可以趁这次经济衰退,减少运营中的浪费现象,以便衰退期间节省开支。如今,很多公司面临成本和环境方面的压力,于是积极评估及控制能耗。WSN非常适合翻新现有的建筑物和工业环境,达到节能减排的目的,为了确保投资回报,制定绩效指标很重要。之所以用户通常选择部署无线网络,是由于它安装起来干扰较小、成本较低,而且切切实实能带来有用的数据信息。” 一些公司表示,投入WSN后会得到可观的投资回报,因为它们收集及分析的数据通常有助于节省能耗、资源、人力和设备等方面的费用。
无线传感器网络为监测行业开辟了新天地,它们让企业能够实现业务转型。与传统有线网络相比,WSN能将计算功能进一步分发至传感器。因而,它有可能在更接近数据源的地方,将过滤及更有效地管理数据的方案分发至传感器,同时保持连接性、可视性以及与企业IT系统紧密配合。
这里有一个例子,充分说明WSN为用户带来的管理优势。Dust Networks公司的一个用户以前采用人工方式收集来自图表记录器的数据,该图表记录器与一批冷藏箱中的传感器探头相连接,训练有素的技术人员定期巡视仓库车间,检查每个图表记录器上的纸张记录。要是技术人员发现冷藏箱的温度超过正常范围,就只好扔掉贮藏的生物标本,并将损失情况告知客户。
后来,该客户在其中四个生物标本储藏室中采用了Dust Networks公司的SmartMesh IA-510和WirelessHART WSN解决方案,实现了数据监测及收集的自动化。每个传感器节点通过安装在冷藏箱里面的探头来测量温度,并通过无线射频网状网将数据发送到与以太网相连接的基站。这个新系统让技术人员可以远程查看实时数据,并汇集以往的传感器数据,用于生成客户报告。采用WSN方案后,把因温度过高导致标本失效的损失降到了最低。
明智的公司以眼下这次经济衰退为契机,在流程管理基础设施方面进行重大投入。由于提高了效率,因而获得了可观的近期回报。随着企业形势好转,工厂设备利用率回到正常水平,从长远来看效益会日益明显。
智慧部署WSN
WSN有众多不同的应用领域。企业运用WSN的最主要目的之一是为了获得“运营信息”,将智能化低成本的传感器硬件、无线通信和互联网结合起来,共同管理公司运营。这些即时信息能够改善后勤、紧缩库存、诊断问题及采取补救措施。
不过在部署之前,企业CIO要问一下自己: “如何有效地收集及处理众多数据,根据这些数据下一步需要采取什么措施。”数据要发挥作用,就得触发响应装置。比如出现边界入侵事件时,摄像头会自动开启; 农田里的温度达到一定值后,喷水装置会关掉; 超市冷冻箱的温度变得太高后,里面的警报器会发出警报。更智能的是,冷冻箱每隔五分钟会向后台电脑发送温度数据,如果冷冻箱温度过高,电脑上的警报器就会发出警报。如果监测频率还需要更高,那么电脑每隔一分钟就收集所有最低和最高温度,存储数据,检测异常情况,然后把统计数据绘成图表,由此确定冷冻箱最节能的设置。现在,超市连锁店可通过MSN把数据上传到总部,用于全面的商店运营管理和比较。
功耗又是另外一个问题,这涉及到日常维护成本: 传感器隔多久需要更换、电池能用电多久等,功耗太高会影响WSN的推广。荷兰的GreenPeak公司提供的基于射频(RF)的传感器网络技术,设计时很注意低能耗(2.4 GHz),让传感器靠一节小小的手表电池就能使用,寿命甚至比传感器本身还长(长短取决于传感器类型和使用模式),或者靠能源采集设备,那样根本就不需要电池。这使得传感器几乎不需要维护,减少了WSN的运营成本。
基础设施和网络管理的成本是无线传感器网络面临的又一个问题。不过专业的无线技术公司在设备的稳定性、覆盖范围和能源管理方面做出了很多努力,这方面的情况在显著改善。
可定制化也是部署WSN时需考虑的问题。例如为环境监测而开发的某解决方案中,至少有四个传感器可连接到一个eKo节点(系统中的某管理节点)上。一旦针对客户具体的监测要求进行了定制,eKo节点就能组成无线传感器网络。带标准天线的基站可充当收集点,接收部署的eKo节点发过来的数据,然后,现场数据传送到即插即用的eKo网关。这种独立式、嵌入式的Web服务器设备基于Linux操作系统,网关预先装有eKoView,这种安全的Web界面可用于查看实时数据、运行报告及设置警报。
无线传感网定位技术 篇4
关键词:无线传感网,移动锚节点,定位,海上立体搜救
0前言
随着国内外贸易的不断拓展, 海上交通运输逐渐增多和水上旅游业日渐繁荣, 我国海上运输船舶数量及从事水上工作的人员迅速增长, 而海难事故也时常发生, 遇难人数居高不下, 海上搜救日益繁重。在整个救援中, 救援的成功率和救援效率是衡量海上救援的一个重要指标, 因此, 在一定时间范围内提高搜救成功率是重要且有其现实意义。现阶段已经有比较多的技术和设备应用于海上搜救, 比如搜救雷达应答器、GMDSS系统设备等等, 这些设备的使用在一定程度上提高了落水人员被搜救成功的概率。然而这些设施和相关技术只能提供我们海事发生的地点, 搜救工作在其附近区域展开。而落水人员、救生筏等物体是时刻移动的, 如果移动的物体能主动的将物理位置等信息传送给搜救方, 那么搜救方就可以进行更加明确的目标搜救, 这样就可以缩短搜寻时间, 提高搜救效率和成功率。而将无线传感器应用于海上搜救就可以实现落水人员、救生筏等移动物体自主向搜救小组报告自身位置等相关信息的目的。
无线传感器网络[1] (Wireless Sensor Network, WSN) 是由部署在监测区域内大量的低成本、低功耗的微型传感器节点组成, 这些传感器节点具有感知能力、计算能力和通信能力, 它们通过无线通信方式形成一个多跳的Ad-Hoc系统;其目的是感知、采集和处理覆盖区域内被监测的对象, 并将检测数据和分析结果发送给终端管理节点[2]。将传感器节点分别安装于救生衣、救生筏、救援直升机、搜救船舶等物体上, 在海难发生后, 节点自动启动工作实现自主报告自身位置等信息的目的。
本文充分考虑无线传感器定位要求和搜救直升机等的特点, 提出了基于无线传感网节点定位的海上立体搜救。由直升机搭载锚节点充当移动锚节点利用最小二乘法实现未知节点的定位, 达到落水人员等落水物体主动示位、提高搜救成功率的目的。
本文其它各部分按如下方式组织:第1节介绍了相关研究工作:第2节介绍了海上例题搜救中的节点定位;第3节利用仿真实验对本文提出的方法进行评估;第4节是结论。
1 相关工作
传感器网络中各节点采集的数据只有结合其位置信息才有意义, 且传感器网络的覆盖、布局和目标跟踪等操作都依赖于节点的有效定位[3], 因此无线传感器网络节点的定位至关重要。无线传感网中有锚节点和未知节点两种, 锚节点是指能够通过自身携带的GPS或其它设备获得自己当前位置信息的节点;未知节点是指不能够自主获得自己地理坐标信息需要通过定位算法获得位置信息的节点。
在基于移动锚节点的定位中, 根据锚节点移动路径的动态性可以两类:静态路径和动态路径。文献[4, 5]等提出了移动锚节点按照静态路径 (即确定的轨迹) 移动。文献[6]提出了基于位置边界线的无线传感器网络节点定位方法, 其主要思想是通过未知节点能否接收到移动锚节点广播的信息来确定一组或多组其估算区域的边界线, 当获得足够多的位置边界线后, 通过边界线所围图形的质心作为未知节点的估计位置。该算法中的锚节点有2种移动方式:直线和随机移动, 即Gauss—Markov运动模型。该方法可以实现未知节点的定位, 锚节点需要与未知节点较频繁地进行通信来确定边界线, 这可能会造成局部节点的能量消耗过快, 且定位周期会比较长, 不适用于大型网络中节点的定位。文献[7, 8]等提出了锚节点的动态路径算法。同时, 由于传感器应用环境的不同, 节点定位又分为2D和3D定位。而3D定位更适合应用于对高度有更多要求的实际环境中。
2 海上立体搜救中的节点定位
2.1 无线传感网节点的部署
在海上搜救过程中, 无线传感器网络节点的部署通常由两部分组成:1) 节点被预先安放于船舶、救生衣、救生筏、救援船舶、救援直升机等救援设备上。这部分节点的位置信息在一定程度上就代表等待救援的落水人员或者物品的位置信息, 是搜救中需要特别关注的节点。2) 在救援过程中为保障这些节点自组织成网络实现节点之间的相互通信, 救援直升机或者船舶可以根据救援需要随时抛洒节点于ROI。在节点部署过程中, 考虑一下因素: (1) 节点成本, 救援中传感器节点需要量较大, 因此高成本的锚节点数量不宜过多。 (2) 节点能耗, 未知节点能量有限, 我们利用移动锚节点可以均衡整个无线传感网的能耗, 降低网络因个别节点无能量而瘫痪的概率。因此, 无线传感器节点的合理部署及定位都很重要。节点间通信信息包括如下内容:ID、定位次数、地理信息坐标、邻居节点数、生命体征、RSSI信号强度等。
在海上搜救中, 直升机具有很强的灵活性、快速反应能力。由直升机搭载传感器节点实现锚节点的移动, 这样来均衡整个无线传感器网络能耗、适应海上搜救中的各种恶劣天气。在3D定位算法中, 要获得未知节点的位置信息, 要求一个未知节点接收至少来自3个锚节点的位置信息并且至少有一个锚节点与未知节点不在同一平面。为此, 设定三个锚节点同时安放在直升机上, 并且搭载在直升机上的锚节点呈正三角形分布与地面平行, 这样未知节点实现定位的概率就大幅度提高。
海难事故发生之后, 落水人员或者其它物体会在风、流等的作用下移动, 因此随着时间的推移搜索区域再逐渐增大。然而, 这些物体落水之后具有相同或者相似的运动过程, 物体间的相对位置或者所在区域相对较近, 因此, 我们采用扩展方形搜寻方式如图2 (a) 所示。这种搜寻方式对物体所在区域较近时是一种很有效的搜寻方式。搜救中, 在同一区域内, 直升机至少执行两次搜寻任务, 当直升机完成第一次搜寻后, 它可以根据实际情况进行二次搜索, 图2 (b) 所示的路线为第二次搜索直升机路径, 这样在第一次搜索中没有完成定位的节点会有机会在第二次搜索中实现定位。而直升机的搜索路线即为移动锚节点的移动路径。
2.2 定位算法
2.2.1 RSSI测距模型
节点定位过程中, 我们采用RSSI测距方法。RSSI[9] (Received Signal Strength Indicator) 测距是通过测量信号从发射端到接收端的衰减来计算未知节点与邻居节点间的实际距离。然而无线传播路径的损耗模型对于RSSI测距精度的影响比较大。节点间距离测量的精度在RSSI定位中起着重要的作用。文献[10]中, 通过多次试验提出了在实际应用中较为合理的RSSI测距模型, 如式 (1) , 我们应用此模型来进行测距来减少理想条件下自由空间传播模型的的测距误差。
其中, d是接收信息节点与发射信息节点间的距离, d0是参考距离, PL (d) 相距距离d时接收到的信号强度, PL (d0) 是相距参考距离时d0接收到的信号强度Xσ是平均值为0的高斯分布随机变数, 其范围是4~10, n为衰减因子, 取值范围是2~5。
2.2.2 定位算法
基于无线传感网的海上搜救模型可以用图2表示, A、B、C为直升机上同一平面的三个信标, 未知节点U处于海面上。
首先, 锚节点广播自身的位置信息, 未知节点接收到后保存信息, 通过RSSI信号强度计算得到与锚节点间的实际距离。
其次, 计算得到未知节点U (xi, yi, zi) 与移动锚节点A、B、C间的距离, 根据欧氏空间中两点间的距离公式得到式 (3) :
其中dia, dib, dic分别表示未知节点和三个锚节点A、B、C的距离, 可以通过式子 (1) 计算出;各个节点的坐标表示与图2一致。上式可变形为:
式 (4) 的线性方程可以表示为AX=b, 其中,
通过解上面的式子, 可以得出未知节点U (xi, yi, zi) 的坐标为:X= (ATA) -1ATb。
在定位过程中, 我们根据节点信息中生命指数来控制节点定位次数, 以减少节点间的通信、节约定位计算过程中的能量消耗:如果判断生命指数非零, 那么我们在搜索过程中要完成此类节点的定位或多次 (n≤5) 定位, 甚至直升机可以轻微调整飞行路径;若是生命指数为零, 那么节点定位次数可以只实现一次或者多次 (n≤3) 。
3 仿真及分析
本文用MATLAB 7.10平台进行计算机仿真。仿真参数设置如下:在一个1000m×1000m×300m的空间内随机的分布着200个未知节点, 10-20个锚节点。通过仿真分析比较本文定位算法与传统3D定位算法及文献[11]一种新的3D定位算法的比较, 从定位误差及定位时间两方面进行比较。
从图3可以看出RSSI测距误差与节点定位误差之间的关系。随着测距误差的增大, 定位误差也在增大。但是在相同的测距误差之下, 本文算法的定位精度要更高, 这是因为该定位算法的实时性更强。
从图4中可以看出, 随着搜寻时间的增加, 节点的定位误差也在增加。搜寻时间长是由于节点无法达到实现定位的条件, 同时由于节点的动态性, 随着时间的推移测距误差也会逐渐增大, 从而导致定位精度的降低。而本文定位算法受时间影响较小, 说明它的实时性更强。
4 结论
纺织传感网技术实验 篇5
软件要求:Visual Basic 6.0,Access
硬件要求:条形码扫描器;RFID读写器
模块
一、用户管理系统
登录名:(条形码或者RFID)
用户等级:访客;操作员;管理员
功能
1、用户登录
功能
2、用户管理
模块
二、纺织面料管理系统
每个样品至少包含以下内容
样品编码(条形码或者RFID)
样品编号
样品名称
样品规格(可进一步细分)
样品特点
样品图像
系统至少包含以下功能:
样品编码查询
样品分类查询
样品删除
样品增加
样品更新
分组要求:每组原则上两个学生,如实验仪器不足,可三个学生一组。软件要求:展示合格为基准,第16周用于作品展示。
无线传感网定位技术 篇6
关键词:无线传感器网络 移动锚节点 定位算法
0 引言
无线传感器网络(Wireless Sensor Network, WSN)是由大量的静止或移动的传感器以自组织和多跳的方式构成的无线网络,以协作地感知、采集、处理和传输网络覆盖地理区域内被感知对象的信息, 并最终把这些信息发送给网络的所有者。
无线传感器网络所具有的众多类型的传感器,可探测包括地震、電磁、温度、湿度、噪声、光强度、压力、土壤成分、移动物体的大小、速度和方向等周边环境中多种多样的现象。潜在的应用领域可以归纳为: 军事、航空、防爆、救灾、环境、医疗、保健、家居、工业、商业等领域。
传感器的准确定位既是监测目标位置信息的前提,也是实现网络拓扑管理、目标跟踪、目标轨迹预测等网络功能的基础。如何以较少的网络成本获得较多的锚节点位置信息,在网络成本与定位性能之间取得平衡是实际应用中值得研究的问题。目前比较实用的定位方式是利用一些带有GPS装置的移动锚节点按照有效规划的移动路径遍历整个监测区域,通过发送包含自身坐标的信标数据包来定位区域中的未知节点。该方法有效避免了无线传感器网络的资源浪费。对于该定位方式,移动锚节点的路径规划问题是需要解决的基本问题。
1 国内外研究现状
无线传感器网络移动锚节点定位技术领域主要集中在两个方面,即移动锚节点的路径规划问题以及移动锚节点的定位算法。
2 移动锚节点路径问题
移动锚节点的定位算法中,移动锚节点发送包含其自身位置信息的信标数据包,在其移动过的路径上形成多个虚拟锚节点,未知节点利用通信范围内的虚拟锚节点的坐标信息进行定位。有不少研究人员在移动锚节点路径方面做了研究,也取得了相应的成绩。移动锚节点路径问题大致可分为两类:静态移动锚节点路径和动态移动锚节点路径。
2.1 静态移动锚节点路径
静态移动锚节点路径是指:移动锚节点按照预先规划好的路径在网络中移动,研究正六边形移动路径的移动锚节点定位算法中,假设监测区域是正方形,移动锚节点在监测区域中按照正六边形的移动路径移动,移动锚节点每隔周期广播包含自身坐标信息在内的信标数据包。信标数据包的广播位置形成了若干个相邻的正三角形。未知节点接收通信范围内的移动锚节点信标信息,当收到满足条件的信标信息后,未知节点用相应的定位算法计算自身位置。以上提到的算法相对于动态路径规划简单易于实现,但是它们无法根据节点分布状态而灵活地变化。
2.2 动态移动锚节点路径
动态移动锚节点路径,即根据网络中节点的分布情况和移动锚节点当前位置来确定移动锚节点下一个位置。移动锚节点根据接收到的网络信息自适应调节移动路径。动态路径是不规则的图形,它利用未知节点分布信息动态调整,并且使移动路径较短,从而弥补了静态路径的短处。
3 移动锚节点的定位算法
移动锚节点的定位算法分为两类:一类是静态锚节点与移动锚节点定位未知节点,另一类只是移动锚节点定位未知节点。
3.1 静态锚节点与移动锚节点定位未知节点
MBAL和APP定位算法是典型的静态锚节点与移动锚节点的定位算法,移动锚节点通过未知节点发送的定位请求消息周期性地选择下一个移动位置,并广播包含自身坐标。未知节点通过RSSI测距方法并接收到三个以上不共线的锚节点坐标来计算出自身位置。然后,变换为静态锚节点与移动锚节点定位未知节点。
3.2 移动锚节点定位未知节点
利用移动锚节点发射信号的强度、位置信息和贝耶斯估计方法进行未知节点的位置估计。
4 小结
可以发现,尽管也有使用移动锚节点辅助定位的算法研究,但是大部分的研究主要停留在静态移动锚节点的路径规划上,并且路径规划大多针对单个移动锚节点,这种路径规划存在虚拟锚节点共线,移动路径较长和定位时间较长等问题。能精确定位的算法比较少且大多数研究都是假设在理想环境下,即没有障碍物的环境下,忽略了实际应用中存在障碍物的情况。因此障碍物环境下无线传感器网络多移动锚节点定位算法研究,使移动锚节点能在绕开障碍物的前提下,完成对网络中未知节点的精确定位,达到定位精确度高、定位覆盖范围广且定位时间短三个基本要求。
参考文献:
无线传感网定位技术 篇7
随着工业化4.0节奏的不断推进,以及信息化产业链的不断发展,基于无线传感网定位技术的各种应用也层出不穷。采用一定的定位技术实现无线传感网信息的精确采集及处理,从而实现在数据监测、信息采集、传感归纳等方面的运用,成为了当前非常重要的一个研究热点,同时也成为制约无线传感网技术发展的一个十分重要的方面[1]。由于在传感定位时需要通过传感节点将定位信息以射频方式进行信息交互,一旦传感节点的电池因消耗过大而导致无法正常工作时,整个定位过程将随即失效[2]。所以采取一定的方式减少该过程的能量损耗,同时提高无线传感网的网络运行质量,就成为当前研究中非常重要的研究领域[3]。
如徐彤阳[4]等提出了一种NLOS误差模型下的无线传感网定位方法,当节点处于低强度噪声时,能够实现高精度定位,具有很强的实际部署意义。但是,由于该算法对网络复杂情况下的定位精度问题考虑不够,因此,难以在噪音复杂的网络背景条件下实现对节点坐标的精确定位。朱烜璋[5]等提出了一种基于圆盘散射模型的无线传感网定位方法研究,通过引入递归机制对节点初始状态坐标进行归纳,实现了无固定锚节点下的初步定位。但是,该算法是无锚节点算法,因此,虽然能够在节点定位信号强度较弱时进行定位,但是由于无锚本身的精确程度不高,在干扰较强时的精度往往会随着信号强度的增加而迅速增大。张金艺[6]等提出了一种无线传感器网络中的协作波纹定位,通过对节点相对位置进行计算,实现了对节点的初步定位。然而,由于对网络拓扑改变因素考虑不够,传感节点一旦发生拓扑结构的改变,将难以支持定位过程的继续。
为了解决上述不足,本文提出了基于强度值递归测量机制的无线传感网节点定位算法,通过对节点信号强度值进行归纳,实现了精确定位。随后针对初步定位中可能存在的误差,采取对数据进行二次转换,从而进一步提高定位的精确度。最后采取NS2仿真平台对本文算法进行了仿真验证,证实了本文算法的有效性。
1 网络拓扑假设与能量模型
由于整个定位过程中需要通过无线传感网节点进行信息交互,当节点信息收发过程受阻时,将难以正常进行定位,因此,本文的无线传感网拓扑结构需要做出如下规定[7]:
1)网络节点能量不可变动,即无法通过人为因素给予网络节点补充能源[8];
2)传感器节点之间的信息交互是通过固定频率的射频信号进行交互,且整个过程均在无线网络环境中进行;
3)整个网络需要通过一定的机制进行自我修复,但该修复过程均不影响定位算法的进行;
4)传感节点在消耗完自身能量后,将丧失一切信号接收与发送功能。
在低强度网络信号的背景下,由于网络节点之间的信息交互均通过无线信道发生,因而整个网络中的全部传感节点的能量收发模式满足无线信道的信号收发模式[9]。单个网络节点在定位过程中的能量阈值μ(B)满足如下数学表达式:
其中B为定位过程中的总体定位带宽,R为节点定位过程中的最大通信能力作用距离,Prev为定位节点的能量接收功率,Psent为定位节点的能量发射功率。
相应参数定义同模型(1)中定义。
从模型(1)与模型(2)可以得到,节点在进行定位过程中的能量阈值与其定位过程中的总体定位带宽、节点定位过程中的最大通信能力作用距离、定位节点的能量接收功率、定位节点的能量发射功率均存在很强的比例关系,且随着节点通信距离的飞速提高,节点能量阈值与损耗相比增长速度更为迅速。此外,如果考虑到能量损耗因素仅能通过降低定位节点的能量接收功率和发射功率的方式进行,一旦两者数值过大,该节点可能因为能量消耗过大而导致信号收发性能迅速下降,从而大大降低定位的精度及质量。
2 基于强度值递归测量机制的无线传感网节点定位算法
根据第1部分提出的网络拓扑假设与能量模型,本文提出了一种基于强度值递归测量机制的无线传感网节点定位算法(Node localization algorithm for wireless sensor networks based on the intensity value recursion measure,IVRM算法),整个算法通过强度值递归测量机制和重心坐标再定位两个部分所构成。
2.1 强度值递归测量机制
由于进行节点定位需要综合考虑信号强度及相应节点间强度分配比例关系[11],由模型(1)~(2)可知,整个网络节点的定位信号强度与节点的通信距离呈现很强的相关比例关系。通过综合判断能量阈值并对该阈值进行基于强度值的递归测量,既可以从其他节点的信号强度中得到最佳的定位信号,因此,可以通过这种方式实现对节点的初步定位。
其中,所有参数与模型(1)~(2)相同。
上述两个模型反映了定位过程中某个节点与周围节点间的坐标关系,通过模型(3)可以对待定位节点实现比较精确的定位,通过模型(4)可以初步对获取的待定位节点的坐标进行初步的误差估计。但是,由于模型(3)和模型(4)中的参数需要通过测量得到,且其节点收发功率会随着时间增加而存在很强的衰减效应,因此,需要对模型(3)和(4)中的数据进行处理,以便能够在精确度上满足需求。
对此,本文引入了采样信号强度,通过与重心节点的坐标进行比对,来进一步提高定位精度。
由于在WSN运行期间,其节点的收发功率将收敛于0[12],故模型(5)可演变为:
所有参数与前面相同。
整个递归过程如下所示:
Step 1:根据模型(3)所示,得到待测节点的坐标及误差,转Step 2;
Step 2:根据模型(1)求得强度最佳的一批节点,并得到节点的具体坐标;
Step 3:根据模型(5)~(8)求得精确坐标,转Step 4;
Step 4:根据模型(9)求得坐标的误差修正,流程结束。
2.2 重心坐标再定位
进行重心坐标修正之后,通过模型(8)和模型(9)可以得到待定位节点的精确坐标,但是,由于模型(8)和模型(9)为待定位带宽B的函数,通过计算模型(8)和模型(9)的极值即可以得到最佳的节点定位数据发送带宽的大小。
对模型(8)和模型(9)求二次导数可得:
从模型(10)和(11)可知,当B=3.5时,整个模型(8)和(9)取极值,即当定位数据以每秒3.5比特发送时,整个网络的性能处于最优状态,所获取的节点坐标及误差程度也同时处于最精确状态。
通过模型(10)和模型(11),可以对模型(5)所示的重心坐标进行再次定位计算,由于B=3.5,同时也是模型(5)的极值点,因此,可以有效地改善模型(5)~(7)的精度,并通过模型(8)和模型(9)计算出精度最佳的定位数据。
3 仿真实验
本文采用NS2仿真平台对本文算法进行仿真,为验证本文算法的有效性,将其与当前广泛使用的KKFG节点定位算法[13,14]进行对比,在定位控制开销、网络生存时间、数据分组投递率和误差绝对值四个指标上进行对比。具体仿真参数如表1所示。
(1)定位控制开销
图1显示了本文算法与对照组算法的定位控制开销测试结果。从图中可以看到,本文算法随着节点初始能量的增加保持稳定状态,这是因为本文算法引入了强度值递归机制,能够对初次定位坐标进行精度上的修正,能够有效地改善定位消息的传输成功率,降低定位控制开销。而对照组算法由于无法对精度进行修正,因此,需要采取增加控制分组的方式实现精确定位。
(2)网络生存时间
图2显示了本文算法同对照组算法在网络生存时间上的测试结果。从图中可以看到,本文算法随着节点初始能量的增加均呈现不断增加的趋势,但是本文算法的网络生存时间始终要好于对照组算法,这是因为本文算法引入了强度值递归机制,能够对初次定位坐标进行修正,从而有效地增加了定位精度。因此,能够减少网络中因定位失误而出现的冗余数据,从而实现网络生存时间的延长。
(3)数据分组投递率
图3显示了三种定位算法的数据分组投递率测试结果,从图中可以看到,本文算法的数据分组投递率随着节点初始能量的增加保持稳定状态,此外,本文算法的数据分组投递率始终要高于对照组算法,这是因为本文算法引入了重心坐标再定位机制,因此,能够通过改善重心节点的冗余特性有效地改善节点拥塞的发生,大大提高数据分组投递率。而对照组算法在精度定位下降时需要以增加数据分组的方式进行数据投递,从而大大降低了数据分组投递率。
(4)误差绝对值
图4显示了两种WSN节点定位算法的误差绝对值测试结果。从图中可以看到,本文算法的误差绝对值始终要低于对照组算法,这是因为本文算法通过重心坐标再定位实现了定位误差修正,因此能够有效地改善定位精度,而对照组算法的定位数据是仅仅通过简单测量而得到,当定位出现错误时,难以实现实时纠正,导致误差绝对值高于本文算法。
4 结束语
本文提出了一种基于强度值递归测量机制的无线传感网节点定位算法,通过对节点信号强度值的归纳与处理,实现了精确定位。同时采取了基于重心坐标的再定位机制,对最佳定位带宽进行了计算,实现了定位节点坐标的精确获取。仿真实验表明,与传统的KKFG算法相比,本文算法在定位控制开销、网络生存时间、数据分组投递率和误差绝对值四个指标上具有明显的优势,对实践具有一定的指导意义。
摘要:为解决无线传感网部署过程中存在严重的射频串扰现象,且定位信号测量精确程度低,难以准确搜寻到锚节点等不足,本文提出了基于强度值递归测量机制的无线传感网节点定位算法。首先通过强度值递归机制,准确地按照采样信号强度实现对网络重心节点的精确定位,随后通过对采样信号数值进行转换,结合网络重心节点位置,对待测量节点的坐标进行精确估计,从而计算出节点在网络中的准确位置,有效提高了定位信号的精确程度。仿真实验表明,与KKFG定位算法相比,本文算法具有更高的定位精确度与数据分组投递率,以及更低的定位误差度。
无线传感网定位技术 篇8
无线传感器网络(Wireless Sensor Network)简称WSN[1],是由一定空间范围内许多具有相同或不同功能的传感器节点组成。每个传感器节点都将采集并处理相应的信息,并通过无线通信的方式进行相互传递,最终形成一个多跳、自主的计算机网络系统。无线传感器网络自身的定位技术是无线传感器网络中的关键技术,尤其是随着节点数量的增加和使用范围的扩大,开发一种简单有效的传感器节点定位算法显得十分重要[2]。无线传感器网络定位的基本思想是利用一个已知节点作为参考,通过传感器设备之间相互传递数据,再根据定位算法对未知节点的坐标进行估算。目前,对未知节点进行坐标估算的方法总体分为两类:分别是基于测距的定位算法和无需测距的定位算法。在基于测距的定位算法中,各个节点之间的定位信息传递环节无疑是整个定位过程的关键,只有节点之间能够及时、准确的传递信息,才能实现整个定位过程。
1 无线传感器网络定位
1.1 定位方法概述
无线传感器网络的定位算法,从总体来说可以分为以下几类:
1.1.1 基于测距的和无需测距的
基于测距的定位算法,需要获取节点之间的距离或角度信息进行定位。测量距离的主要技术有:信号到达时间(TOA)、信号到达时间差(TDOA)、接受信号强度测距(RSSI)和到达角度(AOA)测距法。获取了节点之间的距离信息之后,可以通过极大似然估计法、三边测量法的方法来估算未知节点的坐标。与基于测距的定位算法相比,无需测距的定位算法往往用于对于传感器硬件要求更低,并且在定位精度方面要求也不是很高的情况。
1.1.2 集中式与分布式
集中式定位算法中,各个节点将数据传递给中心节点,由中心节点负责统一计算每个节点的位置信息。分布式定位算法中,节点位置信息的计算由各个节点独立完成。
1.1.3 递增式与并发式
递增式算法是指从信标节点开始,逐渐向外围进行定位形成新的信标节点,最终覆盖整个网络,实现定位。并发式定位算法是指网络中的所有节点同时进行定位。
1.1.4 绝对定位和相对定位
绝对定位是指传感器网络中的所有节点使用统一的绝对坐标系,这样,无论进行多少次定位,获取的定位结果都是唯一的。相对定位算法则只需计算出节点之间的相对位置关系,因此如果采用相对定位,结果则可能不同。
1.1.5 基于信标节点的定位和无需信标节点的定位
在基于信标节点的定位过程中,将预先布置一定数量的信标节点,未知节点可根据信标节点的位置,最终获得未知节点的绝对坐标。无需信标节点的定位中,由于不包含已知自身位置的节点,因此最终只能得到所有节点之间的相对坐标关系。
在上文所述的各种算法中,基于测距的定位算法具有较高的定位精度,因此我们将重点研究基于测距的无线传感器网络定位算法。
在传感器网络中,基于测距的定位算法实现过程主要包括三个步骤:距离测定[3,4]、位置计算和定位过程。
距离测定:在基于测距的算法实现的最初阶段,各个节点之间使用TOA、TDOA、RSSI、AOA等测距技术获取相邻节点间距离信息。TOA(Time of Arrival),这是一种通过测量信号传输时间来测量距离的技术。如果在无线传感器网络中使用TOA技术,需要高性能的设备进行所有节点之间的时钟同步,因此TOA技术并没有得到广泛的应用。TDOA(Time Different On Arrival),该方法需要使用两种不同的信号,在接收节点处,通过记录同一发射源发出的两种不同信号的到达时间差,计算节点的直接距离。RSSI(Received Signal Strength Indicator),这种方法需要已知发射节点的信号发射功率,在接收节点处测量接收到的功率大小,从而对比得到信号传输过程中造成的信号损失,再通过相应的计算方法和理论将信号的损失情况转换为距离。由于在信号传输过程中,受到外界干扰的情况十分复杂,因此这种方法被认为是一种粗略的测距技术。AOA(Angle of Arrival),这种技术中未知节点通过获取与信标节点A和B所形成的角度,进而估算自己所处位置。除了实现距离测定外,该方法还能获取节点之间的方位信息。
位置计算:在获取节点之间的距离信息之后,各个节点需要通过使用位置计算的方法来计算得到相应的节点坐标。
定位过程:不同的定位算法将根据距离测定和位置计算的结果,最终确定其传感器网络的坐标位置,实现全网统一定位。
1.2 UAFL算法过程
如上文所述,基于测距的定位算法大体定位过程可以分为三步,这里所讨论的UAFL(Unique and Anchor-free Localization)算法同样遵循上述三个阶段[5]。但如图1所示,我们将其细分为四步,每步所完成的工作如下:
1.2.1 系统初始化
在系统初始化阶段,每个传感器节点i都将在无线信道发送包含自己身份数据和已知邻居的探测信息,以此发现其一跳邻居节点,并且邻居节点不再进行转发。所有的邻居节点都会对所收到的数据包进行跟踪记录,当收到一个数据包时将会对其进行检查,如果这是一个新数据包,节点将会对自己的一跳和两跳邻居节点列表进行更新,否则将会丢弃收到的数据包。对于每个传感器节点i,在确定其所有一跳邻居节点后,将会使用相应测距算法测出与其邻居节点j之间的距离,我们将这个值记为dij。同时,传感器也会获得两个邻居节点之间的角度信息。最后,所有的节点将会与邻居节点交换自己所获取的所有距离、角度信息。系统初始化的结果是每个节点都将知道其一跳和两跳邻居节点的存在、自己与一跳邻居节点,一跳和两跳邻节点之间的距离以及一跳邻居节点与自身的角度信息。
1.2.2 建立本地坐标系
UAFL定位算法进行定位的第二步是每个节点都将设置自己为源节点,利用系统初始化过程中获得的角度信息,建立唯一的本地坐标系统。
1.2.3 本地坐标计算:
在此步,每个节点将使用余弦定理和三角函数关系推导出相邻节点在其本地坐标系下的相对坐标。为进一步转换做出准备。
1.2.4 全局坐标计算
在这个部分,我们可以选择出一个sink节点作为整个传感器网络的源节点,并建立全局坐标系。为了计算sink节点的非邻居节点的全局位置,无线传感器网络中所有普通节点将利用特定的坐标转换矩阵,以sink节点为中心,一步一步完成坐标转换过程,逐步将局部坐标转换为全局坐标,最终确定传感器网络中的所有节点坐标。为了能够实现在无线传感器网络中建立统一的坐标系,这一步被视为UAFL算法中最为关键的步骤。然而,坐标转换矩阵的获取需要利用各个节点之间的角度信息进行推导,因此,能否与无线传感器网络中sink节点通讯,传递必要的数据信息推导相应坐标转换矩阵成为了全局坐标计算的关键所在。在参考文献[5]中,作者已用MATLAB对该算法做出相应的仿真对比,但MATLAB作为一种数学工具,其优势在于对数值运算的分析和处理能力,并不着重于对网络事件的流程分析;NS2作为专门的网络仿真软件,侧重于对网络事件的仿真描述,能够详细记录网络中各种事件的发生过程,提供准确的数据记录,方便研究者清楚的了解网络事件。本文中,我们将使用NS2仿真软件对全局坐标计算过程中普通节点与sink节点的通信传递过程进行模拟仿真,并且通过仿真结果分析在何种情况下UAFL算法能够达到最高效率与定位精确度。
2 仿真环境
本仿真实验是在Ubuntu 10.04 系统下安装了仿真软件NS2(版本为NS 2.34)[6,7],并修改相关参数,搭建相应仿真环境。通过编辑Tcl脚本,对UAFL定位算法中定位数据的传输过程进行模拟仿真;在获取数据结果的基础上,使用AWK语言和Gnuplot工具,分析仿真结果,最终以图形化的方式输出仿真结果。
仿真过程中,需要对网络中各层设定初始参数,具体情况如图2所示。
3 仿真过程
在仿真过程中,我们将选取一个节点作为传感器网络的源节点sink,其余节点则作为普通传感器节点,所有普通节点将与sink节点进行通信传递角度信息,使得各个普通节点能够获取从局部坐标到全局坐标转换过程中的坐标转换矩阵。在仿真实现时,使用NS软件自带的恒定数据流产生器CBR来产生模拟网络中的定位信息流量,不同节点产生的CBR流量将在仿真规定的时间范围内持续不断的发送到sink节点。
本次仿真实验中,为了使得实验结果具有可比性,将分别生成20个节点、50个节点、80个节点、100个节点、150个节点和180个节点等六个不同节点数量的场景。此外,对sink节点的位置做出调整,分别让sink节点处于传感器网络的中心和边缘位置,最终得到十二个仿真场景。而场景文件的生成,使用了Setdest工具,我们只需设定节点的数量、移动速度、场景持续时间及场景范围等参数,便可自动生成一个网络场景。图3为传感器节点数量为100个时的随机分布场景图。
4 仿真结果对比分析
在每次运行Tcl脚本程序之后,都将会产生一个.nam文件和一个.tr文件,其中通过.nam文件可以调用Nam程序,动态的观察网络仿真的整个过程;而通过.tr文件则记录了仿真过程中的所有细节信息,是对仿真结果进行分析的基础文件,本文中的结果分析就是通过使用Gnuplot工具图形化分析.tr文件[8]。
参照相关标准,选取以下两个指标对不同环境条件下的信息传递效果做出评价:
1) 端到端延迟:包括了路由查找,数据包在接口队列的等待时间,传输过程中形成的传输延迟等等。对于UAFL算法来说,传输延迟过大,将严重影响定位。
2) 丢包率:丢包率=1-(sink节点收到数据包总数/传感器节点发送数据包总数x100%)。丢包率反应了网络的可靠性,丢包率越小,说明网络覆盖率越高,网络的可靠性也高,定位也就更加准确。
4.1 仿真结果展示
使用awk程序语言对仿真结果.tr文件进行处理后,调用Gnuplot工具得到不同环境条件下的仿真结果如图4至图7所示。
4.2 仿真结果分析
4.2.1 丢包率分析
从整体范围来看,随着场景中节点数量的增多,传输过程中丢包率逐渐减小,代表着定位效率也越来越高。从图4、图5可以看出,在20个节点场景中,当sink节点处于传感器网络中心时,由于受到通信半径影响,网络中没有其他任何传感器节点能够与sink节点进行通信,因此丢包率为100%。其余情况下,表示丢包率的曲线都从最开始的100%处下降,这是因为在网络仿真的最初阶段,传感器节点之间需要进行传输路径的发现,因此导致最初阶段传感器网络丢包率很高,随着时间的推移,整个网络传输路径逐渐完善,丢包率将逐渐平衡到某个范围。本次仿真实验中,传感器节点的默认通信半径为100m,而拓扑范围为2000x2000,从理论计算可知当传感器数量达到127时,整个传感器网络能够实现基本覆盖。从仿真结果输出中我们可以看出,传感器节点数量为100个时,网络丢包率仍然高达65%,而当传感器节点数量增加为150个和180个时,网络丢包率迅速下降到10%以内,这一数据对比可以充分证明,当传感器数量超过127时,几乎整个传感器网络的定位信息都可以发送到sink节点,从而能够实现传感器网络的定位。另外,sink节点的位置选取对传感器网络仍然具有一定影响。从图形输出结果中我们可以看出,当传感器网络节点数量较少时,sink节点处于中心位置时,网络丢包率将明显小于sink节点处于边缘位置时的网络丢包率。随着传感器网络节点数量增多,sink节点的位置对于传感器网络定位精度产生的影响将逐渐降低。
4.2.2 传输延迟分析
从图6、图7可以看出,在20个节点的场景中,当sink节点处于网络中心时,由于无法和其他节点进行通信,因此不存在网络延迟。在其他场景的延迟结果中我们可以发现,随着传感器节点数量的增多,网络延迟也逐渐增大,这是因为随着网络节点数量增加,网络中数据传输量也将逐渐增大,因此网络传输延迟也会增加。对比150个节点与180个节点的实验结果可以发现,在丢包率相差无几的情况下,180个传感器节点的网络传输延迟明显高于150个传感器节点时的传输延迟。与网络丢包率不同,sink节点的位置选取对传输延迟产生了较大的影响,无论无线传感器网络中拥有多少传感器节点,sink节点处于网络边缘时的网络传输延迟都明显低于sink节点处于中心位置时的传输延迟。尤其是在节点数量超过100时,sink节点的位置选取对网络传输延迟产生了较大的影响。因此在实际传感器网络定位过程中,需要我们协调处理随着节点数目增加,网络丢包率与网络传输延迟之间的相互关系。优化传感器网络节点数量和节点分布,从而使得传感器网络在定位过程中能够实现在精确度和耗费时间方面的平衡。
5 结论
无线传感器网络作为一种具有极高利用价值的网络新技术,具有相当的研究空间。而无线传感器网络自身的定位技术又是无线传感器网络中的关键技术,因此对传感器网络中的定位算法进行研究分析和模拟仿真具有很宽阔的发展背景。
本文的研究工作主要体现在以下两个方面:
1) 在阐述了无线传感器网络的基础上,引入传感器网络中的定位技术。描述了当今传感器网络中主要定位技术的分类。随后,对基于测距类传感器定位技术进行深入分析,指出其基本定位过程。根据UAFL算法,进一步分析了传感器网络定位的实际过程。并指出,在使用基于测距类定位算法UAFL算法进行节点自身定位过程中,定位信息的传递过程将是直接影响到传感器网络定位效率的主要因素。
2) 搭建仿真环境,使用Network Simulation 2网络仿真工具对无线传感器网络定位算法中的信息传递过程进行模拟仿真。仿真结束后,借助awk程序语言和Gnuplot图形生成工具,从网络传输延迟和网络丢包率两个方面对仿真结果进行了图形化的比较和分析,得出仿真结果。
通过使用NS软件进行网络仿真,并对仿真结果加以分析,我们可以得出结论:当无线传感器网络拓扑范围为2000x2000时,若使用UAFL定位算法对传感器节点自身进行定位,则传感器数量为150个左右时定位效率达到最佳。并且为了能够使得网络传输延迟降低,在保障定位效率的前提下,应该尽可能的将sink节点安装在无线传感器网络的边缘位置。
参考文献
[1]Akyildiz,Su,I.F.,Sankarasubramaniam,W.Y.,&Cayirci,E.(2002).Wireless sensornetworks:a survey.Computer Networks,38(4),393-422.
[2]Bal,M.,Liu,M.,Shen,W.,&Ghenniwa,H.(2009).Localization in cooperative wirelesssensor networks:a review.Proceedings IEEEInternational Conference on Computer SupportedCooperative Work in Design,438-443.
[3]Stefano,G.D.,&Petricola,A.(2008).Adistributed AOA based localization algorithm forwireless sensor networks.Journal of Computers,3(4),1-8.
[4]Wen,C.Y.,&Hsiao,Y.C.(2008).Decen-tralized anchor-free localization for wireless ad-hoc sensor networks.Proceedings IEEE Inter-national Conference on System,Man,and Cy-bernetic,2776-2784.
[5]Yuan Zhang,Yuehui Chen and Yue Liu,To-wards Unique and Anchor-Free Localization forWireless Sensor Networks,Wireless PersonalCommunications,vol.63(1),pp.261-278,2012.
[6]方路平,刘世华,陈盼,郭笋,陈小乐等编著.NS-2网络模拟与基础应用[M].国防工业出版社2008-5-1.
[7]王辉.NS2网络模拟器的原理和应用[M].西北工业大学出版社,2008-8-1.
无线传感网技术综述 篇9
关键词:传感网,Mesh,ZigBee,WSN
无线传感网 (即Wireless Sensor Networks, 简称WSN) 是指由一组随机分布的集成有传感器、数据处理单元和通信模块的传感器以自组织方式构成的无线网络, 用于实时监测网络覆盖区域的各类监测对象的信息。WSN综合了传感器技术、无线通信技术、嵌入式系统技术、分布式信息处理等技术, 是一项集成了多学科的技术领域, 已成为构建无线物联网的重要技术。
1 硬件结构
无线传感网由几个到几百个甚至上千个节点构成, 每个节点都连接一个或多个传感器。每个传感器网络节点具有典型的几个部分:一个无线收发器与天线 (内部天线或连接到外部的天线) 、微处理器、电子传感器和能量源, 能量源通常是接口电路的电池。传感器节点有相应的制约因素, 如能源、内存、运算速度和通信带宽资源的规模和成本的限制。无线传感网的拓扑结构可以是一个简单的星型网络, 也可以是先进的多跳无线网状的网络。
无线传感网由若干数量的传感器节点组成, 传感器节点之间通过射频 (RF) 无线通信技术实现互联, 构成传感网。传感器节点具有如下特性:
(1) 传感器节点同时作为信息源、收发器和路由器。传感器节点的主要任务是采集所在区域的数据信息, 并且将数据汇集到基站点。传感器节点由传感器模块、射频收发模块、微处理器、电源模块构成, 集传感、信号调理、信号处理、通信和控制功能为一体。传感器模块作为节点的信息源, 可采集血糖量、含氧量、酸碱值、加速度、速度、压力、光、声、湿度、温度等各种物理量, 是无线传感网获取监测数据的嗅觉器官;传感器节点既是信息源发送器, 又是接收器, 射频收发模块负责无线数据收发, 由于无线传感网可能出于恶劣的应用环境中, 要求射频收发模块具备低功耗、高稳定性的特点, 并可工作于多种无线通信频率;微处理器是传感器节点的大脑, 提供输入输出、数模转换功能及I2C、SPI、UART等各种接口, 负责协调和处理传感器模块、射频收发模块的数据, 实现对传感数据的采集、加工、处理, 通过射频收发模块收发传感数据;传感器节点同时作为无线传感网的路由器, 除了发送本节点信息源数据, 还接收和转发相邻节点的数据, 根据无线传感网的环境状况, 传感器节点能自动选取数据发送对象和传输路径, 即是某个节点失效, 仍不影响传感数据的传输。
(2) 自主管理能耗, 能实现低功耗。通常传感器网络节点采用电池供电, 要求电池能长时间续航, 因此, 如何降低节点能耗对无线传感网而言至关重要。在现行的大部分无线传感网应用中, 节点采集数据的频率都较低, 通常是几分钟甚至几十分钟采集一次传感数据, 通过自主管理能耗, 当无数据通信时, 传感器节点能自动进入休眠状态, 降低功耗;当传感器节点数据处于收发状态时, 能通过路由策略选择有利于降低能耗的最佳传输路径。
(3) 低成本。无线传感网可能需要大量的传感器节点, 因此, 传感器节点的生产成本是需要考虑的重要问题。
2 网络路由协议
无线传感网主要有Mesh、Zig Bee两种常见的路由协议, 它们在技术特性上各有优势。
(1) Mesh路由协议。Mesh路由协议是一种网状对等协议, 任意两节点均可通讯、转发数据。同时, 每节点均带有低功耗、部署方便、自配置、可自愈等特性。
(2) Zig Bee协议。Zig Bee是唯一的无线通信协议技术标准, 能够满足远程监测、控制和传感器网络应用的独特需求。Zig Bee的能耗低, 可应用于集传感器 (动, 光, 温度和湿度等) 和发射、接收为一体的大型传感器网络。在基于Zig Bee协议的网络中, 2节AA型电池可供节点运行长达2年时间, 网络容量最高可扩展到65, 000个节点, Zig Bee网络具有网络配置简单、网络可靠性高、可自愈强、数据传输容错能力强等优点。
3 结语
无线传感网技术是跨多学科的技术领域, 需要微处理器技术、软件技术、网络技术、电池工业等多方面共同努力, 无线传感网技术的进步提高需要依赖多学科的共同努力。无线传感网技术已广泛应用于工农业生产等诸多领域, 随着构建物联网、实现智慧地球的前沿技术应用的驱动下, 无线传感网技术将具有更广阔的发展空间。
参考文献
[1]吴小娜, 王漫.无线传感器网络操作系统TinyOS综述[J].计算机与现代化, 2011 (2)
[2]杨福宝.基于Zigbee的数据传输系统的研究设计[J].制造业自动化, 2011 (1)
[3]俞仁来, 谭明皓.基于ZigBee的无线传感器网络路由分析[J], 2011 (1)
[4]施茂祺.基于ZigBee协议的传输系统设计[J].制造业自动化, 2011 (2)
[5]李磊, 秦国军等.基于传输距离估计的无线传感网节点定位方法[J].2009 (1)
[6]王洁, 石红丽等.基于射频识别的无线传感网节点设计研究[J].2011 (3)
[7]罗清岳.透析WSN无线传感网络[N].电子资讯时报, 2007 (7)
[8]罗江英.无线Mesh网负载均衡技术[J].软件导刊, 2011 (5)
无线传感器网络定位技术研究 篇10
关键词:无线传感器网络,节点定位,锚节点,测距技术
0 引言
无线传感器网络(WSN)以自组网形式由大量按照无线、多跳方式通信的智能传感器节点构成,这些节点一般被密集布设在特定的没有基础设施的监控区域。近十几年来,随着无线通信技术、微电子技术、以及微电机系统技术的发展,WSN技术也得到了迅速发展,在军事、环境、医疗、工业和民用领域都有广阔的应用价值和前景。国外启动了许多关于WSN的研究计划,如:Pico-Radio,WINS,Smart Dust,μAMPS等,而WSN中的节点定位作为支撑技术将直接影响到应用的可靠性和实用性。
WSN中许多特定应用都依赖于传感器节点或者目标物体的地理位置信息例如:基于地理信息的路由、资源的有效配置、对外部目标的定位和追踪、计算网络覆盖范围、网络的负载均衡等,所以无线传感器网络节点的定位是WSN应用的基础。
全球定位系统GPS(global position system)是目前应用得最广泛最成熟的定位系统,通过卫星的授时和测距对用户节点进行定位,具有定位精度高、实时性好、抗干扰能力强等优点,但是无线传感器网络一般不使用GPS获取所有节点位置,主要原因包括:节点能量和体积有限,不适合装备GPS接收机;节点数目众多,如果每一个节点都装备GPS接收机,整个网络成本难以接受。所以,无线传感器网络节点定位技术不能建立在大规模应用GPS的基础上。
网络中,根据节点是否已知自身的位置,传感器节点被分为锚节点(位置已知的节点)和未知节点。节点定位根据网络中少量的锚节点,按照某种定位机制确定网络中未知节点的位置。当前已研究出多种传感器节点自身定位机制。
1 Range-based定位算法
基于距离的定位机制是通过测量相邻节点间的实际距离或方位进行定位。具体过程通常分为三个阶段:第一个阶段是测距阶段,未知节点首先测量到邻居节点的距离或角度,然后进一步计算到邻近信标节点的距离或方位;第二阶段是定位阶段,未知节点在计算出到达三个或三个以上信标节点的距离或角度后,利用三边测量法,三角测量法或极大似然估计法计算未知节点的坐标;第三阶段是修正阶段对求得的节点的坐标进行求精,提高定位精度,减少误差。
在基于距离的定位中,测量节点间距离或方位时采用的方法有TOA,TDOA,RSSI和AOA等,因此基于距离的定位进一步分为:基于TOA的定位、基于TDOA的定位、基于AOA的定位和基于RSSI的定位等。
在基于到达时间TOA的定位机制中,已知信号的传播速度,根据信号的传播时间来计算节点间的距离,TOA的精确性高,但要求节点间保持精确的时间同步,因此对传感器节点的硬件和功耗提出了更高的要求。
在基于到达时间差TDOA的定位机制中,发射节点同时发射两种不同传播速度的无线信号,接收节点根据两种信号到达的时间差以及已知这两种信号的传播速度,计算两个节点之间的距离,再通过已有基本的定位算法计算出节点的位置。这种方法受到超声波传播距离的限制和非视距问题对超声波信号传播的影响,不仅需要精确的时钟记录两种信号到达的时间差异,也需要传感器节点同时具备感知两种信号的能力。室内定位系统Cricket是麻省理工学院的Oxygen项目的一部分,利用TDOA技术用来确定移动或静止节点在大楼内的具体房间位置。
在基于AOA的定位机制中,接收节点通过天线阵列或多个超声波接收机感知发射节点信号的到达方向,计算接收节点和发射节点之间的相对方位或角度,再通过三边测量法计算出节点的位置。AOA定位方法的硬件系统设备复杂,并且需要两节点之间存在视距(LOS)传输,因此不适合于无线传感器网络应用。
在基于接收信号强度指示RSSI的定位中,已知发射节点的发射信号强度,接收节点根据收到信号的强度,计算出信号的传播损耗,利用理论和经验模型将传输损耗转化为距离,再利用已有的算法计算出节点的位置。RADAR是一个基于RSSI技术的室内定位系统,用以确定用户节点在楼层内的位置。
2 Range-free定位算法
基于测距技术的定位比较精确,但对硬件要求高,成本和能耗的开销大,与测距无关的定位技术无需测量绝对距离或方位,降低了硬件要求,在成本和功耗方面具有优势,但要牺牲精度的代价。虽然定位精度低,但也能满足大多数应用。目前提出的算法主要有:质心算发、DV-Hop算法、Amorphous算法、APIT算法等。
(1)质心算法
质心算法是南加州大学NirupamaBulusu等学者提出的一种仅基于网络连通性的室外定位算法。未知节点以所有在其通信范围内的信标节点的几何质心作为自己的估计位置。信标节点每隔一段时间向邻居节点广播一个信标信号,信号中包含有信标节点自身的ID和位置信息。当未知节点在一段侦听时间内接收到来自信标节点信标信号数量超过某一个预设的门限k或一定时间后,就确定自身位置为这些信标节点所组成的多边形的质心。
质心算法完全基于网络连通性,无需信标节点和未知节点之间的协调,比较简单容易实现。它假设节点都拥有理想的球型无线信号传播模型。这种估计的精确度与信标节点的密度以及分布有很大关系,密度越大,分布越均匀,定位精度越高。Bulusu B对质心算法进行了改进,提出了一种密度自适应HEAP算法,通过在信标节点密度低的区域增加信标节点,以提高定位的精度。
质心算法的最大优点是它非常简单,计算量小,完全基于网络的连通性,但是需要较多的锚节点。
(2)DV-HOP算法
DV-HOP算法是由Niculescu和B.Nath等人提出的。DV-HOP定位算法的原理与经典的距离向量路由机制相似。在DV-HOP算法中,锚节点向网络广播一个信标,信标中包含有此锚节点的位置信息和一个初始值为1的表示跳数的参数。此信标在网络中被以泛洪的方式传播出去,信标每次被转发时跳数都增加1。接收节点在它收到的关于某一个锚节点的所有信标节点中保存具有最小跳数值的信标,丢弃具有较大跳数值的同一锚节点的信标。这样,网络中所有节点(包括其他锚节点)都获得到了其它锚节点的最小跳数值。图1为一个示意图,表示了网络中的节点到锚节点A的跳数值。
锚节点具有到网络内部其他锚节点的跳数值以及这些锚节点的位置信息,因此锚节点可以通过计算得到距其他锚节点的实际距离。如果一个节点能够获得三个以上锚节点的估计距离,它就可以用三边测量法估计其自身的位置。
DV-HOP算法与基于测距算法有相似之处,都需要获得未知节点到锚节点距离,但是DV-HOP获得距离的方法是通过网络中拓扑结构信息的计算而不是通过无线电波信号的测量。
在基于距离的方法中,未知节点只能获得到自己覆盖范围内的锚节点的距离,而DV-HOP算法可以获得到未知节点无线射程以外的锚节点的距离,这样就可以获得更多的有用数据,提高定位精度。
(3)Amorphous定位算法
Amorphous算法与DV-HOP算法相似,首先,采用与DV-HOP算法类似的方法获得距离锚节点的跳数。与DV-HOP算法不同的是:Amorphous算法假定预先知道网络的密度,然后离线计算网络的平均每跳距离,最后当获得三个或三个以上锚节点的跳数,未知节点计算与每个锚节点的距离,然后使用三边测量法或最大似然估计法计算自身的位置。
(4)APIT算法
APIT(approximate point-in-triangulation test)算法的理论基础是:假如存在一个方向,沿着一个方向M点会同时远离或接近A,B,C,那么M位于△ABC外,否则,位于△ABC内,如图2所示。
近似的三角形内点测试利用网络中相对较高的节点密度来模拟节点移动,利用无线信号的传播特性来判断是否远离或靠近信标节点,通常在给定方向上,一个节点远离另一个节点越远,接收到信号的强度越弱。邻居节点通过交换各自接收到信号的强度,判断距离某一个信标节点的远近,从而模仿PIT中的节点移动。如图3(a)所示,节点M通过与邻居节点1交换信息,得知自身如果运动到节点1,将远离锚节点B或C,但会接近锚节点A,与邻居节点2,3,4的通信和判断类似,最终确定自身定位于△ABC内;而在图3(b)中,节点M可知假如自身运动至邻居节点2处,将同时远离锚节点A,B,C,故判断自身不在△ABC内。
3 定位算法比较
基于距离的定位机制由于实际测量节点间的距离或角度,通常定位精度相对较高,但对节点的硬件也提出了很高的要求,定位过程中消耗的能量相对多。使用声波,超声波,无线电波等进行距离或角度的测量,使得基于距离的定位算法易受温度、湿度障碍物等环境因素的影响;与距离无关的定位机制无需测量节点间的绝对距离或方位,因而降低了对节点硬件的要求,而且定位性能受环境因素的影响小,虽然定位误差相应有所增加,但定位精度能够满足多数传感器网络应用的要求,是目前大家普遍重点关注的定位机制。
由于每个节点的能量十分有限,也不宜将大量的通信和计算固定在某个或某些节点上,否则,这些节点的电能会很快耗尽,出现网络中节点不均衡的情况。因此,在无线传感器网络中,要尽量采取分布式的节点定位算法,即定位的计算过程分散在每个未知节点上而不是依赖于某个中心节点进行集中计算。本文前面的几种不基于测距的定位算法都属于分布式算法。
总的来说,不基于测距的定位机制属于粗精度定位机制,然而粗精度定位对于大多数无线传感器网络的应用已经足够,研究表明,当定位误差小于传感器节点无线通信半径的40%时,定位误差对路由性能和目标追踪精确度的影响不是很大。
4 结束语
传感器网络特点决定了网络定位必须满足自组织性、健壮性、能量高效和分布式算法的要求。定位算法是传感器网络应用的前提,传感器网络是与应用相关的网络,没有普遍适用的定位算法,因此,要针对不同应用,综合考虑节点规模、成本及系统对定位的要求来选择合适的算法。
在无线传感器网络中定位技术中,Range-free方法在功耗、环境以及成本方面比Range-based更具有优势,得到了越来越广泛的研究。
在以后研究中,考虑将基于测距和非测距相结合的定位方法,并考虑在网络移动条件下,来实现低成本、低功耗和高精度的定位。
参考文献
[1]孙利民.无线传感器网络[M].清华大学出版社,2005.
[2]任丰原,黄海宁,林闯.无线传感器网络[J].软件学报,2003,14(2):1148-1157.
[3]周正.无线传感器网络节点自定位技术[J].通信专题,2005,11(4).
[4]郭龙江.无线传感器网络若干定位算法的研究[J].计算机工程与设计,2005,27(12).
[5]Huang Qiqiang,Selvakennedy S.A Range-Free Localization Algorithm for Wireless Sensor Networks[J].2006IEEE0-7803-9392.