非线性卡尔曼滤波EKF与UKF
- 格式:ppt
- 大小:677.50 KB
- 文档页数:23
EKFUKFPF算法的比较程序在估计理论中,EKF(Extended Kalman Filter),UKF(Unscented Kalman Filter)和PF(Particle Filter)是三种常用的非线性滤波算法。
它们在不同的环境和应用中具有不同的优点和缺点。
下面将对这三种算法进行比较。
首先,EKF是最常用的非线性滤波算法之一、它通过线性化状态转移方程和测量方程来近似非线性问题。
EKF在处理高斯噪声的情况下表现良好,但在处理非高斯噪声时会有较大的误差。
由于线性化过程的存在,EKF对于高度非线性和非高斯问题可能表现不佳。
此外,EKF对系统模型的准确性要求较高,较大的模型误差可能导致滤波结果的不准确性。
其次,UKF通过构造一组代表系统状态的Sigma点,通过非线性映射来近似非线性函数。
相较于EKF,UKF无需线性化系统模型,因此适用于更广泛的非线性系统。
UKF的优点是相对较好地处理了非线性系统和非高斯噪声,但在处理维数较高的问题时,计算开销较大。
最后,PF是一种基于粒子的滤波方法,通过使用一组代表系统状态的粒子来近似概率密度函数。
PF的优点是它可以处理非线性系统和非高斯噪声,并且在系统模型不准确或缺乏确定性时,具有较好的鲁棒性。
由于粒子的数量可以灵活调整,PF可以提供较高的估计精度。
然而,PF的计算开销较大,尤其在高维度的情况下。
综上所述,EKF、UKF和PF是三种常用的非线性滤波算法。
EKF适用于高斯噪声条件下的非线性问题,但对系统模型准确性要求高。
UKF适用于一般的非线性问题,但计算开销较大。
PF适用于非线性和非高斯噪声条件下的问题,并具有较好的鲁棒性,但在计算开销方面具有一定的挑战。
在实际应用中,我们应根据具体问题的性质和要求选择合适的算法。
比如,在低维情况下,EKF是一个可行的选择;在高维或非高斯噪声情况下,可以考虑使用UKF或PF算法。
ukf滤波算法范文UKF(Unscented Kalman Filter)是一种基于卡尔曼滤波的非线性滤波算法。
相比于传统的扩展卡尔曼滤波(EKF),UKF通过一种更好的方法来近似非线性系统的概率分布,从而提高了非线性滤波的精确度和鲁棒性。
UKF通过一种称为“无气味变换(unscented transform)”的方法来处理非线性函数。
该方法基于对概率分布的均值和协方差进行一系列的采样点选择,然后通过变换这些采样点来近似非线性函数的传播。
这些采样点被称为“Sigma点”,可以看作是真实系统状态在均值周围的一系列假设状态。
UKF的基本步骤如下:1.初始化:初始化系统状态和协方差矩阵。
2. 预测步骤(Prediction):- 通过生成Sigma点来近似系统状态的概率分布。
- 将Sigma点通过非线性函数进行变换,得到预测状态和预测协方差矩阵。
-计算预测状态的均值和协方差。
3. 更新步骤(Update):- 通过生成Sigma点来近似测量函数的概率分布。
- 将预测状态的Sigma点通过测量函数进行变换,得到预测测量和预测测量协方差矩阵。
-计算预测测量的均值和协方差。
-根据实际测量值和预测测量的概率分布,计算卡尔曼增益。
-更新预测状态和协方差。
UKF相比于EKF具有以下优势:1.不需要对非线性函数进行线性化。
EKF通过一阶泰勒展开来线性化非线性函数,这可能导致误差积累和不稳定性。
UKF通过采样点直接逼近非线性函数,避免了这个问题。
2.更好的估计准确度和收敛性。
UKF通过采样点的选择更好地逼近了真实概率分布,提高了滤波的准确度和收敛性。
3.适用于高维状态空间。
EKF在高维状态空间中存在计算复杂度高和数值不稳定的问题,而UKF则通过更好的采样点选择来解决了这个问题。
4.对初始条件不敏感。
UKF对初始条件的选择不太敏感,可以在一定程度上避免初始条件选择不当导致的滤波失效问题。
尽管UKF相比于EKF有许多优势,但它也存在一些缺点。
EKF与UKF的性能比较及应用张文;孙瑞胜【期刊名称】《南京理工大学学报(自然科学版)》【年(卷),期】2015(000)005【摘要】该文分析了扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)的基本原理和特点,并以跟踪系统和捷联惯导系统( SINS)的动基座对准为对象,分别采用这两种算法对其进行了仿真。
仿真结果表明,UKF的滤波精度高于EKF,说明对于强非线性系统,UKF比EKF具有更强的优越性,可以广泛应用在目标跟踪系统和航天航空领域。
%This paper especially analyzes the basic principles and characteristics of extended Kalman filter(EKF)and unscented Kalman filter(UKF). Simulations are made in one-dimensional nonlinear tracking system and the moving base of strapedown inertial navigation systems(SINS)alignment. The results demonstrate that the precision of UKF is higher than that of EKF for the nonlinear system,and it can be widely used for the target tracking and the aerospace.【总页数】5页(P614-618)【作者】张文;孙瑞胜【作者单位】南京理工大学泰州科技学院,江苏泰州225300;南京理工大学能源与动力工程学院,江苏南京210094【正文语种】中文【中图分类】TP212【相关文献】1.利用EKF、CMKF和UKF算法处理模型非线性的性能比较 [J], 廖咏一;岳小飞;郭丽宝2.EKF和SUKF在大摇摆基座初始对准中的应用 [J], 张金亮;秦永元;梅春波3.EKF与UKF的目标跟踪算法应用与对比 [J], 唐哲;王庭军;陈志豪4.EKF和UKF在角度测量定位技术中的应用与分析 [J], 孙冬5.EKF和UKF算法在无线传感器网络目标跟踪中的应用 [J], 史岩;朱涛;傅军;张亚宁因版权原因,仅展示原文概要,查看原文内容请购买。
利用EKF、CMKF和UKF算法处理模型非线性的性能比较1 概述地空导弹武器系统的制导雷达对空中目标进行探测跟踪,可独立测得极坐标下的目标斜距、高低角和方位角;目标运动的状态可由位置、速度和加速度三变量在直角坐标系中线性地表示。
由于极坐标与直角坐标系之间存在非线性的变换关系,使得在对运动目标的跟踪中,目标的运动状态方程和量测方程存在非线性方程。
通常为了更直观和方便的描述目标运动过程,将目标运动状态方程选在直角坐标系中建立,则量测方程为非线性形式,对非线性量测方程的处理方式影响了滤波器的跟踪特性。
本文主要针对目前EKF、CMKF和UKF三种对非线性问题的处理方法从滤波性能、滤波系统跟踪特性以及计算量等方面进行对比分析,利于滤波算法的合理选择,改善地空导弹武器系统对目标的探测跟踪性能。
2 直角坐标系下的目标运动模型由于地空导弹武器系统所拦截的空中目标存在转弯、逃避等多种机动飞行情况,为更为真实的反映目标机动范围和强度的变化,采用非零均值和修正瑞利分布表征机动加速度特性,因此,建立在直角坐标系下的基于机动目标“当前”统计模型的目标的状态方程。
3 量测方程非线性的处理方法(1)EKF滤波算法(2)CMKF滤波算法(3)UKF滤波算法UKF滤波算法对卡尔曼滤波中的一步预测方程,使用无迹(UT)变换来处理均值和协方差的非线性传递。
UT变换的基本思路为:将被估计状态视为随机变量,利用采样策略,在原先状态分布中选取一些点,使其均值和协方差与状态分布的均值和协方差相等,将这些点代入非线性函数中,得到非线性函数值点集,然后在测量的基础上调节样本点的位置,使得样本均值和样本方差分别以二次精度逼近实际分布的均值和方差,得到非线性系统方程和量测方程的均值和方差后,利用卡尔曼线性滤波框架中的测量更新,可获得状态变量的估计值。
4 仿真比较针对目标飞行速度600m/s、飞行高度6km、初始斜距21km,目标水平蛇形机动飞行;制导雷达测量的目标斜距的量测噪声服从(0,25m)的高斯分布,高低和方位角度噪声服从(0,0.2mrad)高斯分布,目标运动模型中的系统方差Q和量测方差R值相同,对比采用EKF、CMKF以及UKF对量测方差非线性处理下的性能,如下图1至图5所示。
EKF、UKF、PF组合导航算法仿真对比分析摘要随着人类对海洋探索的逐步深入,自主式水下机器人已被广泛地应用于海底搜救、石油开采、军事研究等领域。
良好的导航性能可以为航行过程提供准确的定位、速度和姿态信息,有利于AUV精准作业和安全回收。
本文介绍了三种不同的导航算法的基本原理,并对算法性能进行了仿真实验分析。
结果表明,在系统模型和时间步长相同的情况下,粒子滤波算法性能优于无迹卡尔曼滤波算法,无迹卡尔曼滤波算法性能优于扩展卡尔曼滤波算法。
关键词自主式水下机器人导航粒子滤波无迹卡尔曼滤波扩展卡尔曼滤波海洋蕴藏着丰富的矿产资源、生物资源和其他能源,但海洋能见度低、环境复杂、未知度高,使人类探索海洋充满了挑战。
自主式水下机器人(Autonomous Underwater Vehicle,AUV)可以代替人类进行海底勘探、取样等任务[1],是人类探索和开发海洋的重要工具,已被广泛地应用于海底搜救、石油开采、军事研究等领域。
为了使其具有较好的导航性能,准确到达目的地,通常采用组合导航算法为其导航定位。
常用的几种组合导航算法有扩展卡尔曼滤波算法(Extended Kalman Filter,EKF)、无迹卡尔曼滤波算法(Unscented Kalman Filter,UKF)和粒子滤波算法(Particle Filter,PF)。
1扩展卡尔曼滤波算法EKF滤波算法通过泰勒公式对非线性系统的测量方程和状态方程进行一阶线性化截断,主要包括预测阶段和更新阶段。
预测阶段是利用上一时刻的状态变量和协方差矩阵来预测当前时刻的状态变量和协方差矩阵;更新阶段是通过计算卡尔曼增益,并结合预测阶段更新的状态变量和当前时刻的测量值,进而更新状态变量和协方差矩阵[2]。
虽然EKF滤波算法在非线性状态估计系统中广泛应用,但也凸显出两个问题:一是由于泰勒展开式抛弃了高阶项导致截断误差产生,所以当系统处于强非线性、非高斯环境时,EKF算法可能会使滤波发散;二是由于EKF算法在线性化处理时需要用雅克比(Jacobian)矩阵,其繁琐的计算过程导致该方法实现相对困难。
ukf滤波算法UKF(Unscented Kalman Filter)滤波算法是一种非线性滤波算法,目的是通过逼近非线性系统的状态和测量值的真实分布来估计系统的状态。
相比于传统的Kalman滤波算法,UKF采用了Sigma点来近似系统状态和测量值的分布,从而可以处理非线性系统。
UKF算法的基本思想是使用一些特定的采样点(称为Sigma点)来近似系统状态和测量值的分布。
通过对这些Sigma点进行传播和更新,可以获得系统的状态估计值。
具体来说,UKF算法包含以下几个步骤:1.初始化:确定系统的状态和观测方程,以及状态协方差矩阵和测量噪声协方差矩阵。
2. Sigma点生成:根据系统状态的均值和协方差矩阵,生成一组代表系统状态的Sigma点。
通常,Sigma点的个数是通过经验确定的,一般取2n+1个,其中n是状态向量的维度。
3. Sigma点传播:根据系统的非线性状态方程,通过将Sigma点传播到下一个时刻,得到预测的Sigma点。
这一步骤的目的是在状态空间中对预测状态进行采样。
4.状态预测:利用预测的Sigma点计算出预测的系统状态的均值和协方差矩阵。
5. Sigma点更新:根据测量模型,通过对预测的Sigma点进行线性变换,得到预测的测量值Sigma点。
这一步骤的目的是在测量空间中对预测状态进行采样。
6.测量预测:利用预测的测量值Sigma点计算出预测的测量值的均值和协方差矩阵。
7.卡尔曼增益计算:根据预测的状态和测量值的均值和协方差矩阵,计算出卡尔曼增益。
8.状态更新:利用测量值对预测的状态进行修正,得到更新后的状态估计值和协方差矩阵。
通过以上步骤,UKF算法可以通过对状态和测量值的Sigma点进行传播和更新,逼近非线性系统的状态和测量值的真实分布,从而得到系统的状态估计值。
UKF算法的优点是可以处理非线性系统,并且不需要对系统进行线性化处理。
相比于传统的扩展卡尔曼滤波(EKF)算法,UKF算法更加精确和鲁棒。
ekf,ukf,enkf,pf,ckf在二维空间中的距离探测和相对角探测下的matlab对比代码该问题涉及到了几种滤波算法在二维空间中的距离和相对角度探测的Matlab代码对比。
这些滤波算法包括扩展卡尔曼滤波(EKF)、无迹卡尔曼滤波(UKF)、Ensemble Kalman Filter(EnKF)、粒子滤波(PF)和连续卡尔曼滤波(CKF)。
下面是针对每个部分的具体解释:●EKF (Extended Kalman Filter):●EKF 是标准的Kalman 滤波器的扩展,用于处理非线性系统。
它通过一阶Taylor展开近似非线性函数,并使用这个近似来更新状态估计。
UKF (Unscented Kalman Filter):●UKF 是一种无迹方法,用于处理非线性系统。
它使用所谓的"sigmapoints"来表示状态变量的不确定性,这些sigma点被用于近似非线性函数的概率密度。
EnKF (Ensemble Kalman Filter):●EnKF 是一种用于数据同化的统计滤波方法,特别适用于处理具有高维度和复杂非线性的问题。
它使用一组样本(或“ensemble”)来表示状态变量的不确定性。
PF (Particle Filter):●PF 是一种基于贝叶斯估计的非线性滤波方法,用于估计未知动态系统的状态。
它通过粒子来近似后验概率密度,并对这些粒子进行重要性采样。
CKF (Continuous Kalman Filter):●CKF 是一种特殊的非线性滤波器,用于处理连续系统的状态估计问题。
它采用连续化方法处理离散时间系统中的非线性函数,以便更精确地计算状态估计。
Matlab对比代码的内容:●创建一个二维空间的模拟系统,包括距离和相对角度的测量。
●使用每种滤波器对该系统进行仿真,并记录估计的距离和角度。
●通过比较真实值与估计值,评估各种滤波器的性能。
●可通过图形展示各种滤波器的跟踪性能、误差分布等。
immukf算法IMM(交互式多模型)算法是一种用于目标跟踪的算法,它利用多个不同的运动模型来匹配目标的不同运动模式。
这些模型可以通过马尔可夫转移概率进行转移,从而形成一个具有多种可能性的模型概率集合。
然后,利用卡尔曼滤波器对目标的状态进行估计和更新。
在IMM算法中,可以采用多种运动模型,例如匀速模型、匀加速模型、转弯模型等。
同时,为了处理非线性问题,可以采用扩展卡尔曼滤波(EKF)或无迹卡尔曼滤波(UKF)。
其中,UKF算法相对于EKF算法具有更高的精度和稳定性。
具体来说,IMM算法的流程如下:1.初始化:确定初始状态量、初始模型概率和滤波器参数。
2.模型选择:根据当前状态量和模型概率,选择一个最适合的模型进行状态估计。
3.状态估计:利用选择的模型和卡尔曼滤波器对目标的状态进行估计。
4.模型转移:根据已知的马尔可夫转移概率,对模型概率进行更新。
5.判断终止条件:如果满足终止条件,则结束算法;否则,返回步骤2继续执行。
对于IMM-UKF算法的具体步骤如下:1.设定目标监测概率为1,系统采样间隔为T。
2.K时刻的离散运动模型和观测模型分别为跟踪过程中,前20次采样使用传统的无迹卡尔曼算法跟踪目标,然后采用本文设计的IMMUKF算法继续对目标进行跟踪。
3.3个IMM模型的采样概率为μ-1=0.8,μ-2=0.1,μ-3=0.1。
通过两点起始法计算初始状态。
4.为了验证算法性能,通过MATLAB进行算法仿真,模拟目标运动轨迹,同时对附加均值为0、标准差为100的目标观测噪声。
仿真扫描周期设为2s,对目标轨迹进行观测估计。
一、 无轨卡尔曼滤波(UKF )前面已经提到,广义卡尔曼滤波(EKF )是一种应用最为广泛的非线性系统的状态估计算法。
然而,由于EKF 需要通过线性化来传递状态量的均值和方差,如果系统的非线性非常严重,其估计结果就会变得不可靠。
本部分讨论的无轨卡尔曼滤波(UKF ),是卡尔曼滤波的又一推广形式,其相对于EKF 能有效减少线性化误差,提升滤波性能。
当随机变量通过非线性函数后,EKF 只用了均值和方差真实表达式展开序列的第一项作为近似值。
当状态方程和量测方程的非线性非常严重时,取这样的一阶线性化近似值容易导致均值和方差在传递上的显著误差。
而无轨转换正是能有效减少这种误差的一种传递方式。
本部分首先分析在无轨转换下,随机变量通过一个非线性函数后的均值和方差。
接着,我们将利用无轨转换讨论的结果给出UKF 的滤波基本方程,并且指出其相对于EKF 是如何减少线性化误差的。
3.1 无轨转换非线性系统的问题在于难以用一个通用的非线性函数来传递概率密度函数。
EKF 遵循的原则是用均值和方差的一阶线性转换来近似真实的非线性转换,但是这种近似许多时候是不能满足要求的。
无轨转换遵循两个基本原则。
第一,它对单个的点很容易的进行非线性转换(而不是对整个概率密度函数)。
第二,在状态空间能找到一组相互独立的点,这一组点的采样概率密度函数近似于状态向量的真实概率密度函数。
基于这两个原则,假设我们知道向量x 的均值为x ,方差为P ,并且找到一组其整体均值和方差与x 和P 都相等的确定向量,我们把这样的向量称为sigma 点。
接着对每一确定向量用非线性函数()h y =x 进行转换得到转换后的一组向量,转换后的向量要能很好的估计出y 的真实均值和方差。
这就是无轨转换的关键所在。
举例来说,假设x 是一个1n ⨯维的向量,选择如下2n 个sigma 点:()()()() 1,, 1,, 1,,2T i iT n i ii i i ni n i n +===-=== xxx x +x(3.1)n P矩阵平方根所以有Tn =P ,并且i第i 行。