算法-卡尔曼滤波之卡尔曼滤波的第一个方程:状态更新方程

devtools/2024/10/21 19:44:05/

通过一个例子来引出卡尔曼滤波的状态更新方程;

这里系统状态是金条的重量;

为了估计系统的状态,我们可以多次测量金条的重量,然后求平均值;

 其中估计值是所有测量值的平均值;

 

由于我们使用的是静态模型(金条的重量是不会在短时间内发生改变的),所以第N次的估计值和N+1次的估计值相等,即

 

 

具体的物理意义:

1.预测重量的调整:表示测量值Zn和先验估计值(测出第N-1次后,对第N次的估计)之间的差异,称为残差或者创新,这个差异代表了当前的测量值和先前预测的偏差;

加权平均:通过乘以权重因子,滤波器调整对这个差异的响应,较大的权重因子,表示更信任当前测量值,较小的权重因子表示更信任先前的预测;

更新后的估计位置:通过将加权的残值添加到预测重量,得到更新的后的估计重量,这意味着新的估计重量是预测重量和测量重量之间的加权平均,更加接近实际重量;

其中1/N随着测量次数越来越小,意味着开始时没有足够的重量信息,估算值主要依靠测量值,但是随着次数越来越多,每次测量的值在估计过程中占比也越来越少,随着迭代次数足够多,新的测量值对估计值的影响可以忽略不记;  

在做第一次测量之前,可以通过看金条上刻的数字(或粗略估计)得到金条的重量,着称为初始猜测(Initial Guess),它将是我们的第一个估计;

这个估计并不会影响我们后面的结果,随着测量次数逐渐增大,最后估计的结果都会趋于真实值,这就是滤波器的厉害之处;

在卡尔曼滤波器中1/N这个权重因子就是卡尔曼增益 ;

这个方程的形式就是状态更新方程,如下:

 

状态更新方程只是卡尔曼滤波的一个方程,卡尔曼滤波是一个有机整体,具体流程如下:

流程并不是按照Step1.2.3进行的,具体如图所示:

 

首先第一步1:进行初始化,我们根据各方面因素,输入一个估计值X(0,0)(主观定义);

第二步2:进行预测(状态外推方程),但是由于我们目前使用的是静态模型,所以预测前后结果保持不变,得到输出估计值为X(1,0)(表示先验估计值,第0次对第一次的估计,其值仍然等于X(0,0));

第三步3:变为下一时刻n->n+1,此时N=1;

第四步4:进行测量,输入测量值Z1;

第五步5:根据状态更新方程,更新数据得到下一时刻的估计值,之后(初始化只进行一次)进行预测,由于我们是静态模型,所以不需要进行任何预测,值保持不变,循环往复;

....经过十次后,得到以下结果:

 绘制图像:绿色的线是真实值,蓝色的线是测量值,红色的线是估计值,随着迭代次数,估计值收敛于真实值;

 具体举例:

 第二次迭代:

第三次迭代:

 增益随着测量的次数而减小,每一次测量值的影响都比之前前一个测量值小;

 

在这个例子中,我们为静态系统设计了一个简单的估计算法,并且推导出了卡尔曼滤波的五个方程之一的状态更新方程。

系统的输入是上一时刻的先验估计值和权重因子,输出是当前时刻的估计值;

表示通过预测值加上残差(测量值减去预测值)*权重因子得到当前时刻的估计值,更加接近实际重量;

 


http://www.ppmy.cn/devtools/41694.html

相关文章

一文详解什么是手机在网时长API

手机在网时长API最近被讨论得越来越多,因为随着移动互联网的不断发展,越来越多的场景需要使用到用户的手机号,比如商品交易、客户服务、信息收发、网络即时通讯等。手机号码状态查询功能使用得越来越广泛,常见的有手机在网时长查询…

会员网站如何创建具有不同仪表盘结构的用户帐户页面

用户帐户页面是中央用户仪表盘,用户可以在其中添加和编辑信息、发布和编辑帖子以及保存收藏夹项目。本教程介绍如何使用“内容”和“重写”模板模式设置帐户页面、为帐户页面创建子页面以及设置个人资料菜单等。 在本教程中,我们将介绍如何使用招聘网站…

特产销售|基于Springboot+vue的藏区特产销售平台(源码+数据库+文档)​

目录 基于Springbootvue的藏区特产销售平台 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道…

必背!!2024年软考中级——网络工程师考前冲刺几页纸

距离软考考试的时间越来越近了,趁着这两周赶紧准备起来 今天给大家整理了——软考网络工程师考前冲刺几页纸,都是核心重点,有PDF版,可打印下来,每天背一点。 计算机总线分类 ①总线的分类:数据总线、地址总…

运维别卷系列 - 云原生监控平台 之 05.prometheus alertManager 实践

文章目录 [toc]Alertmanager 简介Alertmanager 实现的核心概念GroupingInhibitionSilencesClient behaviorHigh Availability Alertmanager 配置文件globaltemplatesrouteinhibit_rulesreceivers Alertmanager 部署创建 cm创建 svc创建 stsPrometheus 配置告警Prometheus 配置文…

用python写一个自动生成android开机动画的工具

要创建一个自动生成Android开机动画的工具,你需要一些基本的知识,比如Python编程、图像处理和Android开机动画的格式。以下是一个简单的Python脚本示例,它可以生成一个基本的Android开机动画,具体效果可能需要更多的调整和优化。 …

深度学习设计模式之简单工厂模式

文章目录 前言一、简单工厂设计模式的作用?二、详细分析1.核心组成2.实现步骤3.示例代码4.优缺点优点缺点 5.使用场景 总结 前言 本文主要学习简单工厂设计模式,这个设计模式主要是将创建复杂对象的操作单独放到一个类中,这个类就是工厂类&a…

Flutter 解决App页面软键盘遮挡住输入框底部区域内容

问题现状 有时候我们需要在唤起键盘的时候,输入框不是刚好在键盘上面,比如输入框下面还有按钮。像这样(最终UI效果截图示例): (当然这个截图比较简单,因为他头部内容不多,键盘升起可…