正确的

使用跟踪滤波器校正状态和状态估计误差协方差

描述

例子

(xcorr,Pcorr正确]= (过滤,zmeas)返回正确的状态,xcorr,修正状态估计误差协方差,Pcorr,用于基于所述电流测量输入跟踪滤波器的下一时间步骤,zmeas。修正后的值覆盖了内部状态和状态估计误差的协方差过滤

(xcorr,Pcorr正确]= (过滤,zmeas,measparams)方法中定义的度量函数使用的其他参数MeasurementFcn的属性过滤。您可以从前面的语法返回任何输出。

如果filter是trackingKF要么trackingABF对象,那么你就不能使用这个语法。

(xcorr,Pcorr正确]= (过滤,zmeas,zcov)指定额外的测量协方差,zcov在使用MeasurementNoise的属性过滤

您只能在使用此语法过滤是一个trackingKF宾语。

(xcorr,Pcorr,zcorr正确]= (过滤,zmeas)也返回测量的修正,zcorr

您只能在使用此语法过滤是一个trackingABF宾语。

(xcorr,Pcorr,zcorr正确]= (过滤,zmeas,zcov)返回测量值的修正,zcorr,并指定额外的测量协方差,zcov在使用MeasurementNoise的属性过滤

您只能在使用此语法过滤是一个trackingABF宾语。

正确的(过滤,___)更新过滤用修正后的状态和状态估计误差协方差不返回修正后的值。指定跟踪过滤器和来自前面语法的任何输入参数组合。

xcorr=正确(过滤,___)更新过滤带修正状态和状态估计误差协方差但只返回修正状态,xcorr

例子

全部折叠

创建二维trackingEKF对象并使用名称-值对来定义StateTransitionJacobianFcnMeasurementJacobianFcn属性。使用预定义的等速运动和测量模型和他们的雅可比。

EKF = trackingEKF(@ constvel,@ cvmeas,[0; 0; 0; 0],“StateTransitionJacobianFcn”@constveljac,“MeasurementJacobianFcn”,@cvmeasjac);

运行过滤器。使用预测正确的函数来传播状态。你可以叫预测正确的任何顺序,想要多少次都可以。以笛卡尔坐标指定测量值。

测量= (1;1,0);[xpred, Ppred] = predict(EKF);[xcorr, Pcorr] =正确(EKF,测量);[xpred, Ppred] = predict(EKF);[xpred, Ppred] = predict(EKF)
xpred =4×11.2500 0.2500 1.2500 0.2500
Ppred =4×4更新:2007-2-13阅读:这是一本很好的工具书,是一本很好的工具书,是一本很好的工具书

输入参数

全部折叠

对象跟踪过滤器,指定为这些对象之一:

跟踪对象的测量,指定为矢量或矩阵。

数据类型:|

度量函数参数,指定为以逗号分隔的参数列表。方法指定的度量函数传递的参数相同MeasurementFcn跟踪过滤器的属性。如果过滤是一个trackingKF要么trackingABF对象,则无法指定measparams

假设您设置MeasurementFcn@cameas,然后调用正确的:

[xcorr, Pcorr] =正确(过滤、帧sensorpos sensorvel)
正确的函数内部调用如下:
量= cameas(状态、帧sensorpos sensorvel)

测量协方差,指定为-通过-矩阵,其中是测量的尺寸。对于所有的测量,假设相同的测量协方差矩阵zmeas

数据类型:|

输出参数

全部折叠

修正滤波器的状态,指定为向量或矩阵。的状态输入属性过滤被此值覆盖。

所述过滤器的校正的状态协方差,指定为矢量或矩阵。的StateCovariance输入属性过滤被此值覆盖。

滤波器的正确测量值,指定为矢量或矩阵。你可以返回zcorr只有当过滤是一个trackingABF宾语。

扩展功能

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

介绍了R2018b