【状态估计】粒子滤波器、Σ点滤波器和扩展/线性卡尔曼滤波器研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

2.1 扩展卡尔曼滤波

2.2 线性卡尔曼滤波  

2.3 粒子滤波 

2.4 Σ点滤波器 

🎉3 参考文献

🌈4 Matlab代码及详细讲解


💥1 概述

  • 粒子过滤器通常需要大量粒子,这可能需要大量的运行时间。即使是最简单的粒子过滤器也使用 1000 个粒子的情况并不少见,每次测量需要 1000 次模拟。随着状态维度的增长,必要数量的粒子变得巨大。(我们的问题会从1000个粒子中受益匪浅,但要理解具有如此大量粒子的图会更难。
  • 将不确定性表示为一组粒子和权重(离散概率分布)意味着状态的最佳估计通常非常粗糙,因此粒子过滤器对于需要高精度的问题效果不佳。
  • 当需要更好的性能时,粒子滤波器通常必须进行大量定制,以适应每个单独的状态估计问题,这可能需要很长时间,尤其是因为测试需要运行过滤器,而过滤器本身可能需要很长时间。出于同样的原因,很难找到有用的通用粒子过滤器,尽管自举过滤器可以解决简单的问题。

在Σ点滤波器(也称为无迹滤波器)中,我们不用一大堆散射粒子来表示不确定性,而是假设不确定性具有高斯(正态)分布,并且以当前最佳估计值为中心:

因此,我们可以用协方差矩阵来表示不确定性,就像我们为上面的粒子计算的那样。我们将协方差可视化为围绕状态估计的椭圆,其中椭圆绘制在 3σ 边界处(因此,真实状态大约 99.7% 的时间在这个椭圆内)。绘制 1000 个粒子只是为了进行比较。

当各种不确定度源(先前的不确定度、过程噪声和测量噪声)是单峰且不相关的时,Σ点滤波器是一个强大的选择。一些优点:

  • 在他们的假设中,它们通常比粒子过滤器更准确,因为它们不依赖于随机粒子。
  • 它们比粒子过滤器快得多。粒子过滤器可能需要 1000 个点,而 Σ-point 过滤器可能只需要 9 个左右。
  • 他们的假设适用于许多不同的实际问题,并且设置Σ点滤波器只需要定义传播函数,测量函数,过程噪声协方差和测量噪声协方差,所有这些都是粒子滤波器所必需的。
  • Σ点滤波器有标准形式,因此在书籍或期刊中找到良好的参考相对容易。

不过,我们可以列出一些缺点。

  • 奇怪的问题可能导致Σ点滤波器“分崩离析”。例如,在我们的球问题中,如果时间步长更大,那么在一次或两次反弹中,sigma 点将变得非常“混乱”,并可能导致样本协方差矩阵毫无意义。可能很难避免这种情况,而粒子过滤器不会有这个问题。
  • 虽然它们比粒子滤波器快得多,但它们也比扩展卡尔曼滤波器慢得多,我们稍后会谈到。

📚2 运行结果

2.1 扩展卡尔曼滤波

 

2.2 线性卡尔曼滤波  

 

2.3 粒子滤波 

 

2.4 Σ点滤波器 

 

 

部分代码:

%% Create the true system and show the initial filter state.

% Set the random number generator seed so the results are the same every
% time we run the script. (Comment out this line to see different results
% every time.)
rng(1);

% Initial true state, measurement noise covariance, and measurement
x0 = [0; 3; 1; 0];
R  = 0.5^2 * eye(2);
z0 = x0(1:2) + covdraw(R);

% Initial state estimate and covariance
xh0 = [z0; 1; 0];
P0  = blkdiag(R, 2^2 * eye(2));

% Calculate the whole true trajectory.
[~, x, t] = propagate_ball(0, 10, x0);

% Prepare the figure.
set(clf(figure(1)), 'Color', [1 1 1]);
axis equal;
axis([-1 11 0 5]);
xlabel('x [m]');
ylabel('y [m]');
hold on;

% Draw the 3-sigma boundary for the uncertainty.
ell = ellipse(P0, xh0);
hP  = plot(ell(1,:), ell(2,:), 'Color', 0.75 * [1 1 1]);

% Add particles for comparison only.
X  = bsxfun(@plus, covdraw(P0, 1000), xh0);
hX = plot(X(1,:), X(2,:), '.', 'Color', 0.75 * [1 1 1]);

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]柏庆文. 基于无味卡尔曼滤波的电动汽车动力电池SOC估计[D].吉林大学,2013.

