预测

预测机器人下一步的状态

描述

例子

(statePred,stateCov)=预测(pf)计算预测的系统状态及其相关的不确定性协方差。预测使用StateTransitionFcn的属性stateEstimatorPF对象,pf,来进化所有粒子的状态。然后,它提取最佳状态估计和基于设置的协方差StateEstimationMethod财产。

(statePred,stateCov)=预测(pf,变长度输入宗量)中指定的所有附加参数变长度输入宗量底层StateTransitionFcn的属性pf。第一个输入StateTransitionFcn是前面时间步长的粒子集合,后面是所有的参数吗变长度输入宗量

例子

全部折叠

创建一个stateEstimatorPF对象,并执行状态估计的预测和校正步骤。粒子滤波给出了一个基于返回值的预测状态估计StateTransitionFcn。然后,它根据给定的度量值和的返回值纠正状态MeasurementLikelihoodFcn

创建一个默认三种状态的粒子过滤器。

pf = stateEstimatorPF
属性:NumStateVariables: 3 numparticle: 1000 StateTransitionFcn: @nav.algsgaussianMotion MeasurementLikelihoodFcn: @nav.algs。[0 00] ResamplingPolicy: [1x1 resamplingPolicyPF] ResamplingMethod: '多项'状态估计方法:'均值'状态定位:'行'粒子:[1000x3双]权重:[1000x1双]状态:'使用getStateEstimate函数看到的值。' StateCovariance: '使用getStateEstimate函数来查看值。'

详细说明了平均状态估计方法和系统重采样方法。

pf.StateEstimationMethod =“的意思是”;pf.ResamplingMethod =“系统”;

用单位协方差((3))。使用5000个粒子。

初始化(pf, 5000,(4 1 9),眼(3));

假设测量[4.2 0.9 9],运行一个预测和一个正确步骤。

[statePredicted, stateCov] =预测(pf);[stateCorrected,stateCov] =正确(pf,[4.2 0.9 9]);

得到基于。的最佳状态估计StateEstimationMethod算法。

状态= getStateEstimate (pf)
状态=1×34.1562 0.9185 9.0202

输入参数

全部折叠

stateEstimatorPF对象,指定为句柄。看到stateEstimatorPF为更多的信息。

可变长度的输入参数列表,指定为逗号分隔的列表。该输入直接传递到StateTransitionFcn的属性pf演化每个粒子的系统状态。当你调用:

预测(pf、__arg1最长)
MATLAB®本质上调用stateTranstionFcn为:
stateTransitionFcn (pf、prevParticles __arg1、最长)

输出参数

全部折叠

预测系统状态,以长度向量的形式返回NumStateVariables。的基础上计算预测状态StateEstimationMethod算法。

修正的系统方差,作为一个返回N——- - - - - -N矩阵,NNumStateVariables的财产pf。修正后的状态是基于StateEstimationMethod算法和MeasurementLikelihoodFcn。如果指定不支持协方差的状态估计方法,则函数返回金宝appstateCov作为[]

介绍了R2016a