一种基于粒子群算法的定位方法与流程

文档序号:13516693阅读:1662来源:国知局
一种基于粒子群算法的定位方法与流程

本发明涉及一种全球定位方法,尤其是涉及一种基于粒子群算法的定位方法。



背景技术:

对某一地点进行定位来确定经纬度,在地理勘探、人员营救等方面起着至关重要的作用。现代科技用于定位的手段很多,如手机gps定位,但往往受限于实际环境,如信号、电量等。在科技并非发达的古代,人类对太阳影子的利用就有很多,如记录时间,辨别方向等;同样在科技发达的今天,太阳影子也可以在现代科技受限的情况下发挥重要作用。

粒子群算法是一种基于群体智能的启发式全局随机搜索算法,概念源于对鸟群觅食行为的研究,属于进化算法,它通过追随当前搜索到的共享最优值,从无序到有序演化,最终靠近全局最优值。粒子群算法在工程技术上面有着非常广泛的研究,具有容易理解实现、全局搜索能力强等特点。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于粒子群算法的定位方法。

本发明的目的可以通过以下技术方案来实现:

一种基于粒子群算法的定位方法,通过测量竖立于目标地点地面的直杆的影子长度随时间变化的序列,对直杆所在地进行定位,包括以下步骤:

1)收集数据,包括日期天数n、直杆长度g、影子长度序列l1、l2、...、ln及与影子长度序列对应的时间点序列t1、t2、...、tn,其中,日期天数n表示当前日期位于所在年份的第n天,时间点序列精确到秒;

2)根据当前日期计算太阳赤纬角度δ;

3)建立影子长度与时间点、太阳赤纬角度δ目标地点的经度psi、目标地点的纬度和直杆长度g之间的计算关系;

4)建立影子长度测量值与理论计算值的误差优化模型,利用粒子群算法求解优化模型,确定经度psi和纬度的最终解。

进一步的,所述的步骤2)中,太阳赤纬角度δ的计算式为:

δ=0.3723+23.2567sin(θ)+0.1149sin(2θ)-0.1712sin(3θ)

-0.7580cos(θ)+0.3656cos(2θ)+0.0201cos(3θ)

其中,θ为转换角度,t为日期偏移,t=n-n0,n为日期天数,n0为年中心日期,n0=79.6764+0.2422(year-1985)-左取整[(year-1985)/4],year表示当前年份,左取整表示小数部分都舍去。

进一步的,所述的步骤4)中,影子长度的理论计算值为:

其中,αs为太阳高度角,根据纬度太阳赤纬角度δ和太阳时角ω计算,太阳时角ω与根据时间点和经度psi计算。

进一步的,所述的太阳高度角αs计算式为:

进一步的,所述的太阳时角ω计算式为:

其中,ω为弧度,

进一步的,所述的步骤4)中,误差优化模型采用的目标函数和约束条件如下:

目标函数为误差平方和最小:

约束条件:

进一步的,所述的步骤4)中,采用的粒子群算法为局部粒子群算法,粒子的邻域采用环形邻域。

进一步的,所述的步骤4)具体包括以下步骤:

41)初始化目标地点的经度psi和纬度的速度和位置,计算每个粒子的影子长度

42)评价每个粒子的适应度;

43)对每个粒子,将当前适应度值与每个粒子历史最佳位置pbest对应的适应度值做比较,如果当前适应度值更好,则用当前位置替换每个粒子历史最佳位置pbest;

44)对每个粒子,求出邻域内粒子的适应度值,并做比较找出邻域内适应度最好的位置gbest;

45)更新每个粒子的速度与位置,当粒子位置或速度超出范围,将其设定为边界位置或者速度;

46)判断是否满足终止条件,若否,则返回步骤42),若是,则结束循环,最终得到的位置值就是经纬度的最终值,导出结果经纬度。

进一步的,所述的步骤45)包括以下步骤:

451)更新线性递减权重惯性系数:其中gmax为设定的最大迭代次数;

452)更新速度值:其中r1、r2为0到1之间的随机数,为第k次迭代粒子i的第d维速度,为第k次迭代粒子i的第d维位置;

453)更新位置值:

进一步的,所述的终止条件为:达到最大迭代次数或者最佳适应度值的增量小于给定的阈值。

与现有技术相比,本发明可以解决在由实际环境因素导致高科技手段受限的情况下,对目标地点进行经纬度定位。本发明利用了简单的模型推导,只需要获取日期、时间和影子长度作为模型的输入量,通过模型求解就可以得到所在地的经纬度。所用的方法简单明了,适用于有阳光的任何时间和任何地点。本发明采用的粒子群算法对于经纬度的确定问题可以在较短的时间内获取比较高精度的经纬度结果。在求解的过程中具有搜索过程稳定、快速获取结果、容易理解实现、全局搜索能力强等特点。

附图说明

图1(a)为“地平—赤道”坐标系示意图;

图1(b)为图1(a)中球面三角形示意图;

图2为本发明流程图;

图3为本发明数据采集方法示意图;

图4为本发明使用粒子群算法求解优化模型,确定经纬度具体流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例

一种基于粒子群算法的影子确定经纬度的方法,包含以下步骤:

