一种基于最小二乘法和MDS的自组网节点定位方法与流程

文档序号:26499753发布日期:2021-09-04 01:55阅读:316来源:国知局
一种基于最小二乘法和MDS的自组网节点定位方法与流程
一种基于最小二乘法和mds的自组网节点定位方法
技术领域
1.本发明属于无线网络通信领域,尤其涉及一种自组网节点的定位方法。


背景技术:

2.无线自组网的许多应用场景都要求获取节点的坐标信息,因此自组网节点的定位方法是自组网研究的重要课题之一。在定位算法中自组网节点被划分为锚节点和未知节点,锚节点是能够使用全球定位系统(global positioning system,gps)等位置辅助设备获得坐标的节点,未知节点是暂时未知坐标的节点。
3.目前自组网定位算法可以分为基于测距的定位算法和基于非测距的定位算法。mds

map定位算法是一种基于多维尺度(multidimensional scaling,mds)的非测距的定位算法,该算法可以根据节点之间的距离生成相对坐标矩阵,再根据锚节点将相对坐标转换为绝对坐标。但是该算法由于使用最短路径法估计节点之间的距离,因此在不规则的网络中的定位误差较大。最小二乘定位算法是一种基于测距的定位算法,该算法根据三个以上已知坐标的锚节点求出未知节点的坐标,但是位于锚节点分布较少区域的未知节点是无法定位的。


技术实现要素:

4.本发明公开的一种基于最小二乘法和mds的自组网节点定位方法,提供了一种在已知一部分锚节点坐标的情况下,在不规则形状的网络中,能获得自组网中所有节点的低误差坐标的节点定位方法。可应用于军事战场和灾区应急通信等领域中,解决了在不规则形状网络中获取网络节点坐标误差高的问题。
5.本发明目的是通过下述技术方案实现的:
6.首先找出一个在单跳连接的情况下,每两个节点之间都是连通的节点集合。对该节点集合使用mds

map定位算法完成定位,获取该节点集合中所有节点的相对坐标。使用最小二乘法,根据已知坐标的节点,逐个定位该节点集合外的节点,直至集合外节点的数量为0。最后将所有节点的相对坐标转换为绝对坐标。
7.本发明公开的一种基于最小二乘法和mds的自组网节点定位方法,包括以下步骤:
8.步骤一:锚节点获取坐标
9.如果锚节点的数量小于3个,则无法完成定位算法,跳转到算法结束。如果锚节点的数量大于等于3个,令锚节点通过gps等设备获取实际坐标,
10.步骤二:构建邻接矩阵
11.如果节点j是节点i的邻居,令n(i,j)=1,否则节点j不是节点i的邻居,令n(i,j)=0。构造一个大小为n
×
n的邻接矩阵n。
12.步骤三:找到互为邻居的节点集合
13.在整个网络中找到一个节点集合,该节点集合是一个完全图,其中每两个节点均互为邻居。
14.(1)初始化一个节点集合v
in
为网络所有节点,再初始化另一个空的节点集合v
out

15.(2)找到邻居节点最少的节点,也就是在邻接矩阵中1最少0最多的节点,然后删除矩阵n中该节点所在的一行和一列。在v
in
中删除该节点,并把该节点添加入v
out
内。
16.(3)检查新矩阵是否为全1矩阵,如果是,退出循环进入(4);否则,回到(2)继续循环。
17.(4)可以得到一个全1矩阵n。此时,集合v
in
是与矩阵n的行(或列)相对应的所有节点,集合v
out
为节点集合外部的所有节点。如果整个网络中的节点集为v,则v=v
in
+v
out
,设v为全集,那么v
in
与v
out
互为补集。
18.(5)如果集合v
in
内的节点个数小于3,则无法继续定位,退出算法。如果集合v
in
内的节点个数大于等于3,则继续下一步。
19.步骤四:使用mds计算相对坐标
20.通过测量接收信号强度得到集合v
in
中所有节点之间的欧式距离,使用mds计算集合v
in
中节点的相对坐标。mds的流程如下所示。
21.假设第i个节点的坐标是(x
i
,y
i
),d
ij
表示节点i与节点j之间的距离。
22.距离平方矩阵d2为
[0023][0024]
中心矩阵j为
[0025][0026]
其中,e为n阶单位矩阵,i为1
×
n维全1矩阵。
[0027]
对距离的平方矩阵去中心化
[0028][0029]
对矩阵b特征值分解
[0030][0031]
可以求出相对位置矩阵x
[0032][0033]
步骤五:用最小二乘法定位
[0034]
在集合v
out
中找到一个节点v,该节点需要满足在集合v
in
中至少有三个节点是该节点的邻居并且邻居数是最多的。如果集合v
in
中的节点是v1,v2,

