【MATLAB例程】二维平面上,三个雷达对一个目标跟踪,输出观测平均与UKF滤波两种算法的结果对比,附下载链接

二维平面上,三个雷达对一个目标跟踪,输出观测平均与UKF(无迹卡尔曼滤波)两种算法的结果对比,包括轨迹图、误差曲线、误差统计特性等。

文章目录

程序简介

程序实现基于无迹卡尔曼滤波(Unscented Kalman Filter, UKF) 的多雷达二维目标跟踪系统,适用于匀速运动模型(Constant Velocity Model)。系统利用三个空间分布已知的雷达节点对目标进行距离(Range)和方位角(Bearing) 联合测量,并通过非线性滤波实现对目标位置与速度的高精度估计。

主要功能

  • 目标轨迹仿真:根据匀速运动方程与过程噪声生成动态目标的真实轨迹;
  • 多雷达观测模拟:为三部固定雷达生成含噪声的距离与方位角观测;
  • UKF滤波估计:通过Sigma点变换实现非线性状态与观测更新,无需Jacobian矩阵;
  • 数据融合:采用序贯观测更新方式融合多雷达信息,提高估计精度与稳定性;
  • 结果可视化与统计分析:输出轨迹对比、误差曲线、速度估计及协方差变化等图像,并自动计算RMSE及性能提升百分比。

模型与配置

  • 状态向量
    x = [ x , , y , , v x , , v y ] T \mathbf{x} = [x, , y, , v_x, , v_y]^T x=[x,,y,,vx,,vy]T

    其中 ((x, y)) 为二维位置,((v_x, v_y)) 为速度分量。

  • 观测模型 (非线性):
    z = [ r θ ] z = \begin{bmatrix} r \ \theta \end{bmatrix} z=[r θ]

    ( x − x r ) 2 + ( y − y r ) 2 a t a n 2 ( y − y r , , x − x r ) \] \\begin{bmatrix} \\sqrt{(x-x_r)\^2 + (y-y_r)\^2} \\ \\mathrm{atan2}(y-y_r,,x-x_r) \\end{bmatrix} \[(x−xr)2+(y−yr)2 atan2(y−yr,,x−xr)

    其中 ((x_r, y_r)) 为雷达位置。

  • 滤波结构

    1. 生成Sigma点;
    2. 状态预测与过程噪声注入;
    3. 序贯融合多雷达观测;
    4. 状态更新与协方差修正。

结果输出

程序将自动绘制以下结果图:

  • 二维轨迹对比图(真实轨迹、UKF估计、观测均值);
  • 位置误差与速度误差曲线
  • 协方差迹变化图(反映不确定性收敛趋势);
  • 统计对比条形图,展示UKF滤波与直接观测的RMSE对比及性能提升比例。

此外,命令行中输出详细的性能统计,包括:

  • 位置与速度RMSE;
  • 各轴误差;
  • 平均/最大误差;
  • 滤波前后性能改善百分比。

运行结果

轨迹对比图像:

速度与位置误差图像:

非滤波方法无法得到速度,所以速度误差仅有UKF的

误差统计特性:


MATLAB源代码

完整代码如下:

matlab 复制代码
% 3雷达二维目标跟踪滤波系统 - EKF实现,匀速运动模型
% 输入:雷达观测数据(距离、方位角),输出:目标状态估计(位置、速度)
% 作者: matlabfilter
% 2025-11-09/Ver1
clc; clear; close all;
rng(0);
%% === 系统参数配置 ===
config = struct();

% 【可修改】基本参数
config.T = 0.5;                     % 采样周期 (s) - 可修改
config.total_time = 60;             % 总仿真时间 (s) - 可修改
config.num_steps = config.total_time / config.T;

% 【可修改】雷达位置配置 [x, y] (m) - 固定位置,需要时可修改
radar_positions = [
    0,    0;         % 雷达1位置
    2000, 0;        % 雷达2位置
    0,2000];         % 雷达3位置

% 【可修改】测量噪声标准差 - 根据实际雷达精度调整
config.sigma_range = 20;            % 距离测量噪声标准差 (m)
config.sigma_bearing = 0.05;        % 方位角测量噪声标准差 (rad) ≈ 2.86°

% 【可修改】过程噪声标准差 - 影响滤波器的跟踪能力
config.sigma_acc = 2.0;             % 加速度过程噪声标准差 (m/s²)

% 【可修改】仿真参数
config.detection_prob = 0.95;       % 检测概率 - 可调整丢失观测的概率
config.max_range = 15000;           % 雷达最大探测距离 (m)

% 【新增】UKF参数
config.alpha = 1e-3;                % Sigma点分布参数 (通常1e-4到1)
config.beta = 2;                    % 高斯分布最优值为2
config.kappa = 0;                   % 次级缩放参数 (通常为0或3-n)

%% === 初始化UKF滤波器 ===

完整代码:
https://download.csdn.net/download/callmeup/92270414

或:

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

相关推荐
IT猿手9 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
Evand J13 小时前
【MATLAB复现RRT(快速随机树)算法】用于二维平面上的无人车路径规划与避障,含性能分析与可视化
算法·matlab·平面·无人车·rrt·避障
s090713613 小时前
【声纳成像】基于滑动子孔径与加权拼接的条带式多子阵SAS连续成像(MATLAB仿真)
开发语言·算法·matlab·合成孔径声呐·后向投影算法·条带拼接
IT猿手16 小时前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw
IT猿手16 小时前
基于控制障碍函数(Control Barrier Function, CBF)的无人机编队三维动态避障路径规划,MATLAB代码
开发语言·matlab·无人机·动态路径规划·无人机编队
SugarFreeOixi16 小时前
MATLAB绘图风格记录NP类型
python·matlab·numpy
IT猿手16 小时前
基于 CBF 的多无人机编队动态避障路径规划研究,无人机及障碍物数量可以自定义修改,MATLAB代码
开发语言·matlab·无人机·动态路径规划
IT猿手18 小时前
基于强化学习Q-learning算法的无人机三维路径规划算法原理与实现,MATLAB代码
算法·matlab·无人机·路径规划·动态路径规划
ghie909021 小时前
拉普拉斯金字塔图像融合MATLAB仿真程序
人工智能·计算机视觉·matlab
IT猿手1 天前
基于动态三维环境下的Q-Learning算法无人机自主避障路径规划研究,MATLAB代码
算法·matlab·无人机·动态路径规划·多无人机动态避障路径规划