步骤1)、收集数据。包含测算的日期(年、月、日),垂直于地面的细直杆长度数据g(米),采集北京时间数据(时、分、秒)t1,t2,...,tn,以及直杆影子长度数据l1,l2,...,ln(米);

具体地,步骤1)中采集测算日期为测算当天年份year、月份month和日份day,采集时间数据为以一定时间间隔的小时数h、分钟数m和秒数s,直杆长度g为垂直于水平地面的顶端到地面的长度,直杆影子时间长度l为直杆顶端影子点到直杆低端点的距离长度,其中采集的时间数据和影子长度数据是一一对应的。

步骤2)、采集数据格式换算,求得日期天数n、北京时间ts_beijing,其中,日期天数n是指操作日期所在年份中的第几天,即距离当年1月1日的天数。比如,2017年3月20日,n=79。

北京时间ts_beijing由采集到的时间推导:

采集到的时间ti采用24小时制。

步骤3)、求太阳赤纬角度δ;

n0=79.6764+0.2422(year-1985)-左取整[(year-1985)/4]

t=n-n0

步骤4)、建立影子长度随日期天数n、北京时间ts_beijing和直杆高度g的变化关系,具体操作步骤如下;

步骤41)建立“地平—赤道”坐标系,如图1(a)所示。在地球上某地点o放置一直杆og,长度为g,直杆顶点g在地平面上的日影为g'点,即影子长度为并且日影点g'的位置是不断变化的。以直杆底端o为原点,正东方向为x轴,正北方向为y轴,直杆方向为z轴。

步骤42)求太阳时角ω。经度psi每变化15度,时间变化1小时,每一组变量组合在不同的时刻,对应着不同的影子长度,不同的北京时间ts_beijing对应的当地太阳时角:

步骤43)求太阳高度角αs。如图1(b)所示,p为天球北极,s为太阳位置,z为天顶,在球面三角形δpsz中,由球面三角形余弦定理得:

可知太阳高度角αs与纬度赤纬δ、太阳时角ω有关,将qz=90°-αs代入化简得:

步骤44)求影子长度影子长度只与太阳高度角αs和直杆高度g有关,影子长度可表示为:

步骤5)、建立误差平方和最小化的优化模型;

目标函数:

约束条件:

其中,li为实际测量的影子长度,为理论算出来的影子长度,g为直杆的高度,αs为太阳高度角,为纬度,psi为经度。

步骤6)、采用粒子群算法求解优化模型,确定经纬度:采用的粒子群算法为局部粒子群算法,粒子的邻域采用环形邻域。具体步骤如下:

步骤61)初始化参数:变量为经度x1、纬度x2,其范围分别为[0,180]、[0,90],种群规模为100,最大迭代次数gmax为200,粒子速度的范围为[-20,20]、[-10,10],在允许的范围内初始化经纬度随机位置和随机速度,计算每个粒子的影子长度

步骤62)评价每个粒子的适应度。因为求解模型为最小化误差平方和,适应度函数设定为误差平方和的倒数:

步骤63)对每个粒子,当前适应度值与每个粒子历史最佳位置pbest对应的适应度值做比较,如果当前的更好,则将用当前位置替换每个粒子历史最佳位置pbest。

步骤64)对每个粒子,求出邻域内粒子的适应度值,并做比较找出邻域内适应度最好的位置gbest。

步骤65)根据公式更新每个粒子的速度与位置。当粒子位置或速度超出范围,将其设定为边界位置或者速度。更新具体步骤如下:

步骤651)更新线性递减权重惯性系数:

步骤652)更新速度值:其中r1、r2为0到1之间的随机数,为第k次迭代粒子i的第d维速度,为第k次迭代粒子i的第d维位置。

步骤653)更新位置值:

步骤66:)如未满足结束条件,则返回步骤62)。通常算法达到最大迭代次数gmax或者最佳适应度值的增量小于某个给定的阈值时算法停止。

将本发明应用于某地实际经纬度测量,具体如下:

1、2015年4月18日,在中国的某地,北京时间14时42分开始到15时42分结束,测量间隔时间为3分钟,长度为2米的直杆。得到的影子长度数据如下:

n=108;

ts_beijing=14.70,14.75,14.80,14.85,14.90,14.95,15.00,15.05,15.10,15.15,15.20,15.25,15.30,15.35,15.40,15.45,15.50,15.55,15.60,

15.65,15.70;

g=2;

l=1.1496,1.1821,1.2152,1.2490,1.2831,1.3179,1.3533,1.3893,1.4261,1.4633,1.5014,1.5402,1.5798,1.6201,1.6612,1.7032,1.7462,1.7900,1.8350,1.8808,1.9279;

2、求得太阳赤纬度:

3、由初始化获取一组可行解,即经纬度。

4、求得当地太阳时:

5、求得太阳高度角:

6、求得影子长度:

7、利用粒子群算法确定经纬度,经过200次迭代,得到经度为108.7度,纬度为19.2度,此时误差达到最小值为5*10^(-8),与实际测试地点相符。

本实施例技术方案可用于除单纯定位以外的其它特定情况,如警方在绑匪所发勒索视频中有太阳影子移动情况,则可利用上述技术方案分析,对受害则进行定位,为受害者的营救提供有力帮助。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1