[2]常国宾,许江宁,李安,常路宾.迭代无味卡尔曼滤波的目标跟踪算法[J].西安交通大学学报,2011,45(12):70-74. 

🌈4 Matlab代码及详细讲解

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

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

相关文章

【STM32】基于stm32的阿里云智能家居

摘 要 智能家居是一种通过物联网将家里的各种电器设备连接在一起,并由中心控制器统一管理的信息系统。系统的核心是各类家居信息的采集与处理。阿里云能够提供云端的数据存储和分析功能,可以作为智能家居中心控制器的重要平台。 本文主要研究了基于阿里云…

时间触发嵌入式系统:各种系统的概念

1.1 引言 一说到软件系统,脑子里面就会闪现很多名词: 信息系统 桌面应用系统 实时系统 嵌入式系统 事件触发系统 时间触发系统 这些名字搞得脑子很乱,感觉都熟悉,又有些陌生,还是需要简单的介绍一下。 1.2 信息系统…

走进人工智能| Computer Vision 数字化时代的视觉启示录

前言: 计算机视觉是通过模仿人类视觉系统的工作原理,使计算机能够感知、理解和解释图像和视频的能力。 文章目录 序言背景适用领域技术支持应用领域程序员如何学总结 序言 计算机视觉是人工智能领域的一个重要分支,它涉及使计算机能够“看”…

TCP的socket API

1、核心类 ServerSocket :服务器使用的socket Socket : 服务器和客户端都会使用的socket accept进行的工作是拉客 对应操作系统来说,建立TCP连接是内核的工作 accept要干的就是等连接建立好了,把这个连接给拿到应用程序中。 如果当前连接…

小米 红米 Redmi note11 4G 5G 手机解锁BL 秒BL解锁 教程 跳过168小时 selenes evergo线刷机包下载

红米(Redmi)Note 11 5G 手机BL解锁 红米note11 4G/5G 秒解锁BL锁 方法 教程 跳过168小时 新版本 selenes evergo 红米Note11系列版本非常多,从4G开始一直到后面出现的11R,我们常见的机型有红米 Note11/11Pro/11Pro/11SE/11R等等&…

【游戏逆向】探索可靠的线程检查方法

一、关键的线程检查 在对抗外挂和木马的方案中,不可能将所有的检查操作放在主线程中,因此,在方案中总有一个扫描线程或者环境检查线程必须保持工作,而它们也就成了外挂和木马的重要攻击目标,外挂和木马只要搞定了它们…

5.1阻塞和非阻塞、同步和异步 5.2Unix、Linux上的五种IO模型

5.1阻塞和非阻塞、同步和异步 典型的一次IO的两个阶段是什么?数据就绪和数据读写 数据就绪:根据IO操作的就绪状态 阻塞非阻塞 数据读写:根据应用程序和内核的交互方式 同步异步 陈硕:在处理IO的时候,阻塞和非阻塞都…

架构分层方法指导

在《不过时的经典层架构》里讲了经典的四层架构怎样对易变性做封装。咱们实际项目中,如果没有足够的实践和关键性思考,还是很可能使用名义上科学的分类理论,却在按照功能进行架构分层。今天咱们就通过一些简单的指导来尽量减少这种风险。 四问…

PDF转换软件有哪些?分享免费好用的PDF转换工具!

PDF是在办公和学习中常用的文件格式,它包含文字、图片、数据等各种信息,可以说是功能丰富。然而,有时我们需要将PDF转换为PPT格式以便于演示,或者将其转换为Word格式以节省内存空间。这时候就需要使用PDF转换软件。下面我将介绍一…

java投票管理系统小程序

投票管理系统小程序 演示视频 技术: 基于springbootvue小程序的投票管理系统的设计与实现 运行环境: JAVA版本:JDK1.8 IDE类型:IDEA、Eclipse都可运行 微信开发这工具 数据库类型:MySql(8.x版本都可&am…

#10048 「一本通 2.2 练习 4」Censoring(内附封面)

[USACO15FEB] Censoring S 题面翻译 Farmer John为他的奶牛们订阅了Good Hooveskeeping杂志,因此他们在谷仓等待挤奶期间,可以有足够的文章可供阅读。不幸的是,最新一期的文章包含一篇关于如何烹制完美牛排的不恰当的文章,FJ不愿…

机器学习6:使用 TensorFlow 的训练线性回归模型

纸上得来终觉浅,绝知此事要躬行。前面 5 篇文章介绍了机器学习相关的部分基础知识,在本章,笔者将讲解基于 TensorFlow 实现一个简单的线性回归模型,以便增强读者对机器学习的体感。 目录 1.环境准备 1.1 安装 Python3 1.2 安装…