【基于PSINS工具箱】以速度为观测量的SINS/GNSS组合导航,UKF滤波

在这里插入图片描述

基于【PSINS工具箱】,提供一个MATLAB例程,仅以速度为观测量的SINS/GNSS组合导航(滤波方式为UKF)

文章目录

  • 工具箱
  • 程序简述
    • 运行结果
  • 代码
  • 程序讲解
    • MATLAB 代码教程:使用UKF进行速度观测
      • 1. 引言与基本设置
      • 2. 初始设置
      • 3. UKF滤波的初始化
      • 4. 主循环进行UKF处理
      • 5. 绘图与结果分析
      • 6. 输出误差统计
  • 总结

工具箱

本程序需要在安装工具箱后使用,工具箱是开源的,链接:http://www.psins.org.cn/kydm

程序简述

原有例程的 153 153 153组合导航是 S I N S SINS SINS/ G P S GPS GPS下的位置观测或位置+速度观测,本文所述的代码是仅三轴位置观测的,使用UKF来滤波。
最后输出速度对比、速度误差、姿态对比、姿态误差、位置对比、位置误差等图片。如下:

运行结果

  • 三轴AVP曲线:
    在这里插入图片描述

  • 三轴速度误差曲线:
    在这里插入图片描述

  • 滤波后 X X X轴速度累积概率分布函数:
    在这里插入图片描述

代码

部分代码如下:

% 【PSINS】速度观测的153,UKF
% 2024-09-17/Ver1
% 作者微信 :matlabfilter(除前期达成一致外,咨询需付费)
clear;clc;close all;
rng(0);
glvs
psinstypedef(153);
trj = trjfile('trj10ms.mat');
% initial settings
[nn, ts, nts] = nnts(2, trj.ts);
% imuerr = imuerrset(0.03, 100, 0.001, 5);
imuerr = imuerrset(8, 14, 0.18, 57);
imu = imuadderr(trj.imu, imuerr);  % imuplot(imu);
davp0 = avperrset([1;1;10]*60, 0.1, [1;1;3]);%% 速度观测EKF
ins = insinit(avpadderr(trj.avp0,davp0), ts);
rk = [1;1;1];

完整代码下载链接:https://gf.bilibili.com/item/detail/1106602012

程序讲解

这段 MATLAB 代码实现了基于 UKF(无迹卡尔曼滤波)的速度观测处理,主要用于模拟和分析惯性导航系统(INS)与全球导航卫星系统(GNSS)结合的情况。以下是对代码的详细介绍:

MATLAB 代码教程:使用UKF进行速度观测

本教程将介绍一段使用扩展卡尔曼滤波(UKF)进行速度观测的 MATLAB 代码。该代码旨在通过融合惯性导航系统(INS)和GNSS数据来提高定位精度。以下是对代码的逐步解析。

1. 引言与基本设置

  • 环境清理:使用 clearclcclose all 清空工作空间,确保每次运行时环境干净。
  • 随机种子:设置随机数种子以确保可重复的结果。
  • 全局变量:初始化必要的全局变量和PSINS类型。
  • 数据读取:从指定文件中加载IMU和GNSS数据。

2. 初始设置

  • 时间序列参数:提取时间序列的基本参数。
  • IMU误差设置:定义IMU传感器的误差,并向IMU数据添加噪声。
  • 姿态误差:设置初始姿态误差,为后续计算提供基线。

3. UKF滤波的初始化

  • INS初始化:创建INS的初始状态,包括位置、速度和姿态。
  • UKF初始化:设置UKF的噪声模型、状态协方差矩阵和观测方程。

4. 主循环进行UKF处理

  • 数据处理:循环遍历IMU数据,逐步更新INS状态和UKF滤波器。
  • 速度观测:在每个整秒时,从真实数据中提取速度观测,并通过UKF进行状态更新。
  • 结果保存:将每次的状态和协方差保存到预先分配的数组中。

5. 绘图与结果分析

  • 结果可视化:绘制估计结果与真实数据的比较图,帮助分析滤波效果。
  • 速度误差分析:展示X、Y和Z轴的速度误差。
  • CDF绘制:绘制速度误差的累积概率分布函数,以便进一步分析估计精度。

6. 输出误差统计

  • 误差统计:计算并输出X轴速度的平均误差,为评估滤波效果提供参考。

总结

通过本教程,可以了解如何使用UKF算法进行速度观测,以及如何通过融合IMU和GNSS数据来提高定位精度。

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

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

相关文章

【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法

【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 文章目录 【深度学习滑坡制图|论文解读2】基于融合CNN-Transformer网络和…

二次封装 el-pagination 组件存在的问题

在使用 Element Plus 组件时,有时会遇到组件不完全符合需求的情况,这时可能需要对其进行二次封装。在封装 Pagination 组件时,我们会发现一些属性和函数无法正常使用,下面将详细探讨这些问题,并提供一下思路和想法。 …

Elasticsearch-linux环境部署

本文主要介绍linux下elasticsearch的部署。通过在一台linux服务器中分别对elasticsearch-6.7.2版本,elasticsearch-7.3.0版本来进行安装,记录在安装elasticsearch-7.3.0版本时出现的异常情况,以及elasticsearch-head的安装。 基础环境 本机已…

超子物联网HAL库笔记:串口篇

