经典的卡尔曼滤波算法
卡尔曼滤波算法原理

卡尔曼滤波算法原理一、引言卡尔曼滤波(Kalman Filtering)是一种数学方法,用于模拟系统的状态并估计它的未来状态。
它在模拟和估计过程中可以融合各种不同类型的信息,使它们变得更准确,同时也可以处理噪声和不确定性。
卡尔曼滤波算法是一种用于处理系统和测量噪声较大的现实世界中的信号的有用工具,其应用范围涵盖了科学,工程和技术,广泛应用于航空、语音处理、图像处理、机器人、控制、通信和其他领域。
二、原理卡尔曼滤波算法基于两个假设:1. 系统的未来状态只取决于它当前的状态。
2. 测量噪声是有规律的,可以用统计方法进行估计。
卡尔曼滤波算法通过利用当前的状态估计和测量结果来更新估计值,从而利用历史数据改善未来状态的估计。
卡尔曼滤波算法通过两个步骤来实现:预测和更新。
预测步骤:预测步骤基于当前的状态估计值,使用模型计算出未来状态的估计值,这一步骤称为预测步骤,是融合当前状态估计值和模型之间的过程。
更新步骤:在更新步骤中,将估计的状态与测量的状态进行比较,并根据测量值对估计值进行调整,从而使估计值更准确。
三、应用卡尔曼滤波算法被广泛应用于航空、语音处理、图像处理、机器人、控制、通信等多个领域,可以用于估计各种复杂的系统状态,如航空器的位置和姿态、机器人的位置和速度、复杂的动力学系统的状态和参数、图像跟踪算法的参数等。
卡尔曼滤波算法也被广泛用于经济分析和金融预测,用于对市场的行为及其影响进行预测,以便更有效地做出决策。
四、结论卡尔曼滤波算法是一种有效的数学方法,可以有效地处理系统和测量噪声较大的现实世界中的信号,并在多个领域得到广泛应用,如航空、语音处理、图像处理、机器人、控制、通信等,也被广泛用于经济分析和金融预测。
gamp卡尔曼滤波

gamp卡尔曼滤波GAMP(Generalized Approximate Message Passing)卡尔曼滤波是一种用于估计线性系统状态的滤波算法。
它结合了GAMP算法和卡尔曼滤波的优点,能够在高维度、大规模问题中高效地进行状态估计。
卡尔曼滤波是一种经典的状态估计算法,广泛应用于信号处理、控制系统和机器学习等领域。
它通过观测数据和系统模型来估计系统的状态,具有高效、准确的特点。
然而,传统的卡尔曼滤波算法在处理高维度、大规模问题时会面临计算复杂度高的问题。
GAMP算法是一种近似推断算法,能够高效地处理高维度、大规模问题。
它通过迭代更新估计值和方差来逼近真实的后验概率分布。
然而,GAMP算法在处理非线性系统时存在一定的局限性。
GAMP卡尔曼滤波算法将GAMP算法和卡尔曼滤波算法相结合,充分发挥两者的优点。
它通过迭代更新估计值和方差,并利用卡尔曼滤波的观测模型来更新状态估计。
这种算法能够在高维度、大规模问题中高效地进行状态估计,并且具有较高的准确性。
GAMP卡尔曼滤波算法的核心思想是将状态估计问题转化为一个线性系统的估计问题。
首先,通过卡尔曼滤波的观测模型,将状态估计问题转化为一个线性系统的观测问题。
然后,利用GAMP算法对线性系统的观测问题进行估计。
最后,通过迭代更新估计值和方差,得到系统的状态估计。
GAMP卡尔曼滤波算法的优点在于能够高效地处理高维度、大规模问题。
它通过迭代更新估计值和方差,能够逼近真实的后验概率分布。
同时,利用卡尔曼滤波的观测模型,能够提高状态估计的准确性。
然而,GAMP卡尔曼滤波算法也存在一些局限性。
首先,它对系统模型的要求较高,需要满足线性和高斯分布的假设。
其次,算法的收敛性和稳定性也需要进一步研究和改进。
总之,GAMP卡尔曼滤波是一种用于估计线性系统状态的滤波算法。
它结合了GAMP算法和卡尔曼滤波的优点,能够在高维度、大规模问题中高效地进行状态估计。
虽然算法还存在一些局限性,但它在实际应用中具有广泛的应用前景。
卡尔曼滤波_卡尔曼算法

