经典的卡尔曼滤波算法
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)。
卡尔曼滤波 协方差矩阵计算方式

一、概述卡尔曼滤波是一种用于估计系统状态的递归滤波算法,由哈罗德·卡尔曼在1960年提出。
卡尔曼滤波广泛应用于控制系统、导航系统、信号处理等领域。
协方差矩阵是卡尔曼滤波中的关键概念,它用于描述系统状态变量之间的相关程度。
本文将主要讨论卡尔曼滤波中的协方差矩阵的计算方式。
二、卡尔曼滤波概述卡尔曼滤波是一种通过融合系统动态模型和实际测量值来估计系统状态的算法。
它通过不断地更新状态的估计值,并且考虑测量噪声,能够有效地提高状态估计的准确性。
卡尔曼滤波基本思想可以用以下步骤来概括:1. 预测:根据系统的动态模型,预测下一个时刻的状态值和协方差矩阵。
2. 更新:根据实际的测量值,使用贝叶斯定理,将预测值和测量值进行融合,得到最优的状态估计值和协方差矩阵。
三、协方差矩阵协方差矩阵是描述多维随机变量之间相关关系的矩阵。
在卡尔曼滤波中,协方差矩阵描述了系统状态变量之间的相关程度,它是卡尔曼滤波的核心概念之一。
协方差矩阵的计算方式主要包括以下几种:1. 离散时间卡尔曼滤波中的协方差矩阵计算方式2. 连续时间卡尔曼滤波中的协方差矩阵计算方式3. 非线性卡尔曼滤波中的协方差矩阵计算方式下面将对以上几种计算方式进行详细介绍。
四、离散时间卡尔曼滤波中的协方差矩阵计算方式离散时间卡尔曼滤波是一种适用于离散时间系统的卡尔曼滤波算法,在实际应用中常常用于传感器数据处理、控制系统等。
在离散时间卡尔曼滤波中,协方差矩阵的计算方式可以通过以下步骤来实现:1. 预测协方差矩阵:根据系统的动态模型和上一时刻的协方差矩阵,通过卡尔曼滤波的预测步骤可以得到下一个时刻的预测协方差矩阵。
2. 更新协方差矩阵:根据实际的测量值和预测的状态估计值,利用卡尔曼滤波的更新步骤,可以得到更新后的协方差矩阵。
离散时间卡尔曼滤波中的协方差矩阵计算方式主要依赖于系统的状态转移矩阵和测量矩阵,通过不断的状态预测和状态更新,可以逐步更新协方差矩阵,从而得到最优的状态估计结果。
卡尔曼(kalman)滤波算法特点及其应用

Kalman滤波算法的特点:(1)由于Kalman滤波算法将被估计的信号看作在白噪声作用下一个随机线性系统的输出,并且其输入/输出关系是由状态方程和输出方程在时间域内给出的,因此这种滤波方法不仅适用于平稳随机过程的滤波,而且特别适用于非平稳或平稳马尔可夫序列或高斯-马尔可夫序列的滤波,所以其应用范围是十分广泛的。
(2)Kalman滤波算法是一种时间域滤波方法,采用状态空间描述系统。
系统的过程噪声和量测噪声并不是需要滤除的对象,它们的统计特征正是估计过程中需要利用的信息,而被估计量和观测量在不同时刻的一、二阶矩却是不必要知道的。
(3)由于Kalman滤波的基本方程是时间域内的递推形式,其计算过程是一个不断地“预测-修正”的过程,在求解时不要求存储大量数据,并且一旦观测到了新的数据,随即可以算的新的滤波值,因此这种滤波方法非常适合于实时处理、计算机实现。
(4)由于滤波器的增益矩阵与观测无关,因此它可预先离线算出,从而可以减少实时在线计算量。
在求滤波器增益矩阵时,要求一个矩阵的逆,它的阶数只取决于观测方程的维数,而该维数通常很小,这样,求逆运算是比较方便的。
另外,在求解滤波器增益的过程中,随时可以算出滤波器的精度指标P,其对角线上的元素就是滤波误差向量各分量的方差。
Kalman滤波的应用领域一般地,只要跟时间序列和高斯白噪声有关或者能建立类似的模型的系统,都可以利用Kalman滤波来处理噪声问题,都可以用其来预测、滤波。
Kalman滤波主要应用领域有以下几个方面。
(1)导航制导、目标定位和跟踪领域。
(2)通信与信号处理、数字图像处理、语音信号处理。
(3)天气预报、地震预报。
(4)地质勘探、矿物开采。
(5)故障诊断、检测。
(6)证券股票市场预测。
具体事例:(1)Kalman滤波在温度测量中的应用;(2)Kalman滤波在自由落体运动目标跟踪中的应用;(3)Kalman滤波在船舶GPS导航定位系统中的应用;(4)Kalman滤波在石油地震勘探中的应用;(5)Kalman滤波在视频图像目标跟踪中的应用;。
卡尔曼滤波算法范文

