扩展卡尔曼滤波详解

Extened Kalman Filter

简单介绍

卡尔曼滤波详解讲解的基本的卡尔曼滤波算法是通过一个线性随机差分方程来估计当前状态,但是如果状态估计关系以及测量关系使非线性的怎么办,而且在实际使用中大部分的问题都是非线性的,所以提出了扩展卡尔曼滤波算法来解决非线性问题。

基本模型

扩展卡尔曼滤波算法和基本的线性卡尔曼滤波算法的基本模型在形式上很相近,也是包含状态方程和测量方程两个,只不过变量间的计算关系不是线性的。

扩展卡尔曼滤波的状态方程,利用非线性随机差分方程(non-Linear Stochastic Difference equation)利用上一个系统状态估计当前系统状态:
x k = f ( x k − 1 , u k − 1 , w k − 1 ) x_k = f(x_{k-1}, u_{k-1}, w_{k-1}) xk=f(xk1,uk1,wk1)
如果像卡尔曼一样忽略 u u u 控制输入(在下面都是忽略该项,不重复了),得到:
x k = f ( x k − 1 , 0 , w k − 1 ) ( 1.1 ) x_k = f(x_{k-1}, 0, w_{k-1}) \qquad {(1.1)} xk=f(xk1,0,wk1)(1.1)
加上对于当前状态的测量方程:
z k = h ( x k , v k ) ( 1.2 ) z_k = h(x_k, v_k) \qquad {(1.2)} zk=h(xk,vk)(1.2)
这里的参数含义就不解释了,和上面的相同,主要是:

k − 1 k-1 k1 k k k 分别表示上一状态和当前状态;

x ∈ R n x \in R^n xRn 表示要估计的状态;

u ∈ R l u \in R^l uRl 表示可选的控制输入,一般在实际使用中忽略;

z ∈ R m z \in R^m zRm 表示测量值;

w ∈ R n w \in R^n wRn 表示过程噪声,主要是从上一状态进入到当前状态时,会有许多外界因素的干扰;

v ∈ R m v \in R^m vRm 表示测量噪声,主要是任何测量仪器都会有一定的误差;

f f f 表示从上一状态到当前状态的非线性映射方程;

h h h 表示状态和测量之间的非线性映射方程;

在上面转换矩阵 A A A B B B H H H 是随着状态变化的,在这里没有添加下标,假设是不变的。

上面提到的过程噪声 w w w 和测量噪声 v v v 假设是相互独立的(之间没有关系,无相互影响),且是高斯白噪声,意思是这些噪声在离散的状态上是没有关系的(互相独立的, 每个时刻的噪声都是独立的)且 服从高斯分布:
p ( w ) ∼ N ( 0 , Q ) ( 1.3 ) p ( v ) ∼ N ( 0 , R ) ( 1.4 ) p(w) \sim N(0, Q) \qquad {(1.3)} \\ p(v) \sim N(0, R) \qquad {(1.4)} p(w)N(0,Q)(1.3)p(v)N(0,R)(1.4)

Q ∈ R n × n Q \in R^{n \times n} QRn×n 表示过程噪声 w w w 的协方差矩阵,表示 w w w 向量元素之间的相关关系;

R ∈ R m × m R \in R^{m \times m} RRm×m 表示测量噪声 v v v 的协方差矩阵,表示 v v v 向量元素之间的相关关系;

在上面协方差矩阵 Q Q Q R R R 是随着状态变化的,在这里假设是不变的。

基本公式

上面是给出了扩展卡尔曼滤波的整体思路和基本模型,在这里一步步分解来看扩展卡尔曼滤波的推导过程。首先确定了扩展卡尔曼滤波的基本模型,那么下一步是怎样根据这个模型来不断求取后面的状态。

首先定义几个变量:

x ^ k ˉ \bar{\hat{x}_k} x^kˉ 表示仅仅利用过程先验知识求出的当前状态的先验状态估计(a priori state estimate),不考虑过程噪声的情况下;

x ^ k \hat{x}_k x^k 表示利用测量值 z k z_k zk 求出的当前状态的后验状态估计(a posteriori state estimate),也是最终求得的状态;

需要注意的是,卡尔曼滤波的最终目标是求 x ^ k \hat{x}_k x^k ,这是对当前状态的最优估计。

根据上面的定义忽略过程噪声可以得到:
x ^ k ˉ = f ( x ^ k − 1 , u k − 1 , 0 ) \bar{\hat{x}_k} = f(\hat{x}_{k-1}, u_{k-1}, 0) x^kˉ=f(x^k1,uk1,0)
通常都是忽略 u u u 这个可选的控制输入(以后加入该变量的话也是非常方便的):
x ^ k ˉ = f ( x ^ k − 1 , 0 , 0 ) ( 2.1 ) \bar{\hat{x}_k} = f(\hat{x}_{k-1}, 0, 0) \qquad {(2.1)} x^kˉ=f(x^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值