粒子滤波的工作流
粒子滤波是一种递归的贝叶斯状态估计量,利用离散粒子近似估计状态的后验分布。
的粒子滤波递归算法计算状态估计,包括两个步骤:
以前预测的算法使用状态来预测当前状态基于给定的系统模型。
校正,算法使用电流传感器测量正确的状态估计。
算法还周期性地重新分配,或重新取样,状态空间中的粒子匹配估计状态的后验分布。
估计状态包括所有状态变量。每个粒子代表一个离散状态的假设。所有粒子的集合是用来帮助确定最终的状态估计。
可以将粒子滤波应用到任意的非线性系统模型。过程和测量噪声可以按照任意非高斯分布。
正常使用粒子滤波,您必须指定粒子数等参数,初始粒子位置和状态估计方法。另外,如果你有一个特定的运动和传感器模型,指定这些参数在测量状态转换函数和似然函数,分别。有关更多信息,请参见粒子滤波参数。
遵循这一基本工作流来创建和使用粒子滤波。这个页面的细节评估工作流和示例展示了如何在一个循环中运行粒子滤波不断估计状态。
评估工作流程
使用粒子滤波时,有一组必需的步骤创建粒子滤波和估计的状态。预测和校正步骤的主要迭代步骤不断估计状态。
创建粒子滤波
创建一个stateEstimatorPF
对象。
设置参数的非线性系统
修改这些stateEstimatorPF
适合您的特定系统或应用程序参数:
StateTransitionFcn
MeasurementLikelihoodFcn
ResamplingPolicy
ResamplingMethod
StateEstimationMethod
给出了这些参数的默认值为基本操作。
的StateTransitionFcn
和MeasurementLikelihoodFcn
函数定义系统行为和测量集成。他们对粒子滤波跟踪准确是至关重要的。有关更多信息,请参见粒子滤波参数。
初始化粒子
使用初始化
函数来设置粒子数和初始状态。
样本粒子的分布
你可以样品初始粒子的位置在两个方面:
最初的姿势和协方差——如果你有一个想法你的初始状态,建议您指定初始姿势和协方差。这个规范有助于集群粒子接近你估计跟踪是更有效的从一开始。
国家界限——如果你不知道你的初始状态,您可以指定每个状态变量的限制。颗粒均匀分布在整个国家范围内为每一个变量。广泛分布的粒子没有有效地跟踪,因为更少的粒子接近实际状态。使用状态边界通常需要更多的粒子,计算时间和迭代收敛于实际状态估计。
预测
基于状态转换函数,指定粒子进化来估计下一个状态。使用预测
执行状态转换函数中指定StateTransitionFcn
财产。
得到测量
收集的测量传感器用于下一步纠正当前预测状态。
正确的
然后使用测量调整预测状态和正确的估计。指定您的测量使用正确的
函数。正确的
使用MeasurementLikelihoodFcn
计算每个粒子传感器测量的可能性。重采样的粒子需要更新你的状态改变在随后的迭代估计。这一步触发重采样的基础上ResamplingMethod
和ResamplingPolicy
属性。
提取最佳状态估计
后调用正确的
,最好的状态估计是自动提取的基础上权重
每个粒子的StateEstimationMethod
属性中指定的对象。最好的状态和输出协方差的估计正确的
函数。
重新取样粒子
这一步是不分开,但当你调用执行正确的
。一旦你的状态改变了,你重新取样粒子基于最新的估计。的正确的
方法检查ResamplingPolicy
粒子重采样的触发电流分布的粒子及其权重。如果没有触发重采样,相同的粒子用于下一个估计。如果你的状态不随多或者你的时间步很低,你可以叫预测和正确的方法而不重采样。
不断地预测和正确的
重复前面的预测和校正估计状态所需的步骤。校正步骤决定了是否需要重采样的粒子。多次要求预测
或正确的
可能需要时间:
没有测量可用但控制输入和更新发生在高频率。使用
预测
方法进化粒子获得更多更新的预测状态。多个测量阅读是可用的。使用
正确的
整合多个数据来自同一个或多个传感器。功能纠正国家根据每组信息收集。
另请参阅
stateEstimatorPF
|初始化
|getStateEstimate
|预测
|正确的