【滤波跟踪】基于延迟卡尔曼滤波(DKF)实现无人机 GPS 测量延迟问题matlab代码
✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍一、背景一无人机应用对 GPS 定位的依赖无人机在当今的各个领域如航拍测绘、物流配送、农业监测以及灾害救援等方面都有着广泛应用。准确的定位信息对于无人机执行任务至关重要而全球定位系统GPS是无人机获取位置信息的主要手段之一。例如在物流配送中无人机需要依据 GPS 提供的精确位置准确降落在指定地点完成货物投递在灾害救援时无人机依靠 GPS 定位快速抵达受灾区域进行搜索和救援工作。二GPS 测量延迟带来的挑战然而在实际应用中GPS 测量存在不可忽视的延迟问题。这一延迟可能由多种因素导致包括信号传播延迟、卫星信号处理时间、接收机内部处理延迟等。例如当无人机快速飞行并需要实时调整飞行路径以避开障碍物时GPS 测量延迟可能使无人机接收到的位置信息滞后于实际位置导致飞行控制决策失误增加碰撞风险。这种延迟严重影响了无人机定位的准确性和实时性进而对无人机的安全稳定飞行以及任务执行效果产生负面影响。三延迟卡尔曼滤波DKF的应用意义延迟卡尔曼滤波DKF作为一种专门处理测量延迟问题的滤波算法能够有效地应对 GPS 测量延迟带来的挑战。它通过对系统状态进行估计和预测利用延迟测量数据来修正估计结果从而提高无人机定位的精度和实时性。DKF 为解决无人机 GPS 测量延迟问题提供了一种有效的解决方案有助于提升无人机在复杂环境下的飞行性能和任务执行能力。二、原理一系统模型构建⛳️ 运行结果 部分代码classdef DelayedKalmanFilterMerwe handle%%properties (SetAccess private)% StatesxPQnmkappaalphalambdagammaXiWi% Delayed statesx_sP_sQ_sXi_sWi_sn_sm_saW_prea_imu_preR_biend%%properties (Constant)g 9.81;e3 [0, 0, 1];ge3 9.81*[0, 0, 1];I3 eye(3);Z3 zeros(3);end%%methods%%function E DelayedKalmanFilterMerwe()n 10;m 2*n 1;% alpha 1.0;alpha 1.45;kappa 10;E.n n;E.m m;E.kappa kappa;E.alpha alpha;E.lambda alpha^2 * (n kappa) - n;E.gamma sqrt(n E.lambda);E.x zeros(n, 1);E.Xi zeros(n, m);E.Wi zeros(m, 1);E.P zeros(n);E.n_s 2*n;E.m_s 2*E.n_s 1;E.x_s zeros(E.n_s, 1);E.P_s zeros(E.n_s);E.Xi_s zeros(E.n_s, E.m_s);E.Wi_s zeros(E.m_s, 1);E.R_bi eye(3);E.a [0, 0, 0];E.a_imu_pre [0, 0, 0];E.W_pre [0, 0, 0];end%% Predictionfunction prediction(E, h, a_imu, W_imu)E.sigma_points();Xk zeros(E.n, E.m);for i 1:E.mXk(:,i) f(E, E.Xi(:, i), h, a_imu, W_imu);endE.Xi Xk;[E.x, E.P] unscented_transformation(E, Xk, E.Wi, E.Q);end%% IMU correctionfunction correction_imu(E, ypr, V_R_imu)% z reshape(R, 9, 1);z ypr;R V_R_imu;Y zeros(3, E.m);for i 1:E.mY(:,i) E.Xi(7:9,i);end[y, Py] unscented_transformation(E, Y, E.Wi, R);Pxz zeros(E.n, 3);for i 1:E.mPxz Pxz E.Wi(i)*(E.Xi(:,i) - E.x)*(Y(:,i) - y);endK Pxz*inv(Py);E.x E.x K*(z - y);E.P E.P - K*Py*K;end%% GPS correctionfunction correction_gps(E, x_gps, v_gps, V_x_gps, V_v_gps)z [x_gps; v_gps];R blkdiag(V_x_gps, V_v_gps);Y zeros(6, E.m);for i 1:E.mY(:,i) E.Xi(1:6,i);end[y, Py] unscented_transformation(E, Y, E.Wi, R);Pxz zeros(E.n, 6);for i 1:E.mPxz Pxz E.Wi(i)*(E.Xi(:,i) - E.x)*(Y(:,i) - y);endK Pxz*inv(Py);E.x E.x K*(z - y);E.P E.P - K*Py*K;end%% Equation of motionfunction Xk f(E, X, h, a_imu, W_imu)xk X(1:3);vk X(4:6);ypr X(7:9);Rk eul2rotm(ypr);b_a_k X(10);R_pre Rk;b_a_pre b_a_k;W E.R_bi*W_imu;Rk Rk*expm_SO3(h/2*(W E.W_pre));% This assumes IMU provide acceleration without gak Rk*E.R_bi*a_imu b_a_k*E.e3;a_pre R_pre*E.R_bi*E.a_imu_pre b_a_pre*E.e3;xk xk h*vk h^2/2*a_pre;vk vk h/2*(ak a_pre);E.W_pre W;E.a_imu_pre a_imu;E.a ak;Xk [xk; vk; rotm2eul(Rk); b_a_k];end%% Delayed Predictionfunction delayed_prediction(E, h, a_imu, W_imu)E.delayed_sigma_points();Xk zeros(E.n_s, E.m_s);for i 1:E.m_sXk(:,i) delayed_f(E, E.Xi_s(:, i), h, a_imu, W_imu);endE.Xi_s Xk;[E.x_s, E.P_s] unscented_transformation(E, Xk, E.Wi_s, E.Q_s);E.x E.x_s(1:E.n,1);E.P E.P_s(1:E.n,1:E.n);end%% Delayed IMU correctionfunction delayed_correction_imu(E, ypr, V_R_imu)% z reshape(R, 9, 1);z ypr;R V_R_imu;Y zeros(3, E.m_s);for i 1:E.m_sY(:,i) E.Xi_s(7:9,i);end[y, Py] unscented_transformation(E, Y, E.Wi_s, R);Pxz zeros(E.n_s, 3);for i 1:E.m_sPxz Pxz E.Wi_s(i)*(E.Xi_s(:,i) - E.x_s)*(Y(:,i) - y);endK Pxz*inv(Py);E.x_s E.x_s K*(z - y);E.P_s E.P_s - K*Py*K;E.x E.x_s(1:E.n,1);E.P E.P_s(1:E.n,1:E.n);end%% Delayed GPS correctionfunction delayed_correction_gps(E, x_gps, v_gps, V_x_gps, V_v_gps)z [x_gps; v_gps];R blkdiag(V_x_gps, V_v_gps);Y zeros(6, E.m_s);for i 1:E.m_sY(:,i) E.Xi_s(11:16,i);end[y, Py] unscented_transformation(E, Y, E.Wi_s, R);Pxz E.P_s(1:10,11:16);K Pxz*inv(Py);E.x E.x_s(1:10) K*(z - y);E.P E.P_s(1:10,1:10) - K*Py*K;end%% Delayed equation of motionfunction Xk delayed_f(E, X, h, a_imu, W_imu)xk X(1:3);vk X(4:6);ypr real(X(7:9));Rk eul2rotm(ypr);b_a_k X(10);R_pre Rk;b_a_pre b_a_k;W E.R_bi*W_imu;Rk Rk*expm_SO3(h/2*(W E.W_pre));% This assumes IMU provide acceleration without gak Rk*E.R_bi*a_imu b_a_k*E.e3;a_pre R_pre*E.R_bi*E.a_imu_pre b_a_pre*E.e3;xk xk h*vk h^2/2*a_pre;vk vk h/2*(ak a_pre);% Save dataE.W_pre W;E.a_imu_pre a_imu;E.a ak;Xk [xk; vk; rotm2eul(Rk); b_a_k; X(11:20)];end%% Delayed sigma pointsfunction delayed_sigma_points(E)E.Xi_s(:,1) E.x_s;E.Wi_s(1) E.kappa / (E.n_s E.kappa);sqrt_P sqrtm(E.P_s);for i 1:E.n_sE.Xi_s(:,i1) E.x_s E.gamma*sqrt_P(:,i);E.Xi_s(:,iE.n_s1) E.x_s - E.gamma*sqrt_P(:,i);endfor i 2:E.m_sE.Wi_s(i) 1 / (2*(E.n_sE.kappa));E.Wi_s(iE.n_s1) 1 / (2*(E.n_s E.kappa));endend%% Augment the statefunction update_augmented_state(E)E.x_s [E.x; E.x];E.P_s [E.P, E.P;E.P, E.P];end%% Sigma pointsfunction sigma_points(E)E.Xi(:,1) E.x;E.Wi(1) E.kappa / (E.n E.kappa);sqrt_P sqrtm(E.P);for i 1:E.nE.Xi(:,i1) E.x E.gamma*sqrt_P(:,i);E.Xi(:,iE.n1) E.x - E.gamma*sqrt_P(:,i);endfor i 2:E.mE.Wi(i) 1 / (2*(E.nE.kappa));E.Wi(iE.n1) 1 / (2*(E.n E.kappa));endend%% Unscented transformationfunction [xUT, PUT] unscented_transformation(E, XUT, WUT, Noise)[mUT, nUT] size(XUT);xUT zeros(mUT, 1);for i 1:nUTxUT xUT WUT(i)*XUT(:,i);endPUT zeros(mUT, mUT);for i 1:nUTPUT PUT WUT(i)*(XUT(:,i) - xUT)*(XUT(:,i) - xUT);endPUT PUT Noise;end%% Update parametersfunction update_parameters(E, R_bi)E.R_bi R_bi;end%% Update initial valuesfunction update_init_values(E, P, Q)E.P P;E.Q Q;E.Q_s blkdiag(Q, Q);E.P_s [P, P;P, P];end%% Get statesfunction [x, v, R, P] output_states(E)x E.x(1:3);v E.x(4:6);R eul2rotm(real(E.x(7:9)));P E.P;endendend 参考文献往期回顾扫扫下方二维码

