APP下载

基于非对称往返测距的海洋无线传感网络节点定位算法

2020-10-16覃玉华刘浩然邓玉静王星淇尹荣荣

计量学报 2020年9期
关键词:声速测距海水

覃玉华,刘浩然,邓玉静,王星淇,刘 彬,尹荣荣

(1.燕山大学 信息科学与工程学院,河北 秦皇岛 066004;2.燕山大学 河北省特种光纤与光纤传感重点实验室,河北 秦皇岛 066004)

1 引 言

获取节点精确的位置是水下无线传感网络在环境监测、灾难预报等方面应用的前提,同时节点位置信息也是网络拓扑控制、覆盖控制以及路由决策的重要依据。

水下节点定位算法可分为非测距的定位算法与基于测距的定位算法[1,2]。非测距的定位算法是根据网络的连通性,节点间的路由跳数等信息估计节点位置,估计结果较为粗略,应用范围有限;基于测距的定位算法是根据测距技术测出节点间距离或是角度信息,运用定位策略完成定位工作。主要的测距技术分为4类:基于信号传输时间(TOA)[3]、基于信号到达时间差(TDOA)[4]、基于信号到达角度(AOA)[5]、基于接收信号强度(RSSI)[6]。实际应用中基于测距定位算法的定位精度更高,应用更为广泛。

节点时间同步是影响定位的一大问题,虽然研究者们提出了许多节点间时间同步机制[7,8],但对于大型水下无线传感网络节点时间同步,会增加计算复杂度与节点硬件要求,因此在定位中尽可能避免时间同步。研究还发现节点信号发射耗能是信号接收耗能的数10倍[9],减少信息的发送有利于降低能耗。文献[10]提出一种水下定位策略(under-water position scheme, UPS),UPS算法利用3个水面浮标节点与1个水下信标节点并采用TDOA方式进行测距,实现未知节点的定位。虽然UPS算法避免了时间同步,但是仅依靠4个参考节点进行定位,覆盖度不高且测距信息发送频繁。在UPS算法的基础上Cheng H等[11]提出一种大规模水下传感器网络定位方法(localization scheme for large scale, LSLS),此方法运用UPS算法定位,将一些已定位的节点作为新的参考节点进行迭代定位计算。LSLS算法改善了UPS算法中节点定位覆盖度不高的缺陷,使其适用于大规模的水下网络,但使用特定的海水声速模型计算声速,适用性不强,且需节点测量温度、盐度、压力等数据。在未知节点已知其深度信息的前提下,文献[12]提出一种基于投影理论的水下传感器节点定位方法,该方法利用节点的深度信息将参考节点投影至未知节点所在平面,将水声传感器网络三维定位问题转化为二维定位问题。文献[13]提出基于对称往返测距的定位算法(sea web navigation, SWN),该算法通过计算未知节点与邻居参考节点间距离,并以距离圆的交点作为未知节点的位置,但定位过程中多次交换定位信息,能耗高。文献[14]提出一种基于非对称往返异步定位(asymmetrical round trip based synchronization-free localization, ARTL)算法,该算法通过信标节点接收自己的数据包计算水下声波速度,完成测距、定位任务;该算法仅用1个参考节点的声波速度作为节点通信区域内所有节点间的通信速度,无法实现高精度的定位。文献[15]提出将加权最小二乘法以及抗差最小二乘法应用于节点定位,但均只限于陆地环境。

针对上述存在的问题,本文提出了一种新的基于非对称往返测距的海洋无线传感网络节点定位(localization method for marine wireless sensors networks based on asymmetric round-trip ranging, LMARR)算法,通过节点间非对称的发送与接收测距信息,利用节点接发信息的时间差计算平均海水声速,避免时间同步,完成节点间距离测定;利用得到的距离将各邻居参考节点均投影到未知节点所在平面,用最小二乘法进行定位计算,实现在低信息发送频率的情况下,提升节点定位的精度。

2 基于非对称往返测距的海洋无线传感网络节点定位算法

2.1 网络结构

