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

在这里插入图片描述

CKF

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

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

程序运行结果

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

绘图部分

输出的图像如下:

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

部分代码和注释

部分代码试读:

% CKF的三维滤波程序例程
% author:Evand
% 作者联系方式:VX:matlabfilter(除前期达成一致外,付费咨询)
% 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

如需联系作者,可通过下方微信⬇️

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB卡尔曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值