首页 > 其他分享 >【逐行注释】容积卡尔曼滤波的MATLAB例程(三维CKF),附下载链接

【逐行注释】容积卡尔曼滤波的MATLAB例程(三维CKF),附下载链接

时间:2024-12-02 13:30:44浏览次数:11  
标签:CKF 例程 卡尔曼滤波 滤波 callmeup length net 逐行

在这里插入图片描述

文章目录

CKF

CKF全称为容积卡尔曼滤波,相比于UKF(无迹卡尔曼滤波),拥有更合理的理论推导和鲁棒性,且在理论上比UKF的精度更高。
另有:

众多关于MATLAB和滤波的程序源代码在专栏里:https://blog.csdn.net/callmeup/category_12574912.html
欢迎订阅

程序运行结果

程序自带运动模型,运行程序即自动完成运动模型建立、滤波、滤波结果输出、滤波误差计算与输出等。

绘图部分

输出的图像如下:

  • 三维状态的真值与滤波后的值
    在这里插入图片描述

  • 三维状态的误差值对比:

在这里插入图片描述

  • 三维误差的累计概率密度(CDF)图像:

在这里插入图片描述

误差的统计特性计算与输出部分

代码截图如下:
在这里插入图片描述
输出结果如下:
在这里插入图片描述

部分代码和注释

部分代码试读:

% CKF的三维滤波程序例程
% author:Evand
% 2024-08-30/Ver1
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); %观测量
%% 运动模型
X_=zeros(3,length(t)); %给未滤波的状态申请空间
X_(:,1)=X(:,1); %给未滤波的状态赋初值

下载链接

几乎所有代码均有逐行注释,如果对上述试看内容和运行结果满意,可以点击下列链接付费下载:
https://download.csdn.net/download/callmeup/89696053

另有关于MATLAB下的卡尔曼滤波付费专栏可供订阅,里面也有很多程序:
卡尔曼讲解与各种典型进阶MATLAB编程:https://blog.csdn.net/callmeup/category_12574912.html

如需联系作者,可通过下方卡片⬇️

标签:CKF,例程,卡尔曼滤波,滤波,callmeup,length,net,逐行
From: https://blog.csdn.net/callmeup/article/details/141714193

相关文章

  • opencv调用摄像头(卡尔曼滤波)
    importcv2importnumpyasnpimportonnxruntimeimportxlsxwriterimportos#coco80类别CLASSES=['card']classYOLOV5():def__init__(self,onnxpath):self.onnx_session=onnxruntime.InferenceSession(onnxpath)self.input......
  • 卡尔曼滤波
    参考文章:卡尔曼滤波原理详解及系统模型建立(simulink)系统数学建模两大等式\(X(k)=AX(k-1)+BU(k)+w(k)\)\(Z(k)=HX(k)+v(k)\)卡尔曼滤波五大等式\(X(k|k-1)=AX(k-1|k-1)+BU(k)\)\(X(k|k-1)\):根据上一时刻最优估计值求得的当前值\(X(k-1|k-1)\):上一时刻最优估计值\(A\):状......
  • 基于OpenCV视觉库让机械手根据视觉判断物体有无和分类抓取的例程
    项目实例,在一个无人封闭的隔绝场景中,根据视觉判断物件的有无,通过机械手进行物件分类提取,并且返回状态结果;实际的场景是有一个类似采血的固件支架盘,上面很多采血管,采血管帽颜色可能不同,也有可能支架盘上只有空位,没有放置采血管,需要机器操作。图像的大小,支架和物件的位置、大......
  • YOLOv11改进 | 代码逐行解析(三) | 从yaml文件到网络结构解析到模型定义
     ......
  • YOLOv11改进 | 代码逐行解析(一) | 项目目录构造分析
     一、本文介绍Hello,大家好这次给大家带来的不是改进,是整个YOLOv11项目的分析,整个系列大概会更新5-7篇左右的文章,从项目的目录到每一个功能代码的都会进行详细的讲解,下面开始进行YOLOv11逐行解析的第一篇——项目目录构造分析开头之前顺便给大家推荐一下我的专栏,本专栏更新上......
  • 卡尔曼滤波(Kalman Filter)MATLAB代码
    卡尔曼滤波(KalmanFilter)是一种用于估计动态系统状态的递归算法,尤其适用于含有噪声的线性系统。它在时间序列数据的噪声抑制、状态估计、轨迹跟踪等领域非常常用,如自动控制、信号处理、导航系统等。卡尔曼滤波通过预测和更新两个步骤来递归地估计系统的状态,并根据噪声和测......
  • 199号资源-源程序:(SCI论文+程序)具有部分观测损失的卡尔曼滤波-----已提供下载资源
    ......
  • C语言顺序表 逐行解析!!!
    1、顺序表的概念及结构线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的⼀条直线。但是在物理结构上并不⼀定是连续的,线性表在物......
  • ADAU1701的Dynamics Processors算法补充例程合集(10个例程)
    作者的话做ADAU1701,心血来潮,再过了一遍SigmaDSP的算法合辑,发现有不少遗留的,比较有特点的算法,就在这个系列文章里一一呈现吧。ADAU1701我写了超过100个例程,但是都很早期,2018年开始弄的,我感觉并不是很全,那这一次就彻底把他补全一下,这个系列文章,将把我能够找到的,ADI原厂提供......
  • 基于UKF(无迹卡尔曼滤波)的SINS/GPS集成导航仿真程序【需要PSINS工具箱支持】
    文章目录主要特点内容包括运行截图基于UKF(无迹卡尔曼滤波)的SINS/GPS集成导航仿真程序(需要基于PSINS工具箱,工具箱是开源的,如果需要,可以确认收货后找我要链接)。该程序能够高效地模拟导航数据,并提供详细的滤波结果及误差分析,适用于科研和工程项目。带详细的中文注释主要......