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

news2024/12/24 8:49:55

请添加图片描述

文章目录

  • 逐行注释的说明
  • 运行结果
  • 自适应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.coloradmin.cn/o/2123199.html

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

相关文章

家庭用超声波清洗机哪个品牌好用?好用的眼镜清洗机推荐

在我们的日常生活中,像眼镜、项链和耳环这些频繁使用的个人物品,经常面临灰尘积聚和细缝中难以触及的污渍问题。超声波清洗机凭借其深入微细缝隙的清洁能力,成为了解决这一难题的理想工具,确保了这些珍贵小物的彻底清新。不过现在…

魔搭上创建数据集

本文将介绍如何在魔搭上创建数据集,首先登录后通过网页创建数据库集。 通过 git 命令 clone 数据集 创建数据集,初始化训练数据和测试数据 train.csv,test.csv,注意 csv 的首行为列名称 创建子数据集,魔搭上子数据集…

智能监控中图像质量增强方法研究

粗略的构思步骤 摘要 本文深入探讨了智能监控系统中图像质量增强的关键技术,通过融合深度学习、传统图像处理算法及生成对抗网络(GAN)的优势,提出了一套高效且鲁棒的图像质量提升方案。本文详细描述了技术框架的每一个组成部分,深入剖析了技术原理,并详细阐述了实现步骤…

leecode100题-双指针-三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 答案中不可以包含重复的三元组。 示例 1: 输入…

Kubernetes------Service

目录 一、属性说明 二、定义和基本配置 1、定义 2、创建Service 2.1、typeClusterIP 2.2、typeNodePort 2.3、固定IP访问 三、Service、EndPoint、Pod之间的关系 四、服务发现 1、基于Service中IP访问外部服务 2、基于Service中域名访问外部服务 五、Ingress的安装和使…

react js 路由 Router

完整的项目,我已经上传了 资料链接 起因, 目的: 路由, 这部分很难。 原因是, 多个组件,进行交互,复杂度比较高。 我看的视频教程 1. 初步使用 安装: npm install react-router-dom 修改 index.js/ 或是 main.js 把 App, 用 BrowserRouter 包裹起来 2. Navigate 点击…

JAVA基础: while循环,for循环,break和continue关键字,数组详解

1 while循环 while(boolean结果)语句/语句组 每次循环做什么事 循环条件 循环条件改变。 循环嵌套 在一个循环中,出现了另一个循环。 无限循环 循环条件永远为真。 int i 10 ; while(i > 0){//....i ; }------------------------- while(true){}2 break关键…

mysql的整理

插入数据: INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...); insert into employee(id,workno,name,gender,age,idcard,entrydate) values(1,1,Itcast,男,-1,123456789012345678,2000-01-01); insert into employee values(3,3,韦一笑,男,38,1…

如何利用 CSS 渐变实现多样化背景效果

前言 总在平常看到像这样的图片 背景是如何实现的呢 背景效果的多样性和美观性直接影响用户体验。CSS 渐变为设计师提供了一种强大且灵活的方法来创建引人注目的背景。渐变是颜色之间平滑过渡的效果,通过调整渐变类型和设置,你可以轻松实现从简单到复杂…

和弦图制作软件有哪些,和弦音乐制作软件推荐

在音乐创作与教学领域,和弦图作为视觉化展现音乐和声结构的工具,扮演着至关重要的角色。随着技术的发展,众多和弦图制作软件应运而生,旨在简化创作流程,提升学习效率。然而,面对琳琅满目的选项,…

【Linux】多线程:线程控制

目录 一、创建线程:pthread_create 二、线程终止:pthread_exit、return、pthread_cancel 三、线程等待:pthread_join 四、线程分离:pthread_detach 五、如何创建并使用多线程 六、对线程进行封装 一、创建线程&#xff1a…

ModuleNotFoundError: No module named ‘keras.layers.core‘怎么解决

问题 ModuleNotFoundError: No module named keras.layers.core,如图所示: 如何解决 将from keras.layers.core import Dense,Activation改为from tensorflow.keras.layers import Dense,Activation,如图所示: 顺利运行&#xf…

中秋快到了,要给哪些国外客户送祝福(附贺卡模板)

马上就要中秋节了,在这里提前祝小伙伴们中秋节快乐,身体健康,阖家团圆,业绩越来越好,公司越来越好,一切都越来越好! 中秋节是我们非常重要的几个传统节日之一了,除了我们自己庆祝之…

深入理解Java中的clone对象

目录 1. 为什么要使用clone 2. new和clone的区别 3. 复制对象和复制引用的区别 4.浅克隆和深克隆 5. 注意事项 1. 为什么要使用clone 在实际编程过程中,我们常常遇到这种情况:有一个对象 A,需要一个和 A 完全相同新对象 B,并…

【【通信协议之ARP的FPGA实现其一】】

通信协议之ARP的FPGA实现其一 介绍 ARP 协议分为 ARP 请求和 ARP 应答,源主机发起查询目的 MAC 地址的报文称为 ARP 请求,目的主机响应源主机并发送包含本地 MAC 地址的报文称为 ARP 应答。当主机需要找出这个网络中的另一个主机的物理地址时&#xff0…

点击化学 ,如何用最简单的试剂叠氮化修饰后用于Click Reaction?

“点击化学”这一术语由斯克里普斯研究所的K. B. Sharpless 于2001年首次提出,这是一类涉及碳-杂原子间 化学键形成的反应,该类反应具有收率高,选择性好的特 点。词条“点击”意为将分子片段拼接起来就像将安全带扣 环的两部分扣起来一样简单…

大学英语四六级报名照不通过的原因

大学英语四六级报名照不通过的原因 #英语四六级 #大学英语四六级 #大学英语四六级考试 #英语四六级报名照片 #英语四六级考试报名照片

数仓建模:数仓设计中的10个陷阱

目录 0 引言 1 主要内容 1.1 过于迷恋技术,而没有将重点放在业务需求和目标上 1.2 没有或无法找到一个有影响的、平易近人的、明白事理的高级管理人员作为数仓建设的发起人 1.3 将项目处理为一个巨大的持续多年的项目,而不是追求更容易管理的、虽然…

日光辐射系统室内太阳光模拟器

太阳光模拟器能够为实验室环境提供稳定可靠的光照环境,其作用相当于将自然太阳光“搬进”室内实验室。这对于研究太阳能电池、光伏材料及其他与太阳能相关的设备和材料性能至关重要。 1.氙灯灯泡功率:≥450W; 2.输出光束尺寸:≥22…

秃姐学AI系列之:实战Kaggle比赛:图像分类(CIFAR-10)

目录 准备工作 整理数据集 将验证集从原始的训练集中拆分出来 整理测试集 使用函数 图像增广 读取数据集 定义模型 定义训练函数 训练和验证数据集 对测试集进行分类并提交结果 准备工作 首先导入竞赛需要的包和模块 import collections import math import os i…