Loading [MathJax]/jax/output/HTML-CSS/jax.js
高级搜索

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

一种大规模传感器网络节点分布式定位算法

蒋俊正 李杨剑 赵海兵 欧阳缮

蒋俊正, 李杨剑, 赵海兵, 欧阳缮. 一种大规模传感器网络节点分布式定位算法[J]. 电子与信息学报, 2019, 41(12): 3022-3028. doi: 10.11999/JEIT181101
引用本文: 蒋俊正, 李杨剑, 赵海兵, 欧阳缮. 一种大规模传感器网络节点分布式定位算法[J]. 电子与信息学报, 2019, 41(12): 3022-3028. doi: 10.11999/JEIT181101
Junzheng JIANG, Yangjian LI, Haibing ZHAO, Shan OUYANG. A Distributed Node Localization Algorithm for Large Scale Sensor Networks[J]. Journal of Electronics & Information Technology, 2019, 41(12): 3022-3028. doi: 10.11999/JEIT181101
Citation: Junzheng JIANG, Yangjian LI, Haibing ZHAO, Shan OUYANG. A Distributed Node Localization Algorithm for Large Scale Sensor Networks[J]. Journal of Electronics & Information Technology, 2019, 41(12): 3022-3028. doi: 10.11999/JEIT181101

一种大规模传感器网络节点分布式定位算法

doi: 10.11999/JEIT181101
基金项目: 国家自然科学基金(61761011, 61871425),广西自然科学基金(2017GXNSFAA198173)
详细信息
    作者简介:

    蒋俊正:男,1983年生,教授,博士生导师,研究方向为图信号处理理论与算法、分布式信号处理理论与算法、大规模传感器网络数据处理

    李杨剑:男,1993年生,硕士生,研究方向为无线传感器网络节点定位算法

    赵海兵:男,1990年生,硕士生,研究方向为传感器网络定位算法

    欧阳缮:男,1960年生,教授,博士生导师,研究方向为雷达信号处理、通信信号处理

    通讯作者:

    蒋俊正 jzjiang@guet.edu.cn

  • 中图分类号: TP393

A Distributed Node Localization Algorithm for Large Scale Sensor Networks

