最近在整理定位快速算法的思路,看到有粒子群的算法,简单整理了一部分,后续会陆续把代码也贴上来。
参考文献:TDOA collaborative localization algorithm based on PSO and Newton iteration in WGS-84 coordinate system
摘要:
TDOA定位体制下,基于粒子群优化(Particle Swarm Optimization,PSO)和泰勒展式的协同定位不但可以避免粒子群易陷入局部最优的问题,而且还可以不合理的初始解导致牛顿迭代不收敛的问题。
II 问题描述
M个站以特定的形状分布于相同的平面上,基站的位置为,目标坐标为,目标到第i个基站的距离为,目标到基站1的距离为,根据目标和基站的关系
其中表示到达测量差,是光速,是独立的且服从均值为0,方差为的高斯分布。
设
即
根据,利用渐近最大似然(Maximum Likelihood,ML)算法来估计目标的位置,似然函数是
从似然函数可知,其是一个非线性函数。用传统的方法来解似然函数是很困难的。
通过得到非线性函数的最小值来解出满足目标函数最小的坐标,解该问题是高计算复杂度和大量计算量。
基于以上分析,匹配函数定义为
III 直角坐标和WGS-84坐标系之间的转化
O-XYZ是WGS-84坐标系,P-XYZ是直角坐标系(P是原点),Q为另一个空间的改的。 和在O-XYZ坐标中,但在P-XYZ坐标中表示 和。
根据直角坐标系和WGS-84坐标系的转化[6]:
R为转化矩阵。是点大地坐标系的经纬度。如果和点的距离为,按照X轴的正方向旋转到在纬度的投影的方位角是,方向相对于与纬度垂直的面的角度是 ,
代到
IV PSO
A 算法介绍
粒子群优化(PSO)算法[7]的灵感来源于鸟群和鱼类的学习行为。在太空中,只有一个地方存在食物,没有鸟类知道它的位置。他们依靠彼此交换信息,一步一步地接近食物。本文利用此方法寻找最优解。该方法可以描述为目标在搜索空间中的位置,PSO算法首先初始化一组随机粒子,每个粒子表示发送器位置的潜在解决方案。所有的粒子都有一个由优化函数决定的适应值。粒子根据适应值在搜索空间中跟踪当前的最优粒子,通过迭代找到最优解。
假设在D维空间上,第i个粒子的飞行速度为
位置为
在酶促迭代,粒子通过跟踪两个最优解来更新自己。当为迄今为止发现的个人最佳位置向量。是是整个群找到的最佳位置向量。通过遵循这两个最佳位置,根据下面公式更新每个粒子的速度和位置。
其中,其中是惯性权重。和是学习因子在0到4之间。和为在0和1之间随机分布的随机数。,和,表示第i个粒子在时刻和的速度和位置。此外,通过设定粒子的速度和位置范围,可以适当地限制粒子的运动。
本文,实验选择了线性递减权,较大的有利于在早期算法跳出局部最小值,较小的有利于提高算法的收敛性,提高了粒子群算法的全局搜索能力。下面的方程是线性递减权重。
表示最大的加权因子,表示最小的加权因子,是迭代次数,为整体迭代次数。
B。算法步骤
第一步:初始化粒子在总体中的速度和位置
第二步:评估每个粒子的适应度函数,将每个粒子的当前位置和适应度值存储在中,然后将单个位置的最佳值和整个群之间的适应度值存储到中。
第三步:按照式更新每个粒子的速度和位置
第四步:通过设置粒子的速度和位置,如果,;如果,;,;如果,。
第五步:根据适合度值,比较和t的所有当前值,更新。
第六步:当满足预期的准确性或达到迭代次数时,搜索将停止。
V。泰勒级数展开法
泰勒级数展开法[8,9]是一种需要初始位置的递推算法,在每次递推中,通过求解TDOA测量误差的局部最小二乘解,使初始位置逐渐收敛到估计位置。对于一组测量距离差的测量,该方法基于选定的目标初始位置在展开,并忽略二阶项,公式。可以表示为
表示实测值与真值差的距离差。
在,表示选择的初始目标点和观测站之间的距离,可以通过设置得到。WLS可以解位置偏差
为距离测量的方差矩阵。在下一个递归中,,重复该过程直到足够满足停止门限