主要内容

getStateEstimate

从粒子中提取最佳状态估计和协方差

描述

例子

状态= getStateEstimate (pf返回基于当前粒子集的最佳状态估计。估计是根据StateEstimationMethod的物业stateEstimatorPF对象,pf

状态stateCov= getStateEstimate(pf还返回围绕状态估计的协方差。协方差是状态估计的不确定性的度量。并不是所有的状态估计方法都支持协方差输出。万博1manbetx在这种情况下,getStateEstimate返回stateCov作为[]

例子

全部折叠

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

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

pf = stateEstimatorPF
pf = statestimatorpf的属性:numstatevvariables: 3 NumParticles: 1000 stattransitionfcn: @nav.algs。gaussianMotion measurementlikehoodfcn: @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],运行一个预测步骤和一个正确步骤。

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

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

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

输入参数

全部折叠

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

输出参数

全部折叠

最佳状态估计,作为具有长度的行向量返回NumStateVariables.估计是根据StateEstimationMethod中指定的算法pf

修正的系统方差,返回为N——- - - - - -N矩阵,N的值NumStateVariables的财产pf.的基础上计算修正状态StateEstimationMethod算法和MeasurementLikelihoodFcn.如果指定的状态估计方法不支持协方差,则函数返回万博1manbetxstateCov作为[]

扩展功能

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

在R2016a中介绍