APP下载

水下声学传感器网络节点定位算法及自组织过程研究*

2011-05-06夏清涛

传感技术学报 2011年3期
关键词:水声冲突距离

梁 玥,刘 忠,夏清涛

(海军工程大学电子工程学院,武汉430033)

随着网络信息技术的快速发展、海洋资源开发步伐的加快以及海洋重要战略地位的日益彰显,建立水下声学传感器网络(UASNs:Underwater Acoustic Sensor Networks)已成为各国研究的重点问题之一。可以通过将微型通信节点布置在海底,或通过飞机、舰艇和潜艇随机布撒在一定深度的海区,自组织的形成水下传感器网络,以实现海洋环境监测、资源开发、军事作战等众多的功能。

节点定位问题是UASNs的一个重要研究内容,可以分为基于距离的定位算法以及基于估计距离的定位算法[1-3]。利用节点位置信息,可以明确每个节点的身份,根据路由选择算法建立路由表,明确节点之间所需的发射功率以及完成目标发现和跟踪的功能[4]。使用GPS定位方法是一种获得节点位置信息的简单方法,但是由于节点数目较多,为每个节点安装GPS定位系统将导致成本的增加,另外,由于GPS系统在有遮挡物的条件下无法完成定位,在水下采用该方法是不合适的,因此在实际水下环境中,明确自身位置的节点数量较少。在以往的研究中,文献[5]指出水下节点定位问题是水下传感器网络设计面临的诸多难题之一;文献[6]综述了哪些现有的WSNs中的节点定位算法可以应用于水下环境,但并没有分析在水下环境中具体算法的性能;文献[7]对水下环境节点定位和自组织过程进行了深入的研究,提出了一种用于网络自组织的集中式数据传播算法;文献[8]针对水下环境通信冲突严重的问题,提出了基于邻居节点唤醒机制的MAC协议。

本文在上述工作的基础上,针对水下环境中锚节点稀疏的现象,给出了分布式的节点定位算法以及配合该定位算法的分布式并发数据传播算法。

1 分布式节点定位算法

1.1 测距公式

由于基于距离信息的定位算法与基于估计距离信息的定位算法相比精度更高[9],因此可以采用4种测距方法:AOA、RSSI、TDOA和TOA。由于水下环境的特点,通常采用声音信号作为主要的传播手段,因此我们采用基于TOA的方法测量节点之间的相对距离,测距公式如式(1)~式(3)所示。

式(1)中,D表示节点之间的距离,Tproc表示声信号在水声信道中的传播时延,由式(3)计算;vs表示声波在水中的传播速度,由式(2)计算;式(2)中,P表示水温,s表示盐度,h表示深度;式(3)中,Tsig表示接收节点完成数据接收的时刻Tc与数据包中保存的发送时戳信息Tp的差值,由于水声信道传输速率比较低,数据包传播延迟Ttran在计算Tproc不能忽略,Lp表示数据包的长度,Rt表示数据传输速率。

由于TOA方法利用了时间信息,因此各个节点之间要进行时间同步,时间同步的精度影响测距精度,但是考虑到水声信号传播速度比起电磁波来说要慢得多,并且水声通信网各节点的间距较大,从整体把握拓扑结构的目的出发,系统对时间同步精度的要求不大,当前电子精振的精度完全可以胜任,因此在水声通信网中利用算法简单的TOA方法完成测距是方便可行的。

1.2 TERRAIN定位算法

根据前面分析,在水下环境中不能为每个节点安装GPS定位系统,因此只有少量的节点可以获得自身的地理位置信息,这类节点通常称为锚节点,锚节点可由已知位置信息的舰艇、潜艇或具有特殊功能的节点担任。在锚节点较少的情况下,如不采取措施就进行定位,会导致可定位的节点比例较低。

TERRAIN算法是适用于锚节点较少情况下的定位算法,现以一个锚节点N1为例,其定位算法的主要步骤如下:

步骤1建立坐标系 如图 1所示,N1为原点,其坐标为(0,0),第一个与N1通信的节点N2的连线作为X轴,其坐标为(DN1N2,0);Y轴定义为以沿X轴逆时针旋转90°所得的方向线;

步骤2确定参考节点坐标 在N1和N2的邻接表中,选择一个同时与N1和N2进行通信,并且与其距离之和最大的节点作为 N3,其位置坐标如式(4)所示;

图1 局部坐标系

步骤3确定其它节点的相对坐标 以上述三个参考节点的坐标为基础,利用三边测量法计算其它节点的相对坐标,进而获得与该锚节点的距离。

实际上,上述步骤是在所有锚节点同时进行的,节点可以获得与多个锚节点的距离值。设节点的坐标为(x,y),网络中存在k个锚节点,坐标为(xi,yi)i=1,2,…,k,节点与锚节点的距离为 DNi,i=1,2,…,k,当一个节点获得多个与锚节点的距离值时,可以利用最小二乘法如式(5)~式(7)所示,计算出节点的地理位置为X=(ATA)-1ATB。