卡尔曼滤波算法范文1.预测步骤:在预测步骤中,基于系统的线性模型和上一时刻的状态估计,预测系统的当前状态。
首先,通过线性系统模型预测系统状态的下一时刻值。
这里的线性系统模型由状态转移矩阵和控制输入矩阵组成。
状态转移矩阵描述了系统状态如何从上一时刻的状态演变到当前时刻的状态,而控制输入矩阵描述了外部输入对状态的影响。
然后,利用协方差矩阵预测状态估计的不确定性。
协方差矩阵描述了状态估计的不确定性,是状态估计误差的度量。
2.更新步骤:在更新步骤中,基于传感器测量数据和预测步骤中得到的状态预测,更新系统的状态估计。
首先,计算观测模型的测量矩阵和噪声协方差矩阵。
观测模型描述了状态和观测之间的关系,测量矩阵将系统状态映射为观测值,噪声协方差矩阵描述测量噪声的特性。
然后,计算卡尔曼增益,用于权衡预测步骤中的状态预测和传感器测量数据。
最后,利用卡尔曼增益将预测步骤中得到的状态预测和传感器测量数据进行融合,得到对系统当前状态的最优估计。
同时,通过卡尔曼增益的影响,更新状态估计的不确定性。
1.递归性:卡尔曼滤波算法通过递归迭代的方式,即使用上一时刻的状态估计作为当前时刻状态估计的输入,从而不断更新状态估计。
2.最优性:卡尔曼滤波算法通过融合系统模型和传感器测量数据,提供对系统状态的最优估计。
最优估计是指在给定误差协方差限制下,估计误差最小。
3.估计不确定性:卡尔曼滤波算法通过协方差矩阵描述状态估计的不确定性。
协方差矩阵可以用于估计误差的置信区间和状态预测的可靠性。
4.适用性:卡尔曼滤波算法适用于线性系统模型和高斯噪声的情况。
虽然实际应用中有许多非线性系统和非高斯噪声的情况,但通过线性化和近似方法,可以将非线性问题转化为线性问题来使用卡尔曼滤波算法。
总结起来,卡尔曼滤波算法是一种递归滤波算法,通过融合系统模型和传感器测量数据,提供对系统状态的最优估计。
它在航空航天、导航、机器人、控制系统等应用中得到广泛应用,并且具有递归性、最优性、估计不确定性和适用性等重要特点。
经典卡尔曼滤波算法公式

经典卡尔曼滤波算法公式
卡尔曼滤波算法是一种基于状态估计的控制算法,经常应用于机器人控制、航空导航、车辆导航等领域。
下面是经典的卡尔曼滤波算法公式:
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 -。
卡尔曼滤波简介及其算法实现代码

卡尔曼滤波简介及其算法实现代码卡尔曼滤波算法实现代码(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)为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。
- 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 x x 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 不需要计算雅克比矩阵,因此不要求状态函数和量测函数必须是连续可微的,它甚至可以应用于不连续系统。