超子物联网 HAL库学习 汇总入口: 超子物联网HAL库笔记:[汇总] 写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧! 这篇文章介绍了HAL库串口大多的使用方法,并配有详细的思路和注释…

指标平台帮助企业在业务运营过程中快速定位和解决业务问题

在业务运营中,指标平台扮演着至关重要的角色,它将复杂的数据模型转化为业务人员易于理解的业务指标。通过实时监控、预警归因、自助分析等功能,帮助企业快速定位和解决业务问题。以 Aloudata CAN 自动化指标平台为例,该平台通过统…

纯血鸿蒙系统 HarmonyOS NEXT自动化测试实践

1、测试框架选择 hdc:类似 android 系统的 adb 命令,提供设备信息查询,包管理,调试相关的命令ohos.UiTest:鸿蒙 sdk 的一部分,类似 android sdk 里的uiautomator,基于 Accessibility 服务&…

【算法】(Python)动态规划

动态规划: dynamic programming。"programming"指的是一种表格法,而非编写计算机程序。通常解决最优化问题(optimization problem)。将问题拆分成若干个子问题,求解各子问题来得到原问题的解。适用于多阶段…

《无线重构世界》射频模组演进

射频前端四大金刚 射频前端由PA、LNA、滤波器、开关“四大金刚” 不同的模块有自己的工艺和性能特点 分层设计 射频前端虽然只由PA、LNA、开关、混频器4个模块构成,但不同模块之间相互连接且相互影响。如果将射频系统当成一个整体来理解,其中的细节和…

【C#】使用.net9在C#中向现有对象动态添加属性

在 C# 中向现有对象动态添加属性并不像在 Python 或 JavaScript 中那样容易,因为 C# 是一种强类型语言。 但是,我们可以通过使用一些技术和库来实现这一点,例如扩展方法、字典等。本文将详细介绍如何在 C# 中实现这一点。ExpandoObject 方法 …

编程语言之战:AI 之后的 Kotlin 与 Java

随着人工智能不断重塑科技格局,开发人员越来越面临选择哪些编程语言在 AI 开发方面最有利和有效的任务。 考虑到 AI 和机器学习的快速发展,一种编程语言是否更适合满足这一不断发展的领域的需求? 自 1995 年问世以来,Java 一直是编…

web前端

HTML HTML 超文本标记语言。 H5 HTML v5 get/post/delete/put ---- restful web开发 结构 样式动作 架构 装饰 交互 标签 文本相关 图片、图像、声音 导航 表格 列表 表单标签 布局标签 h5扩展 HTML入门 HBuilder安装 下载 运行HBuilder 创建workspace存储项目 创…

[react]10、react性能优化

1、列表&key 一、React更新流程 React在props或state发生改变时,会调用React的render方法,会创建一颗不同的树。React需要基于这两颗不同的树之间的差别来判断如何有效的更新UI。 同层节点之间相互比较,不会垮节点比较;不同类型的节点&am…

基础网络安全知识

1.ctfhub技能树 1.1 Web-SQL注入 Web-SQL注入-整数型 && 字符型 && MySQL结构 参考:5.9.6MySql注入 Web-SQL注入-报错注入 step1: 查库名 ?id1 and extractvalue(1,concat(0x7e,database(),0x7e))-- step2: 查看表名 ?id1 and extractvalue(1…

一、初识C语言(1)

1.C语言识别的是二进制语言 C语言是一门计算机语言,计算机是硬件,硬件分通电(1)和 未通电(0)两种情况,所以C语言识别的都是0 / 1信号,也就是二进制语言。 2.C语言文件类型以及基本框…

传输协议设计与牧村摆动(Makimoto‘s Wave)

有一条活鱼和一条死鱼,你准备怎么做,你会将活鱼红烧或将死鱼清蒸吗?好的食材只需要最简单的烹饪,不好的食材才需要花活儿。 我此前的文字几乎都在阐述一个观点,广域网就是那条死鱼,数据中心则是那条活鱼。…

80后聊架构:架构设计中两个重要指标,延时与吞吐量(Latency vs Throughput) | 架构师之路...

《架构师之路:架构设计中的100个知识点》 3.延时与吞吐量 有朋友问我说,架构优化时,什么时候要重点优化延时,什么时候要重点优化吞吐量? 画外音:补充阅读材料在最后。 延时(Latency)…

全星魅-物联网定位终端-北斗定位便携终端-北斗有源终端

在当今快速发展的物流运输行业中,精准定位与实时监控已成为确保货物安全与高效运输的关键因素。为了满足这一需求,QMCZ10作为一款集4G(LTE Cat1)通讯技术与智能定位功能于一体的终端产品,应运而生。它不仅具备普通定位…

网络编程(一):UDP socket api => DatagramSocket DatagramPacket

目录 1. TCP 和 UDP 1.1 TCP / UDP 的区别 1.1.1 有连接 vs 无连接 1.1.2 可靠传输 vs 不可靠传输 1.1.3 面向字节流 vs 面向数据报 1.1.4 全双工 vs 半双工 2. UDP socket api 2.1 DatagramSocket 2.1.1 构造方法 2.1.2 receive / send / close 2.2 DatagramPacket …

JDBC入门

什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。 使用JDBC 使用JDBC会用到它…

ReactPress:深入解析技术方案设计与源码

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,欢迎一起共建,感谢Star。 ReactPress是一个基于React框架开发的开源发布平台,它不仅仅是一个简单的博客系统,更是一个功能全…