本发明涉及磁场导航,尤其涉及一种基于多地磁要素检测的定位方法。
背景技术:
海洋拥有丰富的生物、矿物、能源、化学等资源,目前主要使用水下潜航器等设备进行水下探测、海洋资源的勘探和开发、海洋救援和打捞等任务。因此水下潜航器成为世界海洋大国的发展热点。由于受到尺寸、重量、功耗等方面的闲置,在水下潜航器上实现高精度、长时间的导航是非常困难的。目前的导航技术比如声学系统、gps、惯性导航等,由于隐蔽性差、误差较高等缺点,不能满足时长和精度的要求,地磁导航技术成为解决问题的一种途径。
地磁导航具有无源,自主,功耗低,抗干扰能力强、无积累误差和精度适中的优点,特别是在水下导航中,有广阔的应用前景。目前已知的地磁导航方法中,主要采用通过磁场总量单地磁要素和地磁图进行匹配的方法,此种方法由于磁场检测精度、地磁图精度和外部磁场干扰的影响,精度不高。单地磁要素匹配精度、稳定性也要小于多地磁要素匹配。
因此,如果实现一种基于多特征量的地磁匹配的定位方法刻不容缓。
技术实现要素:
为了解决现有技术中的问题,本发明提供了一种基于多地磁要素检测的定位方法。
本发明提供了一种基于多地磁要素检测的定位方法,包括以下步骤:
s1、检测地磁总量、水平分量和垂直分量数据;先利用地磁总量数据,由人工鱼群算法在地磁图上进行搜索,通过人工鱼群算法与地磁图匹配,人工鱼群聚集在真实轨迹的附近;
s2、再从人工鱼群中提取若干条人工鱼将对应的轨迹输入到水平分量,并以hausdorff距离作为评估标准进行评估;
s3、再次从所述轨迹中提取评估最优的前若干条轨迹,进一步缩小轨迹范围;
s4、最后将最优的前若干条轨迹输入到垂直分量中,由hausdorff评估算法对最优的前若干条轨迹进行评估,输出最优的一条轨迹即为真实的轨迹,从而实现定位导航。
作为本发明的进一步改进,步骤s1包括以下子步骤:
s11、采集惯导航迹[xikyik]t、真实航迹[xrkyrk]t和地磁测量序列,i、r分别为惯导和真实航迹序列号,k为序列中的地磁点,采集地磁测量序列时,采集地磁总强度
s12、第一张地磁图:设置人工鱼群初始参数人工鱼条数n、人工鱼移动步长step、人工鱼视野visual、最大尝试次数try_number、拥挤度δ、最大迭代次数maxgen;
s13、确定人工鱼个体状态j=(α,θ,△x,△y)中的每个因子范围,初始化人工鱼群,得到所有的初始航迹;
s14、fori=1tomaxgen;
s15、人工鱼的当前状态为ji,利用式(1-1)计算食物浓度ki,在其视野范围内的的伙伴数目为nf,伙伴的中心位置状态为jc,对应食物浓度为kc,如果满足kc/nf>δki,执行式(1-1),否则执行觅食行为,记录移动后的(jnext1,knext1);
式中,rand为(0,1)之间的随机数,||jv-j||为两个人工鱼的距离;
ki=f(ji)第i条人工鱼所在位置处的食物浓度,即目标函数;
s16、人工鱼的当前状态为ji,食物浓度为ki,在其视野范围内的伙伴数目为nf,伙伴中的最优位置状态为jmax,对应的食物浓度为kmax,如果满足kmax/nf>δkmax,执行式(1-1),否则执行觅食行为,记录移动后的(jnext2,knext2);
s17、比较食物浓度knext1和knext2大小,将食物浓度较大的值以及相对应的前若干个状态保存为第一记录,每条人工鱼行动后将得到的食物浓度值与第一记录上的值进行比较,如果食物浓度优于第一记录,则将该值取代第一记录上的状态及其对应的食物浓度;
s18、迭代次数i加1,循环达到设定值maxgen;
s19、endfor。
作为本发明的进一步改进,在步骤s17中,比较食物浓度knext1和knext2大小,将食物浓度较大的值以及相对应的前三十个状态保存在第一记录上。
作为本发明的进一步改进,食物浓度就是人工鱼群的目标函数值,即人工鱼群的寻优准则,假设经仿射变换后的轨迹处提取的地磁序列为
其中,
hausdorff距离不强调匹配点对,点与点之间的关系是十分模糊的,因而具有很强的抗干扰能力和容错能力。改进后的算法结果值越大,则集合
式中foodconsistence为食物距离。
作为本发明的进一步改进,在步骤s13中,确定人工鱼个体状态j=(α,θ,△x,△y)中的每个因子范围如下表:
作为本发明的进一步改进,步骤s2包括:第二张地磁图:取出第一记录上的人工鱼的状态,再由航迹变换即可得到对应的位移航迹。
作为本发明的进一步改进,步骤s3包括:由hausdorff测评算法计算评估每条轨迹的评估值,将评估值最优的若干条轨迹保存到第二记录上。
作为本发明的进一步改进,在步骤s3,由hausdorff测评算法计算评估每条轨迹的评估值,将评估值最优的三条轨迹保存到第二记录上。
作为本发明的进一步改进,步骤s4包括:第三张地磁图:输入第二记录上保存的位移航迹,由hausdorff测评算法计算评估每条轨迹的评估值,将评估值最优轨迹保存到第三记录并输出,即为最终的目标航迹。
本发明的有益效果是:通过上述方案,主要利用鱼群算法中人工鱼聚集的特性,在鱼群算法停止之后,人工鱼聚集在地磁真实轨迹附近,然后通过水平分量和垂直分量数据对人工鱼进行筛选,一步一步得到真实的轨迹,实现了一种基于多特征量的地磁匹配的定位方法,提高了定位精度和稳定性,满足了水下导航的精度需求。
具体实施方式
下面结合具体实施方式对本发明作进一步说明。
一种基于多地磁要素检测的定位方法,检测地磁总量、水平分量和垂直分量数据,首先利用地磁总量数据通过人工鱼群算法与地磁图匹配,再从人工鱼群中提取若干条人工鱼将对应的轨迹输入到水平分量,并以hausdorff距离作为评估标准进行评估,再次从这些轨迹中提取评估最优的前若干条轨迹,进一步缩小轨迹范围,最后将这些轨迹输入到第三个特征量(地磁垂直强度)中,同样的由hausdorff评估算法对这最后的轨迹进行评估,输出最优的一条轨迹即为真实的轨迹,从而实现定位导航的作用。hausdorff距离即豪斯多夫距离,豪斯多夫距离量度度量空间中真子集之间的距离。hausdorff距离是另一种可以应用在边缘匹配算法的距离。
具体流程如下:
01、开始;
02、采集惯导航迹[xikyik]t、真实航迹[xrkyrk]t和地磁测量序列,i、r分别为惯导和真实航迹序列号,k为序列中的地磁点,采集地磁序列时需采集地磁总强度
03、第一张地磁图:设置人工鱼群初始参数人工鱼条数n、人工鱼移动步长step、人工鱼视野visual、最大尝试次数try_number、拥挤度δ、最大迭代次数maxgen;
04、确定人工鱼个体状态j=(α,θ,△x,△y)中的每个因子范围,如表1所示,初始化人工鱼群,得到所有的初始航迹;
05、fori=1tomaxgen;
06、人工鱼的当前状态为ji,利用式(1-1)计算食物浓度ki,在其视野范围内的的伙伴数目为nf,伙伴的中心位置状态为jc,对应食物浓度为kc,如果满足kc/nf>δki,执行式(1-1),否则执行觅食行为,记录移动后的(jnext1,knext1);
07、人工鱼的当前状态为ji,食物浓度为ki,在其视野范围内的伙伴数目为nf,伙伴中的最优位置状态为jmax,对应的食物浓度为kmax,如果满足kmax/nf>δkmax,执行式(1-1),否则执行觅食行为,记录移动后的(jnext2,knext2);
08、比较食物浓度knext1和knext2大小,将食物浓度较大的值以及相对应的前三十个状态保存在公报板一上,每条人工鱼行动后将得到的食物浓度值与公报板一上的值进行比较,如果食物浓度优于公报板一,则将该值取代公报板一上的状态及其对应的食物浓度;
09、迭代次数i加1,循环达到设定值maxgen;
10、endfor;
11、第二张地磁图:取出公报板一上的人工鱼的状态,再由航迹变换即可得到对应的位移航迹;
12、由hausdorff测评算法计算评估每条轨迹的评估值,将评估值最优的三条最忌保存到公报板二上;
13、第三张地磁图:输入公报板二上保存的位移航迹,由hausdorff测评算法计算评估每条轨迹的评估值,将评估值最优轨迹保存到公报板三上并输出,即为最终的目标航迹;
14、结束。
式中,rand为(0,1)之间的随机数,||jv-j||为两个人工鱼的距离;
ki=f(ji)第i条人工鱼所在位置处的食物浓度,即目标函数;
食物浓度就是人工鱼群的目标函数值,即人工鱼群的寻优准则,假设经仿射变换后的轨迹处提取的地磁序列为
其中,
hausdorff距离不强调匹配点对,点与点之间的关系是十分模糊的,因而具有很强的抗干扰能力和容错能力。改进后的算法结果值越大,则集合
式中foodconsistence为食物距离。
表1人工鱼群算法参数说明和设置
本发明提供的一种基于多地磁要素检测的定位方法,主要利用鱼群算法中人工鱼聚集的特性,在鱼群算法停止之后,人工鱼聚集在地磁真实轨迹附近,然后通过水平分量和垂直分量数据对人工鱼进行筛选,一步一步得到真实的轨迹。
本发明提供的一种基于多地磁要素检测的定位方法,涉及磁场导航,主要应用于水下潜航器的导航方法。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。