用于在线状态估计的粒子滤波对象
粒子滤波器是一种递归的贝叶斯状态估计器,它使用离散粒子来近似估计状态的后验分布。当测量值和系统模型(将模型状态与测量值联系起来)可用时,它对于在线状态估计是有用的。粒子滤波算法递归地计算状态估计,包括初始化、预测和修正步骤。
particleFilter
使用离散粒子滤波算法为离散非线性系统的在线状态估计创建一个对象。
考虑一个有状态的工厂x、输入u、输出米,过程噪声w,和测量y.假设你可以把植物表示成一个非线性系统。
该算法计算状态估计 用你指定的状态转换和测量似然函数来计算非线性系统。
该软件支持任意非线性状态转金宝app换和测量模型,具有任意过程和测量噪声分布。
为了进行在线状态估计,创建非线性状态转移函数和测量似然函数。然后构造particleFilter
对象使用这些非线性函数。创建对象后:
元素初始化粒子初始化
命令。
方法在下一步中预测状态估计预测
命令。
更正状态估计使用正确的
命令。
预测步骤根据您提供的状态转换模型使用最新的状态来预测下一个状态。修正步骤使用当前传感器测量来修正状态估计。该算法可选地重新分配或重新采样状态空间中的粒子,以匹配估计状态的后验分布。每个粒子代表这些状态变量的一个离散状态假设。所有粒子的集合被用来帮助确定状态估计。
创建一个粒子过滤器对象,用于离散非线性系统的在线状态估计。pf
= particleFilter (StateTransitionFcn
,MeasurementLikelihoodFcn
)StateTransitionFcn
是在给定时间步的状态向量的情况下,在下一个时间步计算粒子(状态假设)的函数。MeasurementLikelihoodFcn
是一个基于传感器测量计算每个粒子的可能性的函数。
创建对象后,使用初始化
命令以已知的均值和协方差初始化粒子或在定义范围内均匀分布的粒子。然后,使用正确的
而且预测
使用传感器测量更新粒子(以及状态估计)的命令。
初始化 |
初始化粒子过滤器的状态 |
预测 |
利用扩展卡尔曼滤波或无气味卡尔曼滤波或粒子滤波预测下一时刻的状态和状态估计误差协方差 |
正确的 |
使用扩展或无气味卡尔曼滤波或粒子滤波和测量纠正状态和状态估计误差协方差 |
getStateEstimate |
从粒子中提取最佳状态估计和协方差 |
克隆 |
复制在线状态估计对象 |
[1]李涛,博利克,下午Djuric,“粒子滤波的重采样方法:分类、实现和策略”,IEEE信号处理杂志,第32卷,no。3,第70-86页,2015年5月。