线性离散卡尔曼滤波器
- 格式:docx
- 大小:209.42 KB
- 文档页数:6
卡尔曼滤波器原理之基本思想(⼀)⼀、卡尔曼滤波器要解决的问题 ⾸先说⼀下卡尔曼滤波器要解决的是哪⼀类问题,这类系统应该如何建模。
这⾥说的是线性卡尔曼滤波器,顾名思意,那就是线性动态的离散系统。
这类系统可以⽤如下两个⽅程来表⽰:\[\begin{array}{l}x(n + 1) = {\bf{F}}(n + 1,n)x(n) + {v_1}(n) \\y(n) = {\bf{C}}(n)x(n) + {v_2}(n) \\\end{array}\] 其中: x(n)表⽰系统的状态 F(n+1,n)为状态转移矩阵,表⽰状态随时间的变化规律。
通俗的讲,从当前状态到下⼀个状态之间有什么关系。
C(n)表⽰观测值与状态的关系 y(n)表⽰状态的观测值 v1表⽰系统过程的噪声 v2表⽰观测过程中产⽣的噪声 上⾯的两个⽅程中,第⼀个⽅程是过程⽅程,它表⽰系统状态x(n)随时间的更新过程。
第⼆个⽅程为测量⽅程,表⽰状态x(n)与测量结果y(n)的关系。
这⾥我们要先对这两个⽅程中的概念做下解释。
⾸先解释下状态这个概念。
状态是对系统特征进⾏的⼀个抽象,由预测系统未来特性时所需要的、与系统过去⾏为有关的最少数据组成。
这个概念不好理解吧!那么举个例⼦。
相信不少朋友在⽹上看到过有⼈拿来讲述卡尔曼滤波原理。
这⾥房间⾥真实的温度就是状态,它可以是⼀个参数,也可以是多个参数。
那么,⽤温度计测出来的值,就是这⾥的观测值y(n)。
再说⼀个例⼦,假如我们要对⼀个运动的物体进⾏跟踪,那么,物体的位移和速度完全可以表⽰这个运动物体所组成的系统的主要特征。
这时的状态就可以⽤⼀个具有位移和速度两个特征的向量来表⽰。
解释到这⾥,相信很多朋友已经正确理解了状态这个概念,它表⽰的是系统客观存在的真实特征。
再说⼀下系统状态与其观测值之间为什么有C(n)的存在,这⾥它表⽰的是观测值与状态的关系。
再拿室内测度测量来举例⼦,室内客观真实温度(未知量)做为这个系统中的状态,⽤温度计来测量这个状态。
10.6 卡尔曼滤波器简介本节讨论如何从带噪声的测量数据把有用信号提取出来的问题。
通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内。
如前所述,为了消除噪声,可以把 FIR滤波器或IIR滤波器设计成合适的频带滤波器,进行频域滤波。
但在许多应用场合,需要进行时域滤波,从带噪声的信号中提取有用信号。
虽然这样的过程其实也算是对信号的滤波,但所依据的理论,即针对随机信号的估计理论,是自成体系的。
人们对随机信号干扰下的有用信号不能“确知”,只能“估计”。
为了“估计”,要事先确定某种准则以评定估计的好坏程度。
最小均方误差是一种常用的比较简单的经典准则。
典型的线性估计器是离散时间维纳滤波器与卡尔曼滤波器。
对于平稳时间序列的最小均方误差估计的第一个明确解是维纳在1942年2月首先给出的。
当时美国的一个战争研究团体发表了一个秘密文件,其中就包括维纳关于滤波问题的研究工作。
这项研究是用于防空火力控制系统的。
维纳滤波器是基于最小均方误差准则的估计器。
为了寻求维纳滤波器的冲激响应,需要求解著名的维纳-霍夫方程。
这种滤波理论所追求的是使均方误差最小的系统最佳冲激响应的明确表达式。
这与卡尔曼滤波(Kalman filtering)是很不相同的。
卡尔曼滤波所追求的则是使均方误差最小的递推算法。
在维纳进行滤波理论研究并导出维纳-霍夫方程的十年以前,在1931年,维纳和霍夫在数学上就已经得到了这个方程的解。
对于维纳-霍夫方程的研究,20世纪五十年代涌现了大量文章,特别是将维纳滤波推广到非平稳过程的文章甚多,但实用结果却很少。
这时正处于卡尔曼滤波问世的前夜。
维纳滤波的困难问题,首先在上世纪五十年代中期确定卫星轨道的问题上遇到了。
1958年斯韦尔林(Swerling)首先提出了处理这个问题的递推算法,并且立刻被承认和应用。
1960年卡尔曼进行了比斯韦尔林更有意义的工作。
他严格地把状态变量的概念引入到最小均方误差估计中来,建立了卡尔曼滤波理论。
卡尔曼滤波离散化公式卡尔曼滤波是一种常用的估计方法,用于从不完全或包含噪声的测量数据中估计系统的状态。
它结合了系统的先验知识和测量数据,通过递归迭代的方式,不断更新系统状态的估计值。
在实际应用中,为了方便计算和实现,通常需要将卡尔曼滤波器的连续形式离散化。
离散化是指将连续时间下的卡尔曼滤波器转化为离散时间下的形式。
在离散化过程中,需要将连续时间下的状态方程和测量方程转化为离散时间下的形式。
离散化公式是实现这一转化的关键。
考虑连续时间下的卡尔曼滤波器状态方程:x(k+1) = A*x(k) + B*u(k) + w(k)其中,x(k)为系统在时刻k的状态,A为状态转移矩阵,B为控制输入矩阵,u(k)为控制输入,w(k)为过程噪声。
为了将状态方程离散化,我们引入采样时间Ts,将连续时间下的状态方程转化为离散时间下的形式:x(k+1) = F*x(k) + G*u(k) + w(k)其中,F为状态转移矩阵,G为控制输入矩阵,满足:F = exp(A*Ts)G = (A^-1)*(F-I)*B接下来,考虑连续时间下的卡尔曼滤波器测量方程:z(k) = H*x(k) + v(k)其中,z(k)为测量值,H为测量矩阵,v(k)为测量噪声。
同样地,我们引入采样时间Ts,将连续时间下的测量方程转化为离散时间下的形式:z(k) = H*x(k) + v(k)离散化公式的推导过程比较复杂,主要涉及到连续时间下的积分和离散时间下的累加的转换。
在实际应用中,可以通过数值方法或近似方法进行计算。
常用的数值方法包括欧拉法、梯形法和龙格-库塔法等。
利用离散化公式,我们可以将连续时间下的卡尔曼滤波器转化为离散时间下的形式,从而实现对系统状态的估计。
离散化后的卡尔曼滤波器可以更方便地应用于嵌入式系统、数字信号处理等领域。
总结一下,卡尔曼滤波器的离散化公式是将连续时间下的状态方程和测量方程转化为离散时间下的形式的关键。
离散化后的卡尔曼滤波器可以更方便地计算和实现,适用于各种应用场景。
附录:kalman滤波(起源、发展、原理、应用)1、Kalman滤波起源及发展1960年,匈牙利数学家卡尔曼发表了一篇关于离散数据线性滤波递推算法的论文,这意味着卡尔曼滤波的诞生。
斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器,卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerling (1958)、Kalman (1960)与Kalman and Bucy (1961)发表.卡尔曼滤波是一种有着相当广泛应用的滤波方法,但它既需要假定系统是线性的,又需要认为系统中的各个噪声与状态变量均呈高斯分布,而这两条并不总是确切的假设限制了卡尔曼滤波器在现实生活中的应用。
扩展卡尔曼滤波器(EKF)极大地拓宽了卡尔曼滤波的适用范围。
EKF的基本思路是,假定卡尔曼滤滤对当前系统状态估计值非常接近于其真实值,于是将非线性函数在当前状态估计值处进行台劳展开并实现线性化。
另一种非线性卡尔曼滤波叫线性化卡尔曼滤波。
它与EKF的主要区别是前者将非线函数在滤波器对当前系统状态的最优估计值处线性化,而后者因为预先知道非线性系统的实际运行状态大致按照所要求、希望的轨迹变化,所以这些非线性化函数在实际状态处的值可以表达为在希望的轨迹处的台劳展开式,从而完成线性化。
不敏卡尔曼滤波器(UKF)是针对非线性系统的一种改进型卡尔曼滤波器。
UKF处理非线性系统的基本思路在于不敏变换,而不敏变换从根本上讲是一种描述高斯随机变量在非线性化变换后的概率分布情况的方法。
不敏卡尔曼滤波认为,与其将一个非线性化变换线性化、近似化,还不如将高斯随机变量经非线性变换后的概率分布情况用高斯分布来近似那样简单,因而不敏卡尔曼滤波算法没有非线性化这一步骤。
在每一定位历元,不敏卡尔曼滤波器按照一套公式产生一系列样点,每一样点均配有一个相应的权重,而这些带权的样点被用来完整地描述系统状态向量估计值的分布情况,它们替代了原先卡尔曼滤波器中的状态向量估计值及协方差。
卡尔曼滤波器的优点主要包括:适用于线性系统:卡尔曼滤波器特别适用于线性系统的状态估计,因为它的递归算法能够在线性系统中实现最优估计。
计算效率高:卡尔曼滤波器在估计过程中不需要存储所有的数据,只需要当前和前一时刻的状态,因此计算效率较高。
适用于多维数据:卡尔曼滤波器可以扩展到多维状态空间,因此可以用于处理多传感器、多目标跟踪等问题。
然而,卡尔曼滤波器也存在一些局限性:要求系统具有线性特性:卡尔曼滤波器要求系统具有线性特性,对于非线性系统,需要采用扩展卡尔曼滤波器等改进方法,但这些方法精度和稳定性可能受到影响。
对初值和参数敏感:卡尔曼滤波器的估计结果对初值和参数的选择非常敏感,如果初值或参数选择不当,可能会导致估计结果不稳定或不准确。
对噪声模型的要求:卡尔曼滤波器要求噪声服从高斯分布,如果噪声不服从高斯分布,可能会导致估计结果失真。
对系统动态模型的要求:卡尔曼滤波器要求系统动态模型是已知的,并且是准确的,如果模型不准确或存在误差,可能会导致估计结果不准确。
卡尔曼滤波参数卡尔曼滤波是一种利用一系列离散时间的观测值,对状态变量进行估计的算法,它被广泛应用于瞄准、自动导航、目标识别和控制系统等领域。
它适用于线性系统,可以通过递归方式实现,用于估计系统状态的随时间演变。
本文将介绍卡尔曼滤波的参数以及相关参考内容。
参数:1. 状态方程卡尔曼滤波器的状态方程指的是系统的物理模型,即描述了状态变量如何随时间演化的方程。
在线性系统中,状态变量可以表示为一系列线性方程的组合,例如:x[k+1] = Fx[k] + Gu[k] + w[k]其中,x[k]是k时刻的状态变量,F是状态转移矩阵,G是输入矩阵,u[k]是k时刻的输入变量,如控制信号,w[k]是k时刻的过程噪声。
2. 观测方程卡尔曼滤波器的观测方程描述了每次观测噪声和状态变量之间的关系,通常表示为:z[k] = Hx[k] + v[k]其中,z[k]是k时刻的观测量,H是观测矩阵,v[k]是测量噪声。
3. 状态协方差矩阵状态协方差矩阵是一个对称矩阵,它描述了状态变量的不确定性或误差的大小和协方差。
卡尔曼滤波器的设计目标之一是通过最小化状态协方差矩阵来提高估计的准确性。
4. 过程噪声协方差矩阵过程噪声协方差矩阵描述了过程噪声的大小和协方差。
在实践中,可以通过实验或经验来确定这个矩阵的值。
5. 测量噪声协方差矩阵测量噪声协方差矩阵描述了测量噪声的大小和协方差。
同样,可以通过实验或经验来确定这个矩阵的值。
参考内容:1. Probabilistic Robotics by Sebastian ThrunSebastian Thrun的《Probabilistic Robotics》是一本深入而全面的介绍机器人操作和控制中使用概率方法的经典教材。
该书详细介绍了卡尔曼滤波器和其应用,特别是在移动机器人定位和地图构建中的应用。
2. A tutorial on Kalman Filter这是一篇详细而易懂的卡尔曼滤波器教程,介绍了状态方程、观测方程、状态协方差矩阵、过程噪声协方差矩阵和测量噪声协方差矩阵等各个参数的作用和意义。
卡尔曼滤波卡尔曼滤波(Kalman filtering ) 一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。
由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
斯坦利施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。
卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerli ng (1958), Kalman (I960) 与Kalma n and Bucy (1961) 发表。
数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态•由于,它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用•中文名卡尔曼滤波器,Kalman滤波,卡曼滤波外文名KALMAN FILTER表达式X(k)=A X(k-1)+B U(k)+W(k)提岀者斯坦利施密特提岀时间1958应用学科天文,宇航,气象适用领域范围雷达跟踪去噪声适用领域范围控制、制导、导航、通讯等现代工程斯坦利施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。
卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导—航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerling (1958), Kalman (1960)与Kalma n and Bucy (1961) 发表。
2定义传统的滤波方法,只能是在有用信号与噪声具有不同频带的条件下才能实现. 20世纪40年代,N .维纳和A. H .柯尔莫哥罗夫把信号和噪声的统计性质引进了滤波理论,在假设信号和噪声都是平稳过程的条件下,利用最优化方法对信号真值进行估计,达到滤波目的,从而在概念上与传统的滤波方法联系起来,被称为维纳滤波。
什么是卡尔曼滤波?卡尔曼滤波器(Kalman Filter )是一个最优化自回归数据处理算法(optimal recursive data processing algorithm )。
卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。
它适合于实时处理和计算机运算。
现设线性时变系统的离散状态防城和观测方程为:X(k) = F(k,k-1)·X(k-1)+T(k,k-1)·U(k-1)Y(k) = H(k)·X(k)+N(k)其中X(k)和Y(k)分别是k 时刻的状态矢量和观测矢量F(k,k-1)为状态转移矩阵U(k)为k 时刻动态噪声T(k,k-1)为系统控制矩阵H(k)为k 时刻观测矩阵N(k)为k 时刻观测噪声则卡尔曼滤波的算法流程为:预估计)(X k = F(k,k-1)·X(k-1)计算预估计协方差矩阵Q(k) = U(k)×U(k)')(k C =F(k,k-1)×C(k)×F(k,k-1)'+T(k,k-1)×Q(k)×T(k,k-1)'计算卡尔曼增益矩阵R(k) = N(k)×N(k)'K(k) = )(k C ×H(k)'/[H(k)×)(k C ×H(k)’+R(k)]更新估计)(X ~k =)(X k +K(k)×[Y(k)-H(k)×)(X k ]计算更新后估计协防差矩阵)(C ~k = [I-K(k)×H(k)]×)(k C ×[I-K(k)×H(k)]'+K(k)×R(k)×K(k)'X(k+1) = )(X ~kC(k+1) =)(C ~k重复以上步骤。
卡尔曼滤波器介绍摘要在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法。
从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。
卡尔曼滤波器是一系列方程式,提供了有效的计算(递归)方法去估计过程的状态,是一种以平方误差的均值达到最小的方式。
滤波器在很多方面都很强大:它支持过去,现在,甚至将来状态的估计,而且当系统的确切性质未知时也可以做。
这篇论文的目的是对离散卡尔曼滤波器提供一个实际介绍。
这次介绍包括对基本离散卡尔曼滤波器推导的描述和一些讨论,扩展卡尔曼滤波器的描述和一些讨论和一个相对简单的(切实的)实际例子。
1 离散卡尔曼滤波器在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法[Kalman60]。
从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。
第一章讲述了对卡尔曼滤波器非常“友好的”介绍[Maybeck79],而一个完整的介绍可以在[Sorenson70]找到,也包含了一些有趣的历史叙事。
更加广泛的参考包括Gelb74;Grewal93;Maybeck79;Lewis86;Brown92;Jacobs93]. 被估计的过程卡尔曼滤波器卡用于估计离散时间控制过程的状态变量n x ∈ℜ。
这个离散时间过程由以下离散随机差分方程描述: 111k k k k x Ax bu w ---=++ (1.1)测量值m z ∈ℜ,k k k z Hx v =+ (1.2) 随机变量k w 和k v 分别表示过程和测量噪声。
他们之间假设是独立的,正态分布的高斯白噪: ()~(0)p w N Q, (1.3) ()~(0)p v N R , (1.4)在实际系统中,过程噪声协方差矩阵Q 和观测噪声协方差矩阵R 可能会随每次迭代计算而变化。
但在这儿我们假设它们是常数。
9 卡尔曼滤波器的稳定性9.1 稳定性定义滤波的稳定性问题是研究滤波初值的选取对估计值和估计的误差方差阵的影响。
xˆ和误差方差阵k P都不受所选如果随着滤波时间的增长,估计值k初值的影响,则滤波器是稳定的。
否则估计是有偏的,估计误差方差阵也不是最小的。
对于随机线性离散动态系统()()()()()k k G k k A k w x x +=+1设()01x、()02x 为滤波器的两个任意初始状态,()k 1x 、()k 2x 是对应于两个初始状态在k 时刻的状态。
定义1:若对于任意给定正数0>ε,都可以找到正数()0,0>t εδ,使得对任意()()()021,00t εδ<−x x恒有()()ε<−k k 21x x ,k ∀成立,则称滤波器是稳定的。
定义2:若滤波器稳定,且有()()0lim 21=−∞→k k k x x则称滤波器渐近稳定。
定义3:若滤波器稳定,而且对任意初始状态总有()()0lim 21=−∞→k k k x x则称滤波器一致渐近稳定。
注:对于定常系统,渐近稳定与一致渐近稳定两者等价。
9.2 随机线性系统的可控性与可观测性设随机线性离散系统为()()()()()()()()()1111,11++++=+++Φ=+k k k H k k k G k k k k v x z w x x式中,()[]0w =k E ,()()[]()kj Tk Q j k E δ=ww()[]0v =k E , ()()[]()kj Tk R j k E δ=v v()()[]0=j k E Tv w随机离散系统的完全随机可控的充要条件是:随机可控性矩阵满足()()()()()()0,,1,1>ΦΦ=+−∑+−=kN k i TT i k i G i Q i G i k N k k CN 为与k 无关的正整数。
随机离散系统的一致完全随机可控的充要条件是:如果存在正整数N 和01>α,01>β,使得当N k ≥时,有()IN k k C I 111,βα≤+−≤随机离散系统的完全随机可观测的充要条件是:()()()()()()0,,1,11>ΦΦ=+−∑+−=−kN k i T T k i i H i R i H k i N k k M()1,+−N k k M 为离散型随机可观测矩阵。
卡尔曼滤波器介绍Greg Welch1and Gary Bishop2TR95-041Department of Computer ScienceUniversity of North Carolina at Chapel Hill3Chapel Hill,NC27599-3175翻译:姚旭晨更新日期:2006年7月24日,星期一中文版更新日期:2007年1月8日,星期一摘要1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文。
从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。
卡尔曼滤波器由一系列递归数学公式描述。
它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。
卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。
这篇文章介绍了离散卡尔曼理论和实用方法,包括卡尔曼滤波器及其衍生:扩展卡尔曼滤波器的描述和讨论,并给出了一个相对简单的带图实例。
1welch@,/˜welch2gb@,/˜gb3北卡罗来纳大学教堂山分校,译者注。
1Welch&Bishop,卡尔曼滤波器介绍21离散卡尔曼滤波器1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文[Kalman60]。
从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。
[Maybeck79]的第一章给出了一个非常“友好”的介绍,更全面的讨论可以参考[Sorenson70],后者还包含了一些非常有趣的历史故事。
更广泛的参考包括[Gelb74,Grewal93,Maybeck79,Lewis86,Brown92,Jacobs93]。
被估计的过程信号卡尔曼滤波器用于估计离散时间过程的状态变量x∈ n。
这个离散时间过程由以下离散随机差分方程描述:x k=Ax k−1+Bu k−1+w k−1,(1.1)定义观测变量z∈ m,得到量测方程:z k=Hx k+v k.(1.2)随机信号w k和v k分别表示过程激励噪声1和观测噪声。
离散型卡尔曼滤波是一种常用于估计系统状态的滤波算法。
它利用系统模型和观测值,通过递归的方式来更新状态的估计值,从而减小系统误差的影响。
在matlab中,可以利用相关的工具箱或者自行编写代码来实现离散型卡尔曼滤波。
一、算法原理离散型卡尔曼滤波算法的原理基于系统的动力学模型和观测方程。
假设系统的状态可以用一个向量来表示,观测值也可以用一个向量来表示,则系统的动力学模型可以用以下状态转移方程来描述:x(k+1) = Fx(k) + w(k)其中,x(k)表示系统在时刻k的状态,F是状态转移矩阵,w(k)是系统的过程噪声。
观测方程可以用以下公式来表示:z(k) = Hx(k) + v(k)其中,z(k)表示系统在时刻k的观测值,H是观测矩阵,v(k)是观测噪声。
离散型卡尔曼滤波算法主要包括预测步骤和更新步骤:1. 预测步骤:利用系统的动力学模型,对系统的状态进行预测,并计算预测误差的协方差矩阵。
2. 更新步骤:利用观测方程,将预测的状态估计值与观测值进行比较,通过卡尔曼增益来更新状态估计值,同时更新状态估计的误差的协方差矩阵。
二、 Matlab实现在matlab中,可以利用相关的工具箱来实现离散型卡尔曼滤波算法,也可以根据算法原理自行编写代码实现。
需要定义系统的状态转移矩阵F、过程噪声协方差矩阵Q、观测矩阵H、观测噪声协方差矩阵R等参数。
根据离散型卡尔曼滤波算法的预测步骤和更新步骤,编写相应的代码实现状态的预测和更新。
具体实现过程如下:1. 定义系统参数:```matlabF = [1 1; 0 1]; 状态转移矩阵H = [1 0]; 观测矩阵Q = 0.1; 过程噪声协方差矩阵R = 1; 观测噪声协方差矩阵2. 初始化状态估计值和误差的协方差矩阵:```matlabx = [0; 0]; 初始状态估计值P = eye(2); 初始误差的协方差矩阵```3. 实现离散型卡尔曼滤波算法:```matlabfor k = 1:100预测步骤x_ = F * x;P_ = F * P * F' + Q;更新步骤K = P_ * H' / (H * P_ * H' + R);x = x_ + K * (z(k) - H * x_);P = (eye(2) - K * H) * P_;end```通过以上代码,就可以实现离散型卡尔曼滤波算法对系统状态的估计。
卡尔曼滤波卡尔曼滤波器是一种由卡尔曼(Kalman )提出的用于时变线性系统的递归滤波器。
这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差。
卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。
卡尔曼滤波的基本概念一个实际的系统可用如下形式表示:设向量非平稳序列1-k x 和1-k y 用下面的动态方程描述:)0(111,≥⎩⎨⎧+=+Φ=---k v x C y w x x kk k k k k k k k (1—1)k x 是状态向量,k y 是观测向量,k w 是输入噪声,k v 是观测噪声,1,-Φk k 是从1-k 时刻到k 时刻的状态转移阵。
上述动态方程可由系统的机理推导得来或由实验数据辨识得到。
现假设已知。
有如下假设:1)k w 和k v 为零均值白噪声即:()[]0,[,][]0,[,]()Tk k j k j k kj T k k j k j k kjE w Cov w w E w w Q E v Cov v v E v v R δδ⎧===⎪⎨===⎪⎩其中k Q 对称半正定k R 对称正定,均为已知。
2)k w 和k v 不相关即()[,]0(,)T k j kjC o v w v E w vk j==∀ 3)初始状态0x 是随机向量,且与k w 、k v 不相关,即000000[,][()]0[,][()]0Tk k Tk kCov x w E x Ex w Cov x v E x Ex v ⎧=-=⎪⎨=-=⎪⎩ 卡尔曼滤波:——状态估计在已知动态方程(1—1)(状态和观测方程)和样本观测数据k y ,1-k y ,…情况下,求随机序列样本——状态k x 的估计值k xˆ。
卡尔曼通过对下一步预测观测误差——新息的修正加之最小均方误差调整准则很好地解决了带有噪声的状态估计问题。
卡尔曼的递推思想与新息:递推计算和新息是卡尔曼滤波的基本思想,请看如:)(11111211k k k k k y y k y k y y y y -++=++++=+++平均计算变成一种递推计算,大大减少了计算量,把1+k 估计看成是在k 基础上的修正,修正项11()1k k y y k +-+。
卡尔曼滤波器分类及基本公式根据其应用领域和实现方式,卡尔曼滤波器可以分为线性卡尔曼滤波器、扩展卡尔曼滤波器和无迹卡尔曼滤波器等。
1. 线性卡尔曼滤波器(Linear Kalman Filter):线性卡尔曼滤波器适用于状态变量和观测变量均为线性的情况。
它基于线性动态系统和高斯噪声的假设。
线性卡尔曼滤波器的基本公式为:预测步骤:$\hat{x}_{k,k-1} = F\hat{x}_{k-1,k-1} + Bu_{k-1}$$P_{k,k-1}=FP_{k-1,k-1}F^T+Q$更新步骤:$y_k = z_k - H\hat{x}_{k,k-1}$$S_k=HP_{k,k-1}H^T+R$$K_k=P_{k,k-1}H^TS_k^{-1}$$\hat{x}_{k,k} = \hat{x}_{k,k-1} + K_ky_k$$P_{k,k}=(I-K_kH)P_{k,k-1}$其中,$\hat{x}$ 表示状态变量的估计值,$P$ 表示状态变量估计值的方差,$F$ 表示状态转移矩阵,$B$ 表示输入矩阵,$u$ 表示系统输入,$Q$ 表示系统模型噪声协方差矩阵,$H$ 表示观测矩阵,$z$ 表示观测值,$y$ 表示观测残差,$R$ 表示观测噪声协方差矩阵,$K$ 表示卡尔曼增益,$I$ 表示单位矩阵。
2. 扩展卡尔曼滤波器(Extended Kalman Filter):扩展卡尔曼滤波器适用于状态变量和观测变量为非线性的情况。
它通过对非线性系统进行线性化,然后应用线性卡尔曼滤波器的思想来进行滤波。
扩展卡尔曼滤波器的基本公式与线性卡尔曼滤波器类似,只是在预测步骤和更新步骤中,将线性化的系统模型和观测模型代替原始非线性模型。
3. 无迹卡尔曼滤波器(Unscented Kalman Filter):无迹卡尔曼滤波器通过使用无迹变换,避免了非线性系统线性化的过程,从而提高了滤波精度,并且对于非线性系统更加稳健。
线性离散卡尔曼滤波器线性离散卡尔曼滤波公式 两种数学推导方法的比较1. 引言卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。
从研究的历史来看,卡尔曼是首先研究的离散形式的卡尔曼滤波问题,所以最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。
下面分别对比了离散线性卡尔曼滤波器的相关公式推导的两种方法。
2. 离散线性卡尔曼滤波器的直观数学推导下面从直观角度来推导线性离散系统的卡尔曼滤波器,这是书中的推导方法。
首先假设线性离散系统模型如下,11,11k k k k k k kk k k kx w z H x v x----=Φ+Γ=+其中,1k w -为过程噪声,k v 为观测噪声,k z 为第k 次的测量值,/ˆk k x是k x 的最优线性估计,/1ˆk k x-是k x 的一步预报估计。
过程噪声1k w -和观测噪声k v 的统计特性为:1[]0,(,)[]0,(,)(,)0k ww k kjk vv k kj wv E w R k j Q E v R k j R R k j δδ-=====初始状态0x 的统计特性为:0000ˆ[],()E x x Var x P ==并假定0x 与k w 和k v 均无关,则有:00(0,)(,)0(0,)(,)0T xw k Txv k R k E x w R k E x v ====据以上假设及条件,可得如下直观形式/1,11/1/1/1//1/1ˆˆˆˆˆˆk k k k k k k k k k k k k k k k k k xx zH x xx K z --------=Φ==+ 式中,/1/1ˆk k k k k z z z--=-,k K 为待定的增益矩阵。
线性离散卡尔曼滤波公式 两种数学推导方法的比较1. 引言卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。
从研究的历史来看,卡尔曼是首先研究的离散形式的卡尔曼滤波问题,所以最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。
下面分别对比了离散线性卡尔曼滤波器的相关公式推导的两种方法。
2. 离散线性卡尔曼滤波器的直观数学推导下面从直观角度来推导线性离散系统的卡尔曼滤波器,这是书中的推导方法。
首先假设线性离散系统模型如下,11,11k k k k k k kk k k kx w z H x v x----=Φ+Γ=+其中,1k w -为过程噪声,k v 为观测噪声,k z 为第k 次的测量值,/ˆk k x是k x 的最优线性估计,/1ˆk k x-是k x 的一步预报估计。
过程噪声1k w -和观测噪声k v 的统计特性为:1[]0,(,)[]0,(,)(,)0k ww k kj k vv k kj wv E w R k j Q E v R k j R R k j δδ-=====初始状态0x 的统计特性为:0000ˆ[],()E x xVar x P == 并假定0x 与k w 和k v 均无关,则有:00(0,)(,)0(0,)(,)0T xw k Txv k R k E x w R k E x v ====据以上假设及条件,可得如下直观形式/1,11/1/1/1//1/1ˆˆˆˆˆˆk k k k k k k k k k k k k k k k k k xx z H x xx K z --------=Φ==+式中,/1/1ˆk k k k k z z z--=-,k K 为待定的增益矩阵。
下面按照目标函数//[]Tk k k k J E x x =最小的要求,确定最优滤波增益矩阵。
由述定义可得///1/1/1/1/1ˆˆ[][][]k k k k k k k k k k k k k k k k k k k k k k k k k k kx x xx K H x v H x x K H x v I K H x K v -----=-=-+-=-+=--从而///1/1/1/1/1/1{[]}{[]}[][][][]T T T T Tk k k k k k k k k k k k k k k k T T T T k k k k k k k k k k k k k k T T T T k k k k k k k k k kx x I K H x K v x I K H v K I K H x x I K H K v x I K H I K H x v K K v v K ------=----=------+由于/1k k x -是121,,...,k z z z -的线性函数,且测量误差是不相关的,所以根据向量知识有/1/1[]0,[]0T Tk k k k k k E x v E v x --==于是,滤波误差协方差矩阵为////1[][][]T T T k k k k k k k k k k k k k k k P E x x I K H P I K H K R K -==--+式中,/1/1/1[]Tk k k k k k P E x x ---=。
对上式同时加减一项:1/1/1/1[]T Tk k kk k k k k k k k P H H P H R H P ----+变形如下: 1//1/1/1/11/1/1/1()[()][]TT k k k k k k k k k k k k K K K TT T k k k k k k k kk k k k kk P P P H H P H R H P K P H H P H R H P H R ---------=-++-++要使/k k P 最小,则要使得上式中最后一项为0,即:1/1/1()T T k k k k k k k k k K P H H P H R ---=+此时,误差协方差矩阵为1//1/1/1/1/1()[]T Tk k k k k k k k k k k k K K K k k k k P P P H H P H R H P I K H P ------=-+=-下面计算预测误差协方差矩阵/1k k P -。
为此,先计算预测误差/1/1,11,11,11/1,11/1,11ˆˆk k k k k k k k k k k k k k k k k k k k k k x x xx w x x w --------------=-=Φ+Γ-Φ=Φ+Γ因此有/1/1,11/1,11,11/1,11,11/11/1,1,111/1,1,111,1,11/11,1[][]T Tk k k k k k k k k k k k k k k k k k T T T T k k k k k k k k k k k k k k k T T T T k k k k k k k k k k k k k x x x w x w x x w x w w x w --------------------------------=Φ+ΓΦ+Γ=ΦΦ+ΓΦ+ΓΓ+ΦΓ由于,11/11,1,111/1,1[]0[]0T Tk k k k k k k TT k k k k k k k E x w E w x----------ΦΓ=ΓΦ=于是有/1,11/1,11,11/1,11,11/11/1,1,111,1,11/1,1,11,1[][]Tk k k k k k k k k k k k k k k k T T T Tk k k k k k k k k k k k k k T T k k k k k k k k k k k P E x w x w x x w w P Q ----------------------------=Φ+ΓΦ+Γ=ΦΦ+ΓΓ=ΦΦ+ΓΓ至此,线性离散系统的卡尔曼滤波器的公式推导完毕。
3. 离散线性卡尔曼滤波器的正交投影法数学推导与之前讨论的不同,此处讨论的离散线性系统中,考虑到1k w -和k v 可能是相关的,所以假设系统的形式为:,111111k k k k k k k k x x B u w ------=Φ++Γ(1)k k k k k z Hx D u ν=++(2)(1)式为状态方程,(2)式为观测方程,式中x 为n 维状态向量;u 为m 维控制向量;w 为p 维动态噪声;Φ为n n ⨯阶状态转移矩阵;B 为n m ⨯阶矩阵;Γ为n p ⨯阶矩阵;z 为q 维观测向量;ν为q 维观测噪声;H 为q n ⨯矩阵。
D 为q m ⨯阶矩阵。
卡尔曼滤波器通过观测方程的关测量k z 的可测参数估计状态方程中状态量k x 的状态值。
将(2)式中k k D u 视为量测的系统误差项,{}k w 与{}k v 为零均值白噪声序列,由于状态方程中11k k B u --以及k k D u 的存在,可知在同一时刻k w 和k v 之间可能是相关的,这是与上面的直观推导过程中所假设的不同的。
由此,可知,模型的基本统计规律为:{}0k E w =cov()[]Tk j k jk kj w w E w w Q δ== {}0k E v =cov()[]Tk j k jk kj v v E v v R δ== cov()[]Tk j k j k kj w v E w v S δ==(3)这里kj δ是克罗内科函数,即:初始状态的统计特性为00E x u ⎡⎤=⎣⎦{}00000var ()()Tx E x x P μμ=--=(4) 此时0x 和{}k w {}k v 不相关。
下面利用正交投影法推导线性离散系统的卡尔曼滤波公式:首先将动态方程变形,使得动态噪声和量测噪声不相关。
,111111111111()k k k k k k k k k k k k k k k x x B u w J z H x D u ν------------=Φ++Γ+---(5) 令:*,1,111k k k k k k J H ----Φ=Φ-(6) *1111k k k k w w J υ----=Γ-(7)**,111111111()k k k k k k k k k k kx x B u J z D u w ---------=Φ++-+(8) 将111111()k k k k k k B u J z D u ------+-视为新控制项,则*cov()()()Tk j k k k k j k k k k kq w E w J S J R νννδ=Γ-=Γ-(9)取1k k k k J S R -=Γ(10)则动态噪声与量测声不相关。
然后求取最优线性测量的估计值设基于钱k-1次测量的测量向量集合11121...Tk T T Tk Z z z z --⎡⎤=⎣⎦,记y 是x 在z 上的投影为ˆ(\)y Ex z =则 1111ˆ(\)ˆk k k x Ex Z ---=(11) 1/11ˆ(\)ˆk k k k x Ex Z --=(12) 将(9)(11)(7)代入到(12)里得*1/1,111111111*,1/1111111*,1/1111111*,1/111111111ˆ(\)()ˆ()ˆ()ˆ()ˆˆk k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k x E x Z B u J z D u x B u J z D u x B u J z D u x B u J z D u H x ------------------------------------=Φ++-=Φ++-=Φ++-=Φ++--(13)接下来就是求最优线性测量值1/1111/1ˆ(\)ˆˆ()\k k k k k k k k k k k k k k kz Ez Z E H x D u Z H x D u ν----=⎡⎤=++⎣⎦=+(14) 之后找到k z 与11k Z -的新息成分,由上式可以得到/1/1/1ˆk k k k k k k k k z z z H x ν---=-=+(15) /1/1/1/1/1()()()T Tk k k k k k k k k k k k Tk k k k kE z z E H x H x H P H R νν-----⎡⎤=++⎣⎦=+(16)/1/1/1/1/1()[()]T T Tk k k k k k k k k k k k kE x z E x H x P H ν-----=+=(17) 求取ˆk x 的递推公式1111/1/1/1/1/1/1/1ˆ(\)ˆˆ(\)(())(())()ˆˆk k k k T T k k k k k k k k k k k k k k k k k k k x Ex Z E x Z E x z E z z z x K z D u H x ---------==++=+--(18) 其中1/1/1()T T k k k k k k k k k K P H H P H R ---=+(19)之后求取误差方差的递推公式:/1/1ˆk k k k k k k k x x x x K z --=-=-(20)**/1,111k k k k k kx x w -=---=Φ+(21) 分别对上述两个等式的两边求方差阵,由(7)(8)(10)式可得****/1,11,111,1111,111111111()()T Tk k k k K k k k k TTT k k k k k k k k k k k k k k k P P Ew w J H P J H QJ R J -------------------=ΦΦ+=Φ-Φ-+ΓΓ-(22)由(16)(17)(19)得到//1/1/1/1/1()()T T T Tk k k k k k k k k k k k k k k k k k k k k k k P P K H P H R K P H K K H P I K H P -----=++--=-综上,可知预测方程为/1,1111111111()ˆˆˆk k k k k k k k k k k k k x x B u J z D u H x -----------=Φ++--/1/1ˆk k k k k k k z H x D u --=+ 滤波方程为//1/1()ˆˆˆk k k k k k k k k k k x x K z D u H x --=+--增益矩阵1/1/1()T T k k k k k k k k k K P H H P H R ---=+方差阵/1,1111,111111111()()T T T k k k k k k k k k k k k k k k k kP J H P J H Q J R J --------------=Φ-Φ-+ΓΓ-11111k k k k J S R -----=Γ //1()k k k k k k P I K H P -=-于是,线性离散系统的卡尔曼滤波器的公式推导完毕。