[0054] 以下将结合附图对本发明提供的技术方案作进一步说明,整个方法的具体实施流程图如图1所示。
[0055] 在50m×50m范围内随机生成N个锚节点,以及M个未知节点,锚节点向周围广播,未知节点在通信范围内多次接收数据包。
[0056] 步骤S1:多次获得锚节点与其通信范围内的同一未知节点的发射信号强度,并求出这些信号强度样本的95%置信区间,通过判断信号强度是否在区间内选出合适的信号强度,转化为测距距离,实现对测距距离进行优化;
[0057] 步骤S2:建立定位优化模型并使用改进的麻雀搜索算法将定位精度问题转化为约束类优化问题;
[0058] 其中,所述步骤S1进一步包括:
[0059] 步骤S11:初始化无线传感器网络结构,锚节点均匀分布,未知节点随机分布;
[0060] 步骤S12:锚节点以广播形式向周围未知节点传输数据包,包括发射强度RSSI值、锚节点标号、锚节点位置、节点类型;
[0061] 步骤S13:未知节点在收到同一锚节点发送来的数据包后,提取处该包中的RSSI值并优化,最后求出未知节点与锚节点的距离。
[0062] 图2所示为本发明提供的一种基于测距优化和改进麻雀搜索算法的WSN节点定位方法中上述步骤S13的详细流程图,其进一步包括以下步骤:
[0063] 步骤S131:当收到某ID锚节点发来的数据包到达一定阈值n(设置为10)后,对这前10个RSSI值求其均值 与方差σR,并求出其95%的置信区间
具体参见图3。
[0064] 步骤S132:然后接收第11次数据包并用如下公式优化RSSI信号强度:
[0065]
[0066] 步骤S133:将步骤S132中得到优化过后的RSSI值RNo_11,代入对数距离路径损耗模型:
[0067]
[0068] 其中,RSSI(d)表示距离为d的路径损耗,RSSI(d0)表示近距离d0(通常取1米),η为路径损耗指数,受周围环境影响较大,Xσ表示为标准差为σ的正态随机变量,这样就得到了未知节点与某ID锚节点的距离,同样地对所有通信范围内的N个锚节点都采用这种方法进行处理,得到N个测量距离d1,d2,…,dN,最后在未知节点记录所有通信范围内的锚节的坐标以及距离。
[0069] 所述步骤S2进一步包括:
[0070] 步骤S21:建立节点定位模型并构建目标函数,在无线传感器网络中,锚节点一直在向周围广播,如果未知节点探测到大于等于三个锚节点时启动定位;目标函数的构建具体如下:
[0071] 假设已知的锚节点坐标P1(x_id1,y_id1),P2(x_id2,y_id2),…,Pn(x_idn,y_idN),某未知节点的估计坐标为 锚节点与未知节点之间的估计距离为:
[0072]
[0073] 其中(xi,yi)是第i个锚节点的坐标。将估计距离Di,j与步骤S131得到的测量距离d1,d2,…,dN相减,即得到测量误差∈=|Di‑di|,根据测量误差,建立目标函数利用改进麻雀搜索算法寻得最优值,得到未知节点的位置。
[0074] 步骤S22:初始化麻雀搜索算法的参数,即种群的大小pop,最大迭代次数itermax,麻雀搜索范围lb,ub,安全阈值ST,其次,初始化麻雀的位置:
[0075] Xi,d=lb+rand(0,1)*(ub‑lb)
[0076] 其中每一个麻雀位置Xi,d都用d维向量表示,rand(0,1)表示0到1之间均匀分布的随机值。
[0077] 步骤S23:根据麻雀搜索算法的规则更新麻雀的位置,并判断麻雀个体是否超出区域,若超出区域,则利用相应维度的搜索范围lb,ub限制。
[0078] 步骤S24:计算位置更新后的目标函数值,同上一代的目标函数值比较,留下较好的目标函数值的位置,并求其反向解。
[0079] 步骤S25:判断是否达到迭代的最大次数,如未达到,则循环步骤S23和S24直至迭代结束。如果达到最大迭代次数,则停止循环,输出全局最优解,即未知节点的坐标。
[0080] 图4所示为本发明提供的一种基于测距优化和改进麻雀搜索算法的WSN节点定位方法中上述步骤S24的详细流程图,其进一步包括以下步骤:
[0081] 步骤S241:对新生成的麻雀种群进行排序,取前50%的麻雀作为种群中的精英个体X_elite,并通过这些精英个体确定新的动态边界[lbe,ube],更新公式为:
[0082]
[0083] 其中X_elitei,j表示第i个精英个体的第j维值。
[0084] 步骤S242:为了提高收敛速度和具备跳出局部最优的能力,引入反向学习,其数学模型为:
[0085]
[0086] 其中k是一种线性递增的长度因子,X和X*分别表示当前解和当前解得反向解:
[0087]
[0088] kmax,kmin为长度因子的最大值和最小值,iter表示当前迭代次数。
[0089] 步骤S243:求得广义反向解后,与原解进行贪婪选择,留下当前最优解,并与全局最优解进行比较,若比全局最优解好,则更新全局最优解,反之,则保持全局最优解不变。
[0090] 为了验证本发明的技术效果,将通过算法对比验证本发明的有效性:
[0091] 本方法由图5对比了不同RSSI测量次数对定位误差累积分布进行了对比图6对比了本发明与传统麻雀搜索算法的WSN节点定位结果。从图5可以看到,随着RSSI测量次数的增多,定位误差逐渐缩小,测量次数多的误差累计分布曲线总是在测量次数少的上面,可以看出经过多次测量,得到95%置信区间的RSSI测量值优化能有效抑制异常RSSI值对定位误差的影响;从图6中可以看出,经过改进的麻雀搜索算法在提高定位精度上都有着比常规麻雀搜索算法更好的效果。
[0092] 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0093] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。