基于ZigBee的定位算法MATLAB仿真及结果分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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次定位的平均相对误差和平均绝对误差
以及平均盲节点比例。
15米20米25米30米35米40米45米50米55米
≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0
平均
绝对
误差
(米)
平均
≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0
相对
误差
(%)
87.34 65.50 39.09 21.56 10.35 6.33 2.34 1.25 0.37 平均
盲节
比例
(%)
60米65米70米75米80米85米90米95米100米
≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0
平均
绝对
误差
(米)
≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0 ≈0
平均
相对
误差
(%)
平均
0.01 0.25 0 0 0 0 0 0 0
盲节
比例
(%)
表XX.不同通信半径100次定位的平均相对误差和平均绝对误差以及平均盲
节点比例
由上表仿真数据我们可以看到,在已知节点比例、节点总数和定位范围一定时随着节点通信半径的增大平均盲节点的比例逐渐下降(平均绝对误差和平均相对误差一直都远小于1),当通信半径达到一个临界值时(本次仿真此临界值为70米,临界值与已知节点比例、节点总数和定位范围等因素有关)可以消除盲节点。
下面我们研究在通信半径一定(60米)总节点数一定(100个)时不同已知节点比例的情况(已知节点比例不同时100次定位的平均相对误差和绝对误差),因为已知平均绝对误差与平均相对误差不受上述因素影响,因此只研究平均盲节点比例的变化。
10% 20% 30% 40% 50% 60% 70% 80% 90% 100
%
4.06 0.075 0 0 0 0 0 0 0 0 平均
盲节
点比
例
(%
)
表XX.在通信半径一定、总节点数一定时不同已知节点比例的情况下平均盲节点比例
由上述表分析可知,TDOA定位算法的精度较高,但会存在盲节点,为了消除盲节点就要用增加已知节点比例、优化网络拓扑结构、增大节点通信距离等多种方法,这增加了组网的难度和组网的费用,而且在复杂环境下TDOA定位的使用会受到很大影响。
在这里提出两种改进算法:1、多次定位(本论文只研究二次定位):首先,我们对能够定位的未知节点进行定位并记录不能定位的节点,然后我们将前一次定位得到的未知节点作为已知节点,与开始时的已知节点一起为剩下的未知节点的定位提供服务,这样在下一次定位时未知节点的比例就降低了,已知节点的覆盖范围也会增大,因此有可能把此前无法定位的未知节点定位出来。上述步骤可以重复多次,以降低无法定位的未知节点数。2、人工布置已知节点位置:通过人工对已知节点进行均匀化(因为仿真时未知节点是随机分布的,因此对已知节点进行均匀布置)或者根据实际定位需求对某些区域进行优化,这样可以降低定