,v
m
,则节点v的邻居节点都是已知的。因为已知集合v
in
中所有节点的相对坐标,所以可以通过最小二乘法来计算节点v的相对坐标。将满足这个条件的节点按照v
in
内邻居数量排列,优先计算邻居数量多的节点。
[0035]
最小二乘法的计算如下:
[0036]
假设集合v
in
中节点v1,v2,

,v
m
的坐标是(x1,y1),(x2,y2),...(x
m
,y
m
),待定位节点v与节点集合中所有节点的距离为d1,d2,...,d
m
,节点v的坐标为
[0037]
x=(a
t
a)
‑1a
t
b
ꢀꢀ
(6)
[0038]
其中,矩阵a为
[0039][0040]
矩阵b为
[0041][0042]
在获得节点v的相对坐标之后,将节点v添加到集合v
in
中,并将v从集合v
out
中删除。如果v在v
in
内邻居数量小于3,则无法继续定位,将v标记为无法定位的节点之后也从集合v
out
中删除。
[0043]
步骤六:将相对坐标转换为绝对坐标
[0044]
重复第五步,直到集合v
out
为空,此时集合v
in
包含所有已定位节点,并知道了每个节点的相对坐标最后,根据同时已知的绝对坐标和相对坐标的锚节点计算坐标系变换的因子,将每个节点的相对坐标转换为绝对坐标如果锚节点没有被集合v
in
所包含,那么就没有对应的相对坐标,在最后转换的时候不能将该锚节点的绝对坐标计算在内。
[0045]
有益效果:
[0046]
1、本发明公开的一种基于最小二乘法和mds的自组网节点定位方法,使用mds找到一个互为邻居的节点集合中所有节点的相对坐标,在不规则形状的网络中本方法能够明显降低定位误差。
[0047]
2、本发明公开的一种基于最小二乘法和mds的自组网节点定位方法,不需要给所有节点装备gps等位置辅助装置,仅需要将一部分节点作为锚节点,成本更低,功耗更低,适应性更强。
[0048]
3、本发明公开的一种基于最小二乘法和mds的自组网节点定位方法,采用了最小二乘法,能够利用多个已知坐标节点与未知节点之间的距离,降低了未知节点的定位误差,减小了已定位节点的定位误差对于未知节点定位的负面影响。
[0049]
4、本发明公开的一种基于最小二乘法和mds的自组网节点定位方法,锚节点坐标
仅用于将相对坐标转换为绝对坐标,降低了方法对于锚节点分布位置的依赖程度,对于不同环境的适应性更强。
附图说明
[0050]
图1是本发明的流程图;
[0051]
图2是本实例中节点数量为300时节点分布图。
[0052]
图3是本实例中本发明方法与mds

map定位算法定位误差的对比。
[0053]
图4是本实例中本发明方法与最小二乘定位算法已定位节点比例的对比。
具体实施方式
[0054]
下面将结合附图和实施例对本发明加以详细说明。同时也叙述了本发明技术方案解决的技术问题及有益效果,需要指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
[0055]
本实施例的应用背景为应急通信的自组网,该网络可以通过接收信号强度测量距离,其中一部分节点是锚节点,已经通过gps等设备获取了坐标,采用本发明获取未知坐标节点的位置。
[0056]
本实施例的仿真参数如下:节点坐标是随机生成的,节点数量取100到1000共10种情况,锚节点数量为节点数量的20%,节点的通信半径为200m。其中,节点分布区域的形状为u型,外部边界正方形的边长为1000m,空洞下界坐标为y=300,空洞左界坐标为x=300,空洞右界坐标为x=700。如图2所示是节点数量为300时的节点分布图。
[0057]
本实施例公开一种基于最小二乘法和mds的自组网节点定位方法,包括以下步骤:
[0058]
步骤一:锚节点获取坐标
[0059]
如果锚节点的数量小于3个,则无法完成定位算法,跳转到算法结束。如果锚节点的数量大于等于3个,令锚节点通过gps等设备获取实际坐标,
[0060]
步骤二:构建邻接矩阵
[0061]
如果节点j是节点i的邻居,令n(i,j)=1,否则节点j不是节点i的邻居,令n(i,j)=0。构造一个大小为n
×
n的邻接矩阵n。
[0062]
步骤三:找到互为邻居的节点集合
[0063]
在整个网络中找到一个节点集合,该节点集合是一个完全图,其中每两个节点均互为邻居。
[0064]
(1)初始化一个节点集合v
in
为网络所有节点,再初始化另一个空的节点集合v
out

