基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

5.完整程序


1.程序功能描述

       基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF.仿真输出误差收敛曲线和误差协方差收敛曲线。

2.测试软件版本以及运行结果展示

MATLAB2022A版本运行

(完整程序运行后无水印)

3.核心程序

...............................................................
for i=1:Lekf-1z                          = z_bar(i,:);[x_u(:,i+1), cov_ukf(:,:,i+1)] = func_ukf(f, x_u(:,i), cov_ukf(:,:,i), h, z', Q_u, R_u);
endErr_ekf       = x   - Ang_L(1:dt/Ltm:end,:)';
Err_iekf      = x_i - Ang_L(1:dt/Ltm:end,:)';
Err_ukf       = x_u - Ang_L(1:dt/Ltm:end,:)';%协方差变化图
cov_ekf2      = reshape(cov_ekf, [4, Lekf]);
cov_iekf2     = reshape(cov_iekf, [4, Lekf]);
cov_ukf2      = reshape(cov_ukf, [4, Lekf]);figure
plot(mod(Err_ekf(1,:)-pi, 2*pi).^2)
hold on
plot(mod(Err_iekf(1,:)-pi,2*pi).^2)
hold on
plot(mod(Err_ukf(1,:)-pi,2*pi).^2)
title('角度误差')
legend('EKF','iEKF','UKF');figure
plot(cov_ekf2(1,:))
hold on
plot(cov_iekf2(1,:))
hold on
plot(cov_ukf2(1,:))
title('协方差1,1')
legend('EKF','iEKF','UKF');figure
plot(cov_ekf2(4,:))
hold on
plot(cov_iekf2(4,:))
hold on
plot(cov_ukf2(4,:))
title('协方差2,2')
legend('EKF','iEKF','UKF');
71

4.本算法原理

        迭代扩展卡尔曼滤波(Iterated Extended Kalman Filter, IEKF)是一种改进型的滤波算法,旨在通过多次迭代的方式提高扩展卡尔曼滤波(Extended Kalman Filter, EKF)的估计精度。

       EKF是卡尔曼滤波的一种非线性扩展,适用于状态方程和观测方程均为非线性的情况。其基本思想是在每次滤波步骤中对非线性函数进行一阶泰勒展开,从而近似为线性系统处理。

        UKF避免了EKF中的线性化步骤,通过无迹变换直接处理非线性问题。UKF通过选择一组称为sigma点的特殊点,来近似状态分布和通过这些点传播非线性函数。

        通过将sigma点通过状态转移函数和观测函数传播,再通过加权平均来近似状态和协方差的预测与更新,具体步骤较为复杂,但核心在于保留了非线性函数的二阶特性。

       IEKF在EKF的基础上,对预测和/或更新步骤进行多次迭代,以进一步减小线性化误差。迭代可以是对非线性函数的泰勒展开进行更高阶的近似,或直接对预测和更新步骤进行多次执行,直到某种收敛条件满足。

比较与总结:

EKF通过一次线性化处理非线性问题,简单但可能因线性近似误差导致性能下降。

UKF无需线性化,通过sigma点直接在非线性空间内操作,提高了精度,但计算量相对较大。

IEKF通过多次迭代线性化过程,增强了EKF的非线性处理能力,尤其适用于非线性强或系统不确定性高的情况,但增加了计算复杂度和迭代次数的确定问题。

5.完整程序

VVV

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

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

相关文章

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…

助燃新质生产力,魔珐科技亮相IMC2024制造业数字科技大会展示有言AIGC视频工具价值

2024年7月19日&#xff0c;IMC2024第八届制造业数字科技大会在上海盛大开幕&#xff0c;本次大会以《向“智”而行》为主题&#xff0c;250智能制造行业数字化转型企业、行业领军者及实践者共聚一堂&#xff0c;共同助力企业增强技术“硬核力”&#xff0c;为新质生产力蓄势赋能…

buuctf web 第五到八题

[ACTF2020 新生赛]Exec 这里属实有点没想到了&#xff0c;以为要弹shell&#xff0c;结果不用 127.0.0.1;ls /PING 127.0.0.1 (127.0.0.1): 56 data bytes bin dev etc flag home lib media mnt opt proc root run sbin srv sys tmp usr var127.0.0.1;tac /f*[GXYCTF2019]Pin…

最新全新UI异次元荔枝V4.4自动发卡系统源码

简介&#xff1a; 最新全新UI异次元荔枝V4.4自动发卡系统源码 更新日志&#xff1a; 1增加主站货源系统 2支持分站自定义支付接口 3目前插件大部分免费 4UI页面全面更新 5分站可支持对接其他分站产品 6分站客服可自定义 7支持限定优惠 图片&#xff1a; 会员中心截图&…

多类支持向量机损失(SVM损失)

(SVM) 损失。SVM 损失的设置是&#xff0c;SVM“希望”每个图像的正确类别的得分比错误类别高出一定幅度Δ。 即假设有一个分数集合s[13,−7,11] 如果y0为真实值&#xff0c;超参数为10&#xff0c;则该损失值为 超参数是指在机器学习算法的训练过程中需要设置的参数&#xf…

学习并测试SqlSugar的单库事务功能

SqlSugar支持单库事务、多租户事务、多库事务&#xff0c;本文学习并测试单库事务的基本用法。   使用SqlSugarClient类、ISqlSugarClient接口都可以创建SqlSugarClient数据库操作实例&#xff0c;其区别在于&#xff0c;针对单库而言&#xff0c;SqlSugarClient类支持调用Be…

【python】NumPy运行报错分析:IndexError——数组索引越界问题

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

matlab simulink气隙局部放电仿真技术研究

1、内容简介 略 87-可以交流、咨询、答疑 2、内容说明 略 为了解决目前国内外局部放电仿真方法难以计算气隙局部放电暂态过程的问题 , 利用 MATLAB (SIMULINK ) 的公共模块库和电力系统专业模块库 , 根据单气隙局部放电仿真物理模型 , 构造了气隙局部放 电仿真计算的电…

树状数组优化dp

这个题目怎么去想呢&#xff0c;我们先构造前缀和&#xff0c;一般思路肯定是用两层循环&#xff0c;但是一定会超时&#xff0c;我们的数据范围是 1e5&#xff0c;那我们必须找到复杂度为 nlog n 的才行&#xff0c;所以我们可以考虑每次计算以 i 结尾的子数组的数量&#xff…

移动硬盘在苹果电脑上使用后在windows中无法读取 Win和Mac的硬盘怎么通用

在日益普及的跨平台工作环境中&#xff0c;苹果电脑与Windows PC之间的数据交换成为日常需求。然而&#xff0c;用户常面临一个困扰&#xff1a;为何苹果电脑的硬盘能在macOS下流畅运行&#xff0c;却在Windows系统中变得“水土不服”&#xff1f;这一问题核心在于硬盘格式的不…

MT19937

MT19937 文章目录 MT19937题型1 逆向extract_number[SUCTF2019]MT 题型2 预测随机数[GKCTF 2021]Random 题型3逆向twist[V&N2020 公开赛]Backtrace 题型4 逆向init扩展题型WKCTF easy_random 现成模块randcrack库Extend MT19937 Predictor库 MT19937是一种周期很长的伪随机…

安全防御:过滤技术

目录 一、URL过滤 URL过滤的方式 二、HTTP与HTTPS HTTP协议获取URL的方式 HTTP协议做控制管理的流程 HTTPS 1&#xff0c;配置SSL的解密功能 2&#xff0c;直接针对加密流量进行过滤 需求&#xff1a; 三、DNS过滤 四、内容过滤 文件过滤技术 文件过滤技术的处理流…

抖音私信卡片制作教程,使用W外链创建抖音/快手/小红书卡片

在数字营销和社交媒体日益繁荣的今天&#xff0c;利用外部链接&#xff08;W外链平台&#xff09;为抖音平台创建卡片已成为一种有效的推广手段。抖音卡片不仅可以直接将观众导向目标网页或产品&#xff0c;还能提高用户的参与度和品牌的曝光度。下面&#xff0c;我们将详细介绍…

java-selenium 截取界面验证码图片并对图片文本进行识别

参考链接 1、需要下载Tesseract工具并配置环境变量&#xff0c;步骤如下 Tesseract-OCR 下载安装和使用_tesseract-ocr下载-CSDN博客 2、需要在IDEA中导入tess4j 包&#xff1b;在pom.xml文件中输入如下内容 <!--导入Tesseract 用于识别验证码--><dependency>&l…

微信小程序开发:基础架构与配置文件

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

基于支持向量机(SVM)的数据回归预测

代码原理及流程 支持向量机&#xff08;SVM&#xff09;是一种强大的机器学习算法&#xff0c;既可以用于分类问题&#xff0c;也可以用于回归问题。在回归问题中&#xff0c;SVM 的目标是找到一个函数&#xff0c;使得预测值与实际值之间的误差最小化&#xff0c;并且保持在一…

set(集合),multiset容器及pair队组的创建

1.set的基本概念&#xff1a;所有元素再插入时自动按升序排序&#xff0c;set/multiset属于关联式容器&#xff0c;底层结构是用二叉树实现的 set与multiset区别&#xff1a; set中不允许容器中有重复的元素 multiset允许容器中有重复的元素 2.set的构造函数 3.set的大小和…

python—爬虫爬取视频样例

下面是一个使用Python爬虫爬取视频的基本例子。创建一个Python爬虫来爬取视频通常涉及到几个步骤&#xff1a;发送HTTP请求、解析网页内容、提取视频链接、下载视频文件。 import jsonimport requests from lxml import etreeif __name__ __main__:# UA伪装head {"User…

数字图像处理笔记(二)---- 像素加图像统计特征

系列文章目录 文章目录 系列文章目录前言一、认识数字图像二、图像的数学描述二、图像的统计特征总结 前言 慕课视频地址 一、认识数字图像 图像分为模拟图像和数字图像。要想获得数字图像需要通过采样量化编码等过程。 量化和采样的过程是将模拟信号转化为数字信号。编码的过…