2 自组织数据传播算法

为实现节点之间的定位,必须在网络自组织形成过程中,完成节点邻接信息表的建立以及各节点信息的汇集工作,因此,节点之间需要完成大量的通信来交互信息。但是,此时网络处于无序状态,节点间的通信冲突将对自组织形成所需的时间和效果产生重大影响。在以电磁波形式通信的无限传感器网络中,由于电磁波传播速度快,且数据传输率高,通信冲突带来的影响不大,可以采用广播和竞争重发机制实现节点信息的传递与收集,这也是当前网络研究中普遍采用的方法。但是在水声环境中,由于水声通信传输率低(信道带宽有限)、数据包尺寸大(包含大量对恶劣信道修正的训练序列)等不利因素,大大增加了通信冲突发生的概率,同时声信号传播速度慢的特点也增大了数据重传的代价,这些都导致了传统的竞争和重发机制在水声通信网自组织形成过程中的低效率。对于拓扑结构较简单的水声通信网,由于大多数节点只能与其它某一个节点通信(链式结构),广播和竞争重发机制所带来的通信冲突不严重,可以较好的运行;但是对于稳健性较高的复杂拓扑结构网络来说,严重的通信冲突将大大影响广播的顺利进行,甚至还会出现由于信息收集不完全,导致无法实现网络自组织形成的情况。

鉴于目前对水声通信网络自组织过程研究较少的情况,本文提出了一种分布式的数据传播算法,以配合定位算法的完成;由于分布式算法在执行过程中会在某一节点处产生接收冲突问题,因此本文也对解决通信冲突的相关问题进行了研究。

2.1 基本算法

现设网络中存在M个锚节点和N个普通节点,锚节点与普通节点单独编号;初始时刻所有节点都处于W_PING状态。每一个节点要建立3个表:

对于判别网络D,原来是接收图像,输出打分D(),而这里不仅接收图像,还需接收图像和文本描述特征φ(t),因为除了G生成的图像之外,还要保证G生成的图像不仅与输入的图像相匹配,与文本描述也要匹配。最后输出打分 G(,x,φ(t))。

(1)邻接信息表Mi包括相邻节点的ID号、与相邻节点的距离;

(2)本地数据表Li节点的局部坐标、全局坐标以及锚节点坐标;

(3)节点状态表Si由M个元素组成的集合表示;当节点在第i个锚节点为原点的局部坐标系下计算出局部坐标后,集合中相应位的元素置为1,否则置为0。节点状态转换图如图2所示。

图2 分布式数据传播算法节点状态机

步骤1确定参考节点1 初始时刻将M个锚节点分别作为参考节点1,使其进入PING状态,N个普通节点皆处于W_PING状态;参考节点1向其它(M+N-1)个节点发送PING_RTS帧,包括该帧建立的时间和参考节点1的坐标;利用在规定时间内是否收到相应节点的反馈数据来判断是否连通。当邻接信息表未建立时,如果一个节点收到了参考节点1的PING_RTS帧,则可计算与参考节点1之间的距离,更新自己的邻接信息表,记录参考节点1的坐标;并向其反馈PING_CTS帧,包括建立PING_CTS帧的时间。如果参考节点1在规定时间内没有收到其它节点反馈的PING_CTS帧,则认为不能与该节点连通。当邻接关系建立后,参考节点1根据邻接关系表,选定与之距离最大的一个节点作为X轴上的参考节点2,并向其发送数据帧SET,数据帧中包含被选定的信息以及邻接关系表;而后进入COMPUTE状态,设置自己在该坐标系下的坐标;完成上述操作后,转入END状态。

步骤2确定参考节点2 参考节点2由W_PING状态进入PING状态,向其它(M+N-1)个节点发送PING_RTS帧,根据在规定时间内是否接受到其它节点的反馈PING_CTS来更新邻接信息表;确定自身的局部坐标,更新本地数据表,同时将状态表中的相应位置为1;比较自身的邻接信息表和参考节点1的邻接信息表,从中选出到参考节点1和参考节点2距离之和最大的点作为参考节点3,并向其发送包含选定信息的数据帧SET;而后进入COMPUTE状态,设置自身在该坐标系下的坐标,完成上述操作后,进入END状态。

步骤4节点计算自身坐标 当节点接收到三个局部坐标已知的节点的数据帧时,该节点进入COMPUTE状态;根据三边测量法计算出自身坐标,并将状态表中的相应位置置为1;同时向其它节点发送PING_RTS帧,根据规定时间内是否收到PING_CTS帧,更新邻接信息表;完成上述操作后,进入END状态。当网络中的所有节点计算出局部坐标或大于最大计算时间时,算法结束。数据传播过程的序列图如图3所示。