卡尔曼滤波_卡尔曼算法1.引言1.1 概述卡尔曼滤波是一种用于估计系统状态的技术,通过融合传感器测量值和系统模型的预测值,提供对系统状态的最优估计。
它的应用十分广泛,特别在导航、图像处理、机器人技术等领域中发挥着重要作用。
在现实世界中,我们往往面临着各种噪声和不确定性,这些因素会影响我们对系统状态的准确估计。
卡尔曼滤波通过动态调整系统状态的估计值,可以有效地抑制这些干扰,提供更加精确的系统状态估计。
卡尔曼滤波的核心思想是利用系统模型的预测和传感器测量值之间的线性组合,来计算系统状态的最优估计。
通过动态地更新状态估计值,卡尔曼滤波可以在对系统状态的准确估计和对传感器测量值的实时响应之间进行平衡。
卡尔曼滤波算法包括两个主要步骤:预测和更新。
在预测步骤中,通过系统模型和上一时刻的状态估计值,预测当前时刻的系统状态。
在更新步骤中,将传感器测量值与预测值进行比较,然后根据测量误差和系统不确定性的权重,计算系统状态的最优估计。
卡尔曼滤波具有很多优点,例如它对传感器噪声和系统模型误差具有鲁棒性,可以提供较为稳定的估计结果。
此外,卡尔曼滤波还可以有效地处理缺失数据和不完全的测量信息,具有较高的自适应性和实时性。
尽管卡尔曼滤波在理论上具有较好的性能,但实际应用中还需考虑诸如系统模型的准确性、测量噪声的特性等因素。
因此,在具体应用中需要根据实际情况进行算法参数的调整和优化,以提高估计的准确性和可靠性。
通过深入理解卡尔曼滤波的原理和应用,我们可以更好地应对复杂环境下的估计问题,从而在实际工程中取得更好的效果。
本文将介绍卡尔曼滤波的基本原理和算法步骤,以及其在不同领域的应用案例。
希望通过本文的阅读,读者们可以对卡尔曼滤波有一个全面的了解,并能够在实际工程中灵活运用。
1.2文章结构文章结构部分的内容可以按照以下方式编写:1.2 文章结构本文将围绕卡尔曼滤波和卡尔曼算法展开论述。
首先,我们会在引言部分对卡尔曼滤波和卡尔曼算法进行简要概述,介绍其基本原理和应用领域。
kalman滤波和数字低通滤波

Kalman滤波和数字滤波一、kalman滤波卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。
采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。
它适合于实时处理和计算机运算。
其他的就不介绍了。
公式简介卡尔曼滤波主要是由5个经典公式组成:X(k|k-1)=A X(k-1|k-1)+B U(k) (1)式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。
到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的协方差还没更新。
我们用P表示协方差:P(k|k-1)=A P(k-1|k-1) A’+Q (2)式(2)中,P(k|k-1)是X(k|k-1)对应的协方差,P(k-1|k-1)是X(k-1|k-1)对应的协方差,A’表示A的转置矩阵,Q是系统过程的协方差。
式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。
现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。
结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) (3)其中Kg为卡尔曼增益(Kalman Gain):Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) (4)到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。
但是为了要令卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的协方差:P(k|k)=(I-Kg(k) H)P(k|k-1) (5)其中I 为1的矩阵,对于单模型单测量,I=1。
当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。
卡尔曼滤波简介及其算法实现代码

卡尔曼滤波简介及其算法实现代码卡尔曼滤波算法实现代码(C,C++分别实现)卡尔曼滤波器简介近来发现有些问题很多人都很感兴趣。
所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。
现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。
因为这里不能写复杂的数学公式,所以也只能形象的描述。
希望如果哪位是这方面的专家,欢迎讨论更正。
卡尔曼滤波器– Kalman Filter1.什么是卡尔曼滤波器(What is the Kalman Filter?)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。
跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。
1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。
1957年于哥伦比亚大学获得博士学位。
我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。
如果对这编论文有兴趣,可以到这里的地址下载:/~welch/media/pdf/Kalman1960.pdf。
简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。
对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。
他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。
近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
2.卡尔曼滤波器的介绍(Introduction to the Kalman Filter)为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。
卡尔曼滤波 matlab算法

