卡尔曼滤波估matlab算法,理解卡尔曼滤波器(MATLAB官方教程)

为什么使用卡尔曼滤波器?

卡尔曼滤波器是一种优化估算算法,在不确定和间接测量的情况下估算系统状态。

f46e2a243f236163599b15ed9b87e54f.png

可以对感兴趣的变量进行直接测量

可以综合各个可能含有噪声的传感器来进行准确的估计测量

状态观测器

b8d705837d993dad3b17bf82016d1e83.png)

5834e5f7c3e5208d0f336f35ff05d01b.png

完美模型(微分方程/差分方程)+相同的初始条件 那么这个观测器就百分百准确,但是不可能做到

7d34657a38ce68871ebd4ab771cc2422.png

只要两个可测量量相等,那么 Tin也就相同

引入闭环反馈系统,引入增益K,减小两个可测量量的误差

20b898763a6ac59ce361458e8e8ef3f9.png

输入燃料,运行观测器得到

equation?tex=%5Chat%7BT%7D_%7Bext%7D,同时并且得到可测量量

equation?tex=T_%7Bext%7D,综合这两个值的error,然后选择控制器增益K,和输入一起扔进model里面估计出系统的内部状态

equation?tex=%5Chat%7BT%7D_%7Bin%7D

f1a32aa4d4dde3ed9385cdce3f969da7.png

K用kalman filter 来确定

最优状态估计

df2b1450d2124fcfcc94e54d3625601b.png

b4e0d8f455a64a9f871e0ebd8e79551f.png

预测状态估计的概率密度和测量值的概率密度乘积,得到最优状态估计的概率密度,其mean就是我们的最有估计值

最优状态估计算法和方程

6d7754f1624e1f9604bba64a4d0c0792.png

卡尔曼滤波器就是一种状态观测器,但它是为随机系统设计的

31740ea928c3fe8ed6bf589c86e0fe75.png

kalman filter分成两部分

2e5d7a049db5d0f0f4c552913851fcaa.png

不断迭代,不断更新,最终

equation?tex=%5Chat%7Bx%7D_k就会收敛到最优估计状态值

以下为有两个传感器的情形(有两个测量值)

80d3fe8aa3d702311601be750911bbbc.png)

非线性状态估计器

6b40df73c927ebb7e2fe53ea5d4f6247.png

37c9df3e97e8358161282b224ba5e5f2.png

卡尔曼滤波器仅针对线性系统

fc7ad0d8c5db5dbbbeedcd458953348f.png

观测函数 g(x) 也是如此

a6f2ae2e19d4d6de0f7d29531dc9f296.png

因此,卡尔曼滤波器算法可能会不收敛。

扩展卡尔曼滤波器(EKF)

它把非线性函数在当前估算状态的平均值附近进行线性化。在每个时间步,执行线性化,然后将得到的雅可比矩阵用于预测和更新卡尔曼滤波器算法的状态。

52353c0a872de1f842cda5dad4d20c8a.png

然而,它有以下缺点:

由于复杂的导数,可能难以解析计算雅可比矩阵;

而以数值方式计算它们则可能需要很高的计算成本;

扩展卡尔曼滤波器不适用于具有不连续模型的系统,因为系统不可微分时雅各比矩阵不存在;

高度非线性系统的线性化效果不好。

765905e6dfd3480dc78eaf6b4d79278f.png

无迹卡尔曼滤波器unscented Kalman filter (UKF)

fdfac89efe031692df48b134bab52259.png

粒子滤波器(PF)

与无迹卡尔曼滤波器的显着差异在于,粒子滤波器近似任意分布,所以它不仅限于高斯假设

03097c18cb62c99c6e9da7104d37aff9.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值