卡尔曼滤波算法卡尔曼滤波算法是卡尔曼等人在20世纪60年代提出的一种递推滤波算法。它的实质是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法。其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至军事方面的雷达系统以及导弹追踪等等。Kalman一、一维时变随机信号的数学模型对每一确定的取样时刻k,x(k)是一个随机变量。当取样时刻的时标k变化时,就得到一个离散的随机序列{x(k)}。假设待估随机信号的数学模型是一个由白噪声序列W{(k)}驱动的一阶自递归过程,其动态方程为:)1()1()(kkaxkx式中:参数a<10)(kE22()EkjkjkjkE20)()((1)二、信号测量过程的数学模型)()()(kvkcxky信号测量过程的数学模型:式中:x(k)为k时刻的信号值。y(k)为该时刻对x(k)进行测量所得到的信号测量样值。v(k)为此时在测量过程中所引入的独立的附加噪声。0)(kvE22()vEvkjkjkvjvkvE20)()((2)所以,可以得到一维时变随机信号及其测量过程的数学模型。三、标量卡尔曼滤波器设计一维随机信号的递归型估计器的一般表达式:)()()1()()(kykbkxkakx在信号、测量过程的数学模型为条件下以均方估计误差最小为准则对估计器的加权系数a(k)和b(k)进行最优化,并推导出标量卡尔曼滤波器的最优估计的递推算法。递归型估计器在k时刻对信号的估计误差为)()()(kxkxke均方估计误差为2)()()(kxkxEkP(3)(4)(5)2)()()1()()()(kykbkxkakxEkP代入递归型估计器的一般表达式得:令P(k)对a(k)和b(k)的偏导数为零,得0)1()()()1()()(2)()(kxkykbkxkakxEkakP0)()()()1()()(2)()(kykykbkxkakxEkbkP(6)(7)(8)解出的a(k)和b(k)将保证该递归型估计器的均方估计误差为最小。()()()()()()ekxkakxkbkyk()ak0)1()(kxkeE由(7)和(8)式得根据()()0Eekyk(9)(10)由(7)式可得)1()()()()1()1()(kxkykbkxEkxkxkaE(11)经过一系列的代换可求出)(1)(kcbaka(12)此式为经过最优化得到的a(k)表达式()()()(1)()()ekxkakxkbkyk左式右式()(1)(1)(1())(1)(1)akExkxkacbkExkxk最优递归型估计器对信号)(kx的均方估计误差可写成)()()()1()()()()()(kykeEkbkxkeEkakxkeEkP(13)由9和10两式化简后得:)()()(kxkeEkP(14)由量测方程可得:1()()()xkykvkc代入式14中211()(()())(()())1((()()(1)()())())1()(()())1()vPkEekykEekvkccExkakxkbkykvkcbkEykvkcbkc(15)最优递归型估计器对信号的均方估计误差还可写成2)()()()1()()1()1()(kvkcxkbkxkakwkaxEkP(16)利用式12,将a(k)替换22()(1)(1)[1()](1)()()()()[1()](1)[1()](1)()()PkEaxkwkacbkxkcbkxkbkvkEacbkekcbkwkbkvk(17)交叉乘积项的均值都为零222222()1()(1)1()()wvPkacbkPkcbkbk(18)整理后求解得)1()1()(2222222kPacckPackbwvw此式即经过最优化所得到的)(kb的表达式。(19))(ka)(kb当增益和经过最优化,即分别有(12)式和(19)式给出时就是一个最优递归型估计器,其均方估计误差最小。)1()()()1()(kxackykbkxakx(20)20式物理意义的说明:在尚未获得k时刻的新测量样值y(k)以前,我们只能从(k-1)时刻对信号所作出的估计出发,由于信号数学模型中的动态噪声的确切数值w(k-1)无从得知,故对x(k)的预估值只能取作)1(kx)1(kxa当我们测得k时刻的新测量样值y(k)后,若所测得的y(k)值与其预估值之差不为零,就说明k时刻的新测量样值y(k)中包含有前(k-1)次测量中所没有的新信息。反之,新测量样值中不包含任何新信息。)1()(kxacky显然,当我们测得k时刻的新测量样值y(k)之后,可利用第k次测量中的新信息乘上一个比例系数b(k)作为修正项,对未测得y(k)前对信号给出的预估值进行修正。)1()(kyacky卡尔曼滤波的基本算法是预估加修正,公式15、19、20构成了标量卡尔曼滤波器在信号及其测量过程的数学模型。为了便于将标量卡尔曼滤波器的递推算法直接推广到向量随机信号(即多维随机信号)的卡尔曼滤波中去,给出如下的一套完整的递推算法:滤波估计方程)1()()()1()(kxackykbkxakx滤波增益方程2121)()()(vkPckcPkb代入式18,得均方滤波误差方程)()()()(11kPkcbkPkP式中:212222222()=((|1))(()(|1))((1)(1)(1))((1))((1))(1)wPkEekkEXkXkkEaxkwkaxkaEekEwkaPk四、向量卡尔曼滤波对向量卡尔曼滤波来说,标量情况下的滤波误差e(k)此时将变成一个滤波误差向量12()()()()()...()qekekekxkxkek)()()(kekekPT标量情况下的均方滤波误差,此时将变成一个滤波误差的协方差矩阵)(...)()(............)(...)()()(...)()(,2,1,,22,21,2,12,11,1kPkPkPkPkPkPkPkPkPqqqqqq考虑到向量卡尔曼滤波器与标量卡尔曼滤波器无论条件上(即信号及其测量过程的数学模型)还是在要求上(即“最优”的含义)都完全相似,因而,可以直接把标量卡尔曼滤波的递推公式推广到向量情况。滤波估计方程:)1()()()1()(kxCAkykKkxAkx滤波增益方程:111)()()()(kRCkCPCkPkKTT滤波协方差方程:)()()()(11kCPkKkPkPThankyou!