一种基于测距和神经网络算法的水下定位方法

文档序号:10723154阅读:757来源:国知局
一种基于测距和神经网络算法的水下定位方法
【专利摘要】本发明公开了一种基于测距和神经网络算法的水下定位方法,包括如下步骤:在定位水域内布置K个锚节点和N个待定位节点,测量每个待定位节点与K个锚节点之间的距离;分离线训练和在线定位两个阶段进行定位;所述离线训练阶段包括以下步骤:测量第n个待定位节点与所有锚节点距离,形成距离向量,将距离向量输入三层神经网络:神经网络输入层、神经网络隐藏层和神经网络输出层;通过算法迭代更新预测模型参数,输出神经网络模型参数;所述在线定位阶段包括以下步骤:测量第n个待定位节点与所有锚节点当前距离,形成距离向量;将距离向量输入离线训练阶段得到的神经网络模型参数;输出待定位节点的位置坐标,减小测距误差。
【专利说明】
一种基于测距和神经网络算法的水下定位方法
技术领域
[0001] 本发明涉及水下无线传感器网络领域,特别是涉及一种基于测距和神经网络算法 的水下定位方法。
【背景技术】
[0002] 近些年来,世界各国对海洋问题的重视程度日益加深。随着海洋环境保护,资源开 发,海洋工程等项目的进行以及陆地无线传感器网络研究的迅速发展,水下无线传感器网 络(Underwater Wireless Sensor Network,UWSN)已经成为了新的研究热点。而其中的水 下无线传感器网络定位问题更是一个研究重点。
[0003] 现有UWSN定位算法根据定位过程中是否需要测量节点的距离通常可分为基于测 距的算法和无需测距的算法。基于测距的算法中,在节点定位之前需要获取未知节点想对 于相邻已知节点之间的距离,或者在已知坐标系中测量未知节点相对于已知节点的方位 角。典型的测距方法主要有以下四种:(1)基于信号到达时间(Time of Arrival,Τ0Α)测距, 要求节点之间保持精确的时间同步;(2)基于信号到达时间差(Time Difference of Arrival,TD0A)测距,一般受声波传播距离的限制;(3)基于信号到达角度(Angle of Arrival,Α0Α)测距,需要节点装配特殊硬件,且容易被外界因素干扰;(4)信号接收强度 (Received Signal Strength Indicator,RSSI)测距,功耗低、成本低,但测距误差较大。在 获取未知节点与锚节点之间的距离以后,计算未知节点位置坐标的一般方法有三边定位法 (Trilateration)和最小二乘法(Generalized Least Squares,GLS)。三边定位法通常要求 的锚节点数量只有三个,通过三圆相交于一点来计算未知节点的位置坐标。但是实际情况 下,由于测距误差的存在,三个圆通常不能交于一点,导致三边定位法在定位稳定性和定位 精度方面表现的都比较差,这种情况下就需要采用最小二乘法定位。最小二乘法其基本原 理是寻找一个使实测距离与理论估计距离之差最小的点作为未知节点的坐标。不过,采用 最小二乘法定位的时候,锚节点个数往往大于三个。
[0004] 尽管最小二乘法在定位精度上比三边定位法效果提升了很多,但由于水下信道包 含了非常严重的多径效应,衰减,噪声等干扰问题,这些干扰往往会导致测量距离与真实距 离之间存在着一定误差,而最小二乘法对距离误差的容错性存在着一定的限制,导致其在 定位精度及均方差方面表现较差。

【发明内容】

