作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
🍊个人信条:格物致知,完整Matlab代码及仿真咨询内容私信。
🔥 内容介绍
一、卡尔曼滤波基本原理
1. 卡尔曼滤波核心思想
卡尔曼滤波是一种最优递归数据处理算法,适用于处理线性系统的状态估计问题。其核心思想是利用系统状态方程和观测方程,通过预测和更新两个步骤,递归地估计系统状态。它通过最小化估计误差的均方误差来获得最优估计。
2. 标准卡尔曼滤波公式
其中,x 是状态向量,z 是观测向量,F 是状态转移矩阵,H 是观测矩阵,B 是控制输入矩阵,u 是控制输入,Q 是过程噪声协方差,R 是观测噪声协方差,K 是卡尔曼增益。
二、扩展卡尔曼滤波(EKF)
1. EKF 的基本思想
EKF 是卡尔曼滤波在非线性系统中的扩展。当系统的状态方程或观测方程是非线性函数时,EKF 通过泰勒展开将非线性函数在当前估计值附近线性化,然后应用标准卡尔曼滤波算法。
2. EKF 的关键步骤
3. EKF 的优缺点
- 优点
:实现相对简单,计算效率较高,在一定程度上能够处理非线性问题。
- 缺点
:只适用于弱非线性系统,线性化过程可能引入较大误差,尤其是在强非线性情况下;对模型误差和噪声统计特性敏感。
三、无迹卡尔曼滤波(UKF)
1. UKF 的基本思想
UKF 是一种改进的非线性滤波方法,它不通过线性化非线性函数,而是使用一组精心选择的采样点(称为 sigma 点)来表示状态分布。这些 sigma 点能够精确地表示状态分布的均值和协方差,从而更准确地捕捉非线性变换后的概率分布。
2. UKF 的关键步骤
3. UKF 的优缺点
- 优点
:避免了线性化误差,对强非线性系统的估计精度更高;不需要计算雅可比矩阵,实现相对简单;能够更好地处理非高斯噪声。
- 缺点
:计算复杂度较高,尤其是状态维度较大时;sigma 点的选择和权重计算需要调整多个参数。
四、粒子滤波(PF)
1. 粒子滤波的基本思想
粒子滤波是一种基于蒙特卡洛方法的非线性滤波技术,它使用一组随机样本(粒子)及其权重来表示状态的后验概率分布。与 EKF 和 UKF 不同,粒子滤波不假设状态分布是高斯的,因此能够处理任意非线性、非高斯系统。
2. 粒子滤波的关键步骤
3. 粒子滤波的优缺点
- 优点
:适用于任意非线性、非高斯系统;能够精确表示复杂的概率分布;实现相对简单,不需要计算雅可比矩阵或 sigma 点。
- 缺点
:计算复杂度高,需要大量粒子才能获得准确的估计;粒子退化问题可能导致滤波性能下降;当状态空间维度较高时,粒子数需要呈指数增长才能保证精度。
五、EKF、UKF 和粒子滤波的比较
1. 适用场景比较
- EKF
:适用于弱非线性系统,状态和观测噪声近似高斯分布的情况。计算效率较高,是处理中等非线性问题的常用方法。
- UKF
:适用于强非线性系统,但噪声仍为高斯分布的情况。相比 EKF,UKF 能够更准确地捕捉非线性变换后的概率分布,估计精度更高。
- 粒子滤波
:适用于任意非线性、非高斯系统,尤其是状态分布复杂或噪声非高斯的情况。当系统具有多峰分布或高度非线性时,粒子滤波是首选方法。
3. 选择建议
-
当系统非线性程度较低且噪声近似高斯分布时,优先选择 EKF。
-
当系统非线性程度较高但噪声仍为高斯分布时,选择 UKF。
-
当系统具有强非线性、非高斯噪声或复杂状态分布时,选择粒子滤波。
-
当计算资源有限时,应避免使用粒子滤波,尤其是高维状态空间的情况。
六、应用案例
1. 目标跟踪
在目标跟踪问题中,状态通常包括目标的位置和速度,观测可能来自雷达或相机等传感器。对于非线性运动模型(如转弯模型)和非线性观测模型(如角度测量),UKF 和粒子滤波通常能提供比 EKF 更准确的跟踪结果。粒子滤波在处理杂波环境和多目标跟踪时表现尤为出色。
2. 机器人定位与建图(SLAM)
在 SLAM 问题中,机器人需要同时估计自身位置和环境地图。EKF-SLAM 是早期常用的方法,但它存在线性化误差和计算复杂度高的问题。UKF-SLAM 能够提供更准确的估计,而粒子滤波方法(如 FastSLAM)则能够处理非高斯分布和复杂环境。
3. 导航系统
在惯性导航系统中,EKF 常用于融合 GPS 和惯性测量单元(IMU)的数据。当系统非线性程度较高时(如高速机动情况),UKF 或粒子滤波可能更合适。粒子滤波在 GPS 信号丢失或受到严重干扰的场景中表现出色。
七、总结与展望
EKF、UKF 和粒子滤波是状态估计领域的三种重要方法,各自适用于不同的应用场景。EKF 因其简单高效而被广泛应用,UKF 在处理强非线性问题时提供了更高的精度,而粒子滤波则具有最广泛的适用性。
未来的研究方向包括:
-
开发更高效的粒子滤波算法,如基于重要性采样和马尔可夫链蒙特卡洛(MCMC)的方法,以减少所需粒子数。
-
探索混合滤波方法,结合 UKF 和粒子滤波的优点,提高在复杂环境下的性能。
-
研究深度学习与状态估计的结合,利用神经网络学习复杂系统的动态模型和观测模型。
-
将状态估计方法应用于新兴领域,如自动驾驶、无人机群控制和物联网。
⛳️ 运行结果
🔗 参考文献
[1] 张应博,王法胜,杨俊生.基于混合卡尔曼粒子滤波算法的期权定价方法[C]//2009年中国智能自动化会议论文集(第二分册).2009.DOI:ConferenceArticle/5aa00a5cc095d722206377db.
[2] 于洪波,王国宏,孙芸,等.一种融合UKF和EKF的粒子滤波状态估计算法[J].系统工程与电子技术, 2013, 35(7):5.DOI:10.3969/j.issn.1001-506X.2013.07.4.
[3] 乔相伟.基于四元数非线性滤波的飞行器姿态确定算法研究[D].哈尔滨工程大学[2025-05-29].DOI:CNKI:CDMD:1.1013.172099.
📣 部分代码
🎈 部分理论引用网络文献,若有侵权联系博主删除
👇 关注我领取海量matlab电子书和数学建模资料
🏆团队擅长辅导定制多种科研领域MATLAB仿真,助力科研梦:
🌈 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱调度、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题、港口调度、港口岸桥调度、停机位分配、机场航班调度、泄漏源定位
🌈 机器学习和深度学习时序、回归、分类、聚类和降维
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN|TCN|GCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类