图3 数据传播算法的序列图

2.2 冲突解决策略

在基于上述算法的数据传播过程中,会存在一定的数据冲突,特别是在当多个节点向同一个节点发送信息时,会在接收节点处产生接收-接收冲突问题[11-12]。在这种情况下,可以通过在每一个节点传输持续时间的两端增加一定的保护时间,如果发送节点的唤醒时刻与本节点的传输起始点或结束点之间的绝对值小于保护时间时,发送节点就需要重新选择发送时间,以避免接受冲突的发生。冲突的避免过程如图4所示,其中S1、S2为发送节点,R为接收节点,节点S2重新选择了发送时间,避免了冲突的产生。

图4 冲突解决策略

3 仿真试验

设节点均匀分布在15 000 m×15 000 m的区域中,包含200个普通节点,锚节点的比例为10%,节点的通信半径采用实物节点的真实通信半径3 km,设节点位置误差服从均值为0、均方差为0.01 m的高斯分布,节点之间的测量距离服从均值为0、均方差为0.0001 m的高斯分布,共进行50次仿真试验,定义节点的定位误差为:共进行J次网络仿真,节点的平均定位误差为其中N为节点的个数,试验结果如图5和图6所示;由于水下环境中锚节点个数较少,这里减少锚节点个数至5,同时减少通信半径至1 km,其它条件不变,仿真结果如图7所示;定位误差与锚节点数、通信半径以及节点个数的关系如图8所示。

图5 节点真实位置与估计位置

图6 节点定位算法定位误差曲线

图7 锚节点较少时的真实位置与估计位置

试验表明,在实际水下环境锚节点较少的情况下,上述两种方法配合可以完成节点定位过程,并且定位误差在3%以下。进一步提高锚节点比例、通信半径,节点定位误差曲线可以下降收敛到某一精度。当其它条件不变、进一步提高节点个数的条件下,节点定位误差曲线在初始阶段下降,然后有可能会出现上升的情况。这是由于节点个数增加,网络中节点密度增大,未定位节点可参考的已定位节点个数增加,可参考的信息量增加,但是同时,解算过程中A矩阵奇异的可能性也增加,因此会存在网络中节点个数越多,节点定位误差曲线反而上升的现象。

图8 定位误差与锚节点数量、通信半径以及节点数量的关系

4 结论

本文给出了一种分布式的节点定位算法和在节点自组织过程中用到的数据传输算法。仿真试验验证了上述算法配合完成节点定位的可行性。在未来的研究中,关于环境因素对算法的影响还需要进行进一步的深入研究。

[1]王福豹,史龙,任丰原.无线传感其网络中的自身定位系统和算法[J].软件学报,2005,16(5):857 -868.

[2]孙利民,李建,陈渝,等.无线传感器网络[M].2005.

[3]于宏毅,李欧,张效义.无线传感器网络理论、技术与实现[M].2009.

[4]张宏滔,陆佶人,童峰.一种用于水声通信网的多址介入协议[J].电路与系统学报,2004,9(3):46 -48.

[5]王静,陈建峰,张立杰,等.水下无线传感器网络[J].声学技术,2009,28(1):89 -95

[6]Chandrasekhar V,Winston K S,Yoo Sang Choo.Location in Underwater Sensor Networks Survey and Cha-Llenges[C]//WUWNet’2006,33-40

[7]罗亚松,刘忠,刘爱平.实现水声通信网纯距离节点定位自组织研究[J].武汉理工大学学报,2009,31(1):110 -115

[8]Nam Yeol Yun,Hui Jin Cho,Soo Hyun Park.Neighbor Nodes Aware MAC Sche-Duling Scheme in Underwater Acoustic Sensor Networks[J].International Conference on Computational Science and Engineering,2009:982 -987

[9]廖先林,耿娜,石凯.无线传感器网络节点自身定位算法[J].东北大学学报,2007,6(6):801 -804.

[10]刘克中.分布式无线传感器网络节点定位算法[D].武汉:华中科技大学,2007.

[11]Park M K,Rodoplu V.UWAN-MAC:An Energy-Efficient MAC Protocol for Underwater Acoustic Wireless Sensor Network[J].IEEE Journal of Oceanic En-gineering,2007,23(3):

[12]Affan Syed,John Heidemann.T-Lohi:A New Class of MAC Pro-Tocols for Underwater Acoustic Sensor Networks[C]//Por of IEEE Inform,231-235.

猜你喜欢

水声冲突距离
水声单载波扩频均衡技术研究
耶路撒冷爆发大规模冲突
“三宜”“三不宜”化解师生冲突
算距离
认知水声通信系统中OFDM技术的应用
新型多功能水声应答器电子系统设计
FRFT在水声信道时延频移联合估计中的应用
每次失败都会距离成功更近一步
爱的距离
“邻避冲突”的破解路径