通常海洋无线传感网络中包含两类节点:参考节点与普通节点,其中参考节点包括浮标节点与信标节点,在定位过程中参考节点位置已知[16]。假定有N个普通节点,M个参考节点部署在100 m×100 m×100 m的海域,网络结构如图1所示。浮标节点漂浮在水面,在水面通过GPS获取精确的节点位置。信标节点与浮标节点直接通信,使得信标节点获得位置估计。普通节点结构简单,分布广泛,只能与其通信范围内的信标节点以及普通节点通信,但难与浮标节点直接通信获取位置估计,所以将普通节点作为未知节点。本文主要是针对未知节点的定位进行研究,定位中参考节点与未知节点都含各自的ID信息,并可通过压力传感器获取深度信息。

图1 网络结构Fig.1 Network structure

海下节点通信以声波通信为主,海水声波速度受到温度、盐度、压力或深度等因素影响,声速变化范围在1 400~1 600 m/s之间,是一个随时间空间变化的曲线[17]。Liu J等[18]描述的海水声速曲线如图2所示,前20 m声速稳定,海水继续加深,声速持续变化。海水声速并不是一个稳定值,因此在定位过程中不可忽略海水声速变化的影响。

图2 海水声速变化曲线Fig.2 Curve of seawater sound velocity

2.2 非对称往返测距算法

依据图1的网络结构,对某一未知节点及其邻居参考节点进行分析,LMARR算法测距过程如图3所示。假设圆形的未知节点A在通信范围r内有s(s≥3)个正方形的参考节点x1,x2,…,xm,…,xs。

图3 LMARR算法测距过程Fig.3 LMARR algorithm distance measuring process

在未知节点A与s个参考节点的测距过程中,首先由xm在自身时钟Txm1时刻发起测距工作。测距信号传输到未知节点A的时刻为TA1,由此可得:

TA1=Txm1+dxmA/v

(1)

式中:dxmA为参考节点xm与未知节点A间距离;v为未知节点与邻居参考节点间的海水声速。

未知节点A于TA2时刻向其通信范围内的s个参考节点发送相应的测距信息,到达xm参考节点的时间为Txm3,到达其它参考节点的时间为Txi2,据此可得下列公式:

Txm3=TA2+dAxm/v(i≠m,i=[1,s])

(2)

Txi2=TA2+dxiA/v(i≠m,i=[1,s])

(3)

参考节点xm发送的测距信号被参考节点xi接收到的时刻为Txi1,参考节点xi在Txi3时刻向xm节点发送相应信息,被参考节点xm接收到的时刻为Txim2,由此可得出下列公式:

(4)

(5)

公式(4)与公式(5)相加,化简后得出以下公式:

(6)

由公式(6),可求解出测距发起参考节点与其它参考节点间的声波传输速度vi:

(7)

为了使节点不额外增加测量海水声速的装置,将未知节点A及其通信范围内的各参考节点间的声波传播速度的均值作为未知节点A发送与接收测距信息的声波速度v:

(8-1)

(8-2)

将公式(1)与公式(2)相加,化简后得到dAxm,将公式(8-2)代入公式(9)可计算得到未知节点A到定位发起参考节点xm间距离dAxm:

(9)

(10)

由公式(3)计算得未知节点A与其它邻居参考节点的距离:

dAxi=(Txi2-TA2)v

=(Txi2-Txi1+Txi1-TA2)v

(11)

将公式(2)代入公式(11)中得到:

(12)

将公式(4)代入公式(12)中得到:

(13)

将公式(7)代入公式(13)中得到:

(14)

把公式(8)计算得到的海水声速与由公式(10)的未知节点A与参考节点xm距离公式代入公式(14),得到未知节点与其它参考节点间距离公式:

(15)

由公式(9)与公式(14)可以看出:未知节点与邻居参考节点间距离不仅与节点测距信息接发的时间差有关,还与海水声速有直接的关系,海水声速的准确性影响着最终距离测定的效果。由公式(10)与公式(15)可以看出:通过LMARR算法进行节点间测距时,只需获取(Txi2-Txi1),(Txm3-Txm1),(Txim2-Txm1),(Txi3-Txi1),(TA2-TA1)等各节点测距信息发送与接收的时间差,并不需要节点间时间同步以及对海水声速的额外测定,而且计算公式复杂度低。从图3的LMARR算法的测距过程示意图中,很明显地看出LMARR算法相对于常规的对称往返测距算法,减少了s-1次测距信息的发送与接收。

2.3 LMARR定位算法