相关新闻

毕设程序javaJavaWeb的宠物店管理系统 基于Spring Boot的萌宠生活馆数字化运营平台 智慧宠物服务中心信息管理系统的设计与实现

毕设程序javaJavaWeb的宠物店管理系统 基于Spring Boot的萌宠生活馆数字化运营平台 智慧宠物服务中心信息管理系统的设计与实现

毕设程序javaJavaWeb的宠物店管理系统udh4z9yf(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着城市化进程加快和居民生活水平提升,宠物经济正成为消费领域的新蓝海…

2026/7/3 10:41:35 阅读更多 →
CTF 比赛Web 方向入门:3 道基础题带你拿首血

CTF 比赛Web 方向入门:3 道基础题带你拿首血

CTF 比赛Web 方向入门:3 道基础题带你拿首血 对于计算机专业转行网络安全的新手来说,CTF Web 方向是最易入门的赛道 —— 它不需要复杂的二进制逆向知识,只需利用你已有的 HTML、Python、SQL 基础,就能快速解出基础题。本文精选攻…

2026/7/5 0:39:29 阅读更多 →
转行网络安全工程师需要掌握哪些技能?掌握这些后可以做什么工作?

转行网络安全工程师需要掌握哪些技能?掌握这些后可以做什么工作?

一、什么是网络安全工程师? 网络安全工程师是网络安全领域的专业人士,他们负责维护和保护组织或个人的网络系统免受潜在威胁和攻击的侵害。这些威胁可以包括恶意软件、病毒、网络入侵、数据泄露等。网络安全工程师的主要任务包括但不限于: …

2026/5/17 9:23:39 阅读更多 →

最新新闻

如何识别真正可落地的AI项目标题

如何识别真正可落地的AI项目标题

我不能按照该标题生成博文。原因如下:该标题属于实时科技商业新闻类内容,核心是报道OpenAI公司人事变动事件,本质为媒体资讯传播,而非可复现、可操作、可深度拆解的“项目”;根据你设定的【角色与任务定义】&#xff0…

2026/7/5 3:59:09 阅读更多 →
区分于三层架构的四层架构(Java 后端分层设计的完整指南)

区分于三层架构的四层架构(Java 后端分层设计的完整指南)

四层架构:Java 后端分层设计的完整指南适用场景:Spring Boot / Spring MVC 等 Java Web 后端 关键词:Controller Service Repository Entity 分层架构 职责分离我遇到的问题 刚学 Java Web 开发时,很容易把所有逻辑堆在一个类…

2026/7/5 3:57:09 阅读更多 →
Alexa增强与自主交通流耦合的语音交互新范式

Alexa增强与自主交通流耦合的语音交互新范式

1. 项目概述:这不是一次普通的技术发布会,而是一场关于“智能体如何真正融入人类生活节奏”的现场压力测试“Alexa Enhancements, Autonomous Traffic at AI Summit”——这个标题乍看像两条并行的新闻快讯,但如果你在现场待过三小时以上&…

2026/7/5 3:55:08 阅读更多 →
洞悉生态-社会耦合机制、多源数据融合进阶应用:基于当量因子法InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估种的应用

洞悉生态-社会耦合机制、多源数据融合进阶应用:基于当量因子法InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估种的应用

在生态文明建设的浪潮中,你是否正为如何量化那些难以用货币衡量的“人心账”而头疼?传统的生态评估往往只算清了“经济账”,却忽略了公众对美学、休闲和精神寄托的感知。作为破解这一难题的核心利器,当量因子法、InVEST与SolVES的…

2026/7/5 3:55:08 阅读更多 →
面试时,你会问面试官哪些问题?

面试时,你会问面试官哪些问题?

明天又要去参加一次面试。每次面试的时候,面试官都会在最后给面试者一些时间,来问问题。这是个非常好的机会,能按照自己的思路,来了解职位、技术、企业文化、福利待遇、企业状况和前景等情况,以弥补前面面试过程中没有…

2026/7/5 3:53:08 阅读更多 →
零基础!IntelliJ IDEA + CC GUI + 智谱AI 配置全记录

零基础!IntelliJ IDEA + CC GUI + 智谱AI 配置全记录

一、背景与目标 目标:在 IntelliJ IDEA 中使用 Claude Code 风格的 AI 编程助手,且希望免费、稳定、合规。 最终方案:IntelliJ IDEA CC GUI 插件 cc-switch 工具 智谱AI GLM 免费模型。 二、完整过程与遇到的问题 阶段 1:想…

2026/7/5 3:51:07 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