本站所有资源均为高质量资源,各种姿势下载。
本项目是一个在MATLAB环境下开发的非线性状态估计对比系统。核心任务是模拟一个典型的雷达目标跟踪场景,其中目标在二维平面上做匀速直线运动,而观测传感器(雷达)通过非线性的极坐标方式(距离和角度)获取数据。本项目通过完整实现EKF和UKF两种算法,旨在量化分析线性化近似与确定性采样技术在处理非线性观测模型时的性能差异。
项目中算法的运行流程主要分为以下五个阶段:
1. 参数初始化与场景建模 系统设定采样时间为1秒,共仿真60个步长。状态向量包含横纵坐标及对应的速度分支。过程噪声矩阵 $Q$ 基于运动模型构建,观测噪声矩阵 $R$ 根据雷达测距和测角的精度标准差设定。
2. 仿真数据生成 使用线性恒速(CV)模型推演目标的真实轨迹。在每个时间步,系统将当前的直角坐标状态通过非线性映射转化为极坐标,并叠加高斯白噪声,生成模拟的雷达观测序列。
3. 拓展卡尔曼滤波(EKF)实现
tic/toc 耗时,最终以表格形式在控制台输出。非线性观测转换逻辑 系统通过专门的子函数实现从直角坐标系到极坐标系的转换。计算公式包含 $r = sqrt{x^2 + y^2}$ 以及 $theta = text{atan2}(y, x)$。该转换是整个系统中非线性的来源。
雅可比矩阵计算 针对EKF,项目实现了一个手动推导的雅可比求导函数。它处理了观测函数对位置分量的导数,并加入了奇异值保护机制。如果目标距离传感器过近(距离平方小于1e-6),则将雅可比矩阵置零,以保证数值计算的稳定性。
Sigma点权重配置 在UKF部分,引入了三个比例参数:$alpha$ 调节Sigma点的分布范围(默认为1e-3,体现强约束),$kappa$ 为待选次级参数,$beta$ 用于引入状态分布的先验信息(高斯分布下默认为2)。这些参数共同决定了均值权重 $W_m$ 和协方差权重 $W_c$。
残差归一化
在EKF的更新步和UKF的观测空间计算中,针对角度残差项,使用了 atan2(sin(diff), cos(diff)) 逻辑。这一步至关重要,因为它确保了当角度在 $pmpi$ 附近跳变时,滤波器不会因为残差过大而计算崩溃。