卡尔曼滤波 matlab算法卡尔曼滤波是一种用于状态估计的数学方法,它通过将系统的动态模型和测量数据进行融合,可以有效地估计出系统的状态。
在Matlab中,实现卡尔曼滤波算法可以通过以下步骤进行:1. 确定系统的动态模型,首先需要将系统的动态模型表示为状态空间方程,包括状态转移矩阵、控制输入矩阵和过程噪声的协方差矩阵。
2. 初始化卡尔曼滤波器,在Matlab中,可以使用“kf = kalmanfilter(StateTransitionModel, MeasurementModel, ProcessNoise, MeasurementNoise, InitialState, 'State', InitialCovariance)”来初始化一个卡尔曼滤波器对象。
其中StateTransitionModel和MeasurementModel分别是状态转移模型和测量模型,ProcessNoise和MeasurementNoise是过程噪声和测量噪声的协方差矩阵,InitialState是初始状态向量,InitialCovariance是初始状态协方差矩阵。
3. 进行预测和更新,在每个时间步,通过调用“predict”和“correct”方法,可以对状态进行预测和更新,得到最优的状态估计值。
4. 实时应用,将测量数据输入到卡尔曼滤波器中,实时获取系统的状态估计值。
需要注意的是,在实际应用中,还需要考虑卡尔曼滤波器的参数调节、性能评估以及对不确定性的处理等问题。
此外,Matlab提供了丰富的工具箱和函数,可以帮助用户更便捷地实现和应用卡尔曼滤波算法。
总的来说,实现卡尔曼滤波算法需要对系统建模和Matlab编程有一定的了解和技能。
希望以上内容能够对你有所帮助。
经典卡尔曼滤波算法公式

经典卡尔曼滤波算法公式
卡尔曼滤波算法是一种基于状态估计的控制算法,经常应用于机器人控制、航空导航、车辆导航等领域。
下面是经典的卡尔曼滤波算法公式:
1. 状态预测方程:
x(k|k-1) = Fx(k-1|k-1) + Bu(k)
其中,x(k|k-1)表示第k步的状态预测值,F表示状态转移矩阵,B表示输入矩阵,u(k)表示第k步的控制输入。
2. 误差预测方程:
P(k|k-1) = FP(k-1|k-1)F' + Q
其中,P(k|k-1)表示第k步的估计误差,Q表示系统噪声协方差矩阵。
3. 状态更新方程:
K(k) = P(k|k-1)H'/(HP(k|k-1)H' + R)
x(k|k) = x(k|k-1) + K(k)(z(k) - Hx(k|k-1))
P(k|k) = (I - K(k)H)P(k|k-1)
其中,K(k)表示卡尔曼增益,z(k)表示测量值,H表示测量矩阵,R表示测量噪声协方差矩阵。
以上就是经典的卡尔曼滤波算法公式,可以在实际应用中根据具体情况进行调整和优化。
- 1 -。
卡尔曼滤波 详解

