法律状态公告日
法律状态信息
法律状态
2019-04-12
授权
授权
2017-12-19
著录事项变更 IPC(主分类):H04W16/20 变更前: 变更后: 申请日:20160510
著录事项变更
2016-11-09
实质审查的生效 IPC(主分类):H04W16/20 申请日:20160510
实质审查的生效
2016-10-12
公开
公开
技术领域
本发明涉及移动无线传感网领域,尤其涉及一种具有移动信标节点的无线传感网节点定位方法。
背景技术
随着微电子机械系统、芯片系统和无线通信技术的发展,具有信息采集、数据处理、无线通信等功能的低功耗、有限资源和多功能传感节点获得快速发展。无线传感网(wireless sensor networks,WSNs)由大量的传感节点组成,是一个多跳自组织网络。WSNs可感知,收集和处理网络覆盖范围内传感节点的信息,并应用于军事、工业、家居、医疗、海洋等领域,特别是在自然灾害监测、预警、救援等紧急情况,其应用前景广阔。
在很多无线传感网的应用中,所有信息的收集需要传感节点的准确位置,因此,定位是WSNs的核心技术之一。目前,卫星定位系统如全球定位系统(global positioning system,GPS)和北斗定位系统,是一种户外可使用的定位系统。但是由于WSNs的节点能量有限,而且相关卫星定位模块工作电流需要几十毫安,其能耗相当于节点的无线通信能耗,在环境监测等需要长期监测的应用中,要求传感节点的能耗和成本都低,因此不一定所有传感节点都安装卫星定位模块。
在WSNs中,一些学者利用少量可获知自身位置的信标节点,研究监测区域中传感节点的定位算法,并取得一定的成果。如针对信标节点移动造成的分布不均衡,梅举等提出基于蒙特卡洛方法的移动传感网节点定位优化算法。该算法筛选出定位精度高的节点作为临时锚节点,协助其他节点定位,并通过待定位节点的蒙特卡洛盒和粒子滤波实现节点的精确定位。但是该算法没有利用信标节点的移动性这个关键特点。Huang R.等分析了SCAN、DOUBLE_SCAN、HIBERT等多种信标节点的移动路径,提出了圆形移动路径(CIRCLES),可减少共线性的停留点。Huang K.F.等将监控区域分成多个网格,提出一种信标节点的移动算法。未定位节点根据与信标节点通信的RSSI(received signal strength indication)值,采用三点定位方法计算自身的位置。Farmani M.等提出一种信标节点的修正HIBERT移动路径。该路径可提高未定位节点的定位精度。Rezazadeh J.等提出可辅助定位的移动信标节点高级路径规划机制(ZSCAN)。该移动路径可定位所有部署的传感节点。Han G.J.等提出基于三边测量的移动信标节点定位算法。在该算法中,信标节点沿着三角轨迹移动,并周期性广播当前的位置。所有传感节点根据信标节点的位置信息计算自身的位置。但以上学者研究的信标节点需要全覆盖整个监测区域,其移动路程较长,而且没有考虑传感节点的实际分布。当传感节点分布不均匀时,这些算法的部分移动路径周围没有传感节点,因此可进一步缩减其移动路径。刘克中等根据周围传感节点的信息,采用虚拟力理论计算信标节点的移动路径,提出一种信标节点的动态移动策略。Chang C.T.等假设已执行距离无关算法,所有传感节点获知自身误差较大的位置信息。根据每个静态传感节点的可估区域尺寸,提出信标节点的引导机制,构造可提高传感节点定位精度的移动信标节点高效路径。Li X.等提出动态信标节点的移动调度算法(dynamic beacon mobility scheduling,DBMS)。该算法只根据周围传感节点的RSS(received signal strength)信息,启发式选择下一个移动目标,并采用图论的深度优先遍历方法遍历所有传感节点。但是让信标节点移动到每个传感节点的周围,其移动路径也较长。
目前学者偏向于研究全覆盖监测区域或传感节点且可辅助定位的信标节点移动路径。但是在现实项目中,信标节点的移动能耗非常大而且其能量供应有限,不能支持较长时间的移动。同时网络启动后,需要尽快实现大多数传感节点的定位,从而快速提供节点位置信息,有利于系统其它算法的实现。
发明内容
为了克服当无线传感网中移动信标节点的最大移动距离有限时传感节点的定位误差较大的不足,本发明提供一种可提高信标节点的停留位置个数和传感节点的平均定位锚点个数、降低平均节点定位误差的具有移动信标节点的无线传感网节点定位方法。
本发明解决其技术问题所采用的技术方案是:
一种具有移动信标的无线传感网节点定位方法,包括信标节点的辅助定位过程和传感节点的位置计算过程,
所述信标节点的辅助定位过程如下:
1.1)程序初始化:初始化传感节点的引力系数xw,信标节点的最大移动距离dth,当前移动距离d1=0;
1.2)将监控区域划分成多个六边形网格,选择邻居停留位置集合约束、不重复选择约束、非共线性约束和移动距离约束,建立节点定位误差最小的优化模型;
1.3)通过北斗定位模块获取自身的经纬度,转化成地球位置坐标后,记录初始停留位置集合Py={p1},并广播自身的位置信息包;
1.4)执行2次以下操作:随机选择未停留过的邻居停留位置,更新位置集合Py,移动到该停留位置上,计算其移动距离并累加到当前移动距离d1,通过北斗定位模块获取自身位置坐标,广播其位置信息包;
1.5)直接接收或通过已定位传感节点接收周围未定位传感节点的位置信息包,分析信息的有效性,并添加到未定位传感节点的估计位置信息表中;
1.6)从当前停留位置的可选停留位置集合Ng中,删除已停留的位置和与最近2个停留位置在同一条直线上的位置,获得更新可选位置集合N′g,如果集合N′g是空集,则信标节点沿着所选路径逆向移动,直到找到不为空的集合N′g;根据估计位置信息表中传感节点位置,计算虚拟引力,计算所有虚拟力的合力与当前停留位置到集合N′g中每一个位置的夹角δ,选择使夹角最小的邻居停留位置作为下一个停留位置,更新位置集合Py;
1.7)移动到该邻居停留位置上,计算其移动距离并累加到当前移动距离d1;通过北斗定位模块获取自身位置坐标,广播其位置信息包;如果接收到已定位传感节点的信息包,删除未定位传感节点的估计位置信息表中该传感节点信息;
1.8)如果d1≤dth,则跳到步骤1.5),否则结束移动,完成定位。
所述传感节点的位置计算过程如下:
2.1)程序初始化:将自身定义为未定位传感节点且通信范围内存在其他未定位传感节点,即Lflag=0,Nflag=0,其中Lflag表示传感节点是否完成定位的标志符,Nflag表示通信范围内是否存在未定位传感节点的标志符;
2.2)判断Lflag是否为0,如果不是0,则跳到步骤2.5);如果接收到位置信息包,则判断该信息包的来源,如果是邻居传感节点的位置信息包,则接收该信息包,获取传感节点ID、位置坐标、链路RSSI值信息,并分析信息有效性,如果有效,则将该信息添加到邻居传感节点的位置信息表中;如果是信标节点的位置信息包,则接收该信息包,获取信标节点ID、位置坐标、链路RSSI值信息,并分析信息有效性,如果有效,则将该信息添加到信标节点的位置信息表中;
2.3)判断信标节点的位置信息表中不在同一条直线上的位置个数是否大于2,如果大于2个,则根据RSSI值计算到每一个位置的距离,采用极大似然估计算法计算自身的位置坐标标志为已定位传感节点,即Lflag=1,并通知信标节点,返回步骤2.2);
2.4)如果信标节点的位置信息表中不在同一条直线上的位置个数小于2个,则从邻居传感节点的位置信息表中选择RSSI值较高且与信标节点位置信息表中不在同一条直线上的位置信息,获得3个以上不同位置信息,采用极大似然估计算法计算自身的位置坐标当信标节点出现在其通信范围内或者出现在其邻居已定位传感节点的通信范围内,则直接或通过该邻居传感节点发送给信标节点,跳到步骤2.2);
2.5)只接收信标节点的位置信息包,更新自身的位置;判断标志符Nflag是否为1,如果是0,则并向未定位传感节点广播自身的位置信息包,接收未定位传感节点的反馈信息,否则跳到步骤2.2);如果接收到未定位传感节点的反馈包,跳到步骤2.2),否则Nflag=1,跳到步骤2.2)。
进一步,所述步骤1.2)中,优化模型建立方法包括如下步骤:
1.2.1)将监控区域划分成大小一致的n×m个六边形网格,其中m表示监测区域内第一列网格的数量,n表示监测区域内网格的列数且为奇数,m和n根据监测区域边长取值,是经验值。对矩形监测区域内所有顶点进行编号,当信标节点的停留位置为网格中心时,选择下一个停留位置集合为
其中,pg表示信标节点停留的位置,Ng表示当前停留位置pg的可选下一个停留位置集合,p(i,j)表示六边形网格grid(i,j)的中心位置;当信标节点的停留位置为顶点时,选择下一个停留位置集合为
1.2.2)选择邻居停留位置集合约束为
pg+1∈Ng,g=1,2,...,Np-1>g是一个1×3的向量[k1>2>3],向量的第一个元素k1表示停留位置的列数,第二个元素k2表示停留位置的行数,第三个元素k3表示停留位置的类型,取值0,1,Np表示信标节点经过的停留位置数量;如果k3=0,则表示该元素是六边形网格中心p(k1,k2),否则表示该元素为顶点ding(k1,k2);
1.2.3)选择不重复选择约束为
1.2.4)选择非共线性约束为
其中,表示集合P中连续三个停留位置pg,pg+1,pg+2是否在同一条直线上的标识符,表示该三个停留位置在同一条直线上,否则表示不在同一条直线上;
1.2.5)选择移动距离约束为
其中,dth表示信标节点的最大移动距离;
1.2.6)根据邻居停留位置集合约束、不重复选择约束、非共线性约束和移动距离约束,建立传感节点定位误差最小的优化模型(7);
min(error(P)) (7)
s.t.pg+1∈Ng,g=1,2,...,Np-1
其中,error(P)表示信标节点沿着路径P移动时,传感节点获知自身位置与真实位置的误差平均值。
再进一步,所述步骤1.6)中,所述下一个停留位置选择方法包括如下步骤:
1.6.1)信标节点接收未定位传感节点的估计位置信息,更新其估计位置信息表,并计算该信息表中未定位传感节点对信标节点的虚拟引力;
1.6.2)分析当前停留位置的下一个停留位置集合Ng,从该集合中删除已停留的位置,使选择路径符合不重复选择约束(4);分析剩余位置元素,删除与最近2个停留位置在同一条直线上的位置,使选择路径符合非共线性约束(5),获得更新位置集合N′g;如果位置集合N′g是空集,说明集合Ng中所有元素都不符合约束(4)和(5),则路径选择进入死胡同,信标节点沿着所选路径逆向移动,直到找到不为空的更新位置集合N′g;根据位置集合N′g,获得当前停留位置到该集合中每个停留位置的距离向量,并分别计算与合力的夹角δ;
1.6.3)选择使夹角δ最小的停留位置作为信标节点的下一个停留位置,使选择路径符合邻居停留位置集合约束(3)。
所述步骤2.3)中,极大似然估计算法的实现步骤如下:
2.3.1)未定位传感节点获知3个以上不在同一条直线上的位置坐标和到各个位置的距离,根据RSSI值计算自身到所有位置的距离分别是d1、d2、d3……dn,其中,n表示位置个数;
2.3.2)求解式(11)获得自身位置坐标;
其中,(xR,yR)表示输出的自身横坐标和纵坐标,(x1,y1),(x2,y2)……(xn,yn)表示位置坐标。
本发明的技术构思为:本发明将监控区域划分成大小一致的n×m个六边形网格,选择信标节点的邻居停留位置集合约束、不重复选择约束、非共线性约束和移动距离约束,建立节点定位误差最小的优化模型。信标节点采用基于虚拟力理论的启发式方法近似求解优化模型,获得一条适合当前节点分布的移动路径。未定位传感节点根据信标节点或已定位传感节点位置,采用极大似然估计算法计算自身位置坐标。
本发明的有益效果主要表现在:本发明中信标节点采用基于虚拟力理论的启发式方法近似求解优化模型,从而寻找到符合当前传感节点分布的移动路径。当最大移动距离有限时,本发明提高了信标节点的停留位置个数和传感节点的平均定位锚点个数,保持较高的移动路径覆盖范围,从而降低了平均节点定位误差,提高了节点定位精度,有一定的应用价值。
附图说明
图1是本发明的原理框图。
图2是本发明的信标节点工作流程图。
图3是本发明的传感节点工作流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图3,一种具有移动信标节点的无线传感网节点定位方法,包括信标节点的辅助定位过程和传感节点的位置计算过程。
参照图1,本发明包括至少10个以上且需要部署时自身位置未知的静止传感节点2和至少1个可移动的信标节点1。信标节点1安装GPS或北斗卫星定位模块,可获知自身的位置坐标。传感节点2随机分布在矩形监测区域内。信标节点1辅助定位传感节点,利用精度较高的传感节点辅助定位信标节点未定位的其他传感节点。信标节点1将监测区域划分成大小一致的n×m个六边型网格,并根据从左到右,从上到下的原则对每一个六边型网格进行编码。如grid(i,j)表示在左开始计数的第i列中,从下到上计数的第j个六边型网格。信标节点1停留在初始网格中心,从自身所在网格顶点中选择一个未停留过的顶点移动,并在该顶点上停留一段时间发送自身的位置信息后,移动到具有该顶点且未停留过的网格中心。同时由于相邻三个位置点不能在同一条直线上,因此在选择停留位置时,需要删去与前面两个位置在同一条直线上的位置。信标节点不停移动和发送自身位置信息,直到其移动距离达到最大移动距离。传感节点接收3个以上不同信标节点位置的信息,收集通信时的RSSI值,采用Kalman滤波器降低通信噪声,采用极大似然估计算法计算自身位置坐标,并标记为已定位传感节点,广播自身的位置坐标。未被信标节点定位的传感节点根据周围已定位传感节点和信标节点坐标,计算自身位置。
参照图2,所述信标节点的辅助定位过程包括如下步骤:
1.1)程序初始化:初始化传感节点的引力系数xw,信标节点的最大移动距离dth,当前移动距离d1=0。
1.2)将监控区域划分成大小一致的n×m个六边形网格,其中,m表示监测区域内第一列网格的数量,n表示监测区域内网格的列数且为奇数,m和n根据监测区域边长取值,是经验值。选择邻居停留位置集合约束、不重复选择约束、非共线性约束和移动距离约束,建立节点定位误差最小的优化模型;本步骤的具体优选实施方法如下:
1.2.1)参照图1,将监控区域划分成大小一致的n×m个六边形网格,对矩形监测区域内所有顶点进行编号,如ding(i,j)表示在左开始计数的第i列中,从下到上计数的第j个顶点;当信标节点的停留位置为网格中心时,选择下一个停留位置集合为
其中,pg表示信标节点停留的位置,Ng表示当前停留位置pg的可选下一个停留位置集合,p(i,j)表示六边形网格grid(i,j)的中心位置;当信标节点的停留位置为顶点时,选择下一个停留位置集合为
1.2.2)选择邻居停留位置集合约束为
pg+1∈Ng,g=1,2,...,Np-1>
其中,信标节点移动的路径,即经过的停留位置集合为信标节点停留的位置pg是一个1×3的向量[k1>2>3],向量的第一个元素k1表示停留位置的列数,第二个元素k2表示停留位置的行数,第三个元素k3表示停留位置的类型,取值0,1,Np表示信标节点经过的停留位置数量;如果k3=0,则表示该元素是六边形网格中心p(k1,k2),否则表示该元素为顶点ding(k1,k2);
1.2.3)选择不重复选择约束为
其中,该约束要求信标节点不在同一个停留位置上停留二次以上;
1.2.4)选择非共线性约束为
其中,表示集合P中连续三个停留位置pg,pg+1,pg+2是否在同一条直线上的标识符,表示该三个停留位置在同一条直线上,否则表示不在同一条直线上;该约束要求信标节点不能沿着直线连续移动,即连续3个停留位置不在同一个直线上;
1.2.5)选择移动距离约束为
其中,dth表示信标节点的最大移动距离;
1.2.6)根据邻居停留位置集合约束、不重复选择约束、非共线性约束和移动距离约束,建立传感节点定位误差最小的优化模型(7);
min(error(P)) (7)
s.t.pg+1∈Ng,g=1,2,...,Np-1
其中,error(P)表示信标节点沿着路径P移动时,传感节点获知自身位置与真实位置的误差平均值;
1.3)通过北斗定位模块获取自身的经纬度,转化成地球位置坐标后,记录初始停留位置集合Py={p1},并广播自身的位置信息包;
1.4)执行2次以下操作:随机选择未停留过的邻居停留位置,更新位置集合Py,移动到该停留位置上,计算其移动距离并累加到当前移动距离d1,通过北斗定位模块获取自身位置坐标,广播其位置信息包;
1.5)直接接收或通过已定位传感节点接收周围未定位传感节点的位置信息包,分析信息的有效性,并添加到未定位传感节点的估计位置信息表中;
1.6)从当前停留位置的可选停留位置集合Ng中,删除已停留的位置和与最近2个停留位置在同一条直线上的位置,获得更新可选位置集合N′g,如果集合N′g是空集,则信标节点沿着所选路径逆向移动,直到找到不为空的集合N′g;根据估计位置信息表中传感节点位置,计算虚拟引力,计算所有虚拟力的合力与当前停留位置到集合N′g中每一个位置的夹角δ;选择使夹角最小的邻居停留位置作为下一个停留位置,更新位置集合Py;本步骤的下一个停留位置选择方法如下:
1.6.1)信标节点接收未定位传感节点的估计位置信息,更新其估计位置信息表,并计算该信息表中未定位传感节点对信标节点的虚拟引力;
其中,表示传感节点w对信标节点的虚拟引力,xw表示传感节点的引力系数,表示信标节点到传感节点w的有向距离向量,表示距离向量的模,即距离值;根据未定位传感节点的虚拟引力,计算所有虚拟引力的合力
1.6.2)分析当前停留位置的下一个停留位置集合Ng,从该集合中删除已停留的位置,使选择路径符合不重复选择约束(4);分析剩余位置元素,删除与最近2个停留位置在同一条直线上的位置,使选择路径符合非共线性约束(5),获得更新位置集合N′g,如果位置集合N′g是空集,说明集合Ng中所有元素都不符合约束(4)和(5),则路径选择进入死胡同,信标节点沿着所选路径逆向移动,直到找到不为空的更新位置集合N′g;根据位置集合N′g,获得当前停留位置到该集合中每个停留位置的距离向量,并分别计算与合力的夹角δ;
其中,acos()表示反余弦函数,表示从信标节点的当前停留位置到下一个停留位置pv的距离向量,表示向量的大小;
1.6.3)选择使夹角δ最小的停留位置作为信标节点的下一个停留位置,使选择路径符合邻居停留位置集合约束(3)。
1.7)移动到该邻居停留位置上,计算其移动距离并累加到当前移动距离d1;通过北斗定位模块获取自身位置坐标,广播其位置信息包,如果接收到已定位传感节点的信息包,删除未定位传感节点的估计位置信息表中该传感节点信息;
1.8)如果d1≤dth,则跳到步骤1.5),否则结束移动,完成定位。
参照图2,所述传感节点的位置计算过程包括如下步骤:
2.1)程序初始化:将自身定义为未定位传感节点且通信范围内存在其他未定位传感节点,即Lflag=0,Nflag=0,其中Lflag表示传感节点是否完成定位的标志符,Nflag表示通信范围内是否存在未定位传感节点的标志符;
2.2)判断Lflag是否为0,如果不是0,则跳到步骤2.5);如果接收到位置信息包,则判断该信息包的来源,如果是邻居传感节点的位置信息包,则接收该信息包,获取传感节点ID、位置坐标、链路RSSI值信息,并分析信息有效性,如果有效,则将该信息添加到邻居传感节点的位置信息表中;如果是信标节点的位置信息包,则接收该信息包,获取信标节点ID、位置坐标、链路RSSI值信息,并分析信息有效性,如果有效,则将该信息添加到信标节点的位置信息表中;
2.3)判断信标节点的位置信息表中不在同一条直线上的位置个数是否大于2。如果大于2个,则根据RSSI值计算到每一个位置的距离,采用极大似然估计算法计算自身的位置坐标标志为已定位传感节点,即Lflag=1,并通知信标节点,返回步骤2.2);本步骤的极大似然估计算法的实现步骤如下:
2.3.1)未定位传感节点获知3个以上不在同一条直线上的位置坐标和到各个位置的距离,根据RSSI值计算自身到所有位置的距离分别是d1、d2、d3……dn,其中,n表示位置个数;
2.3.2)求解式(11)获得自身位置坐标;
其中,(xR,yR)表示输出的自身横坐标和纵坐标,(x1,y1),(x2,y2)……(xn,yn)表示位置坐标;
2.4)如果信标节点的位置信息表中不在同一条直线上的位置个数小于2个,则从邻居传感节点的位置信息表中选择RSSI值较高且与信标节点位置信息表中不在同一条直线上的位置信息,获得3个以上不同位置信息,采用极大似然估计算法计算自身的位置坐标当信标节点出现在其通信范围内或者出现在其邻居已定位传感节点的通信范围内,则直接或通过该邻居传感节点发送给信标节点。跳到步骤2.2);
2.5)只接收信标节点的位置信息包,更新自身的位置;判断标志符Nflag是否为1,如果是0,则并向未定位传感节点广播自身的位置信息包,接收未定位传感节点的反馈信息,否则跳到步骤2.2);如果接收到未定位传感节点的反馈包,跳到步骤2.2),否则Nflag=1,跳到步骤2.2)。
机译: 一种具有第一通信协议的无线电接入网络,一种用于在移动无线电网络中的第一节点与移动无线电网络中的节点陌生人之间交换特定的传输信息的方法
机译: 基于所感测的信标无线电节点的移动,选择性地使用信标无线电节点的位置来确定用户设备的位置
机译: 第一和第二接入网节点执行的方法以及用于定位无线通信设备的定位节点执行的方法,第一和第二接入网节点以及用于执行定位无线通信设备的方法的定位节点