[0065]
(2)找到邻居节点最少的节点,也就是在邻接矩阵中1最少0最多的节点,然后删除矩阵n中该节点所在的一行和一列。在v
in
中删除该节点,并把该节点添加入v
out
内。
[0066]
(3)检查新矩阵是否为全1矩阵,如果是,退出循环进入(4);否则,回到(2)继续循环。
[0067]
(4)可以得到一个全1矩阵n。此时,集合v
in
是与矩阵n的行(或列)相对应的所有节点,集合v
out
为节点集合外部的所有节点。如果整个网络中的节点集为v,则v=v
in
+v
out
,设v为全集,那么v
in
与v
out
互为补集。
[0068]
(5)如果集合v
in
内的节点个数小于3,则无法继续定位,退出算法。如果集合v
in

的节点个数大于等于3,则继续下一步。
[0069]
步骤四:使用mds计算相对坐标
[0070]
通过测量接收信号强度得到集合v
in
中所有节点之间的欧式距离,使用mds计算集合v
in
中节点的相对坐标。mds的流程如下所示。
[0071]
假设第i个节点的坐标是(x
i
,y
i
),d
ij
表示节点i与节点j之间的距离。
[0072]
距离平方矩阵d2为
[0073][0074]
中心矩阵j为
[0075][0076]
其中,e为n阶单位矩阵,i为1
×
n维全1矩阵。
[0077]
对距离的平方矩阵去中心化
[0078][0079]
对矩阵b特征值分解
[0080][0081]
可以求出相对位置矩阵x
[0082][0083]
步骤五:用最小二乘法定位
[0084]
在集合v
out
中找到一个节点v,该节点需要满足在集合v
in
中至少有三个节点是该节点的邻居并且邻居数是最多的。如果集合v
in
中的节点是v1,v2,

,v
m
,则节点v的邻居节点都是已知的。因为已知集合v
in
中所有节点的相对坐标,所以可以通过最小二乘法来计算节点v的相对坐标。将满足这个条件的节点按照v
in
内邻居数量排列,优先计算邻居数量多的节点。
[0085]
最小二乘法的计算如下:
[0086]
假设集合v
in
中节点v1,v2,

,v
m
的坐标是(x1,y1),(x2,y2),

(x
m
,y
m
),待定位节点v与节点集合中所有节点的距离为d1,d2,

,d
m
,节点v的坐标为
[0087]
x=(a
t
a)
‑1a
t
b
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0088]
其中,矩阵a为
[0089][0090]
矩阵b为
[0091][0092]
在获得节点v的相对坐标之后,将节点v添加到集合v
in
中,并将v从集合v
out
中删除。如果v在v
in
内邻居数量小于3,则无法继续定位,将v标记为无法定位的节点之后也从集合v
out
中删除。
[0093]
步骤六:将相对坐标转换为绝对坐标
[0094]
重复第五步,直到集合v
out
为空,此时集合v
in
包含所有已定位节点,并知道了每个节点的相对坐标最后,根据同时已知的绝对坐标和相对坐标的锚节点计算坐标系变换的因子,将每个节点的相对坐标转换为绝对坐标如果锚节点没有被集合v
in
所包含,那么就没有对应的相对坐标,在最后转换的时候不能将该锚节点的绝对坐标计算在内。
[0095]
如图3所示是选取了节点数量从100到1000的10种情况下mds

map定位算法和本发明方法的定位误差比较图,其中,星号表示mds

map定位算法,圆圈表示本发明方法,定位误差定义为每个节点的平均定位误差距离除以传输距离。在本实例中,相比于mds

map定位算法,本发明方法在10种情况下的定位误差平均减少了77.03%。因此本发明方法在不规则形状的网络中定位误差更低。
[0096]
如图4所示是选取了节点数量从100到1000的10种情况下最小二乘定位算法和本发明方法的已定位节点比例比较图,其中,三角形表示最小二乘定位算法,圆圈表示本发明方法,已定位节点比例定义为已定位节点数量除以未知节点数量。在本实例中,相比于最小二乘定位算法,本发明方法在节点数量为100的情况下已定位节点比例增加了42.05%。因此本发明方法对于锚节点的依赖程度较低。
[0097]
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1