【逐行注释】自适应Q的AUKF|MATLAB代码(附下载链接)

请添加图片描述

文章目录

  • 逐行注释的说明
  • 运行结果
  • 自适应UKF
    • 介绍
    • 实现过程
  • 部分代码
  • 各模块解释

逐行注释的说明

每一行都标有中文注释:
在这里插入图片描述

是我自己一个字一个字打的,如果有错别字等问题,欢迎指正。

运行结果

  • 三轴的估计值、真值、滤波前的值对比:

在这里插入图片描述

  • 三轴的误差值对比:
    在这里插入图片描述

  • 三轴的误差累积密度函数绘图:
    在这里插入图片描述

自适应UKF

介绍

自适应无迹卡尔曼滤波 ( A d a p t i v e U n s c e n t e d K a l m a n F i l t e r , A U K F ) (Adaptive Unscented Kalman Filter,AUKF) AdaptiveUnscentedKalmanFilterAUKF是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波 ( U n s c e n t e d K a l m a n F i l t e r , U K F ) (Unscented Kalman Filter,UKF) UnscentedKalmanFilterUKF的改进算法。

自适应无迹卡尔曼滤波在无迹卡尔曼滤波的基础上,引入了自适应的思想。它通过动态地调整无迹点的数量和分布,以适应系统的动态变化。具体来说,它使用一种自适应的方法来根据系统的动态特性进行无迹点的选择和更新,从而提高系统的估计精度。

实现过程

自适应无迹卡尔曼滤波适用于非线性和非高斯的系统状态估计问题,可以广泛应用于机器人导航、目标跟踪、航天器导航等领域。它通过动态地调整无迹点的数量和分布,能够更好地适应系统的动态特性,提高估计精度,同时具有较低的计算复杂度。

部分代码

% 自适应调节Q的UKF与传统UKF效果对比
% author:Evand
% 作者联系方式:微信matlabfilter(除前期达成一致外,付费咨询)
% 2024-5-5/Ver1
% 2024-9-9/Ver2/添加逐行注释
clear;clc;close all; %清空工作区、命令行,关闭小窗口
rng(0); %固定随机种子
%% 滤波模型初始化
t = 1:1:1000;% 定义时间序列Q = 1*diag([1,1,1]);w=sqrt(Q)*randn(size(Q,1),length(t));% 设置过程噪声协方差矩阵和过程噪声R = 1*diag([1,1,1]);v=sqrt(R)*randn(size(R,1),length(t));% 设置观测噪声协方差矩阵和观测噪声P0 = 1*eye(3);% 初始状态估计协方差矩阵
X=zeros(3,length(t));% 初始化状态向量
Z=zeros(3,length(t)); %定义观测值形式
Z(:,1)=[X(1,1)^2/20;X(2,1);X(3,1)]+v(:,1); %观测量
residue_tag = 0; %自适应标签
%% 运动模型
% 初始化未滤波的状态向量
X_ = zeros(3,length(t)); %给未滤波的值分配空间
X_(:,1) = X(:,1); %给未滤波的值赋初值
fprintf('完整代码的下载链接见:https://gf.bilibili.com/item/detail/1106217012')
%% UKF
P = P0;
X_ukf=zeros(3,length(t));
X_ukf(:,1)=X(:,1);

各模块解释

程序共有下列几个模块:
在这里插入图片描述
其中:

  • UKF为经典的无迹卡尔曼滤波

  • AUKF为经过自适应的UKF

  • 绘图部分:用于绘制和比较不同滤波方法(未滤波、UKF和AUKF)在三维状态下的表现。具体来说,它分为三个部分:

    • 绘制状态值:
      创建一个新的图形窗口,并在其中绘制三个子图,每个子图对应状态的一个维度。
      在每个子图中,绘制真实状态值(X)、UKF滤波后的状态值(X_ukf)、AUKF滤波后的状态值(X_aukf)和未滤波的状态值(X_)。
      每个子图都有相应的y轴标签和图例,第一幅图还包括标题。
    • 绘制误差对比:
      创建另一个图形窗口,并在其中绘制三个子图,每个子图对应状态的一个维度。
      在每个子图中,绘制未滤波、UKF和AUKF滤波前后的误差对比。
      每个子图都有相应的y轴标签和图例,第一幅图还包括标题。
    • 绘制误差累计概率密度图:
      创建第三个图形窗口,并在其中绘制三个子图,每个子图对应状态的一个维度。
      在每个子图中,绘制未滤波、UKF和AUKF滤波误差的累计概率密度图(CDF)。
      每个子图都有相应的y轴标签和图例,第三幅图还包括x轴标签。
      最后,代码计算并输出三种方法的三轴误差平均值。
  • 总误差输出示例部分给出了未滤波时、UKF、AUKF的误差最大值对比,可换成min、mean、std等,用于计算其他统计特性

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

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

相关文章

【教师节视频制作】飞机降落飞机机身AE模板修改文字软件生成器教程特效素材【AE模板】

教师节祝福视频制作教程飞机降落飞机机身AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程 怎么如何做的【教师节视频制作】飞机降落飞机机身AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 下载AE模板 安装AE软件 把AE模板导入AE软件 …

客服宝:专业跨平台快捷回复软件

在这个信息爆炸的时代,客服工作的重要性不言而喻。然而,面对多渠道、高频率的咨询与互动,客服团队如何保持高效、专业且富有人情味的对话呢?客服宝——一款专业的跨平台快捷回复软件,以其独特的功能优势,为…

手机投屏到电脑怎么弄?

