EKF之雅克比矩阵(一) |
您所在的位置:网站首页 › matlab计算雅可比矩阵 › EKF之雅克比矩阵(一) |
扩展卡尔曼滤波 (EKF)
EKF之雅克比矩阵 文章目录 扩展卡尔曼滤波 (EKF)前言一、什么是线性化?二、雅克比矩阵1.矩阵的几何含义2.非线性矩阵与基底的关系3.雅克比矩阵 三、工程中雅克比矩阵如何应用总结 前言一般的卡尔曼滤波(KF),是假设系统模型是线性的,即系统的输入输出满足齐次性和叠加性。标准卡尔曼滤波的前提条件之一,就是高斯分布的x_k 预测后仍服从高斯分布,高斯分布的x_k 变换到观测空间后仍服从高斯分布因此标准卡尔曼滤波只适合线性系统的处理。 但是实际工程中,卡尔曼滤波一般用于对传感器,电机等电子器件。这些期间由于电子性质,自身特性,基本都是非线性的,那么在这个系统之上建立的所有模型,都符合非线性系统。 如何将一个非线性系统线性化,就是EKF改进的部分。 一、什么是线性化?请大家看下面这个圆:
这个方法直接告诉大家,就是求圆在这个点处的导数,即可得出这个小小的线段的方程式了。这就是一种局部线性化的方式。 而在卡尔曼滤波中,一切数据传递,计算,更新都是通过矩阵来完成,怎么把一个矩阵线局部线性化呢?通过求该矩阵的雅克比矩阵即可。 二、雅克比矩阵雅克比矩阵的概念我是从可汗学院看来的,有兴趣大家可以移步b站看熟肉: 可汗学院 雅克比矩阵 下面介绍下我印象比较深的几个点: 1.矩阵的几何含义已知一个矩阵 A = [ 1 0 0 1 ] (1) \left[ \begin{matrix} 1 & 0 \\ 0 & 1 \\ \end{matrix} \right] \tag{1} [1001](1) 他在笛卡尔坐标系下的几何含义为: 假设有另一个矩阵 B = [ 3 1 0 2 ] (2) \left[ \begin{matrix} 3 & 1 \\ 0 & 2 \\ \end{matrix} \right] \tag{2} [3012](2) 通过矩阵行列式可以算出该矩阵的标量,其几何含义为向量[3,0]和向量[1,2]所围成的面积 我们将矩阵B做一个线性变化: del(B) = 3 * 2 - 1 * 0 = 6
但是我们能看出来,矩阵A到矩阵B是一个很标准的线性关系,那如果存在一组多元函数,且该函数呈现非线性关系,那么如何从几何层面理解这个多元函数与基底的关系呢? 2.非线性矩阵与基底的关系假设有一个矩阵C = [ f 1 ( x , y ) f 2 ( x , y ) ] (3) \left[ \begin{matrix} f1(x,y) \\ f2(x,y) \\ \end{matrix} \right] \tag{3} [f1(x,y)f2(x,y)](3) = [ x + s i n ( y ) y + s i n ( x ) ] (4) \left[ \begin{matrix} x + sin(y) \\ y + sin(x) \\ \end{matrix} \right] \tag{4} [x+sin(y)y+sin(x)](4) 这个矩阵是个非常典型的非线性矩阵,下面将坐标系中的所有(x,y)均乘以该矩阵,即将该坐标系中的所有点均转换成矩阵C下的点,抓住其中一个小矩形放大: 但是当对某一个区域放大时,可以看到虽然新图形围城的小矩形不那么方正,但是也没有变得特别扭曲,这个小矩形和基底之间的关系,就是其非线性化的程度。把这个区域再放大,那么其形状越接近基底。这就说明新图形的整体是非线性的,但是对局部而言,仍可以看做是线性的。放大倍率越大,其线性化程度越好。
根据上面对圆的局部线性化的推导,我们只要求出矩阵C导数,就可以得出矩阵C的雅克比矩阵D了。一个矩阵是多维度的,我们对这个矩阵的每一个维度求偏导,如矩阵C存在二维(x,y),那么只需要求矩阵C对于x的偏导,对于y的偏导,即可推出雅克比矩阵。 CSDN打公式太麻烦了,下面直接上图: 卡尔曼滤波中,需要对系统建模,根据模型推导状态转移矩阵F和更新矩阵H,通常还有个控制矩阵U不过这个不常用,一般通过状态空间对系统建模,太细就先不讲。 EKF中需要非线性化的就是矩阵F和矩阵H,这两个矩阵分别用于协方差矩阵Pk的更新和卡尔曼系数Kk的更新。 前面说了,矩阵有多个维度,对卡尔曼这个系统而言,每个状态向量X = [x1,x2,x3,x4, … , xn]都是一个维度,那么就需要矩阵F对于矩阵X求偏导,矩阵H对于矩阵X求偏导。 F(x1,x2,x3,x4) = [ f 1 ( x 1 , x 2 , x 3 , x 4 ) f 2 ( x 1 , x 2 , x 3 , x 4 ) f 3 ( x 1 , x 2 , x 3 , x 4 ) f 4 ( x 1 , x 2 , x 3 , x 4 ) ] (5) \left[ \begin{matrix} f1(x1,x2,x3,x4) \\ f2(x1,x2,x3,x4) \\ f3(x1,x2,x3,x4) \\ f4(x1,x2,x3,x4) \\ \end{matrix} \right] \tag{5} ⎣⎢⎢⎡f1(x1,x2,x3,x4)f2(x1,x2,x3,x4)f3(x1,x2,x3,x4)f4(x1,x2,x3,x4)⎦⎥⎥⎤(5) JF = [ ∂ f 1 / ∂ x 1 ∂ f 1 / ∂ x 2 ∂ f 1 / ∂ x 3 ∂ f 1 / ∂ x 4 ∂ f 2 / ∂ x 1 ∂ f 2 / ∂ x 2 ∂ f 2 / ∂ x 3 ∂ f 2 / ∂ x 4 ∂ f 3 / ∂ x 1 ∂ f 3 / ∂ x 2 ∂ f 3 / ∂ x 3 ∂ f 3 / ∂ x 4 ∂ f 4 / ∂ x 1 ∂ f 4 / ∂ x 2 ∂ f 4 / ∂ x 3 ∂ f 4 / ∂ x 4 ] (6) \left[ \begin{matrix} ∂f1/∂x1 & ∂f1/∂x2 & ∂f1/∂x3 & ∂f1/∂x4 \\ ∂f2/∂x1 & ∂f2/∂x2 & ∂f2/∂x3 & ∂f2/∂x4 \\ ∂f3/∂x1 & ∂f3/∂x2 & ∂f3/∂x3 & ∂f3/∂x4 \\ ∂f4/∂x1 & ∂f4/∂x2 & ∂f4/∂x3 & ∂f4/∂x4 \\ \end{matrix} \right] \tag{6} ⎣⎢⎢⎡∂f1/∂x1∂f2/∂x1∂f3/∂x1∂f4/∂x1∂f1/∂x2∂f2/∂x2∂f3/∂x2∂f4/∂x2∂f1/∂x3∂f2/∂x3∂f3/∂x3∂f4/∂x3∂f1/∂x4∂f2/∂x4∂f3/∂x4∂f4/∂x4⎦⎥⎥⎤(6) 总结 EKF(扩展卡尔曼滤波)是KF(卡尔曼滤波)的扩展,使其可以用于非线性系统,在实际工程中很有用。EKF线性化非线性系统的方式,是求矩阵的雅克比矩阵,是一种局部线性化策略,但仍会有转移误差。另一种KF的改进UFK(无迹卡尔曼),通过对局部连续采样,得出局部的信息用于卡尔曼滤波。只针对符合高斯分布的系统。PF(粒子滤波)也是对局部连续采样,但并不要求系统符合高斯分布。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |