主要内容

正确的

调整状态估计基于传感器测量

描述

例子

(stateCorr,stateCov正确]= (pf,测量)计算修正系统状态协方差基于传感器及其相关的不确定性测量在当前时间步。正确的使用MeasurementLikelihoodFcn从粒子滤波对象属性,pf作为一个函数来计算每个粒子的传感器测量的可能性。两个输入MeasurementLikelihoodFcn函数是:

  1. pf- - -stateEstimatorPF对象,该对象包含当前迭代的粒子

  2. 测量——传感器测量用于正确的状态估计

MeasurementLikelihoodFcn然后提取最佳状态估计和协方差函数的基础上设置的StateEstimationMethod财产。

(stateCorr,stateCov正确]= (pf,测量,变长度输入宗量)所有的附加参数变长度输入宗量底层MeasurementLikelihoodFcn在前三个必需的输入。

例子

全部折叠

创建一个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为更多的信息。

传感器测量,指定为一个数组。这个输入是通过直接进入MeasurementLikelihoodFcn的属性pf。它用于计算每个粒子的传感器测量的可能性。

变长输入参数列表,指定为一个以逗号分隔。这个输入是通过直接进入MeasurementLikelihoodFcn的属性pf。它用于计算每个粒子的传感器测量的可能性。当你调用:

正确的(pf、测量、__arg1最长)
MATLAB®本质上调用measurementLikelihoodFcn为:
measurementLikelihoodFcn (pf、测量、__arg1最长)

输出参数

全部折叠

修正系统状态,返回一个行向量的长度NumStateVariables。计算基于修正后的状态StateEstimationMethod算法和MeasurementLikelihoodFcn

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

扩展功能

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

介绍了R2016a