主要内容

预测

预测机器人在下一步的状态

描述

例子

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

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

例子

全部折叠

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

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

pf = stateEstimatorPF
pf = statestimatorpf的属性:numstatevvariables: 3 NumParticles: 1000 stattransitionfcn: @nav.algs。gaussianMotion MeasurementLikelihoodFcn: @nav.algs。fullstatemmeasurement isstatevariablecirular: [0 00] ResamplingPolicy: [1x1 resamplingPolicyPF] ResamplingMethod: ' multiplomial ' statestimationmethod: 'mean' statorientation: 'row'颗粒:[1000x3 double]权重:[1000x1 double]状态:'使用getStateEstimate函数查看值。'StateCovariance: '使用getStateEstimate函数查看值。'

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

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

在状态[4 1 9]处初始化粒子滤波器,单位协方差((3)).使用5000个粒子。

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

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

[statePredicted, stateCov] =预测(pf);[statecorted,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矩阵,N的值NumStateVariables的财产pf.的基础上计算修正状态StateEstimationMethod算法和MeasurementLikelihoodFcn.如果指定的状态估计方法不支持协方差,则函数返回stateCov作为[]

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

介绍了R2016a

Baidu
map