主要内容

粒子滤波参数

使用stateEstimatorPF粒子滤波,您必须指定参数如粒子数、初始粒子位置和状态估计方法。另外,如果你有一个特定的运动和传感器模型,指定这些参数在测量状态转换函数和似然函数,分别。这些参数详细的细节在这个页面。粒子滤波的工作流的更多信息,请参阅粒子滤波的工作流

粒子数

指定粒子的数量,使用初始化方法。每个粒子的假设当前状态。粒子分布在你的状态空间基于指定的均值和协方差,或者在指定的国家边界。根据StateEstimationMethod财产,最高的粒子重量或所有粒子的均值来确定最佳状态估计。

默认的粒子数是1000。除非性能是一个问题,不要用少于1000粒子。更多的粒子可以提高速度估计但牺牲性能,因为算法来处理更多的颗粒。调优的粒子数是最好的方式影响你的粒子滤波器的性能。

基于这些结果,stateEstimatorPF例子,显示跟踪精度的差异在使用100和5000颗粒粒子。

初始粒子的位置

当你初始化粒子滤波,可以指定粒子的初始位置使用:

  • 均值和协方差

  • 国家边界

你的初始状态被定义为平均协方差相对于您的系统。这意味着和协方差相关系统的初始位置和不确定性。的stateEstimatorPF对象会在给定的粒子基于协方差分布的意思。粒子的分布算法使用得到最好的估计,所以准确的初始化粒子有助于迅速收敛到最佳状态估计。

如果一个初始状态未知,可以均匀地分配你的粒子在一个给定的国家边界。国家范围的极限状态。例如,当评估一个机器人的位置,国家范围仅限于机器人可以居住的环境。一般来说,一个均匀分布的粒子是一种更有效的方式来初始化粒子来提高收敛速度。

情节展示了均值和协方差规范可以集群粒子在空间更有效,而不是指定完整的状态。

状态转移函数

状态转换函数,StateTransitionFcn粒子滤波的帮助进化粒子到下一个状态。它是预测步骤中使用粒子滤波的工作流。在stateEstimatorPF状态转换函数对象,被指定为一个回调函数,前面的粒子,和任何其他必要的参数,输出预测的位置。函数头的语法是:

函数predictParticles = stateTransitionFcn (pf、prevParticles变长度输入宗量)

默认情况下,状态转换函数假设一个高斯运动模型与恒定的速度。函数使用一个高斯分布来确定粒子的位置下一个时间步。

对于您的应用程序,重要的是要有一个状态转换函数,准确地描述了您期望系统的行为。准确地发展所有粒子,必须制定和实施系统的运动模型。如果粒子分布到下一个状态,stateEstimatorPF对象不找到一个准确的估计。因此,重要的是要了解你的系统可以准确地表现,这样你可以跟踪它。

你也必须指定系统噪声StateTransitionFcn。没有随机噪声应用于预测系统,粒子滤波不函数。

虽然可以预测许多系统根据他们之前的状态,有时系统可以包含额外的信息。的使用变长度输入宗量函数允许您输入的任何额外的参数相关的预测下一个状态。当你打电话预测,可以包含这些参数使用:

预测(pf param1 param2)

因为这些参数匹配定义的状态转换函数,调用预测本质上调用函数为:

param1 predictParticles = stateTransitionFcn (pf, prevParticles, param2)

输出的粒子,predictParticles,然后要么使用的测量似然函数正确的粒子,或用于下一步预测如果不需要校正。

测量似然函数

预测下一个状态后,可以利用传感器来测量正确预测的状态。通过指定一个MeasurementLikelihoodFcnstateEstimatorPF对象,你可以正确预测粒子使用正确的函数。这个测量似然函数,根据定义,给出了体重状态假设基于给定的测量(粒子)。从本质上讲,它给你的可能性实际上观察到的测量匹配每个粒子所观察到的。这可能是用作重量预测粒子帮助纠正他们,得到最好的估计。虽然可以证明准确预测一步少量的中间步骤,获得准确的跟踪,利用传感器观测经常正确的粒子。

的规范MeasurementLikelihoodFcn类似于StateTransitionFcn。它被指定为一个函数处理的属性stateEstimatorPF对象。函数头的语法是:

函数= measurementLikelihoodFcn可能性(pf、predictParticles、测量、变长度输入宗量)

输出是基于测量每个预测粒子的可能性。然而,您还可以指定多个参数变长度输入宗量。的使用变长度输入宗量函数允许您输入的任何额外的参数修正预测状态有关。当你打电话正确的,可以包含这些参数使用:

正确的(pf、测量、param1 param2)

这些参数与测量似然函数定义:

可能性= measurementLikelihoodFcn (pf、predictParticles、测量、param1 param2)

正确的函数使用可能性输出粒子重采样,并给予最终的状态估计。

重采样策略

重采样的粒子连续跟踪的对象是一个至关重要的一步。它使您能够选择粒子当前状态的基础上,而不是使用粒子分布在初始化。不断重采样的粒子在当前估计,可以得到更准确的跟踪和提高长期性能。

当你打电话正确的,用于状态估计的粒子可以重新取样根据ResamplingPolicy属性中指定的stateEstimatorPF对象。此属性指定为一个resamplingPolicyPF(导航工具箱)resamplingPolicyPF对象。的TriggerMethod属性对象告诉重采样的粒子滤波方法来使用。

你可以在固定的时间间隔或触发重采样时最低有效粒子比。固定间隔在一系列的迭代方法重新取样,这是中指定SamplingInterval财产。最低有效粒子比率衡量的是当前的粒子集接近后如何分布。有效的粒子的数量计算:

在这个方程,N是粒子数,w每个粒子的规范化的重量。有效的粒子比Neff/NumParticles。因此,权重的有效粒子比是一个函数的所有粒子。后粒子的权重达到足够低的价值,他们并不是导致了状态估计。这种低价值触发重采样,所以粒子接近当前状态估计和有较高的权重。

状态估计方法

粒子滤波工作流程的最后一步是选择一个状态估计。粒子和他们的重量采样分布是用来给最好的估计的实际状态。不过,您可以使用粒子信息以多种方式单一的状态估计。与stateEstimatorPF对象,您可以选择最好的估计基于最高的粒子重量或意味着所有的粒子。指定的估算方法StateEstimationMethod属性是“的意思是”(默认)或“maxweight”

因为你可以估计的状态从所有粒子在许多方面,你也可以提取每个粒子和它的重量stateEstimatorPF使用粒子财产。

另请参阅

|

相关的例子

更多关于