在线状态估计的粒子滤波对象
粒子滤波器是一种递归的贝叶斯状态估计器,它使用离散粒子来近似估计状态的后验分布。当测量和将模型状态与测量关联起来的系统模型可用时,它对在线状态估计很有用。粒子滤波算法递归地计算状态估计,包括初始化、预测和校正步骤。
particleFilter
使用离散时间粒子滤波算法为离散时间非线性系统的在线状态估计创建一个对象。
考虑一个有状态的植物x、输入u、输出米、过程噪声w,测量y.假设你可以将植物表示为一个非线性系统。
算法计算状态估计 使用你指定的状态转移和测量似然函数的非线性系统。
该软件支持任意非线性状态转万博1manbetx换和测量模型,具有任意过程和测量噪声分布。
为了进行在线状态估计,需要建立非线性状态转移函数和测量似然函数。然后构造particleFilter
对象使用这些非线性函数。创建对象后:
属性初始化粒子初始化
命令。
在下一个步骤中使用预测
命令。
修正状态估计使用正确的
命令。
预测步骤根据您提供的状态转换模型,使用最新的状态来预测下一个状态。修正步骤使用电流传感器测量来修正状态估计。该算法可选地重新分配或重新采样状态空间中的粒子,以匹配估计状态的后验分布。每个粒子代表这些状态变量的一个离散状态假设。所有粒子的集合被用来帮助确定状态估计。
创建一个粒子滤波器对象,用于离散时间非线性系统的在线状态估计。pf
= particleFilter (StateTransitionFcn
,MeasurementLikelihoodFcn
)StateTransitionFcn
是一个函数,它计算粒子(状态假设)在下一个时间步,给定一个时间步的状态向量。MeasurementLikelihoodFcn
是一个函数,它根据传感器测量值计算每个粒子的可能性。
创建对象后,使用初始化
命令以已知的平均值和协方差初始化粒子或在定义的边界内均匀分布的粒子。然后,使用正确的
和预测
命令来使用传感器测量更新粒子(以及状态估计)。
初始化 |
初始化粒子过滤器的状态 |
预测 |
利用扩展卡尔曼滤波或无迹卡尔曼滤波或粒子滤波预测下一时刻的状态和状态估计误差协方差 |
正确的 |
正确的状态和状态估计误差协方差使用扩展或无气味卡尔曼滤波器,或粒子滤波器和测量 |
getStateEstimate |
从粒子中提取最佳状态估计和协方差 |
克隆 |
复制在线状态估计对象 |