利用最小二乘法[19]对未知节点进行定位计算。为减少计算量及降低计算难度,在运用非对称往返测距算法测出各个未知节点与其通信范围内各参考节点的距离后,根据节点深度信息,将由上述方法得到的节点间的三维空间距离投影至未知节点所在平面,使其转变为二维的距离,再根据转换得到的平面距离信息完成定位计算。此处最小二乘法定位算法的原理可表述为:当已知n个参考节点位置信息(x1,y1),(x2,y2),…,(xn,yn)以及它们到待求的未知节点(x,y)的距离d1,d2,…,dn时,可列出非线性方程组:

(16)

为了简便运算以快速获取其解析解,需将公式(16)转化为线性方程,使用公式(16)中前n-1个方程分别减去第n个方程,则可得到线性方程组:

(17)

公式(17)可表示为

AX=B

(18)

式中:

XTATAX-BTAX-XTATB+BTB

(19)

于是,可令公式(19)求导等于零:

(20)

2ATAX-2ATB=0

(21)

由公式(21)可得未知节点的估计位置坐标:

X=(ATA)-1ATB

(22)

从公式(22)看出当测量得到未知节点与邻居参考节点的距离d1,d2,…,dn越准确时,求解出未知节点的坐标也越更精准,但是从公式(17)也不难看出未知节点的估计位置坐标的求解精度受限于公式(16)中的第n个方程的精度。

LMARR算法的步骤简要地描述如下:

Step 1:节点部署完成后,各节点向周围节点广播包含节点ID,跳数的数据包明确节点间的邻居关系。

Step 2:对未知节点及通信范围内的参考节点运用LMARR测距算法进行相应的测距工作时,首先由发起测距次数最少且ID序号小的参考节点发起测距工作,此参考节点在获取其它各节点的接受与发送数据包的时间差以及深度信息后,通过公式(10)与公式(15)计算得出未知节点与其邻居参考节点间的距离。

Step 3:由step 2中计算得到的距离,依据节点间的深度差,运用勾股定理,将三维距离信息投影到未知节点所在平面转化成为二维的距离信息。

Step 4:参考节点依据上述步骤得到节点间距离信息,参考节点的位置信息运用最小二乘法,通过公式(21)完成对未知节点的定位计算,最后依据节点的深度信息输出未知节点的三维坐标。

Step 5:对剩余的未知节点逐个重复上述step 2至step 4,直至完成所有未知节点的定位。

该算法的测距方式比传统的对称往返测距方式减少了数据的发送次数,降低了能量消耗。运用邻居参考节点间的平均声波速度作为未知节点的声波速度,减小海水声速变化导致的误差。由剩余能量较多且计算能力较强的参考节点发起测距工作,完成定位计算,能够更好地均衡节点的能量使用,减少未知节点的能量消耗。

3 实验仿真

本文在Windows7系统下使用MATLAB R2016a软件进行仿真实验,实验参数如表1所示。

根据图2所述海下声波传输速度与深度数据,在不同的深度区域、参考节点数量、节点通信半径的情况下对ARTL算法、SWN算法与本文提出的LMARR算法进行相应的对比实验,验证算法的可行性与有效性。

表1 仿真实验参数Tab.1 Simulation experiment parameters

3.1 不同海水声速区域对LMARR算法的影响

根据图2中海水声速变化曲线分别在0~100 m和20~120 m的深度区域验证本文提出的算法性能。未知节点的测距误差作为算法性能评价指标之一,未知节点i的测距误差为

(23)

图4为声速对测距的影响仿真结果。

图4 声速对测距的影响Fig.4 The effect of sound velocity on ranging

测距误差的仿真结果见图4(a)。

未知节点的定位误差也作为算法性能评价指标之一,根据文献[20]中对定位误差的定义,未知节点i的定位误差为

(24)

算法定位误差的仿真结果见图4(b)。

由图4可以看出:100个未知节点随机部署在不同深度的区域,本文提出的LMARR算法节点分布在20~120 m深度区域的测距效果和定位效果均优于分布于0~100 m深度区域。图4(a)与图4(b)两图相对比,节点定位误差的波动性相对于节点测距误差的波动性要大以及个别未知节点的定位误差相对较大,这是由于最小二乘定位算法本身存在的局限性所导致。若公式(16)中的第n个方程存在较大测距误差时,误差积累,最终的定位结果会受到影响,就可能会出现个别未知节点定位误差相对较大的情况。而该算法在20~120 m深度区域的测距与定位误差的波动性更小,这表明在声速持续变化的区域的测距与定位效果更好,稳定性更强。

