游龙战神|扩展卡尔曼滤波(EKF)浅谈
一个月前 , 有脚友提问:怎么基于车辆模型利用卡尔曼滤波算法进行车辆速度估计?
我当时没有回答 , 主要原因是实际车辆上一般都是基于轮速和纵向加速度等运动学的参数进行车速估计 , 简单实用 。 另外关于卡尔曼滤波的内容我也差不多忘了 , 好多年没用过捡起来也需要一点时间 。
【游龙战神|扩展卡尔曼滤波(EKF)浅谈】
后来 , 有其他脚友也想了解卡尔曼相关的估计问题 。。。
既然这么多人感兴趣 , 说明这个话题是有意义的 。 脚主决定花一些时间 , 恢复记忆 , 去给大家谈一谈个人对扩展卡尔曼滤波算法的理解 。
在介绍扩展卡尔曼滤波器之前 , 有必要回忆一下之前介绍过的卡尔曼滤波器 。
卡尔曼滤波主要根据系统状态方程 , 通过系统输出作为观测数据 , 来不断迭代修正预估的逻辑 , 实现对系统状态的最优估计 。 其核心的5个公式如下图:
其中 , 前两个为预测部分 , 后三个为校正部分 。 我们在进行卡尔曼滤波器设计时 , 重点是把系统的模型用状态方程表示出来:
测量结果用输出方程表示出来:
上述公式中的系统矩阵A、输出矩阵H就对应卡尔曼5个核心的公式的A、H , A用于状态预测 , H用于量测后校正 。
需要注意的是 , 卡尔曼滤波仅适用于线性系统 。 对于非线性系统 , 只能使用扩展卡尔曼滤波器 , 将非线性系统线性化处理 。
如果一个系统的输入、输出满足叠加原理 , 该系统称为线性系统 , 否则为非线性系统 。
扩展卡尔曼滤波可通过将非线性系统在其参考点处作泰勒级数展开 , 取其一阶线性部分作为该非线性模型的逼近 , 从而得到非线性系统在当前时刻的线性化描述 。
非线性系统的状态方程一般可表示为:
输出方程表示为:
扩展卡尔曼滤波器的核心公式同卡尔曼滤波器基本一致 , 有两点小差异:
1、需要使用非线性函数f、h来表示状态方程和输出方程;
2、系统矩阵A、输出矩阵H需要用f、h函数求偏导后的雅克比矩阵表示 。
回到最开始的问题 , 我们想基于车辆模型使用卡尔曼滤波器来进行车辆速度估计 , 怎么做呢?首先列出车辆模型的状态方程 , 如下图 。
状态变量一定要包含你想估计的参数 。
推荐阅读
- 游龙战神|2020年中国搜索引擎行业市场现状及发展前景分析
- 游龙战神|将轻松跑800-1000km?特斯拉表示:我就没怕过谁
- 手游葱花酱|《王者荣耀》:战神解除封印,重塑宫本一刀万血?
- 战神游戏office|新游往往最暴利,《新神魔大陆》攻略
- 彩色科技|Dubbo自适应扩展机制
- 洪都烟客|中国历史上的战将奇迹!,春秋战国之战神白起:乱世最杰出之将领
- 铲史人|清朝第一代“战神”,连“年羹尧”都惧他三分,他是三朝武将
- 游龙战神|不过时的“真机皇”——华为mate20Pro
- 游龙战神|中国成为世界芯片最大进口国,这是好事吗?专家:不一定是好事
- 超级游戏助手|“吃鸡”第三面板到底好在哪?不求人也苦练第三面板,已成战神标配