[0005] 本发明目的就是为解决为了提高定位算法对这些干扰尤其是噪声的包容性及位 置计算问题。
[0006] 本发明的技术问题通过以下的技术方案予以解决:
[0007] -种基于测距和神经网络算法的水下定位方法,其特征在于,包括如下步骤:
[0008] A1、在定位水域内布置K个锚节点和N个待定位节点,测量每个待定位节点与K个锚 节点之间的距离;
[0009] A2、分离线训练和在线定位两个阶段进行定位;
[0010] A3、所述离线训练阶段包括以下步骤:
[00?1 ] A31、测量第η个待定位节点与所有锚节点距离,形成距离向量dn;
[0012] A32、将距离向量4输入三层神经网络:神经网络输入层、神经网络隐藏层和神经 网络输出层;
[0013] A33、通过算法迭代更新预测模型参数,输出神经网络模型参数。
[0014] A4、所述在线定位阶段包括以下步骤:
[00? 5] A41、测量第η个待定位节点与所有锚节点当前距离,形成距离向量sn;
[0016] A42、将距离向量sn输入离线训练阶段得到的神经网络模型参数;
[0017] A43、输出待定位节点的位置坐标。
[0018]根据本发明的另一个具体方面,步骤A31中所述距离向量由下列公式表示:
[0019] dn= [dn,l , ··· ,dn,k, ··· ,dn,K]T
[0020] 其中:dn,k表示第n个待定位节点与第k个锚节点之间的距离,
[0021 ] ne[l,N],ke[l,K],T 表示转置操作。
[0022] 根据本发明的另一个具体方面,步骤A32中,
[0023] 所述神经网络输入层:共有K+1个节点,前K个为激活节点,对应为输入节点,第k个 节点的输入与输出均为dn,k,kG [1,K],输入层第K+1个节点为偏置节点,其输出为if ;
[0024] 所述神经网络隐藏层:共有U+1个节点,前U个为激活节点,其中第u个激活节点输 入为+ 滿出为/ (w匕1乂 + C ),u e [ 1,U],^ 入层到隐藏层第u个激活节点的转移参数向量,f(x)表示激活函数,全部U个激活节点输出 向量为〇[;#,··_0·_,C;f,隐藏层第U+1个节点为偏置节点,其输出为
[0025] 所述神经网络输出层:只有1个节点,其输入为W厂af +K1,输出为 巧= /(wf)ra!,2i +€)=(~>,》),其中, 点的转移参数向量,U,yn)为第η个待定位节点的位置坐标。
[0026]根据本发明的另一个具体方面,所述激活函数f (X)是s i gmo id函数,即f(x) = l/ (l +exp(_x))〇
[0027] 根据本发明的另一个具体方面,步骤A33中,使用批量梯度下降法,通过多次迭代 更新,得到其收敛到最优值的预测模型参数:iw^wf片11#1e[l,[]}。
[0028] 根据本发明的另一个具体方面,所述多次迭代更新中使用反向传播算法计算偏导 数。
[0029]根据本发明的另一个具体方面,步骤A41中所述距离向量由下列公式表示:
[0030] sn=[sn,i,···,sn,k,···,sn,K] T
[0031] 其中:sn,k表示第η个待定位节点与第k个锚节点之间的当前距离,
[0032] ne[l,N],ke[l,K]。
[0033] 根据本发明的另一个具体方面,步骤A42中将所述距离向量sn输入离线训练阶段 得到的神经网络模型参数丨双$,丨 2),妒灰2)|闕[1,1/从£[1,幻丨,包括以下步骤:
[0034] A421、神经网络输入层:第k个节点的输入与输出均为sn,k,k e [ 1,K],偏置节点输 出为奶
[0035] A422、神经网络隐藏层:第u个激活节点输入为〇;,+/0俞出为O/K?:1) ue [1,U],全部U个激活节点输出向量为<1=[€,.。.,€,...,#1,偏置节点输出为纪2\
[0036] A423、神经网络输出层:输入为w;,2)X:)十Λ,(,-'输出为巧广)=(Λ·",υ (xn,yn)为第η个待定位节点的位置坐标。
[0037]根据本发明的另一个具体方面,使用TD0A方法测量每个所述待定位节点与所有锚 节点距离。
[0038] 本发明与现有技术对比的有益效果是:
[0039] 本发明中所提出的定位方法将神经网络算法和基于测距的定位算法进行了有机 结合,本发明采用TD0A测距方法,克服了传统的位置计算方法如最小二乘法对距离误差的 容错性存在着一定的限制、定位精度及稳定性方面表现较差的缺点,利用神经网络算法通 常具有优异的误差容错性这一特点,本发明基于测距并使用神经网络算法来代替传统的位 置计算算法进行定位,减小测距误差。
【附图说明】
[0040] 图1是本发明离线训练阶段流程图;
[0041] 图2是本发明神经网络结构图;
[0042] 图3是本发明在线定位阶段流程图;
[0043] 图4是本发明网络模型结构图;
[0044] 图5是本发明锚节点数目改变时三种算法性能比较图;
[0045] 图6是本发明训练集大小改变时三种算法性能比较图;
[0046] 图7是本发明距离误差改变时三种算法性能比较图。
【具体实施方式】
[0047] 本发明中所提出的定位方法将神经网络算法和基于测距的定位算法进行了有机 结合。水下信道通常存在严重的多径效应、干扰、噪声等因素而导致测距误差,而传统的位 置计算方法如最小二乘法对距离误差的容错性存在着一定的限制,使其在定位精度及稳定 性(均方差)方面表现较差。神经网络算法通常具有优异的误差容错性。因此,本发明的核心 是基于测距并使用神经网络算法来代替传统的位置计算算法进行定位。
[0048] 考虑某水下无线传感器网络有Ν个待定位节点和Κ个锚节点。本发明使用神经网络 算法进行定位的算法分为两个阶段:离线训练阶段和在线定位阶段。本发明给出了详细的 定位算法步骤:
[0049] 1.离线训练阶段:依次对每个待定位节点按下述步骤构建位置估计预测模型,如 图1所示:
[0050] a)使用TD0A方法测量第η个待定位节点与所有锚节点距离形成距离向量dn = [dn,i,…,dn,k,…,dn,K]T,其中d n,k表示第η个待定位节点与第k个锚节点之间的距离,ne [1, N],ke[l,K],T表示转置操作;
[0051 ] b)将距离向量dn输入三层神经网络;
[0052] 1)神经网络输入层(图2左侧数第一列)共有Κ+l个节点,前K个为激活节点,对应为 输入节点,第k个节点的输入与输出均为d n,k,k e [ 1,Κ],输入层第Κ+1个节点为偏置节点,其 输出为;
[0053] 2)神经网络隐藏层(图2左数第二列)共有U+1个节点,前U个为激活节点,其中第u个激 活节点输入为<上^+#,输出为";>八<1 +6:"),此[1,们,<>[<,,~,<>,.,"二『 为输入层到隐藏层第U个激活节点的转移参数向量,f(x)表示激活函数,这里使用sigmoid 函数,即f (X) = 1 / (1+exp (-X)),全部U个激活节点输出向量为a〖2) = [dV · ·,0 · ·,心T :,隐藏 层第U+1个节点为偏置节点,其输出为
[0054] 3)神经网络输出层(图2左数第三列)只有1个节点,其输入为w,af+f,输出为 6 ιΓ =/(^?21 +€卜(\,凡),其中,= 点的转移参数向量,U,yn)为第η个待定位节点的位置坐标。
[0055] c )本发明使用批量梯度下降法,通过多次迭代更新预测模型参数 直到其收敛到最优值,其中的关键步骤是计算偏导 数,本发明使用反向传播(BP)算法来进行快速准确地计算偏导数。
[0056] 2 .在线定位阶段:根据离线训练阶段得到的神经网络模型参数 e [l,t/U € [1,幻},依次计算每个待定位节点的坐标,如图3所示:
[0057] a)使用TD0A方法测量第η个待定位节点与所有锚节点当前距离形成距离向量sn = [sn,i,…,sn,k,…,sn,K]T,其中s n,k表示第η个待定位节点与第k个锚节点之间的当前距离,η e[l,N],ke[l,K];
[0058] b)将距离向量sn输入三层神经网络;网络结构如图2所示,网络参数为 丨e[U;],/l e[丨,Μ·具体步骤为:
[0059] 1)神经网络输入层:第k个节点的输入与输出均为~^上^^小^偏置节点输出为
[0060] 2)神经网络隐藏层:第u个激活节点输入为褕出为< =/卜(」乂 , ue [1,U],全部U个激活节点输出向量为#?/,··.,#:,…,€ f,偏置节点输出为f1;
[0061] 3)神经网络输出层:输入为输出为+6f)=(x"0.g, (χ η,yn)为第η个待定位节点的位置坐标。
【具体实施方式】
[0062]
[0063]考虑在定位区域内已部署Κ个锚节点、Ν个待定位节点。为了获取一定数量(大于等 于1〇〇)的数据进行神经网络模型的训练,本发明中考虑使用一台探测器使其在水下沿一条 固定的轨迹运动,运动速率恒定为ν m/s,并且在水下使用声波信号进行信息传输,探测器 运动速率v远小于声波在水下的传输速率。探测器在运动过程中使用一定的测距方式,如 T0A、TD0A、A0A等,每隔一段固定距离测量并记录一次当前点与K个锚节点之间的距离,以及 当前点的坐标,直至走完整条轨迹。
[0064] 本发明将定位区域选取在一片200m*200m的水域中进行,并且在定位区域中设置 了 K= 12个锚节点。本发明考虑使用一台探测器使其在水下沿一条固定的轨迹运动,运动速 率v = lm/s,并且在水下使用声波信号进行信息传输,探测器在运动过程中使用TD0A方法 (基于信号到达时间差测距)进行测距,并且每隔lm进行一次数据的采集,总共采集了 729条 数据,具体的网络模型如图4所示。
[0065] 1.离线训练阶段
[0066]依次对每个待定位节点按下述步骤构建位置估计预测模型,如图1所示:
[0067] a)使用TD0A方法测量第η个待定位节点与所有锚节点距离形成距离向量dn = [dn,i,…,dn,k,…,dn,K]T,其中d n,k表示第η个待定位节点与第k个锚节点之间的距离,ne [1, N],ke[l,K],T表示转置操作;
[0068] b)将距离向量dn输入三层神经网络;
[0069] 1)神经网络输入层(图2左侧数第一列)共有K+1个节点,前K个为激活节点,对应为 输入节点,第k个节点的输入与输出均为d n,k,k e [ 1,K],输入层第K+1个节点为偏置节点,其 输出为4(广;
[0070] 2)神经网络隐藏层(图2左数第二列)共有U+1个节点,前U个为激活节点,其中 第u个激活节点输入为+祝1',输出为= /(〇" +?11),u e [ 1,U ], <丨=[<!4,'<众、<^1为输入层到隐藏层第11个激活节点的转移参数向量4^表 示激活函数,这里使用sigmoid函数,即f (x) = l/(l+exp(-x)),全部U个激活节点输出向量 为1 = ……T,隐藏层第U+1个节点为偏置节点,其输出为# ;
[0071] 3)神经网络输出层(图2左数第三列)只有1个节点,其输入为输出为 丨31 = ,其中, 点的转移参数向量,U,yn)为第η个待定位节点的位置坐标。
[0072] c )本发明使用批量梯度下降法通过多次迭代更新预测模型参数 直到其收敛到最优值,其中的关键步骤是计算偏导 数,本发明使用反向传播(BP)算法来进行快速准确地计算偏导数。
[0073] 2.在线定位阶段
[0074]在线定位阶段:根据离线训练阶段得到的神经网络模型参数 ,依次计算每个待定位节点的坐标,如图3所示:
[0075] a)使用TD0A方法测量第η个待定位节点与所有锚节点当前距离形成距离向量sn = [sn,i,…,sn,k,…,sn,K]T,其中s n,k表示第η个待定位节点与第k个锚节点之间的当前距离,η e[l,N],ke[l,K];
[0076] b)将距离向量sn输入三层神经网络;网络结构如图2所示,网络参数为 {<>.:,2)乂3: 2) 1"印川』<1,人?},具体步骤为:
[0077] 1)神经网络输入层:第k个节点的输入与输出均为&1{,1^£[1,1(],偏置节点输出为
[0078] 2)神经网络隐藏层:第u个激活节点输入为〇, ,输出为〇/卜(上乂+C) f 1^[1,11],全部11个激活节点输出向量为甿>=[0",0",^『骗置节点输出为#;
[0079] 3)神经网络输出层:输入为<2%丨广+#,输出为P" =栌"(wraf+ #>)=(~Λ), (χη,yn)为第η个待定位节点的位置坐标。
[0080] 本发明性能分析如下:
[0081 ] 1.1环境和参数
[0082] 本发明将定位区域选取在一片200m*200m的水域中进行,并且在定位区域中设置 了 K= 12个锚节点。使用一台探测器使其在水下沿一条固定的轨迹运动,运动速率v= lm/s, 并且在水下使用声波信号进行信息传输,探测器在运动过程中使用TD0A方法(基于信号到 达时间差测距)进行测距,并且每隔lm进行一次数据的采集,总共采集了 729条数据,具体的 网络模型如图4所示。
[0083] 1.2性能指标
[0084] 本发明中为了比较三种方法的定位性能,引入了均方误差(Mean Squared Error, MSE)的概念,在定位中MSE的高低不仅表示了不同定位方法在定位精度上的优劣,还表示了 不同定位方法在定位稳定性上的差异。其定义如下:
[0086] 其中,(H,,)为待定位节点的估计坐标,(xn,yn)为待定位节点的真实坐标。
[0087] 1.3性能分析
[0088]在下面的分析中,训练集数量为500,测试集数量为100,最小二乘法使用全部600 个点进行位置计算,距离误差服从N(0,〇2)的正态分布,〇2=14。通过改变锚节点的数量来比 较这三种定位算法的性能,结果如图5所示。当锚节点的数量改变时,神经网络算法的性能 是三种算法中最好的,比如,当只用7个锚节点时神经网络算法的MSE比最小二乘法的低了 约5dB,而比支持向量机的则低了 10dB左右;而当使用全部12个锚节点时,最小二乘法和支 持向量机的性能不相上下,神经网络算法的MSE比它们低了8dB左右。当锚节点变化时,支持 向量机和最小二乘法的性能各有优劣,比如当锚节点数目小于10的时候最小二乘法的性能 优于支持向量机,而当锚节点数目大于10的时候,最小二乘法的性能反而劣于支持向量机。
[0089] 随后,本发明固定了锚节点的数目,统一选定12个锚节点,距离误差依旧服从N(0, σ2)的正态分布,〇2=14,通过改变训练集的大小,来比较三种算法的性能,如图6所示。由图 6,神经网络算法的性能是三种算法中最优的,而支持向量机的表现则不尽如人意,比如当 训练集只有100个点时,支持向量机的误差高达25.7dB,而最小二乘法的误差居中,为 13.3dB,神经网络算法的误差是其中最好的只有8.5dB。而当训练集比较大时,机器学习算 法的优势便展现出来了。比如当训练集大小为600时,传统的最小二乘法定位效果最差,为 12.6dB左右,支持向量机性能居中,为10.5dB左右,同样的神经网络算法的性能最高,只有 5.3dB〇
[0090] 最后,本发明固定了锚节点、训练集以及测试集的大小,其中锚节点为12个,训练 集数量为500,测试集数量为100,最小二乘法使用全部600个点进行位置计算,通过改变距 尚误差方差来比较二种算法的性能,如图7所由图7可知,神经网络算法依旧是二种算法 中性能最好的,支持向量机与最小二乘法的性能则不相上下。例如,当距离误差的方差为9 时,神经网络算法的MSE仅为3.6dB,而最小二乘法和支持向量机的MSE则高达10.6dB和 12.2dB,当距离误差的方差上升到39时,神经网络算法的MSE也仅为10dB,此时最小二乘法 和支持向量机的MSE则高达16.9dB和15.4dB。除此之外,在最小二乘法与支持向量机的性能 比较上,距离误差的方差较小时,最小二乘法的性能较好,而当距离误差的方差增加到一定 程度时,最小二乘法的性能则会变差,反而支持向量机的性能较好。这说明,在水下定位中, 当测量的未知节点与锚节点之间的距离非常精确的时候,选用最小二乘法可以收到不错的 效果,但当获取的距离值误差比较大的时候,传统的最小二乘法定位效果便会比较差,而本 发明中所提出的使用机器学习算法进行定位的方法则对距离误差的容忍性比较强。
[0091]以上内容是结合具体的/优选的实施方式对本发明所作的进一步详细说明,不能 认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来 说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施例做出若干替代或变型, 而这些替代或变型方式都应当视为属于本发明的保护范围。
【主权项】
1. 一种基于测距和神经网络算法的水下定位方法,其特征在于,包括如下步骤: A1、在定位水域内布置K个错节点和N个待定位节点,测量每个待定位节点与K个错节点 之间的距离; A2、分离线训练和在线定位两个阶段进行定位; A3、所述离线训练阶段包括W下步骤: A31、测量第η个待定位节点与所有错节点距离,形成距离向量; Α32、将距离向量dn输入Ξ层神经网络:神经网络输入层、神经网络隐藏层和神经网络输 出层; A33、通过算法迭代更新预测模型参数,输出神经网络模型参数; A4、所述在线定位阶段包括W下步骤: A41、测量第η个待定位节点与所有错节点当前距离,形成距离向量sn; A42、将距离向量Sn输入离线训练阶段得到的神经网络模型参数; A43、输出待定位节点的位置坐标。2. 根据权利要求1所述水下定位方法,其特征在于, 步骤A31中所述距离向量由下列公式表示: dn_ [dn,l, ·· )dn,k, ·· )dn,K] 其中:dn,k表示第η个待定位节点与第k个错节点之间的距离, ne[l,N],ke[l,K],T表示转置操作。3. 根据权利要求1所述水下定位方法,其特征在于, 步骤A32中, 所述神经网络输入层:共有K+1个节点,前K个为激活节点,对应为输入节点,第k个节点 的输入与输出均为dn,k,ke [1,Κ],输入层第K+1个节点为偏置节点,其输出为殘U ; 所述神经网络隐藏层:共有化1个节点,前U个为激活节点,其中第U个激活节点输入为 皆,输出为%输 入层到隐藏层第U个激活节点的转移参数向量,f(x)表示激活函数,全部U个激活节点输出 向量为护={巧,…,媒,…,端了隐藏层第U+1个节点为偏置节点,其输出为皆I; 所述神经网络输出层:只有1个节点,其输入天其中,W产=[喘',··.,、识,..一说了为隐藏层到输出节点的转移参数向量,(xn,yn)为第η个待定 位节点的位置坐标。4. 根据权利要求3所述水下定位方法,其特征在于, 所述激活函数 f (X)是 sigmoid 函数,即f (x) = l/(l+exp(-x))。5. 根据权利要求1所述水下定位方法,其特征在于, 步骤A33中,使用批量梯度下降法,通过多次迭代更新,得到其收敛到最优值的预测模 型参数6. 根据权利要求5所述水下定位方法,其特征在于, 所述多次迭代更新中使用反向传播算法计算偏导数。7. 根据权利要求1所述水下定位方法,其特征在于, 步骤A41中所述距离向量由下列公式表示:其中:Sn,k表示第η个待定位节点与第k个错节点之间的当前距离, ne[l,N],ke[l,K]。8. 根据权利要求1所述水下定位方法,其特征在于,步骤A42中将所述距离向量sn输入离 线训练阶段得到的神经网络模型参数尸片個括W下步骤: A421、神经网络输入层:第k个节点的输入与输出均为Sn,k,k e [ 1,K],偏置节点输出为 皆'; A422、神经网络隐藏层:第U个激活节点输入为<1,;/、+终,,输出巧e [1,U],全部U个激活节点输出向量为af=[媒,…,记,…:姆了,偏置节点输出为皆1; A423、神经网络输出层:输入为巧严3;:,2'+皆巧俞出戈(Xn,yn)为第η个待定位节点的位置坐标。9. 根据权利要求1所述水下定位方法,其特征在于,使用TDOA方法测量每个所述待定位 节点与所有错节点距离。
【文档编号】H04W64/00GK106093849SQ201610389518
【公开日】2016年11月9日
【申请日】2016年6月3日 公开号201610389518.8, CN 106093849 A, CN 106093849A, CN 201610389518, CN-A-106093849, CN106093849 A, CN106093849A, CN201610389518, CN201610389518.8
【发明人】董宇涵, 李征, 王睿, 张 林, 张凯
【申请人】清华大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1