卡尔曼滤波器推导

注:受控制领域大牛CAN博士启发,受益匪浅,作此文以为笔记。

简介

  设
在这里插入图片描述

  卡尔曼滤波器是从测量值ZZZk的平均数开始的。开始推导:
在这里插入图片描述
由上式可知
在这里插入图片描述
  也就是说随着kkk的增大,测量结果Zk不在重要,因为已经获得了足够多的测量值,此时的估计值已经很贴近了实际值了。我们令Kk=1/k1/k1/k,即
在这里插入图片描述
可知,Kk[0,1][0,1][0,1]之间,当Kk =0=0=0时,估计值等于上一次计算的估计值,当Kk =1=1=1时,估计值等于本次测量值,这时引入两个参数eEST,eMEA,令
在这里插入图片描述

在这里插入图片描述
其中,eMEA是测量误差,是测量工具自身的属性,是不变的,eEST是估计误差,会受历史数据的影响,即
在这里插入图片描述
由上述几个式子便可使用卡尔曼滤波器来解决实际的问题了。步骤如下:
第一步
在这里插入图片描述
第二步
在这里插入图片描述
第三步
在这里插入图片描述

  有一个质量为50g50g50g的物体,但我们此时并不知道该物体质量是多少,先估计其有46g46g46g,估计误差为5g5g5g,将其放在称上称得质量为
在这里插入图片描述
该称的测量误差为3g3g3g,将所有数据放在Excel里进行计算
在这里插入图片描述
其中蓝色线条表示测量值,红色线条表示估计值,从图中可以看出,尽管测量值起伏较大,但估计值整体趋势很平缓,不断向实际值靠拢且十分接近实际值。

数据融合

  从一个例子入手,设某物体质量为mmm,分别用标准差为σ1 =2g=2g=2g和σ2 =4g=4g=4g得称来称该物体,称得质量分别为Z1 =30g=30g=30g和Z2 =33g=33g=33g,求出最优估计值。
  从上述中可得式
在这里插入图片描述
此时引入标准差,即估计值的标准差,当标准差越小时,即方差越小,估计值的波动越小,也就越趋于真实值。如下:
在这里插入图片描述
由上式可知,估计值的方差是关于Kk的函数,使估计值方差对Kk求导,即
在这里插入图片描述
将σ1 =2g=2g=2g和σ2 =4g=4g=4g代入上式中,Kk =0.2=0.2=0.2,得
在这里插入图片描述

协方差矩阵

  有以下333组数据
在这里插入图片描述
平均值
在这里插入图片描述
方差
在这里插入图片描述
协方差
在这里插入图片描述
协方差矩阵PPP
在这里插入图片描述
为方便编程计算,引入一个过渡矩阵AAA
在这里插入图片描述

在这里插入图片描述
注: 式中的333是指矩阵得维数。
  在matlabmatlabmatlab中验证一下
在这里插入图片描述
与计算得结果一致。

状态空间表达式

  有如下系统
在这里插入图片描述
  该系统中,物块质量为MMM,弹簧弹力系数为kkk,阻尼系数为BBB,系统输入为拉力FFF。于是有
在这里插入图片描述
状态变量
在这里插入图片描述


在这里插入图片描述
测量量
在这里插入图片描述
状态空间表达式
在这里插入图片描述
化为离散形式
在这里插入图片描述
  由于系统存在各种不确定性,需要加入过程噪声WWW和测量噪声VVV,即
在这里插入图片描述
  WWW服从正态分布,期望为000,协方差矩阵为QQQ,即P(W)−N(0,Q)P(W)-N(0,Q)P(W)N(0,Q)VVV也服从正态分布,期望为000,协方差矩阵为RRR,即P(V)−N(0,R)P(V)-N(0,R)P(V)N(0,R)。其中Q=E[WWT]Q=E[WW^T]Q=E[WWT],推导如下:
在这里插入图片描述
同理,R=E[VVT]R=E[VV^T]R=E[VVT]

卡尔曼增益推导

  由于过程噪声是不确定的,于是状态估计值先验为
在这里插入图片描述
根据先验估计和测量估计可得出后验估计
在这里插入图片描述
G=G=G= KkHHH,则
在这里插入图片描述
  我们的目标是求得合理的Kk值使得估计误差最小,有
在这里插入图片描述
同理
在这里插入图片描述
  当后验估计值越接近真实值 Xk, 则说明 ek 的方差越小,即 ek 越接近于期望值000。于是有
在这里插入图片描述
接着推导
在这里插入图片描述


在这里插入图片描述

先验误差协方差矩阵

在这里插入图片描述

ek的协方差矩阵Pk

  由之前的推导可得
在这里插入图片描述

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cocos2dx3.2文件结构和代码结构

既然选定了cocos2dxlua的原生方式来开发,首先要确定的是使用哪个版本的cocos2dx,先看看github上的changelog和releasenote,然后在google里搜索一下,参考了jacky的博客http://zengrong.net/post/2100.htm,最终选择了coc…

改进的PID算法

位置式PID算法 位置式PIDPIDPID算法是一种比较直观的的PIDPIDPID算法,如系统框图中所示,ininin表示设定值,errorerrorerror表示差值,uuu表示控制器输出值,outoutout表示被控量。算法表达式如下: 增量式PI…

几种简单电路知识汇总

这篇文章用于记录平时设计电路或者在书中遇到的一些电路方面的知识,会不定期更新。就先从运算放大器开始,对此做个简单的介绍。 运算放大器 说到运算放大器就不得不说两个概念,虚短与虚断。 虚短: 在理想情况下,运算…

51单片机——交通灯