节点在20~120 m深度区域的分布情况以及运用算法定位后的效果如图5所示。

由图5可以看出:未知节点的估算位置与实际位置偏差很小,算法的定位效果良好。

图5 定位效果图Fig.5 Localization result

3.2 算法的测距和定位性能比较

为了更好地检验本文提出的算法性能,对3种定位算法在不同水下区域的测距性能进行了比较,见图6。

图6 3种算法测距性能比较Fig.6 Three algorithms ranging performance comparison

从图6中可看出在0~100 m的深度区域中,LMARR算法的平均测距误差为0.180 9 m,ARTL算法的平均测距误差为0.189 9 m,SWN算法的平均测距误差为0.185 7 m,三者相差不大,LMARR算法测距优势不明显。

在20~120 m深度区域中, 大多数未知节点的测距误差上,SWN算法测距误差略微低于ARTL算法, 而LMARR算法的测距误差最小,仅为0.099 8 m,相对于ARTL算法测距精度提升16%,相对于SWN算法提升10%。在没有持续稳定的海水声速的20~120 m深度区域,LMARR算法与ARTL算法比在一定深度具有持续稳定的海水声速的0~100 m区域的测距精度要高。

为进一步分析不同算法在不同声速区域的定位效果,根据图6(a)与图6(c)的距离信息,完成对未知节点的定位计算。在0~100 m与20~120 m深度的海水声速区域进行仿真实验的定位误差变化情况见图7。

图7 3种算法定位性能比较Fig.7 Three algotithms localization performance comparison

由图7可知: 在0~100 m深度区域中LMARR算法的平均定位误差相对于SWN算法降低11%,相对于ARTL算法降低了20%;在20~120 m区域中,LMARR和SWN算法的定位误差相对平稳,且LMARR算法的平均定位误差最小,为0.16 m,平均定位误差相对于SWN算法降低了20%,比ARTL算法降低了33%。

仿真实验结果表明:本文提出的LMARR算法在定位精度上有很大的提升且具有良好的稳定性。从图7中可看出3种算法在没有持续稳定的海水声速的20~120 m的区域的定位误差比在一定深度具有持续稳定的海水声速的0~100 m区域的要小,但是在这两个不同区域,LMARR算法的定位误差均比其它两种算法小。

3.3 参考节点数量对平均定位误差的影响

未知节点数量不变时,参考节点数量的变化对平均定位误差有很大影响。

在20~120 m的海深区域仿真实验算法平均定位误差与参考节点的数量数量关系曲线,如图8所示。

图8 参考节点与平均定位误差的关系Fig.8 The relation between reference node and mean localization error

从图8看出:随着参考节点数量的增加,3种算法的平均定位误差均有下降;参考节点数量由40个增加至65个时,ARTL算法平均定位误差由23.3%降至18.7%,SWM算法由20.1%降至16.6%,LMARR算法由17.3%降至14.2%,虽然ARTL算法与SWM算法下降幅度都大于LMARR算法,但是在具有相同的参考节点数量时,LMARR算法的定位误差始终是最小的。可见本文算法更能有效地利用参考节点的信息,且易于扩展。图中LMARR算法的平均定位误差下降曲线最为平滑,显示此算法具有更好的稳定性。

4 结 论

本文针对海洋传感器节点定位的精确度低的问题,考虑海水声速多变以及节点信息接发次数,提出了LMARR定位算法。该算法不需要节点额外测定声速,并且利用声速均值有效减小了海水声速多变的影响,通过节点发送与接收信息的时间差即可完成测距工作,相对于对称型往返测距定位算法减少了定位信息接发的频率。

仿真实验表明:LMARR算法在距离估计和节点定位精度均优于SWM算法和ARTL算法,特别是在20~120 m海水声速持续变化的区域,定位精度比SWN算法提高了20%,比ARTL算法提高了33%。在已有网络中添加新的参考节点,不需改动算法仍可完成较高精度的定位工作,展现了该算法良好的稳定性以及可拓展性。

猜你喜欢

声速测距海水
类星体的精准测距
基于CECS 02标准中声速修正系数的研究
喝多少杯海水能把人“渴死”?
海水为什么不能喝?
浅谈超声波测距
海水
声速是如何测定的
跨声速风洞全模颤振试验技术
机翼跨声速抖振研究进展
基于PSOC超声测距系统设计