主要内容

预测

预测下一个时间步的机器人

描述

例子

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

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

例子

全部折叠

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

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

pf = stateEstimatorPF
pf = stateEstimatorPF属性:NumStateVariables: 3 NumParticles: 1000 StateTransitionFcn: @nav.algs。gaussianMotion MeasurementLikelihoodFcn: @nav.algs。fullStateMeasurement IsStateVariableCircular: [0 0 0] ResamplingPolicy: [1 x1 resamplingPolicyPF] ResamplingMethod:“多项式”StateEstimationMethod:“的意思是”StateOrientation:“行”粒子:[1000 x3双)重量:[1000 x1双]状态:“使用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);[stateCorrected, stateCov] =正确(pf, 9 [4.2 - 0.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。如果你指定一个国家不支持协方差估计方法,那么函数返回金宝appstateCov作为[]

扩展功能

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

版本历史

介绍了R2016a