您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 基于ZigBee的定位算法MATLAB仿真及结果分析
3.4TDOA算法仿真我们取节点总数为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平均盲节比例(%)000.062500.031250.050000.037500.068750.087500.077500.13000表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.3465.5039.0921.5610.356.332.341.250.3760米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.010.250000000表XX.不同通信半径100次定位的平均相对误差和平均绝对误差以及平均盲节点比例由上表仿真数据我们可以看到,在已知节点比例、节点总数和定位范围一定时随着节点通信半径的增大平均盲节点的比例逐渐下降(平均绝对误差和平均相对误差一直都远小于1),当通信半径达到一个临界值时(本次仿真此临界值为70米,临界值与已知节点比例、节点总数和定位范围等因素有关)可以消除盲节点。下面我们研究在通信半径一定(60米)总节点数一定(100个)时不同已知节点比例的情况(已知节点比例不同时100次定位的平均相对误差和绝对误差),因为已知平均绝对误差与平均相对误差不受上述因素影响,因此只研究平均盲节点比例的变化。10%20%30%40%50%60%70%80%90%100%平均盲节点比例(%)4.060.07500000000表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.5DV-hop算法仿真仿真算法实现:系统随机产生100个横纵坐标值均在100内的点存于矩阵中,前20个点作为已知节点后80个点作为未知节点,将已知节点和未知节点显示到图Figure1中。计算任意两两节点间的距离存于矩阵中,计算已知节点间的最小跳数存于矩阵中,利用已知的已知节点间的距离和最小跳数信息计算各已知节点的校正值,未知节点从最近的已知节点获得校正值并计算得到三个距离此未知节点最近的已知节点的估计距离,而与距离相对应的已知节点的坐标值是已知的,使用最小二乘法求解未知节点的估计坐标,并将此估计位置显示在实际位置图Figure1中(对无法被定位的未知节点数目进行计数,并将其估计位置设置为(0,0))。计算相应估计位置与实际位置的相对误差,显示在图Figure2中。计算平均绝对误差以及平均相对误差。我们取节点总数为100个,已知节点为20个,通信半径为60米,定位边界长宽均为100米,已知节点坐标和未知节点坐标均随机产生,定位结果如下:此时的定位绝对误差为16.1876米,相对误差为26.98%图XX.DV-Hop定位算法仿真结果图XX.DV-Hop定位算法定位出的每个未知节点坐标误差因为已知节点和未知节点坐标均为随机产生,所以定位结果的误差也具有随机性,因此保持上述条件不变做多次运算求定位误差的平均值则可以表示在上述条件下定位的一般误差水平。1次10次20次40次50次100次200次平均绝对误差16.187615.163515.682816.092915.714515.569015.4994平均相对误差26.98%25.27%26.14%26.82%26.19%25.95%25.83%表XX.做多次运算时的平均绝对误差与平均相对误差由上表可以看出在运算多次后相对误差基本稳定在26%左右,取运算次数为100次。图XX.通信半径与绝对错误率及相对错误率的关系上图为通信半径与绝对错误率(米)及相对错误率(%)的关系图(一次随机结果)。下面我们来计算不同通信半径100次定位的平均相对误差和绝对误差15米20米25米30米35米40米45米50米55米平均绝对误差(米)NaNNaNNaN9.271910.392211.318212.607314.228415.3184平均相对误差(%)NaNNaNNaN30.9129.6928.3028.0228.4627.8560米65米70米75米80米85米90米95米100米平均绝对误差(米)15.656416.597717.398919.505721.700024.643727.944131.273633.6785平均相对误差26.0925.5324.8626.0127.1328.9931.0532.9233.68(%)表XX.不同通信半径100次定位的平均相对误差和平均绝对误差注:NaN表示有未知节点在规定的范围内无法被定位,没有NaN的也不一定保证所有的未知节点都能被定位。由上表可知在已知节点密度(比例)一定时,由于节点通信半径过小造成未知节点无法与3个以上的已知节点直接或间接得进行通信,因此会出现一些未知节点不能被定位的情况。而随着通信半径的增大平均相对误差逐渐减小,但是当通信半径过大时平均相对误差又会升高,这是因为通信半径过大时以直线距离代替曲线距离所造成的误差影响变大。下面我们研究在通信半径一定(60米)总节点数一定(100个)时不同已知节点比例的情况(已知节点比例不同时100次定位的平均相对误差和绝对误差)102030405060708090100平均绝对误差(米)18.038715.605115.184714.812614.884814.813814.873414.384814.33190平均相对误差(%)30.0626.0125.3124.6924.8124.6924.7923.9723.890表XX.通信半径一定、总节点数一定时不同已知节点比例的情况下平均绝对误差和平均相对误差由上表可知随着已知节点比例的增大误差总体趋势是不断减小,但是节点比例在大于40%以后误差减小不明显。通过分析上面的仿真结果我们可以发现,基于DV-Hop的定位算法在通信半径过小、已知节点比例过小以及拓扑不均匀时都会出现定位误差较大甚至有些未知节点无法定位的情况。在这里提出一种改进算法:人工布置已知节点位置:通过人工对已知节点进行均匀化(因为仿真时未知节点是随机分布的,因此对已知节点进行均匀布置)或者根据实际定位需求对某些区域进行优化,这样可以降低定位误差。仿真结果:1020304050平均绝对误差(米)14.652015.037714.724914.631415.3159平均相对误差(%)24.4225.0624.5424.3925.53表XX.通信半径一定、总节点数一定时不同已知节点比例的情况下平均绝对误差和平均相对误差上表数据与表XX比较可以看出,当已知节点比例较低时人工布置已知节点对降低误差有一定效果,但是随已知节点比例上升人工布置已知节点效果很差。
本文标题:基于ZigBee的定位算法MATLAB仿真及结果分析
链接地址:https://www.777doc.com/doc-2535394 .html