Funds: The National Natural Science Foundation of China (61761011, 61371186), The Natural Science Foundation of Guangxi (2017GXNSFAA198173)
  • 摘要: 针对大规模无线传感器网络(WSN)中节点难以定位的问题,该文提出一种基于改进牛顿法的分布式定位算法。该算法包括网络划分和分布式算法。首先,根据节点位置和节点之间直接相连的距离信息,将无线传感器网络划分为若干个重叠的子区域,并将子区域的定位问题归结为无约束优化问题,每个子区域可以独立计算;然后,使用分布式算法估计子区域中的节点位置并进行局部融合。实验结果表明,与已有算法相比,该算法具有良好的扩展性,在大规模网络中定位精度更高,能满足大规模无线传感器网络中节点定位需求。
  • 随着微机电系统(Micro-Electro-Mechanical Systems, MEMS)和无线通信技术的快速发展,使低成本,低功耗的传感器大规模部署成为可能[1-3]。无线传感器网络(Wireless Sensor Network, WSN)由大量传感器构成,能够检测各种物理信息,广泛应用于医疗(病人检测)、环境(大鸭岛实验)、家庭(用水检测)等领域[2,4,5]。在这些应用中,传感器节点感知到的信息与其位置结合起来才有意义。因此,传感器节点的定位问题越来越受到人们的重视。尽管可以在传感器上安装全球定位系统(Global Positioning System, GPS)模块来定位。但GPS模块成本高,功耗大,会增加大规模部署成本。为了解决这一问题,只对部分节点安装GPS模块,其余节点采用合作定位方法来估计。合作定位所需的距离信息可以通过接收信号强度(Received-Signal-Strength, RSS)、到达时间差(Time-Difference-Of-Arrival, TDOA)、到达角(Angle-Of-Arrival, AOA)等技术来获取[3,4,6]

    使用合作定位方法时,在WSN中随机选取部分传感器安装GPS模块,以获取精确位置。将事先已知位置的传感器节点称为已知位置(Location-Aware, LA)节点或锚节点,对于其它未知位置的传感器,称为未知位置(Location-Unaware, LU)节点。使用测距技术获得节点之间的相互距离,之后采用合作定位方法对LU节点进行定位。如:三边定位算法、三角定位算法、极大似然估计算法以及优化算法等[7]。其中,优化算法是比较典型的定位算法之一。优化算法将定位问题归结为非凸的目标函数优化问题,针对这一问题,许多做法是将非凸的优化问题转化为凸优化问题进行求解[1,2,8,9]。优化算法可以分为集中式算法和分布式算法。集中式算法使用一个中央处理器收集节点之间的距离信息并进行定位计算。文献[2]提出了一种基于半正定规划(Semi-Definite Programming, SDP)的集中式算法。文中通过对目标函数添加正则项来降低解的秩,然后使用梯度下降法细化节点的位置,提高了定位精度。但随着网络规模的增大,网络通信量和中心节点的计算量变高,会超出中央处理器的处理能力[3]。因此,集中式算法扩展性较低[10],只适合小规模的WSN。与集中式算法相比,分布式算法将处理器分配到每个节点上,每个处理器仅收集局部节点之间的距离信息并进行计算,有效降低了通信量和计算量,有良好的扩展性[11],可用于无中央处理器或大规模的WSN。但缺点是会导致误差的传播,降低定位精度[1,3,6,9]。文献[1]中使用2阶锥规划(Second-Order Cone Programming, SOCP)松弛技术将非凸的优化问题松弛为凸的优化问题。使用LU节点和局部距离信息将WSN划分为若干个子区域,并提出了一种分布式算法,有良好的扩展性,能用于大规模网络。但此算法对网络边界的LU节点定位效果不理想。文献[9]中使用凸松弛方法来近似非凸的最大似然公式,利用优化特性提出了一种分布式算法,每个节点使用最优梯度法进行收敛,降低了通信量。但这种方法需要LU节点位于LA节点的凸包中,才能获得较精确的定位。这在实际情况中难以满足,导致网络边界定位效果不理想。文献[10]中提出了一种分布式定位算法,将锚节点和与其直接相连的传感器节点构成一个子区域,对每个子区域使用SDP松弛方法进行求解。然后将估计误差较低的LU节点作为伪锚节点,用来估计剩余的LU节点。但这种做法会导致误差的积累和传播。

    本文的主要目的是解决大规模WSN中节点难以定位问题,提出了一种基于改进牛顿法的分布式定位算法,本算法包括网络划分和分布式算法。其创新点包括:(1)本文将WSN划分为部分重叠的子区域,从而建立了各个子区域的定位问题,可以独立优化求解。降低了通信量和计算量,提高了扩展性,使其能够用于大规模WSN;(2)分布式算法的每一步迭代包括子区域节点的定位求解和融合平均。首先,各个子区域定位问题采用基于Hesse矩阵修正的改进牛顿法求解,使其能够快速收敛;然后,对重叠子区域内的节点,进行局部融合求平均,能够修正部分子区域求解不够准确的问题,提高了区域边界LU节点的定位精度;(3)实验结果表明,本文所提分布式算法,能满足大规模WSN中节点定位需求,而且在不同的情形下,与文献[1,9]中提出的分布式算法相比,在大规模网络中定位精度更高。

    在一片区域内随机部署一定数量的传感器,假设WSN中的传感器有相同的发射功率,则它们的通信半径相同[1]。如果不同传感器节点之间的距离小于r,则认为它们之间可以相互通信,能够获得传感器之间的相互距离。使用距离信息,可将WSN连接成一个网状图。因此,一个区域内的WSN可以构成一个无向图G=(V,E)。其中,集合V表示传感器节点集合;集合E表示节点之间边的集合。

    无线传感器网络的定位问题可以描述为:在一片区域Rd(d1)内随机部署N个传感器,Rd表示d维欧几里得空间[8]。在区域内有m个LU节点,n个LA节点。采用合作定位方法[12-14],使用LA节点位置和节点之间的距离信息,来估计出m个LU节点的位置[1]。本文中,传感器分布在[0.5,0.5]2的单位正方形区域内[1, 6]。LU节点表示为p1,p2,···,pm,其中,pi=[xi,yi]TR2,表示LU节点i的坐标;LA节点表示为a1,a2,···,an,其中,ak=[xk,yk]TR2,表示LA节点k的坐标。用dij表示LU节点i和节点j之间带噪声的测距,dij=dji[9]; dik表示LU节点i和LA节点k之间带噪声的测距[2, 6]; ωijωik是根据距离的反比取的归一化权重。(i,j)A,表示LU节点之间可测得距离的节点集合;(i,k)B,表示LU与LA节点之间可测得距离的节点集合。因此,使用带噪声的测距信息将定位问题归结为一个无约束的高度非线性非凸的优化问题[2]

    $$ \begin{align} {\rm{}}&\mathop {{\rm{min}}}\limits_{{{\text{p}}_1}, {{\text{p}}_2}, \cdots , {{\text{p}}_m}} {\sum\limits_{(i, j) \in {\cal{A}}} {\omega _{ij}^2\left| {\left\| {{{\text{p}}_i} - {{\text{p}}_j}} \right\|_2^2 - d_{ij}^2} \right|} ^2} \\ {\rm{}}& \quad + \sum\limits_{(i, k) \in {\cal{B}}} {\omega _{ik}^2{{\left| {\left\| {{{\text{p}}_i} - {{\text{a}}_k}} \right\|_2^2 - d_{ik}^2} \right|}^2}} \end{align} $ $ (1)

    通过观察式(1)可以看出,目标函数仅取决于通信半径r内与LU节点直接相连的邻居节点位置以及节点之间的距离信息。因此,以LU节点为中心,可将WSN构成的无向图G=(V,E)分解为重叠的子图。

    $$G = \bigcup\limits_{s = 1}^m {{G_s}} $ $ (2)

    其中,Gs=(Vs,Es), s=1,2,···,m表示第s个子图;Vs表示子图s中所有节点的集合;Es表示子图s中节点之间边的集合,包含LU节点之间直接相连的边和LU节点与LA节点之间直接相连的边。

    将WSN划分为重叠的子区域后,将目标函数式(1)分解为子区域优化问题。之后使用分布式算法对子区域进行优化求解和局部融合。本文采用基于单位步长的改进牛顿法对每个子区域进行优化求解,这种方法需要一个好的初始值[15],以便沿着目标函数下降的方向进行搜索,从而更快达到目标函数的局部最小值。因此,本文采用三边定位算法的粗略估计值作为改进牛顿法的初始值。

    3.2.1   子区域问题的描述

    使用子区域中节点位置和节点之间的距离信息,构造出子区域的目标函数,进而采用分布式算法进行计算。与集中式算法相比,提高了扩展性,降低了通信量和计算量,可以有效解决大规模WSN中的定位问题。

    子区域的目标函数归结为

    $$ \begin{align} {\rm{}}&\mathop {{\rm{min}}}\limits_{{{\text{p}}_{{s_1}}}, {{\text{p}}_{{s_2}}}, \cdots , {{\text{p}}_{{s_l}}}} {\sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} {\omega _{{s_i}{s_j}}^2\left| {\left\| {{{\text{p}}_{{s_i}}} - {{\text{p}}_{{s_j}}}} \right\|_2^2 - d_{{s_i}{s_j}}^2} \right|} ^2} \\ {\rm{}}& \quad+ \sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} {\omega _{{s_i}{s_k}}^2{{\left| {\left\| {{{\text{p}}_{{s_i}}} - {{\text{a}}_{{s_k}}}} \right\|_2^2 - d_{{s_i}{s_k}}^2} \right|}^2}} \end{align} $ $ (3)

    其中,s=1,2,···,m,表示第s个子区域;psi=[xsi,ysi]T(i=1,2,···,l),表示子区域s中LU节点i的坐标;ask=[xsk,ysk]T(k=1,2,···,h),表示子区域s中LA节点k的坐标;(si,sj)As,表示子区域s中LU节点之间可测得距离的节点集合;(si,sk)Bs,表示子区域s中LU与LA节点之间可测得距离的节点集合;dsisjdsisk表示带噪声的测距,噪声模型如下[2, 6]nf是噪声因子,用于控制噪声强度,取值[0,1]; εsisjεsisk是产生的随机噪声,是(1,1)之间均匀的随机数。

    $${d_{{s_i}{s_j}}} = {\left\| {{{\text{p}}_{{s_i}}} - {{\text{p}}_{{s_j}}}} \right\|_2} \cdot \left| {1 + {\rm{nf}} \cdot {\varepsilon _{{s_i}{s_j}}}} \right|$ $ (4)
    $${d_{{s_i}{s_k}}} = {\left\| {{{\text{p}}_{{s_i}}} - {{\text{a}}_{{s_k}}}} \right\|_2} \cdot \left| {1 + {\rm{nf}} \cdot {\varepsilon _{{s_i}{s_k}}}} \right|$ $ (5)
    $$ \left| {{\varepsilon _{{s_i}{s_j}}}} \right|{\text{ 或 }}\left| {{\varepsilon _{{s_i}{s_k}}}} \right| < 1 \hspace{71pt} $ $ (6)

    式(3)中,ωsisjωsisk是根据子区域s中距离的反比取的归一化权重,因为传感器节点之间随着距离的增加,测得的距离的可信度降低,误差会增加,其权重应该越小;反之,传感器节点之间距离越近,可信度越高,相应的权重应该越大,权重分别为

    $$ {\omega _{{s_i}{s_j}}} = \frac{{d_{{s_i}{s_j}}^{ - 1}}}{{\displaystyle\sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} {d_{{s_i}{s_j}}^{ - 1}} + \displaystyle\sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} {d_{{s_i}{s_k}}^{ - 1}} }} $ $ (7)
    $$ {\omega _{{s_i}{s_k}}} = \frac{{d_{{s_i}{s_k}}^{ - 1}}}{{\displaystyle\sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} {d_{{s_i}{s_j}}^{ - 1}} + \displaystyle\sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} {d_{{s_i}{s_k}}^{ - 1}} }} $ $ (8)

    使用p=[pTs1pTs2···pTsl]T,表示子区域s中所有LU节点的坐标构成的列向量,其中pTsi=[xsi,ysi]; a=[aTs1aTs2···aTsh]T,表示子区域s中所有LA节点的坐标构成的列向量,其中aTsk=[xsk,ysk]。令ei1ei2分别表示2l×2l单位矩阵的第2i1列和2i列;ek1ek2分别表示2h×2h单位矩阵的第2k1列和2k列。则,xsi=eTi1p, ysi=eTi2p, xsk=eTk1a, ysk=eTk2a,传感器节点之间的真实距离可写为

    $$ \left\| {{{\text{p}}_{{s_i}}} - {{\text{p}}_{{s_j}}}} \right\|_2^2 = {{\text{p}}^{\rm{T}}}{\text{Ap}} \hspace{89pt} $ $ (9)
    $$ \begin{align} \left\| {{{\text{p}}_{{s_i}}} - {{\text{a}}_{{s_k}}}} \right\|_2^2 =& {{\text{p}}^{\rm{T}}}{\text{Bp}} - {{\text{p}}^{\rm{T}}}{\text{Ca}} - {{\text{a}}^{\rm{T}}}{\text{Dp}} \\ & + {{\text{a}}^{\rm{T}}}{\text{Ea}} \end{align} $ $ (10)

    其中,

    $$ \begin{align} {\text{A}} =& ({{\text{e}}_{i1}} - {{\text{e}}_{j1}}){({{\text{e}}_{i1}} - {{\text{e}}_{j1}})^{\rm{T}}} \\ & + ({{\text{e}}_{i2}} - {{\text{e}}_{j2}}){({{\text{e}}_{i2}} - {{\text{e}}_{j2}})^{\rm{T}}} \end{align} $ $ (11)
    $$ {\text{B}} = {{\text{e}}_{i1}}{\text{e}}_{i1}^{\rm{T}} + {{\text{e}}_{i2}}{\text{e}}_{i2}^{\rm{T}} \hspace{44pt} $ $ (12)
    $$ {\text{C}} = {{\text{e}}_{i1}}{\text{e}}_{k1}^{\rm{T}} + {{\text{e}}_{i2}}{\text{e}}_{k2}^{\rm{T}} \hspace{43pt} $ $ (13)
    $$ {\text{D}} = {{\text{e}}_{k1}}{\text{e}}_{i1}^{\rm{T}} + {{\text{e}}_{k2}}{\text{e}}_{i2}^{\rm{T}} \hspace{42pt} $ $ (14)
    $$ {\text{E}} = {{\text{e}}_{k1}}{\text{e}}_{k1}^{\rm{T}} + {{\text{e}}_{k2}}{\text{e}}_{k2}^{\rm{T}} \hspace{41pt} $ $ (15)

    目标函数式(3)可以写为

    $$ \begin{aligned} f({\text{p}}) =& \mathop {{\rm{min}}}\limits_{{{\text{p}}_{{s_1}}}, {{\text{p}}_{{s_2}}}, \cdots , {{\text{p}}_{{s_l}}}} {\sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} {\omega _{{s_i}{s_j}}^2({{\text{p}}^{\rm{T}}}{\text{Ap}} - d_{{s_i}{s_j}}^2)} ^2} \\ {\rm{}}&+\sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} \omega _{{s_i}{s_k}}^2({{\text{p}}^{\rm{T}}}{\text{Bp}} - {{\text{p}}^{\rm{T}}}{\text{Ca}} - {{\text{a}}^{\rm{T}}}{\text{Dp}} \\ {\rm{}}& + {{{\text{a}}^{\rm{T}}}{\text{Ea}} - d_{{s_i}{s_k}}^2)}^2 \end{aligned} $ $ (16)

    本文使用基于单位步长的改进牛顿法对子区域进行优化,在给出具体算法之前,先计算出目标函数f(p)的梯度向量f(p)和Hesse矩阵2f(p)

    $$ \begin{aligned} \nabla f({\text{p}}) =& \sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} {4\omega _{{s_i}{s_j}}^2({{\text{p}}^{\rm{T}}}{\text{Ap}} - d_{{s_i}{s_j}}^2)({\text{Ap}})} \\ {\rm{}}&+\sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} 2\omega _{{s_i}{s_k}}^2({{\text{p}}^{\rm{T}}}{\text{Bp}} - {{\text{p}}^{\rm{T}}}{\text{Ca}} - {{\text{a}}^{\rm{T}}}{\text{Dp}} \\ {\rm{}} & + {{\text{a}}^{\rm{T}}}{\text{Ea}} - d_{{s_i}{s_k}}^2)(2{\text{Bp}} - {\text{Ca}} - {{\text{D}}^{\rm{T}}}{\text{a}}) \end{aligned} $ $ (17)
    $$ \begin{aligned} {\nabla ^2}f({\text{p}}) = & \sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} 4\omega _{{s_i}{s_j}}^2\left[ 2{\text{Ap}}{{\text{p}}^{\rm{T}}}{{\text{A}}^{\rm{T}}}\right. \\ {\rm{}} & \left.+ ({{\text{p}}^{\rm{T}}}{\text{Ap}} - d_{{s_i}{s_j}}^2){{\text{A}}^{\rm{T}}} \right] \\ {\rm{}} & + \sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} 2\omega _{{s_i}{s_k}}^2\left[ (2{\text{Bp}} - {\text{Ca}} - {{\text{D}}^{\rm{T}}}{\text{a}})\right.\\ {\rm{}} & \cdot {{(2{\text{Bp}} - {\text{Ca}} - {{\text{D}}^{\rm{T}}}{\text{a}})}^{\rm{T}}} + 2({{\text{p}}^{\rm{T}}}{\text{Bp}} \\ {\rm{}}& \left.- {{\text{p}}^{\rm{T}}}{\text{Ca}} - {{\text{a}}^{\rm{T}}}{\text{Dp}} + {{\text{a}}^{\rm{T}}}{\text{Ea}} - d_{{s_i}{s_k}}^2){{\text{B}}^{\rm{T}}} \right]\\ {\rm{}} & \hspace{168pt}(18) \end{aligned} $ $
    3.2.2   三边定位获取初始值

    在已有的定位算法中,三边定位算法是比较简单的,可以用作LU节点初始位置的粗略估计。具体做法为:假设待定的LU节点D,坐标为(x,y),周围有3个不共线的LA节点A, B, C,坐标分别为(x1,y1), (x2,y2), (x3,y3)。3个LA节点到LU节点的距离分别为R1, R2, R3,均小于通信半径r。分别以A, B, C为圆心,R1, R2, R3为半径,画3个相交的圆,相交点即为LU节点D的位置。

    对应的方程组为

    $$\left. {\begin{array}{*{20}{c}} {{{(x - {x_1})}^2} + {{(y - {y_1})}^2} = R_1^2} \\ {{{(x - {x_2})}^2} + {{(y - {y_2})}^2} = R_2^2} \\ {{{(x - {x_3})}^2} + {{(y - {y_3})}^2} = R_3^2} \end{array}} \right\}$ $ (19)

    方程的解为LU节点D的坐标

    $$ \begin{align} \left[ \begin{gathered} x \\ y \\ \end{gathered} \right] =& {\left[ \begin{gathered} 2{\rm{(}}{x_3} - {x_1}{\rm{) }}2({y_3} - {y_1}) \\ 2{\rm{(}}{x_3} - {x_2}{\rm{) 2}}({y_{\rm{3}}} - {y_2}) \\ \end{gathered} \right]^{ - 1}}\\ {\rm{}}& \cdot\left[ \begin{gathered} x_3^2 - x_1^2 + y_3^2 - y_1^2 + R_1^2 - R_3^2 \\ x_3^2 - x_2^2 + y_3^2 - y_2^2 + R_2^2 - R_3^2 \\ \end{gathered} \right] \end{align} $ $ (20)

    然而,在实际情况中,传感器节点的部署是随机的,且受到r的限制,无法保证每个LU节点周围都有3个或3个以上的LA节点。因此,本文按照以下方法来获得LU节点的初始位置,作为基于单位步长改进牛顿法的初始值:当LU节点周围有3个或3个以上LA节点时,利用最近的3个LA节点,用三边定位方法粗略定出其初始位置;当LU节点周围有1~2个LA节点时,则将离LU节点最近的LA节点作为其初始位置;当LU节点周围没有LA节点时,则将传感器分布区域的中心作为其初始位置。

    3.2.3   基于单位步长的改进牛顿法

    本文采用基于单位步长改进牛顿法对子区域进行优化的原因是:首先,目标函数的Hesse矩阵不一定是正定的,有可能是奇异的,可能会导致位置的更新往错误的方向移动,使定位出现偏差。因此,本文将Hesse矩阵修正为正定的。其次,在将Hesse矩阵修正为正定后,基于单位步长的改进牛顿法可以快速收敛到局部最优解[16]

    观察目标函数的Hesse矩阵,包含4项求和。其中,2AppTAT(2BpCaDTa)(2BpCaDTa)T是正定的,但(pTApd2sisj)AT2(pTBppTCaaTDp+aTEad2sisk)BT不一定是正定的。因此,将Hesse矩阵修正为正定的

    $$ \begin{align} {\nabla ^2}f({\text{p}}) =& \sum\limits_{({s_i}, {s_j}) \in {{\cal{A}}_s}} {8\omega _{{s_i}{s_j}}^2{\text{Ap}}{{\text{p}}^{\rm{T}}}{{\text{A}}^{\rm{T}}}} \\ {\rm{}}& + \sum\limits_{({s_i}, {s_k}) \in {{\cal{B}}_s}} 2\omega _{{s_i}{s_k}}^2(2{\text{Bp}} - {\text{Ca}} - {{\text{D}}^{\rm{T}}}{\text{a}})\\ {\rm{}}& \cdot{{(2{\text{Bp}} - {\text{Ca}} - {{\text{D}}^{\rm{T}}}{\text{a}})}^{\rm{T}}} \end{align} $ $ (21)

    基于上述分析,子区域定位算法步骤如表1所示。

    表 1  子区域定位算法
     输入:使用三边定位方法,粗略获得LU节点的初始值,提取子区域s中LU节点的位置pk,作为初始值。设k=0,表示第k次迭代;
     (1) 基于子区域目标函数f(pk),计算梯度向量f(pk)和修正后的Hesse矩阵2f(pk)
     (2) 计算搜索方向qkqk=2f(pk)1f(pk)
     (3) 更新子区域s中LU节点位置,其中,步长设置为单位步长:pk+1=pk+qk
     (4) 判断迭代终止条件。如果|f(pk+1)f(pk)|1+|f(pk)|<δ(δ是一个很小的正数,本文设置为δ=1e9)或迭代次数k>100,则终止迭代,pk+1即为
    子区域优化最终结果;否则令k=k+1,返回至第(1)步;
     输出:pk+1
    下载: 导出CSV 
    | 显示表格

    在对网络进行划分时,以每个LU节点为中心,使LU节点和与其直接相连的邻居节点为一个子区域,将WSN划分为若干个重叠的子区域。如图1所示,a, b, c分别代表3个LU节点,它们的通信半径均为r,以a, b, c为圆心,r为半径,每个虚线圆包含一个子区域。可以看出,节点c存在于3个不同的子区域中。子区域优化后,会有3个估计值,分别为c1, c2, c3。为了降低定位误差,对于同一个LU节点,取出重叠区域中的估计值,进行融合求平均,作为本次迭代最终LU节点估计值。图1c4表示最终估计值。融合求平均公式为

    图 1  融合求平均示意图
    表 3  本文算法和文献[1,2,9]算法在不同参数下实验结果对比
    参数设置时间ˉeˉrˉr
    Nrnf本文算法文献[1]文献[9]文献[2]本文算法文献[1]文献[9]文献[2]
    1000.40012.6 s15.1 s9.8 s2.6 s5.7e-40.05830.04896.5e-10
    1000.400.2032.0 s180.6 s27.8 s3.9 s0.01140.09420.07460.0107
    5000.15071.1 s132.1 s393.2 s92.7 s0.00110.01240.00254.0e-4
    5000.150.20176.9 s127.7 s986.3 s91.8 s0.00480.03250.01640.0072
    10000.110309.2 s348.7 s51.0 min*0.00150.00970.0026*
    10000.110.20522.5 s339.3 s2.4 h*0.00430.02490.0121*
    20000.070369.1 s760.5 s*0.00220.0209*
    20000.070.20576.2 s649.5 s*0.00550.0241*
    40000.050555.9 s23.1 min*0.00290.0266*
    40000.050.20840.3 s27.5 min*0.00620.0238*
    100000.03023.3 min1.1 h*0.00340.0172*
    100000.030.2031.6 min1.2 h*0.00640.0147*
    下载: 导出CSV 
    | 显示表格
    $$ {\bar{\text{v}}_i} = \frac{1}{{{L_i}}}\sum\limits_{s \in {M_i}} {{{\text{p}}_{s, i}}} {\rm{ , }}i = 1, 2, ·\!·\!· , m;{{ s = 1}}, {\rm{2}}, ·\!·\!· , {L_i} $ $ (22)

    其中,Li表示包含LU节点i的子区域个数;Mi表示包含LU节点i的所有子区域的集合;ps,i表示子区域s中LU节点i的估计值;ˉvi表示局部融合后LU节点i的估计值。这样做的优点是:每个子区域对LU节点的估计不需要太准确,即使某些子区域中的LU节点估计位置较差,也可以通过融合求平均的方式,对其进行改善,从而降低定位误差。

    基于上述分析,基于改进牛顿法的分布式定位算法总结如表2所示。

    表 2  基于改进牛顿法的分布式定位算法
     准备工作:将N个传感器随机部署在[0.5,0.5]2的单位正方形区域内,区域中有m个LU节点,n个LA节点,节点的通信半径均为r。根据 LU节点位置及与其直接相连的邻居节点,将WSN划分为m个重叠子区域,m个子区域可以进行分布式计算。设t=0
     输入:利用三边定位方法获得WSN中LU节点的粗略估计值˜v(t),作为基于单位步长改进牛顿法的初始值;
        (1) 利用表1中子区域定位算法,对m个子区域独立优化求解。得到每个子区域s(s=1,2,,m)中所有LU节点的估计位置p(t+1)s
        (2) 收集m个子区域中LU节点估计位置p(t+1)s(s=1,2,,m),对重叠子区域中的LU节点进行融合求平均,作为LU节点的估计位    置˜v(t+1)
        (3) 判断迭代终止条件。如果max˜v(t+1)i˜v(t)i2η(η是一个小的正数,本文设置为η=1e2), i=1,2,···,m,则终止迭代,˜v(t+1)    即为最终估计出的LU节点位置;否则将˜v(t+1)作为基于单位步长的改进牛顿法的初始值,设t=t+1并返回至(1)继续迭代;
     输出:˜v(t+1)
    下载: 导出CSV 
    | 显示表格

    本文采用基于单位步长的改进牛顿法对子区域进行优化求解,求解搜索方向2f(pk)1f(pk)的计算复杂度为O(N3i),其中Ni表示子区域i中的节点个数。由于本文算法是迭代算法且每个子区域中节点个数可能不同,设d=maxi{Ni}。因此,本文算法的计算复杂度为O(d 3mK),其中dm, m表示LU节点个数,K表示算法收敛的迭代次数;文献[1]算法的计算复杂度为O(mncK),其中nc表示网络连接度[1];文献[2]算法将2×m的变量转化为(m+2)×(m+2)的变量,很大程度上增加了计算复杂度,具体的计算复杂度与使用的求解算法有关。

    仿真实验中传感器节点随机分布在[0.5,0.5]2的单位正方形区域内。为了表明算法的鲁棒性,对于每次改变实验参数,都随机运行5次实验。为了观察算法整体的定位精度,本文采用与文献[1]相同的评价指标,平均定位误差(¯err)。

    $$ {\rm{{\overline{err}}}} = \frac{{\sum\limits_{i = 1}^m {{{\left\| {{{\text{v}}_i} - {{\tilde{\text{v}}}_i}} \right\|}_2}} }}{m} $ $ (23)

    其中,m表示LU节点的数量,vi表示LU节点i的真实位置,˜vi表示LU节点i的估计位置。本文仿真在3.6 GHz的Intel i7-7700处理器和8GB RAM的PC上运行,使用软件MATLAB R2016a编写代码。

    实验1 本次实验展示了锚节点数目对定位精度的影响。将500个传感器随机部署在[0.5,0.5]2的单位正方形区域内,r=0.15, nf=0.20。假设LA节点占总节点总数的比例为p, p取值范围是0.10~0.20。 图2展示了本文算法和文献[1]、文献[9]两种分布式算法对比结果。可以看出,随着锚节点数目增加,各个算法的定位精度都会得到提高。但本文算法的性能¯err在不同的锚节点比例下,明显优于另外两种算法。因此,本文算法可以用更少的锚节点数目,达到相似的定位效果,从而降低部署成本。

    图 2  不同p情况下的¯err

    实验2 本次实验展示了通信半径r对定位精度的影响。由于r与定位精度和传感器能耗有关。因此,选择合理的r很重要。将500个传感器随机部署在[0.5,0.5]2的单位正方形区域内,p=0.15, nf=0.20。本次实验r取值范围是0.13~0.17。由于r不同,子区域中的节点数目会发生变化,则定位精度也会发生变化。图3展示了本文算法和文献[1]、文献[9]两种分布式算法对比结果。可以看出,本文算法随着r的增加,定位精度得到提高,而且性能明显优于文献[1]和文献[9]的算法。因此,本文所提算法可以使用更短的通信半径,达到相似的定位效果,从而降低能耗,增加传感器的使用寿命。

    图 3  不同r情况下的¯err

    实验3 本次实验与文献[1,2,9]在不同的实验参数下,进行定位时间和定位精度对比,p=0.15。其中,文献[2]是集中式算法,文献[1]和文献[9]为分布式定位算法。由表3可以看出,在小规模网络(N500)中,当nf=0时,文献[2]提出的集中式算法有很短的运行时间和很高的定位精度。但在大规模网络(N1000)中,集中式算法便无法定位。而分布式算法能够用于大规模网络,具有良好的扩展性。在大规模网络中(N1000),文献[9]提出的算法运行时间很长,而本文算法和文献[1]算法运行时间明显低于文献[9]。当N4000时,本文算法的运行时间明显低于文献[1]所需时间。而且在不同的仿真参数下,本文算法的定位精度明显优于另外两种分布式算法。表3中,每个数据都是随机运行5次取平均所得。“—”表示由于所需时间过长,没有记录数据;“*”表示内存溢出,无法定位。综上所述,本文提出的算法能用于大规模网络,且能够在不同的参数设置下,使用较短的时间,更精确的定位。体现了本文算法定位精度,运行时间和扩展性的优势。

    本文针对大规模传感器网络中节点难以定位问题,提出了一种基于改进牛顿法的分布式定位算法。首先,将传感器区域划分为若干个重叠子区域,将每个子区域定位问题归结为一个无约束的优化问题。然后使用分布式算法估计子区域中LU节点的位置并进行局部融合。通过仿真实验表明,本文算法可以用于大规模传感器网络,有良好的扩展性。与现有分布式算法相比,在大规模网络中定位精度更高。但本文算法在局部融合之前需要每个子区域都优化完成。在实际情况中,子区域优化所需时间不同,会导致时间的浪费。后续工作将考虑异步分布式算法,在保证定位精度的同时,降低运行时间。

  • 图  1  融合求平均示意图

    图  2  不同p情况下的¯err

    图  3  不同r情况下的¯err

    表  1  子区域定位算法

     输入:使用三边定位方法,粗略获得LU节点的初始值,提取子区域s中LU节点的位置pk,作为初始值。设k=0,表示第k次迭代;
     (1) 基于子区域目标函数f(pk),计算梯度向量f(pk)和修正后的Hesse矩阵2f(pk)
     (2) 计算搜索方向qkqk=2f(pk)1f(pk)
     (3) 更新子区域s中LU节点位置,其中,步长设置为单位步长:pk+1=pk+qk
     (4) 判断迭代终止条件。如果|f(pk+1)f(pk)|1+|f(pk)|<δ(δ是一个很小的正数,本文设置为δ=1e9)或迭代次数k>100,则终止迭代,pk+1即为
    子区域优化最终结果;否则令k=k+1,返回至第(1)步;
     输出:pk+1
    下载: 导出CSV

    表  3  本文算法和文献[1,2,9]算法在不同参数下实验结果对比

    参数设置时间ˉeˉrˉr
    Nrnf本文算法文献[1]文献[9]文献[2]本文算法文献[1]文献[9]文献[2]
    1000.40012.6 s15.1 s9.8 s2.6 s5.7e-40.05830.04896.5e-10
    1000.400.2032.0 s180.6 s27.8 s3.9 s0.01140.09420.07460.0107
    5000.15071.1 s132.1 s393.2 s92.7 s0.00110.01240.00254.0e-4
    5000.150.20176.9 s127.7 s986.3 s91.8 s0.00480.03250.01640.0072
    10000.110309.2 s348.7 s51.0 min*0.00150.00970.0026*
    10000.110.20522.5 s339.3 s2.4 h*0.00430.02490.0121*
    20000.070369.1 s760.5 s*0.00220.0209*
    20000.070.20576.2 s649.5 s*0.00550.0241*
    40000.050555.9 s23.1 min*0.00290.0266*
    40000.050.20840.3 s27.5 min*0.00620.0238*
    100000.03023.3 min1.1 h*0.00340.0172*
    100000.030.2031.6 min1.2 h*0.00640.0147*
    下载: 导出CSV

    表  2  基于改进牛顿法的分布式定位算法

     准备工作:将N个传感器随机部署在[0.5,0.5]2的单位正方形区域内,区域中有m个LU节点,n个LA节点,节点的通信半径均为r。根据 LU节点位置及与其直接相连的邻居节点,将WSN划分为m个重叠子区域,m个子区域可以进行分布式计算。设t=0
     输入:利用三边定位方法获得WSN中LU节点的粗略估计值˜v(t),作为基于单位步长改进牛顿法的初始值;
        (1) 利用表1中子区域定位算法,对m个子区域独立优化求解。得到每个子区域s(s=1,2,,m)中所有LU节点的估计位置p(t+1)s
        (2) 收集m个子区域中LU节点估计位置p(t+1)s(s=1,2,,m),对重叠子区域中的LU节点进行融合求平均,作为LU节点的估计位    置˜v(t+1)
        (3) 判断迭代终止条件。如果max˜v(t+1)i˜v(t)i2η(η是一个小的正数,本文设置为η=1e2), i=1,2,···,m,则终止迭代,˜v(t+1)    即为最终估计出的LU节点位置;否则将˜v(t+1)作为基于单位步长的改进牛顿法的初始值,设t=t+1并返回至(1)继续迭代;
     输出:˜v(t+1)
    下载: 导出CSV
  • SRIRANGARAJAN S, TEWFIK A H, and LUO Zhiquan. Distributed sensor network localization using SOCP relaxation[J]. IEEE Transactions on Wireless Communications, 2008, 7(12): 4886–4895. doi: 10.1109/T-WC.2008.070241
    BISWAS P, LIANG T C, TOH K C, et al. Semidefinite programming approaches for sensor network localization with noisy distance measurements[J]. IEEE Transactions on Automation Science and Engineering, 2006, 3(4): 360–371. doi: 10.1109/TASE.2006.877401
    PATWARI N, ASH J N, KYPEROUNTAS S, et al. Locating the nodes: cooperative localization in wireless sensor networks[J]. IEEE Signal Processing Magazine, 2005, 22(4): 54–69. doi: 10.1109/MSP.2005.1458287
    VICENTE D, TOMIC S, BEKO M, et al. Performance analysis of a distributed algorithm for target localization in wireless sensor networks using hybrid measurements in a connection failure scenario[C]. 2017 International Young Engineers Forum, Almada, Portugal, 2017: 36–41. doi: 10.1109/YEF-ECE.2017.7935637.
    CHOWDHURY T J S, ELKIN C, DEVABHAKTUNI V, et al. Advances on localization techniques for wireless sensor networks: A survey[J]. Computer Networks, 2016, 110: 284–305. doi: 10.1016/j.comnet.2016.10.006
    SANYAL R, JAISWAL M, and CHAUDHURY K N. On a registration-based approach to sensor network localization[J]. IEEE Transactions on Signal Processing, 2017, 65(20): 5357–5367. doi: 10.1109/TSP.2017.2726990
    吕淑芳. 无线传感器网络节点定位研究综述[J]. 传感器与微系统, 2016, 35(5): 1–3. doi: 10.13873/J.1000-9787(2016)05-0001-03

    LÜ Shufang. Research review on wireless sensor networks node localization[J]. Transducer and Microsystem Technologies, 2016, 35(5): 1–3. doi: 10.13873/J.1000-9787(2016)05-0001-03
    WANG Zizhuo, ZHENG Song, YE Yinyu, et al. Further relaxations of the semidefinite programming approach to sensor network localization[J]. SIAM Journal on Optimization, 2008, 19(2): 655–673. doi: 10.1137/060669395
    SOARES C, XAVIER J, and GOMES J. Simple and fast convex relaxation method for cooperative localization in sensor networks using range measurements[J]. IEEE Transactions on Signal Processing, 2015, 63(17): 4532–4543. doi: 10.1109/TSP.2015.2454853
    BISWAS P, LIAN T C, WANG T C, et al. Semidefinite programming based algorithms for sensor network localization[J]. ACM Transactions on Sensor Networks, 2006, 2(2): 188–220. doi: 10.1145/1149283.1149286
    汪晗, 成昂轩, 王坤, 等. 无线传感器网络分布式迭代定位误差控制算法[J]. 电子与信息学报, 2018, 40(1): 72–78. doi: 10.11999/JEIT170344

    WANG Han, CHENG Angxuan, WANG Kun, et al. Error control algorithm of distributed localization in wireless sensor networks[J]. Journal of Electronics &Information Technology, 2018, 40(1): 72–78. doi: 10.11999/JEIT170344
    TOMIC S, BEKO M, DINIS R, et al. Cooperative localization in wireless sensor networks using combined measurements[C]. The 23rd Telecommunications Forum Telfor, Belgrade, Serbia, 2015: 488–491. doi: 10.1109/TELFOR.2015.7377513.
    CHANG Shengming, LI Youming, WANG Hui, et al. RSS based cooperative localization in wireless sensor networks via second-order cone relaxation[J]. IEEE Access, 2018, 6: 54097–54105. doi: 10.1109/ACCESS.2018.2871600
    王刚. 无线传感器网络中定位与跟踪算法的研究[D]. [博士论文], 西安电子科技大学, 2011.

    WANG Gang. Approaches to localization and tracking in wireless sensor networks[D]. [Ph.D. dissertation], Xidian University, 2011.
    段琼, 戴璟, 乔慧. 一种改进的牛顿法及其在欧式距离选址模型中的应用[J]. 物流技术, 2017, 36(8): 79–82. doi: 10.3969/j.issn.1005-152X.2017.08.019

    DUAN Qiong, DAI Jing, and QIAO Hui. An improved newton method and its application in Euclidean distance based location model[J]. Logistics Technology, 2017, 36(8): 79–82. doi: 10.3969/j.issn.1005-152X.2017.08.019
    蒋俊正. DFT调制滤波器组的设计算法研究[D]. [博士论文], 西安电子科技大学, 2011.

    JIANG Junzheng. Design algorithms of DFT modulated filter banks[D]. [Ph.D. dissertation], Xidian University, 2011.
  • 期刊类型引用(22)

    1. 段中兴,刘瑞兴,刘冲. 多策略改进麻雀搜索算法优化三维DV-Hop节点定位. 吉林大学学报(工学版). 2024(03): 771-784 . 百度学术
    2. 彭铎,陈江旭,张倩,吴海涛,王婵飞. 多策略改进的蜣螂搜索算法优化3DDV-Hop节点定位. 重庆邮电大学学报(自然科学版). 2024(03): 438-449 . 百度学术
    3. 李轶. 基于优化神经网络与聚类的加权定位算法. 信息技术. 2023(05): 13-18+24 . 百度学术
    4. 梁青云,宋岸峰,冯帆,张海鹏. 光纤传输网络衰耗节点定位方法. 激光杂志. 2023(07): 149-153 . 百度学术
    5. 程小辉,罗源敏,张攀峰,康燕萍. 基于麻雀搜索的WSN约束优化节点定位研究. 计算机仿真. 2023(11): 346-351 . 百度学术
    6. 贺军义,吴梦翔,宋成,张敏,张俊楠. 基于UWB的密集行人三维协同定位算法. 计算机应用研究. 2022(03): 790-796 . 百度学术
    7. 屈秉男,蒋平,赵鲁阳,李凤荣,王营冠. 基于短基线传感器阵列的炮弹被动测向算法. 航空学报. 2022(03): 400-414 . 百度学术
    8. 王建文,裴祥喜,崔炳德,王海晖. 一种物联网传感器故障节点检测方法设计. 计算机仿真. 2022(03): 354-357+480 . 百度学术
    9. 李昊,柏植,由佳,郝保明. 基于改进质心算法的无线传感器网络定位研究. 西安文理学院学报(自然科学版). 2022(03): 47-52 . 百度学术
    10. 付宁,沈孟垚,尉志良,乔立岩. 基于有限新息率的非瞬时扩散点源参数估计方法. 电子与信息学报. 2022(08): 2739-2748 . 本站查看
    11. 代天成. 一种参考节点不确定的无线传感器网络定位方法. 无线电工程. 2022(10): 1794-1802 . 百度学术
    12. 姜广坤,沈学刚. 虚拟仪器技术下光纤传感器故障损伤定位系统设计. 激光杂志. 2022(12): 122-127 . 百度学术
    13. 陈嘉兴,董怡靖,赵晓旭,刘志华,刘扬. 水下机器人协同控制的TO模型区域划分定位. 控制理论与应用. 2022(11): 2028-2035 . 百度学术
    14. 李浩铭,鄢社锋,徐立军,季飞. 基于射线声学的水下传感网络静默定位算法. 电子与信息学报. 2021(03): 781-787 . 本站查看
    15. 何崇林,孙子文. 多跳IWSN物理层安全的Stackelberg博弈. 信号处理. 2021(04): 578-587 . 百度学术
    16. 李庐. 计算机网络中脆弱节点快速定位方法的设计与实现. 绵阳师范学院学报. 2021(05): 90-94 . 百度学术
    17. 徐莎莎,周芳. 基于交替修正牛顿法的分布式传感器定位算法. 科学技术与工程. 2021(32): 13744-13752 . 百度学术
    18. 邵玉成,凌云志,孙昊. 无线传感网络分布控制汇聚协作节能算法. 电子产品世界. 2020(08): 59-64 . 百度学术
    19. 刘国辉. 基于DV-HOP的分布式无线传感器网络定位算法研究. 淮阴工学院学报. 2020(05): 23-26 . 百度学术
    20. 金玮. 舰船物联网分布式节点连通路径规划系统设计. 舰船科学技术. 2020(22): 202-204 . 百度学术
    21. 黄庆东,郭民鹏,石斌宇,袁润芝,李丽. 一种分布式WSN数据漂移盲校准算法. 西安邮电大学学报. 2020(03): 14-20 . 百度学术
    22. 席博,洪涛,张更新. 卫星物联网场景下基于节点选择的协作波束成形技术研究. 电子与信息学报. 2020(12): 2882-2890 . 本站查看

    其他类型引用(18)

  • 加载中
图(3) / 表(3)
计量
  • 文章访问数:  3271
  • HTML全文浏览量:  1783
  • PDF下载量:  159
  • 被引次数: 40
出版历程
  • 收稿日期:  2018-11-28
  • 修回日期:  2019-05-19
  • 网络出版日期:  2019-05-27
  • 刊出日期:  2019-12-01

目录

/

返回文章
返回