基于ZigBee的定位算法MATLAB仿真及结果分析汇总
- 格式:doc
- 大小:357.50 KB
- 文档页数:13
基于ZigBee网络的室内定位系统设计
曹鹏飞
【期刊名称】《信息与电脑》
【年(卷),期】2022(34)20
【摘要】文章设计开发了一种基于ZigBee网络的室内定位系统。
首先,该系统将ZigBee网络节点接收的信号强度指示(Received Signal Strength Indication,RSSI)转化为距离,结合质心定位算法进行修正,利用粒子群算法计算未知节点位置。
其次,采用STM32控制器对数据进行预处理,按照ZigBee协议完成数据包的解析。
最后,将数据发送给上位机,上位机实现定位算法处理,并将结果在界面显示。
经过测试,系统的实际定位效果良好,平均误差在1m以内,达到了预期的设计要求。
【总页数】4页(P123-125)
【作者】曹鹏飞
【作者单位】天津中德应用技术大学智能制造学院
【正文语种】中文
【中图分类】TP302.1
【相关文献】
1.基于ZigBee的室内定位系统设计
2.基于ZigBee无线传感器网络的室内定位系统设计
3.基于ZigBee和RSSI测距算法的室内定位系统设计
4.基于ZigBee无线网络的室内定位系统设计
5.基于ZigBee和RSSI测距算法的室内定位系统设计
因版权原因,仅展示原文概要,查看原文内容请购买。
基于 Zigbee 的井下人员三角质心定位系统摘要:本文将三边定位方法与RSSI距离测量相结合,并通过二次三角形质心定位算法减少误差,使用ZigBee定位系统确定移动节点(井下人员)的准确位置。
硬件系统实时记录井下人员在生产和移动中的位置。
根据位置绘制轨迹图,同时记录井下人员所在场地的温度、湿度和气压。
数据通过无线传输模块传输到上位机。
根据不同的ID,存储所有数据,用于分析井下人员的身体和生产状态,更好的检测井下人员的动态,提高安全生产能力。
关键词:ZigBee定位;RSSI测量距离;三角形质心定位;实时定位引言无线定位技术领域可分为广域定位和短距离无线定位,广域定位可分为卫星定位和移动定位。
定位技术主要包括超宽带技术(UWB)、蓝牙技术、超声波定位技术、红外定位技术、射频识别技术(RFID)、WIFI技术和ZigBee技术。
目前常用的无线测距技术有:基于AOA(到达角定位)的定位算法、基于TOA(到达时间定位)的定位算法、基于TDOA(到达时差定位)的定位算法和基于RSSI (接收信号强度定位)的定位算法。
ZigBee填补了低功耗、低成本和短距离无线通信领域的空白。
因此,此时已使用ZigBee定位技术。
为了达到最佳的定位效果,以CC2530为核心解决方案,整个定位系统中的各部分功能都是基于ZigBee 协议框架结构实现的,此外,还结合了二次三角形质心定位算法,以减少误差。
1定位技术介绍1.1三边测量将三边定位方法和RSSI测距相结合,使用ZigBee定位系统确定移动节点(井下人员)的准确位置。
RSSI技术主要基于节点接收到的信号强度值,并通过传播信号的经验或理论模型公式将其直接转换为其距离值。
理论上,随着距离的增加,由于无线信号的衰减,接收到的RSSI将降低。
因此,根据该关系,可以直接通过RSSI值获得两个节点之间的直接距离。
(1)式(1)中,A为射频参数,RSSI值已知,n为信号传输常数,d为移动节点和参考节点之间的距离,其中A和n可以计算出来,并在正式开始测量之前用作已知量。
3.4 TDOA算法仿真我们取节点总数为100个,已知节点为20个,通信半径为60米,边界长宽均为100米,已知节点坐标和未知节点坐标均随机产生,定位结果如下:绝对误差3.3225e-13米,相对误差 5.5376e-13%,均接近于0(盲节点的定位误差视为0),所有节点均可被定位且它们的定位误差几乎为0。
因为将盲节点的定位误差视为0,则此TDOA定位算法的误差来源于计算过程中的小数位数的取舍,这样的误差是十分小的与接近于0的运算结果相符。
注:≈0表示接近于0(远小于1)。
绝对误差:定位出的未知节点的坐标与实际坐标相差的距离值平均绝对误差:N次运算绝对误差的均值相对误差:绝对误差与节点通信半径的比平均绝对误差:N次运算相对误差的均值平均盲节点比例:盲节点总数占总未知节点数的比例将不能被定位的节点的估计位置全置为(0,0)图XX.基于TDOA算法的定位仿真结果图XX.基于TDOA算法的定位仿真定位出来的每个未知节点的对误差同样的因为已知节点和未知节点坐标均为随机产生,所以定位结果的误差也具有随机性,因此保持上述条件不变做多次运算求定位误差的平均值则可以表示在上述条件下定位的一般误差水平1次10次20次40次50次100次200次300次500次800次平均绝对误差(米)≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0平均相对误差(%)≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0平均盲节比例(%)0 0 0.062500.031250.050000.037500.068750.087500.077500.13000表XX.多次运算后的平均绝对误差、平均相对误差、平均盲节比例从上表中我们可以看出,随着定位次数的增加平均绝对误差和平均相对误差一直是远小于1的,而平均盲节比例处于不稳定状态,因此我们选择做100次定位运算作为定位运算的代表值。
由于定位算法的原理导致了在已知节点通信半径外的未知节点间不能通信,所以会出现无法定位的盲节点,盲节点的出现还与网络的拓扑结构有关。
基于MATLAB平台的GPS仿真的开题报告一、研究背景和意义随着卫星导航系统技术和应用的不断发展,全球定位系统(GPS)已经成为了现代化社会中不可或缺的一部分。
GPS已广泛应用于空中、陆地、海洋等各个领域,成为了现代化社会中最为重要的技术之一。
因此,GPS仿真技术的研究具有重要的实际意义。
GPS仿真技术可以帮助人们更好地理解GPS系统的工作原理和实际应用中可能遇到的问题,并有助于提高GPS系统的性能和可靠性。
基于MATLAB平台的GPS仿真具有良好的可视化效果和高效的计算能力,在相关领域得到了广泛应用。
二、研究目的和内容本次研究旨在基于MATLAB平台开发一款GPS仿真软件,具体研究内容包括:1. GPS信号发射和接收原理的研究2. GPS信号的建模和仿真技术3. GPS信号接收机算法的研究4. GPS误差源模型的建立及相关校准算法的研究5. GPS仿真算法的优化和性能测试三、研究方法和技术路线本次研究将采用以下研究方法和技术:1. 文献研究法:对GPS信号发射和接收原理、信号建模和仿真技术、接收机算法、误差源模型和校准算法等相关文献进行综合研究和分析。
2. 算法设计法:设计基于MATLAB平台的GPS仿真算法,包括GPS 信号的建模和仿真技术、接收机算法和误差源模型及相关校准算法等。
3. 编程实现法:基于MATLAB平台开发GPS仿真软件,将算法实现为软件的各个功能模块,完成GPS信号发射、接收与处理,以及GPS误差源的建立和校准等功能。
4. 性能测试法:通过对GPS仿真软件的性能测试评估,评估软件的精度、效率、稳定性和可靠性等指标。
四、预期研究结果和意义预期本次研究将获得以下结果:1. 基于MATLAB平台的GPS仿真软件,实现了GPS信号发射和接收模拟、信号处理和误差源模型建立和校准等主要功能。
2. 对GPS系统的信号发射和接收原理、信号建模和仿真技术、接收机算法和误差源模型及相关校准算法等进行研究和分析,进一步提高了人们对GPS系统的认识和理解。
基于ZigBee 煤矿井下人员定位算法的研究摘要:针对我国煤炭行业生产安全管理现状,进行人员的精确定位,是解决煤矿安全问题的方法之一。
根据目标跟踪对定位算法的要求,对zigbee 无线传感器网络节点定位算法进行设计,采用基于rssi的补偿定位算法进行定位,该定位算法是一种用于煤矿井下人员跟踪的比较准确的定位解决方法之一。
关键词:rssi;人员定位;算法;zigbee;矿井中图分类号:td76 文献标识码:a 文章编号:1007-9599 (2012)19-0000-021 引言在我国煤炭安全事故煤矿事故频繁发生的原因是多方面的,但其中一个主要的原因是我国煤矿井下的安全技术总体水平偏低。
特别是在一些突发事故中无法确定煤矿井下人员的准确位置不能及时的制定有效的营救方案,导致煤矿井下人员伤亡数不断攀升。
所以,煤矿井下人员位置信息对煤矿安全监测非常重要,得不到井下作业人员的具体位置就会使监测活动受到很大的制约。
如何采用一种比较好的定位算法对煤矿安全监测是非常重要[3],基于rssi的加权质心定位算法进行目标定位,并测算下一个位置,让相邻的信标节点参与跟踪,找到事故发生的确切位置对无线传感器网络的有效使用起着关键作用。
2 无线定位机制在无线定位中,有基于测距和非测距两种方式。
前者需要测量相邻节点间的绝对距离或方位,并利用节点间的实际距离来计算未知节点的位置;后者无需测量节点的绝对距离或方位,而是利用节点间的估计距离计算节点位置。
基于测距的算法主要包含以下几种:三边测量、三角测量、极大似然估计等。
比较常用的无线定位技术有以下三种方法:(1)三边测量法。
三边测量法是根据n 个已知坐标的节点到未知节的距离来确定节点坐标。
(在平面空间里,如果能确定一个节点与三个以上信标节点的距离,就可以确定该节点的坐标。
在三维空间里,需要找到至少四个以上的信标节点才能最终定位)。
(2)三角测量法。
选择一些控制点,相互连接成若干个三角形,构成各种网状图形。
3.4 TDOA算法仿真
我们取节点总数为100个,已知节点为20个,通信半径为60米,边界长宽均为100米,已知节点坐标和未知节点坐标均随机产生,定位结果如下:
绝对误差3.3225e-13米,相对误差 5.5376e-13%,均接近于0(盲节点的定位误差视为0),所有节点均可被定位且它们的定位误差几乎为0。
因为将盲节点的定位误差视为0,则此TDOA定位算法的误差来源于计算过程中的小数位数的取舍,这样的误差是十分小的与接近于0的运算结果相符。
注:≈0表示接近于0(远小于1)。
绝对误差:定位出的未知节点的坐标与实际坐标相差的距离值
平均绝对误差:N次运算绝对误差的均值
相对误差:绝对误差与节点通信半径的比
平均绝对误差:N次运算相对误差的均值
平均盲节点比例:盲节点总数占总未知节点数的比例
将不能被定位的节点的估计位置全置为(0,0)
图XX.基于TDOA算法的定位仿真结果
图XX.基于TDOA算法的定位仿真定位出来的每个未知节点的对误差同样的因为已知节点和未知节点坐标均为随机产生,所以定位结果的误差也具有随机性,因此保持上述条件不变做多次运算求定位误差的平均值则可以表示在上
1次10次20次40次50次100
次200
次
300
次
500
次
800
次
平均
绝对
误差
(米)
≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0
平均
相对
误差
(%)
≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0
平均盲节比例(%)0 0 0.062
50
0.031
25
0.050
00
0.037
50
0.068
75
0.087
50
0.077
50
0.130
00
表XX.多次运算后的平均绝对误差、平均相对误差、平均盲节比例
从上表中我们可以看出,随着定位次数的增加平均绝对误差和平均相对误差一直是远小于1的,而平均盲节比例处于不稳定状态,因此我们选择做100次定位运算作为定位运算的代表值。
由于定位算法的原理导致了在已知节点通信半径外的未知节点间不能通信,所以会出现无法定位的盲节点,盲节点的出现还与网络的拓扑结构有关。
下面我们来计算不同通信半径100次定位的平均相对误差和平均绝对误差
表XX.不同通信半径100次定位的平均相对误差和平均绝对误差以及平均盲
节点比例
由上表仿真数据我们可以看到,在已知节点比例、节点总数和定位范围一定时随着节点通信半径的增大平均盲节点的比例逐渐下降(平均绝对误差和平均相对误差一直都远小于1),当通信半径达到一个临界值时(本次仿真此临界值为70米,临界值与已知节点比例、节点总数和定位范围等因素有关)可以消除盲节点。
下面我们研究在通信半径一定(60米)总节点数一定(100个)时不同已知节点比例的情况(已知节点比例不同时100次定位的平均相对误差和绝对误差),因为已知平均绝对误差与平均相对误差不受上述因素影响,因此只研究平均盲节
表XX.在通信半径一定、总节点数一定时不同已知节点比例的情况下平均盲节点比例
由上述表分析可知,TDOA定位算法的精度较高,但会存在盲节点,为了消除盲节点就要用增加已知节点比例、优化网络拓扑结构、增大节点通信距离等多种方法,这增加了组网的难度和组网的费用,而且在复杂环境下TDOA定位的使用会受到很大影响。
在这里提出两种改进算法:1、多次定位(本论文只研究二次定位):首先,我们对能够定位的未知节点进行定位并记录不能定位的节点,然后我们将前一次定位得到的未知节点作为已知节点,与开始时的已知节点一起为剩下的未知节点的定位提供服务,这样在下一次定位时未知节点的比例就降低了,已知节点的覆盖范围也会增大,因此有可能把此前无法定位的未知节点定位出来。
上述步骤可以重复多次,以降低无法定位的未知节点数。
2、人工布置已知节点位置:通过人工对已知节点进行均匀化(因为仿真时未知节点是随机分布的,因此对已知节点进行均匀布置)或者根据实际定位需求对某些区域进行优化,这样可以降低定
位误差。
多次定位(本文研究的是二次定位)仿真:定位范围为100米×100米,总节点数为100个,已知节点数为40个,通信半径为20米,定位次数为2次。
图XX.一次定位结果
图XX.二次定位结果注:指向原点的为不能定位的未知节点。
图XX.二次定位未知节点误差
仿真结果如下:1、一次定位平均绝对误差≈0,一次定位平均相对误差≈0,一次定位出的未知节点数为52个,为定位出的节点数为8个。
2、二次定位平均绝对误差为3.0821米,二次定位平均相对误差15.41%,二次定位出的未知节点数为4个,为定位出的节点数为4个。
由仿真结果可以确定,多次定位算法可以降低无线传感器定位网络中的盲节点数。
3.5 DV-hop算法仿真
仿真算法实现:系统随机产生100个横纵坐标值均在100内的点存于矩阵中,前20个点作为已知节点后80个点作为未知节点,将已知节点和未知节点显示到
图Figure 1中。
计算任意两两节点间的距离存于矩阵中,计算已知节点间的最小跳数存于矩阵中,利用已知的已知节点间的距离和最小跳数信息计算各已知节点的校正值,未知节点从最近的已知节点获得校正值并计算得到三个距离此未知节点最近的已知节点的估计距离,而与距离相对应的已知节点的坐标值是已知的,使用最小二乘法求解未知节点的估计坐标,并将此估计位置显示在实际位置图Figure 1中(对无法被定位的未知节点数目进行计数,并将其估计位置设置为(0,0))。
计算相应估计位置与实际位置的相对误差,显示在图Figure 2中。
计算平均绝对误差以及平均相对误差。
我们取节点总数为100个,已知节点为20个,通信半径为60米,定位边界长宽均为100米,已知节点坐标和未知节点坐标均随机产生,定位结果如下:
此时的定位绝对误差为16.1876米,相对误差为26.98%
图XX.DV-Hop定位算法仿真结果
图XX.DV-Hop定位算法定位出的每个未知节点坐标误差
因为已知节点和未知节点坐标均为随机产生,所以定位结果的误差也具有随机性,因此保持上述条件不变做多次运算求定位误差的平均值则可以表示在上述条件下定位的一般误差水平。
1次10次20次40次50次100次200次
16.1876 15.1635 15.6828 16.0929 15.7145 15.5690 15.4994 平均绝
对误差
26.98% 25.27% 26.14% 26.82% 26.19% 25.95% 25.83% 平均相
对误差
表XX.做多次运算时的平均绝对误差与平均相对误差
由上表可以看出在运算多次后相对误差基本稳定在26%左右,取运算次数为100
次。
图XX.通信半径与绝对错误率及相对错误率的关系
上图为通信半径与绝对错误率(米)及相对错误率(%)的关系图(一次随机结果)。
15米20米25米30米35米40米45米50米55米
平均绝对误差(米)NaN NaN NaN 9.271
9
10.39
22
11.31
82
12.60
73
14.22
84
15.31
84
平均
相对
误差
(%)
NaN NaN NaN 30.91 29.69 28.30 28.02 28.46 27.85
60米65米70米75米80米85米90米95米100米
平均绝对误差(米)15.65
64
16.597
7
17.398
9
19.505
7
21.700
24.643
7
27.944
1
31.27
36
33.67
85
平均
相对
误差
26.09 25.53 24.86 26.01 27.13 28.99 31.05 32.92 33.68
表XX.不同通信半径100次定位的平均相对误差和平均绝对误差
注:NaN表示有未知节点在规定的范围内无法被定位,没有NaN的也不一定保证所有的未知节点都能被定位。
由上表可知在已知节点密度(比例)一定时,由于节点通信半径过小造成未知节点无法与3个以上的已知节点直接或间接得进行通信,因此会出现一些未知节点不能被定位的情况。
而随着通信半径的增大平均相对误差逐渐减小,但是当通信半径过大时平均相对误差又会升高,这是因为通信半径过大时以直线距离代替曲线距离所造成的误差影响变大。
下面我们研究在通信半径一定(60米)总节点数一定(100个)时不同已知节点比例的情况(已知节点比例不同时100次定位的平均相对误差和绝对误差)
表XX.通信半径一定、总节点数一定时不同已知节点比例的情况
下平均绝对误差和平均相对误差
由上表可知随着已知节点比例的增大误差总体趋势是不断减小,但是节点比例在大于40%以后误差减小不明显。
通过分析上面的仿真结果我们可以发现,基于DV-Hop的定位算法在通信半径过小、已知节点比例过小以及拓扑不均匀时都会出现定位误差较大甚至有些未知节点无法定位的情况。
在这里提出一种改进算法:人工布置已知节点位置:通过人工对已知节点进行均匀化(因为仿真时未知节点是随机分布的,因此对已知节点进行均匀布置)或者根据实际定位需求对某些区域进行优化,这样可以降低定位误差。
仿真结果:
表XX.通信半径一定、总节点数一定时不同已知节点比例的情况
下平均绝对误差和平均相对误差
上表数据与表XX比较可以看出,当已知节点比例较低时人工布置已知节点对降低误差有一定效果,但是随已知节点比例上升人工布置已知节点效果很差。