远程看看是一款免费的远程控制软件,它支持Windows、iOS和Android等多个系统,并且提供了文件传输、手机投屏、在线聊天等多种功能。我们可以使用远程看看软件进行手机投屏,从而帮助您的家人或朋友解决相应的手机问题。 1. 首先,将…

自闭症儿童特殊学校:为孩子的成长保驾护航

在自闭症儿童成长的道路上,每一步都充满了挑战与未知。为了给予这些特殊孩子最坚实的支持与最温暖的陪伴,自闭症儿童特殊学校应运而生,它们如同一座座灯塔,照亮了孩子们前行的方向。其中,星贝育园自闭症儿童寄宿制学校…

如何在SQL Server中恢复多个数据库?

一次性恢复多个 SQL数据库吗可以吗? "是的,可以一次性恢复多个 SQL 数据库。通常情况下,只要备份文件的名称与相应的数据库匹配,且没有附加的日期或时间信息,就可以通过有效的 T-SQL 脚本来完成恢复。如果你希望…

如何将写好的Java代码打成jar包放在hadoops上运行

1、打包java文件 2、jar包上传,hadoop执行 我们将打好的jar包上传到Linux,因为hadoop是安装在Linux上的,然后用hadoop执行,执行前要确保已经在Linux上配置了hadoop的环境变量,不然就要到hadoop的目录下执行该命令 执…

Java入门:08.Java中的static关键字

1 static关键字 可以修饰属性变量,方法和代码段 static修饰的属性称为静态属性或类属性, 在类加载时就在方法区为属性开辟存储空间,无论创建多少个对象,静态属性在内存中只有一份。 可以使用 类名.静态属性 的方式引用 static修饰…

Java Kafka生产者实现

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

MIT6.824 课程-MapReduce

MapReduce:在大型集群上简化数据处理 概要 MapReduce是一种编程模型,它是一种用于处理和生成大型数据集的实现。用户通过指定一个用来处理键值对(Key/Value)的map函数来生成一个中间键值对集合。然后,再指定一个reduce函数, 它用…

Linux环境基础开发工具使用(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux环境基础开发工具使用(1) 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 Linux…

IP地址是怎么实现HTTPS访问的?

首先,需要明确的是,IP地址(Internet Protocol Address)是互联网上设备(如服务器、路由器等)的唯一标识符,它允许数据包在网络中正确地路由和传输。然而,IP地址本身并不直接支持HTTPS…

2024年T电梯修理证模拟考试题库及T电梯修理理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年T电梯修理证模拟考试题库及T电梯修理理论考试试题是由安全生产模拟考试一点通提供,T电梯修理证模拟考试题库是根据T电梯修理最新版教材,T电梯修理大纲整理而成(含2024年T电梯…

Mysql基础练习题 1729.求关注者的数量 (力扣)

编写解决方案,对于每一个用户,返回该用户的关注者数量。 #按 user_id 的顺序返回结果表 题目链接: https://leetcode.cn/problems/find-followers-count/description/ 建表插入语句: Create table If Not Exists Followers(us…

【LabVIEW学习篇 - 22】:ActiveX

文章目录 ActiveXActiveX打开Windows颜色选择对话框ActiveX将浏览器嵌入到前面板 ActiveX ActiveX是微软推出的一个开放的技术集的统称,它是很早之前出现的OLE(object linking and Embedding)技术的扩展,它是基于COM(Component Object Model)技术而建立…

基于GPT3打造你的专属的个人知识库

DocsGPT是一个基于GPT3的知识库平台,其支持训练、本地部署,并支持结果导出 https://github.com/arc53/DocsGPT DocsGPT本地部署 前置依赖: pippython3.8版本以上(python3.7不支持langchain 0.0.100以上版本)如使用ma…

uniapp去除顶部标题栏

相信很多同学和我一样,刚学uniapp的时候想去除自带的这个标题栏不知道如何去除🤪 其实很简单,只需两个步骤即可彻底除掉,首先找到项目文件夹下的pages.json路由文件点开,在这个文件里可以看到你创建的所有页面&#x…

宠物空气净化器测评:霍尼韦尔、希喂、米家、有哈、范罗士哪款吸浮毛效果好

作为一个忙碌、精致的搬砖人,我开始是没想过我会养带毛的动物的。自己就很忙了,哪有时间清理宠物弄脏的房间。无奈,三年前某天下班,刚进到小区就被楼下一只小流浪缠上了。买了两根火腿肠喂了还不够,非得跟着我到单元楼…

一篇文章了解Pytest单元测试框架

文章目录 1.Pytest是什么2.Pytest的安装3.Pytest快速入门4.Pytest文件规范5.常用的断言类型 1.Pytest是什么 pytest 是一个功能强大且灵活的 Python 测试框架,主要优点包括简洁易用、自动测试发现、丰富的插件生态系统、参数化测试、详细的断言错误信息、以及强大的 fixtures …

CentOS7虚拟机下安装及使用Docker

文章目录 一,准备工作二、安装Docker三、启动Docker四、验证Docker五、使用Docker六,卸载Docker 有一个Centos7的虚拟机,想要安装个docker测试一些docker用法和熟悉命令 一,准备工作 1,使用uname -r命令检查系统内核…

K8s中如何使用etcd进行集群信息的备份与恢复

这里写目录标题 ETCD是什么?1. **`etcd`(服务)**2. **`etcdctl`(客户端工具)**如何安装etcdctl(客户端工具)查看目前K8s自带etcd中的版本信息安装对应版本的etcdutl工具下载 `etcdutl` 3.5.7 版本配置环境变量创建备份文件验证一下备份的快照文件备份文件恢复的效果演示…