主要内容

getStateEstimate

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

描述

例子

状态= getStateEstimate (pf返回基于当前粒子集的最佳状态估计。的基础上提取估计StateEstimationMethod属性中的particleFilter对象,pf

状态StateCovariance= getStateEstimate(pf还返回状态估计的协方差。协方差是状态估计的不确定性的度量。并非所有的状态估计方法都支持协方差输出。金宝app在这种情况下,getStateEstimate返回StateCovarianceAs[]。

状态而且StateCovariance信息可以直接作为粒子过滤对象pf的属性访问,如pf.State而且pf.StateCovariance.但是,当这两个量都需要时,使用getStateEstimation方法具有两个输出参数,计算效率更高。

例子

全部折叠

创建一个粒子滤波器,并设置状态转换和测量似然函数。

myPF = particleFilter(@vdpParticleFilterStateFcn,@ vdpmeasurementlikehoodfcn);

初始化粒子过滤器状态[2;0]用单位协方差,和使用1000粒子。

初始化(myPF, 1000, [2;0], eye(2));

选择的意思是状态估计和系统的重采样方法。

myPF。状态EstimationMethod =“的意思是”;myPF。ResamplingMethod =“系统”;myPF
myPF = particleFilter with properties: NumStateVariables: 2 NumParticles: 1000 StateTransitionFcn: @vdpParticleFilterStateFcn measurementlikehoodfcn: @ vdpmeasurementlikehoodfcn IsStateVariableCircular: [0 0] ResamplingPolicy: [1x1 particleResamplingPolicy] ResamplingMethod: 'systematic' statestimationmethod: 'mean' StateOrientation: 'column' Particles: [2x1000 double] Weights: [1.0000e-03 1.0000e-03 1.0000e-03…状态:'使用getStateEstimate函数查看值。'StateCovariance: '使用getStateEstimate函数查看值。'

假设一个测量2.1,运行一个预测和纠正步骤。

[PredictedState, PredictedStateCovariance] = predict(myPF);[CorrectedState, CorrectedStateCovariance] = correct(myPF,2.1);

得到最佳状态估计和协方差StateEstimationMethod财产。

[State, StateCovariance] = getStateEstimate(myPF)
状态=2×12.1018 - -0.1413
StateCovariance =2×20.0175 -0.0096 -0.0096 0.5394

输入参数

全部折叠

粒子过滤器,指定为一个对象。看到particleFilter获取更多信息。

输出参数

全部折叠

最佳状态估计,定义为基于条件的向量StateOrientation属性:

  • 如果StateOrientation“行”然后状态是1 × -吗NumStateVariables向量

  • 如果StateOrientation“列”然后状态是一个NumStateVariables1的向量

当前估计状态估计误差协方差,定义为NumStateVariables——- - - - - -NumStateVariables数组中。StateCovariance是根据StateEstimationMethod.如果指定的状态估计方法不支持协方差,则函数返回金宝appStateCovarianceAs[]。

版本历史

在R2017b中引入