卡尔曼滤波详解卡尔曼滤波是一种常用于估计和预测系统状态的优秀滤波算法。
它于1960年代由R.E.卡尔曼提出,被广泛应用于飞机、导弹、航天器等领域,并逐渐在其他科学领域中得到应用。
卡尔曼滤波的基本思想是通过融合测量数据和系统模型的信息,对系统状态进行更准确的估计。
其核心原理是基于贝叶斯定理,将先验知识与观测数据相结合来更新系统状态的概率分布。
卡尔曼滤波算法包括两个主要步骤:更新和预测。
在更新步骤中,算法通过观测值来计算系统的状态估计。
在预测步骤中,算法使用系统的模型对下一个时间步长的状态进行预测。
通过反复进行这两个步骤,可以得到不断更新的状态估计结果。
卡尔曼滤波算法的关键是系统模型和观测模型的建立。
系统模型描述了系统状态的演化规律,通常用线性动态方程表示。
观测模型描述了观测值与系统状态之间的关系,也通常用线性方程表示。
当系统模型和观测模型都是线性的,并且系统噪声和观测噪声都是高斯分布时,卡尔曼滤波算法能够得到最优的状态估计。
卡尔曼滤波的优点在于,在给定模型和测量信息的情况下,它能够最小化误差,并提供最佳的状态估计。
此外,卡尔曼滤波算法还具有递归、高效、低存储等特点,使其在实时应用中具有广泛的应用前景。
然而,卡尔曼滤波算法也有一些限制。
首先,它要求系统模型和观测模型能够准确地描述系统的动态特性。
如果模型存在误差或不完全符合实际情况,滤波结果可能会产生偏差。
其次,卡尔曼滤波算法适用于线性系统,对于非线性系统需要进行扩展,例如使用扩展卡尔曼滤波或无迹卡尔曼滤波。
另外,卡尔曼滤波算法还会受到噪声的影响。
如果系统的噪声比较大,滤波结果可能会失真。
此外,卡尔曼滤波算法对初始状态的选择也敏感,不同的初始状态可能会导致不同的滤波结果。
综上所述,卡尔曼滤波是一种高效、优秀的滤波算法,能够在给定模型和测量信息的情况下提供最优的状态估计。
然而,它也有一些局限性,需要充分考虑系统模型和观测模型的准确性、噪声的影响以及初始状态的选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自适应卡尔曼滤波卡尔曼滤波发散的原因如果卡尔曼滤波是稳定的,随着滤波的推进,卡尔曼滤波估计的精度应该越来越高,滤波误差方差阵也应趋于稳定值或有界值。
但在实际应用中,随着量测值数目的增加,由于估计误差的均值和估计误差协方差可能越来越大,使滤波逐渐失去准确估计的作用,这种现象称为卡尔曼滤波发散。
引起滤波器发散的主要原因有两点:(1)描述系统动力学特性的数学模型和噪声估计模型不准确,不能直接真实地反映物理过程,使得模型与获得的量测值不匹配而导致滤波发散。
这种由于模型建立过于粗糙或失真所引起的发散称为滤波发散。
(2)由于卡尔曼滤波是递推过程,随着滤波步数的增加,舍入误差将逐渐积累。
如果计算机字长不够长,这种积累误差很有可能使估计误差方差阵失去非负定性甚至失去对称性,使滤波增益矩阵逐渐失去合适的加权作用而导致发散。
这种由于计算舍入误差所引起的发散称为计算发散。
针对上述卡尔曼滤波发散的原因,目前已经出现了几种有效抑制滤波发散的方法,常用的有衰减记忆滤波、限定记忆滤波、扩充状态滤波、有限下界滤波、平方根滤波、和自适应滤波等。
这些方法本质上都是以牺牲滤波器的最优性为代价来抑制滤波发散,也就是说,多数都是次优滤波方法。
自适应滤波在很多实际系统中,系统过程噪声方差矩阵Q和量测误差方差阵R事先是不知道的,有时甚至连状态转移矩阵 或量测矩阵H也不能确切建立。
如果所建立的模型与实际模型不符可能回引起滤波发散。
自适应滤波就是这样一种具有抑制滤波发散作用的滤波方法。
在滤波过程中,自适应滤波一方面利用量测值修正预测值,同时也对未知的或不确切的系统模型参数和噪声统计参数进行估计修正。
自适应滤波的方法很多,包括贝叶斯法、极大似然法、相关法与协方差匹配法,其中最基本也是最重要的是相关法,而相关法可分为输出相关法和新息相关法。
在这里只讨论系统模型参数已知,而噪声统计参数Q和R未知情况下的自适应滤波。
由于Q和R等参数最终是通过增益矩阵K影响滤波值的,因此进行自适应滤波时,也可以不去估计Q和R等参数而直接根据量测数据调整K就可以了。
输出相关法自适应滤波的基本途径就是根据量测数据估计出输出函数序列}{C k ,再由}{C k 推算出最佳增益矩阵K ,使得增益矩阵K 不断地与实际量测数据}{C k 相适应。
.Sage-Husa 自适应卡尔曼滤波是在利用量测数据进行递推滤波时,通过时变噪声估计估值器,实时估计和修正系统噪声和量测噪声的统计特性,从而达到降低系统模型误差、抑制滤波发散提高哦滤波精度的目的。
k k k k k w x x +Φ=--11,k k k k v x H z +=⎪⎪⎩⎪⎪⎨⎧=====0)()(,)()(,)(Tj k kjk Tk k k k kj k Tk k k k v w E R v v E r v E Q w w E q w E δδ Sage-Husa 自适应卡尔曼滤波算法可描述为k k k k k z K x x ~ˆˆ1,+=- 111,1,ˆˆˆ----+Φ=k k k k k k q x xk k k k k k r xH z z ˆˆ~1,--=- 11,1,]ˆ[---+=kT k k k k T k k k k R H P H H P K 11,11,1,ˆ-----+ΦΦ=k T k k k k k k k Q P P1,)(--=k k k k k P H K I P.其中,k r ˆ、KR ˆ、k q ˆ和k Q ˆ由以下时变噪声统计估值器获得: )ˆ(ˆ)1(ˆ,1111k k k k k k k k x H z d r d r++++-+-= )~~(ˆ)1(ˆ1,11111T k k k k T k k k k k k H P H z z d R d R ++++++-+-=)ˆ(ˆ)1(ˆ,111k k k k k k k k x x d q d q+++Φ-+-=.)~~(ˆ)1(ˆ,1,1111111T k k k k k k T k T k k k k k k k P P K z z K d Q d Q ++++++++ΦΦ-++-=式中:111+--=k k bbd ,10<<b 为遗忘因子。
如果系统状态变量的维数比较高,而Sage-Husa 自适应滤波算法中又增加了对系统噪声统计特性的计算,计算量将大大增加,实时性也将难以得到保证。
除此之外,对于阶次较高的系统,Sage-Husa 自适应滤波算法中k R 和k Q 的在线估计有时会由于计算发散失去半正定性和正定性而出现滤波发散现象,此时Sage-Husa 自适应滤波算法的稳定性和收敛性不能完全保证。
基于极大似然准则的自适应卡尔曼滤波,通过系统状态方差阵和量测噪声方差阵实时估计系统噪声统计特性的变化,以保证滤波器更好地适应这种变化。
极大似然估计从系统量测量出现概率最大的角度估计,其特点是不仅考虑新息的变化,而且考虑新息协方差矩阵vk C 的变化。
它的量测噪声协方差矩阵Rˆ和系统噪声协方差矩阵Qˆ为: T kk k k vk k H P H C R 1,ˆˆ--= 1,11,11ˆ---+-=ΦΦ-+∆∆=∑k k k T k k k T i kN k i ikP P xx NQk k k k k k v K x xx =-=∆-1,ˆˆ ∑+-==kN k i T ii vk vv NC 11式中:1,ˆ--=k k k k zz v ,N 为平滑窗口的宽度。
扩展卡尔曼滤波最初提出的卡尔曼滤波基本理论只适用于状态方程和量测方程均为线性的随机线性高斯系统。
但是大部分系统是非线性的,其中还有许多事强非线性的。
非线性估计的核心就在于近似,给出非线性估计方法的不同就在于其近似处理的思想和实现手段不同。
近似的本质就是对难以计算的非线性模型施加某种数学变换,变换成线性模型,然后用Bayes 估计原理进行估计。
进一步说,非线性变换到线性变换主要有两种实现手段,一种是Taylor 多项式展开,一种是插值多项式展开。
Bucy 和Y.Sunahara 等人致力于研究将经典卡尔曼滤波理论扩展到非线性随机系统滤波估计中,提出了离散非线性随机系统扩展卡尔曼滤波(Extended kalman filter,以下简称EKF)。
EKF 是传统非线性估计中的代表,其基本思想是将非线性状态函数和量测函数进行局部线性化,即进行一阶Taylor 多项式展开,然后应用线性系统Kalman 滤波公式。
非线性离散系统状态方程和观测方程的一般形式如下所示kk k k k k k k k v u x g z w u x f x +=Γ+=+),(),(1 1-1式中:r k R u ∈为输入向量;p k R w ∈和q k R v ∈均为高斯白噪声,且互不相关,其统计特性为:其中,⎪⎩⎪⎨⎧=====0),(),(,0)(),(,0)(j k kj k j k k kjk j k k v w Cov R v v Cov v E Q w w Cov w E δδ式中,k Q 为过程激励噪声协方差矩阵,k R 为观测噪声协方差矩阵。
),(11--k k u x f 是一个非线性状态转换函数,),(11--k k u x g 是一个非线性量测函数。
每一个时刻点,根据一阶泰勒展开将),(11--k k u x f ,),(11--k k u x g 线性化,即将非线性状态函数)··(,f 和非线性量测函数)··(,g 围绕滤波值展开泰勒级数,并略去二阶以上项,得到)ˆ(),(),ˆ(),(ˆk k xx k k k k k k k xx x u x f u xf u x f k k -∂∂+≈= 1-2 )ˆ(),(),ˆ(),(ˆk k xx kk k k k k k xx x u x g u x g u x g k k -∂∂+≈- 1-3 定义k k xx kk k k x u x f ˆ),(ˆ=∂∂=Φ,k k xx kk k kx u x g H ˆ),(ˆ=∂∂=,根据式(1-1)、式(1-2)和式(1-3)可以得到非线性系统线性化后只与状态变量有关的表达式,如下⎪⎩⎪⎨⎧+-+≈Γ+Φ-+Φ≈+k k k k k k k k k k k k k k k k k v x H u xg x H z w x u x f x x ]ˆ),ˆ([ˆ]ˆ),ˆ([ˆ1 1-4式1-4中,注意到k k k k x u x f Φ-ˆ),ˆ(并非k x 的函数,kk k k x H u x g ˆ),ˆ(-并非k x 的函数,根据1-4近似结果,应用上节的Kalman 滤波器计算可以得到EKF 迭代算法:定义k k xx kk k k x u x f ˆ),(ˆ=∂∂=Φ,k k xx kk k kx u x g H ˆ),(ˆ=∂∂=,可得滤波方程初始条件 )var(),(ˆ0000x P x E x== 状态先验估计值 ),ˆ(ˆ111,---=k k k k u x f x误差协方差先验估计值 Tk k k k k T k k k k k k k Q P P 1,11,1,11,1,-------ΓΓ+ΦΦ= 增益矩阵 11,1,][---+=k T k k k k T k k k k R H P H H P K状态后验估计值)],ˆ([ˆˆ11,k k k k k k k u x g z K x x---+= 误差协方差后验估计值 1,)(--=k k k k k P H K I P无迹卡尔曼滤波(UKF )EKF 是一种次优非线性高斯滤波器,它采用对非线性函数进行线性化近似的方法,来计算状态分布经非线性函数传递之后的特性。
尽管EKF 得到了广泛的应用,但它依然存在自身无法克服的理论局限性:①要求非线性系统状态函数和量测函数必须是连续可微的,这限制了EKF 的应用范围;②对非线性函数的一阶线性化近似精度偏低,特别地,当系统具有强非线性时,EKF 估计精度严重下降,甚至发散;③需要计算非线性函数的雅克比矩阵,容易造成EKF 数值稳定性差和出现计算发散。
为了克服上述EKF 的缺陷,能够以较高的精度和较快的计算速度处理非线性高斯系统的滤波问题,Julier 等人根据确定性采样的基本思路,基于Unscented 变换(UT )提出了Unscented 卡尔曼滤波(UKF )。
与EKF 类似,UKF 仍继承了卡尔曼滤波器的基本结构,不同之处在于UKF 用Unscented 变换取代了EKF 中的局部线性化。
UKF 仍假设随机系统的状态必须服从高斯分布,但取消了对系统模型的限制条件,也就是说,不要求系统是近似线性的,同时,UKF 不需要计算雅克比矩阵,因此不要求状态函数和量测函数必须是连续可微的,它甚至可以应用于不连续系统。