原理图 功能描述 1、基本功能就是如同红绿灯一般,不做赘述。   2、红灯时长和绿灯时长可通过按键设置,即按键列中的上面4个,当这4个按键有一个按下后便进入时长设置功能,设置完成后按最下面两个按键(紧急控制按钮&am…

设置TextField内文字距左边框的距离

2019独角兽企业重金招聘Python工程师标准>>> //设置文本框左边的viewUITextField *textField [[UITextField alloc]init];textField.frame CGRectMake(10, 30, 300, 30);[self.view addSubview:textField];textField.leftView [[UIView alloc]initWithFrame:CGRe…

类的三大特性

类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一、封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段&a…

操作系统抢占式优先级调度_操作系统中的优先级调度(非抢先)

操作系统抢占式优先级调度Priority scheduling is a type of scheduling algorithm used by the operating system to schedule the processes for execution. The priority scheduling has both the preemptive mode of scheduling and the non-preemptive mode of scheduling…

数据结构pta选择判断复习

第一章绪论 1-3数据的逻辑结构是指数据的各数据项之间的逻辑关系。 错 是数据元素之间的逻辑关系 2-4以下属于逻辑结构的是( )。 (2分) 顺序表 散列表 有序表 单链表 有序表 2-12以下关于数据结构的说法中正确的是____。 (2分) A数据结构的逻辑结构独立于…

粗略的看JFinal的基于AOP的拦截器的实现

2019独角兽企业重金招聘Python工程师标准>>> 简单的说一下AOP的实现,所谓AOP,即(Aspect Oriented Programming)的缩写,体现在程序中就是你可以通过配置在任意的代码块前后插入你想插入的执行代码。例如日志…

大二上数据结构复习

目录 第一章绪论练习 第二章线性表 第三章栈和队列 第四章串 第五章数组和广义表 第六章树和二叉树 第七章图 第九章查找 第十章排序 第一章绪论练习 1-8 数据结构的抽象操作的定义与具体实现有关。 (1分) T F 1-14 数据结构包括数据对象集以及它们的逻辑结构和物理结构&#…

大二上数据结构复习2

第二章线性表 综合 一、在什么情况下用顺序表比用链表好 表长度确定,很少进行插入删除操作且经常访问元素 二、2-4 顺序表的插入和删除要求仍然保持各个元素原来的次序。设在等概率情形下, 对有 127 个元素的顺序表进行插入, 平均需要移动多少个元素? 删除一个元素…

操作系统(王道笔记第二章)

目录第二章 2.1_1进程的定义、组成、组成形式、特征 2.1_2进程的状态与转换 2.1_3进程的控制 2.1_4进程通信 2.1_5线程概念和多线程模型 2.2_1处理机调度的概念层次 2.2_2处理机调度的时机、切换与过程、方式 2.2_3调度算法的评价指标 2.2_4FCFS、SJF、HRRN调度算法 2.2_5时间片…

C语言画图形(图形库graphics的使用)

目录 工具 c语言基本绘图 文字输出 c语言基本贴图 获取鼠标、键盘信息 工具 (1)环境:VC (2)库函数:graphics.h(因为不是标准库函数,所以需下载EASYX) (3&am…

关于DDD中Domain的思考

2019独角兽企业重金招聘Python工程师标准>>> 本文既不推销UML,也不推广DDD,更不涉及各种论战。-- 作者 某天又一次打开关于DDD(领域驱动设计)的PDF文档时,自己有了个疑问:什么是领域(Domain)?译文中是这样描…

算法设计TSP问题动态规划

#include <iostream> #include <cmath> using namespace std; //集合虚拟化用000 、001 、010 、011 、100 、101 、110 、111分别表示{} 、{1}&#xff08;V[2^(1-1)]&#xff09; 、{2}&#xff08;V[2^(2-1)]&#xff09; 、{1,2}&#xff08;V[2^(1-1)2^(2-1)]…

字符串使用与内部实现原理

Redis 发展到现在已经有 9 种数据类型了&#xff0c;其中最基础、最常用的数据类型有 5 种&#xff0c;它们分别是&#xff1a;字符串类型、列表类型、哈希表类型、集合类型、有序集合类型&#xff0c;而在这 5 种数据类型中最常用的是字符串类型&#xff0c;所以本文我们先从字…

Lisp-Stat翻译 —— 第九章 统计绘图窗体

2019独角兽企业重金招聘Python工程师标准>>> 第九章 统计绘图窗体 除了前几章略述的绘图窗体原型提供的基本绘图工具之外&#xff0c;Lisp-Stat里的统计绘图还需要用来管理数据和将那些数据转换成屏幕上的图形的工具集。这些工具由绘图原型graph-proto提供。更多的…

操作系统(王道笔记第三章内存)

第三章内存3.1_1内存的基础知识&#xff08;1&#xff09;什么是内存&#xff1a;略&#xff08;2&#xff09;进程运行的基本原理①从写程序到程序运行②链接③装入3.1_2内存管理的概念&#xff08;1&#xff09;内存管理管哪几个方面&#xff08;2&#xff09;内存保护①上下…

Redis 快速搭建与使用

Redis 是由 C 语言开发的开源内存数据存储器&#xff0c;经常被用作数据库、缓存以及消息队列等。 Redis 因为其强大的功能和简洁的设计&#xff0c;深受广大开发者和公司的喜爱&#xff0c;几乎占领了内存数据库市场的所有份额。 1 Redis 特性 Redis 有很多优秀的特性&#…

hibernate annotation注解方式来处理映射关系

2019独角兽企业重金招聘Python工程师标准>>> 在hibernate中&#xff0c;通常配置对象关系映射关系有两种&#xff0c;一种是基于xml的方式&#xff0c;另一种是基于annotation的注解方式&#xff0c;熟话说&#xff0c;萝卜青菜&#xff0c;可有所爱&#xff0c;每个…