trackingEKF

扩展卡尔曼滤波的目标跟踪

描述

一个trackingEKF对象是用于跟踪位置和速度离散时间扩展卡尔曼滤波目标平台。

卡尔曼滤波器是用于当测量是对工艺制成估计过程不断变化的状态的递归算法。扩展卡尔曼滤波器可在状态如下非线性运动模型时的状态的演化模型中,当测量的状态的非线性函数,或当两个条件适用。扩展卡尔曼滤波器是基于非线性方程的线性化。该方法导致一个滤波器制剂类似于线性卡尔曼滤波器,trackingKF

过程和测量可以有高斯噪声,您可以在这些方面:

  • 噪声添加到过程和测量两者。在这种情况下,处理噪声和测量噪声的大小必须的状态矢量和测量矢量的大小,分别匹配。

  • 在状态转移函数噪声添加,测量模型函数,或在这两种功能。在这些情况下,相应的噪声的大小不受限制。

创建

描述

滤波器= trackingEKF通过使用默认值创建用于离散时间系统中的扩展卡尔曼滤波器对象StateTransitionFcnMeasurementFcn属性。过程和测量噪声被假定为添加剂。

过滤= trackingEKF (transitionfcnmeasurementfcn指定状态转移函数,transitionfcn中,测量功能,measurementfcn和系统的初始状态,

过滤= trackingEKF (___名称,值通过使用一个或多个配置扩展卡尔曼滤波器对象的属性名称,值自变量对任何以前的语法。任何未指定的属性具有默认值。

属性

展开全部

卡尔曼滤波器状态,指定为实值中号- 元素向量,其中中号是筛选器状态的大小。

例:[200;0.2]

数据类型:

状态误差协方差,指定为正定实值中号-通过-中号矩阵,其中中号是筛选器状态的大小。协方差矩阵表示滤波状态下的不确定性。

例:[20 0.1;0.1 1]

状态转换函数,指定为函数句柄。此函数计算状态向量在时间步长ķ从在时间步的状态向量ķ- 1.该函数可以采取附加的输入参数,如控制输入或时间步长。该函数也可以包括噪声值。

对于状态转移函数的有效语法取决于过滤器是否具有添加剂过程噪声。该表显示基于对价值的有效语法HasAdditiveProcessNoise属性。

有效的语法(HasAdditiveProcessNoise =真 有效的语法(HasAdditiveProcessNoise = FALSE
X(K)= statetransitionfcn(X(K-1))×(K)= statetransitionfcn(X(K-1),参数)
  • x (k)是国家在时间ķ

  • 参数代表通过状态转换函数所需的所有其他参数。

X(K)= statetransitionfcn(X(K-1),W(K-1))×(K)= statetransitionfcn(X(K-1),W(K-1),DT)×(K)= statetransitionfcn(__,参数)
  • x (k)是国家在时间ķ

  • W(K)是用于在时间过程噪声的值ķ

  • DT是的时间步长trackingEKF过滤,过滤在最近一次调用指定的预测函数。该DT道理也适用,当您使用跟踪器中的过滤器,并调用预测功能与过滤器预测跟踪器的状态在下一次的时间步。对于非加性过程噪声情况,跟踪器假设您使用以下语法显式指定时间步长:预测(过滤器,DT)

  • 参数代表通过状态转换函数所需的所有其他参数。

例:@constacc

数据类型:function_handle

雅可比状态转移函数,指定为功能句柄的。此函数具有相同的输入参数的状态转换函数。

对于状态转移函数的雅可比行列式的有效语法取决于过滤器是否具有添加剂过程噪声。该表显示基于对价值的有效语法HasAdditiveProcessNoise属性。

有效的语法(HasAdditiveProcessNoise =真 有效的语法(HasAdditiveProcessNoise = FALSE
JX(K)= statejacobianfcn(X(k))的JX(K)= statejacobianfcn(X(k)时,参数)
  • x (k)是国家在时间ķ

  • JX(k)的表示所预测的状态相对于先前状态雅可比。这是雅可比的中号-通过-中号矩阵在时间ķ。雅可比函数可以采取附加的输入参数,如控制输入或时间步长。

  • 参数代表由雅可比功能所需的全部其他参数,如控制输入或时间步长。

[JX(K),JW(K)] = statejacobianfcn(X(K),W(K))[JX(K),JW(K)] = statejacobianfcn(X(K),W(K),DT)[JX(K),JW(K)] = statejacobianfcn(__,参数)
  • x (k)是国家在时间ķ

  • W(K)是一个示例Q在时间过程噪声的 - 元素矢量ķQ是处理噪声协方差的大小。在非相加情况下的处理噪声向量并不需要具有相同的尺寸与状态向量。

  • JX(k)的表示所预测的状态相对于先前状态雅可比。这是雅可比的中号-通过-中号矩阵在时间ķ。雅可比函数可以采取附加的输入参数,如控制输入或时间步长。

  • JW(k)的表示中号-通过-Q雅可比相对于所述过程噪声元件所预测的状态的。

  • DT是的时间步长trackingEKF过滤,过滤在最近一次调用指定的预测函数。该DT道理也适用,当您使用跟踪器中的过滤器,并调用预测功能与过滤器预测跟踪器的状态在下一次的时间步。对于非加性过程噪声情况,跟踪器假设您使用以下语法显式指定时间步长:预测(过滤器,DT)

  • 参数代表由雅可比功能所需的全部其他参数,如控制输入或时间步长。

如果未指定此属性,则雅克比由数字差异在每个呼叫计算预测函数。这种计算可以增加处理时间和数字不准确。

例:@constaccjac

数据类型:function_handle

过程噪声协方差,指定为一个标量或矩阵。

  • 什么时候HasAdditiveProcessNoise真正中,指定过程噪声协方差为正实数标量或正定实数值中号-通过-中号矩阵。中号是状态矢量的维数。如果指定为标量,基质是的倍数中号-通过-中号单位矩阵。

  • 什么时候HasAdditiveProcessNoise中,指定过程噪声协方差作为Q-通过-Q矩阵。Q是处理噪声矢量的大小。

    您必须指定ProcessNoise在任何调用之前预测函数。在以后的调用预测,你可以选择指定过程噪声的标量。在这种情况下,处理噪声矩阵是的倍数Q-通过-Q单位矩阵。

例:[1.0 0.05;0.05 2]

选项模型过程噪声作为添加剂,指定为真正要么。当此属性为真正,过程噪声被添加到状态向量。否则,噪声被引入到状态转换函数。

测量模型的功能,指定为函数句柄。该功能可以是一个非线性函数,从预测的状态模型测量。输入功能是中号- 元素状态向量。输出为ñ- 元素测量矢量。该函数可以采取附加的输入参数,如传感器的位置和取向。

  • 如果HasAdditiveMeasurementNoise真正,使用这些语法之一指定函数:

    Z(k)的= measurementfcn(X(k))的
    Z(k)的= measurementfcn(X(k)时,参数)
    x (k)是国家在时间ķZ(k)的是预测的测量在时间ķ。该参数参数表示度量函数所需的所有附加参数。

  • 如果HasAdditiveMeasurementNoise,使用这些语法之一指定函数:

    Z(k)的= measurementfcn(X(K),V(k))的
    z (k) = measurementfcn (x (k), v (k),参数)
    x (k)是国家在时间ķV(k)的是在时间测量噪声ķ。该参数参数表示度量函数所需的所有附加参数。

例:@cameas

数据类型:function_handle

雅可比测量功能,指定为功能句柄的。该函数具有相同的输入参数作为测量功能。该函数可以采取附加的输入参数,例如传感器的位置和取向。

  • 如果HasAdditiveMeasurmentNoise真正,指定使用这些语法之一的雅可比功能:

    JMX(K)= measjacobianfcn(X(k))的
    JMX(K)= measjacobianfcn(X(k)时,参数)
    x (k)是国家在时间ķJX(k)的表示ñ-通过-中号雅可比相对于该状态下的测量功能。该参数参数代表由测量功能所需的所有参数。

  • 如果HasAdditiveMeasurmentNoise,指定使用这些语法之一的雅可比功能:

    [JMX(K),JMV(K)] = measjacobianfcn(X(K),V(k))的
    [JMX(K),JMV(K)] = measjacobianfcn(X(K),V(k)时,参数)
    x (k)是国家在时间ķV(k)的是一个[R维样品噪声向量。JMX(k)的表示ñ-通过-中号雅可比相对于该状态下的测量功能。JMV(k)的表示的雅可比ñ-通过-[R相对于测量噪声测量功能。该参数参数代表由测量功能所需的所有参数。

如果未指定,测量雅克比使用数值差分在每次调用所计算的正确函数。这种计算可以增加处理时间和数值不准确。

例:@cameasjac

数据类型:function_handle

测量噪声协方差,指定为正标量或正定实值矩阵。

  • 什么时候HasAdditiveMeasurementNoise真正中,指定的测量噪声协方差作为标量或ñ-通过-ñ矩阵。ñ是测量矢量的大小。如果指定为标量,基质是的倍数ñ-通过-ñ单位矩阵。

  • 什么时候HasAdditiveMeasurementNoise中,指定的测量噪声协方差作为[R-通过-[R矩阵。[R是测量噪声向量的大小。

    您必须指定MeasurementNoise在任何调用之前正确函数。之后第一次打电话给正确,可以选择指定的测量噪声作为标量。在这种情况下,测量噪声矩阵是的倍数[R-通过-[R单位矩阵。

例:0.2

选项以启用添加剂测量噪声,指定为真正要么。当此属性为真正,噪声被添加到测量。否则,噪声被引入到测量功能。

对象函数

预测 预测跟踪滤波器的状态和状态估计误差协方差
正确 正确的状态和状态估计误差协方差使用跟踪滤波器
correctjpda 使用跟踪滤波器和JPDA修正状态和状态估计误差协方差
距离 跟踪滤波器的当前和预测的测量之间的距离
可能性 从跟踪滤波器测量的可能性
克隆 创建重复跟踪滤波器
剩余的 从跟踪滤波器测量残差和残留噪声
初始化 初始化状态和跟踪滤波器的协

例子

全部收缩

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

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

运行过滤器。使用预测正确功能传播的状态。您可以拨打预测正确以任意顺序和多次你想要的。指定直角坐标测量。

测量= [1; 1; 0];[xpred,Ppred] =预测(EKF);[xcorr,Pcorr] =正确(EKF,测量);[xpred,Ppred] =预测(EKF);[xpred,Ppred] =预测(EKF)
xpred =4×11.2500 0.2500 1.2500 0.2500
Ppred =4×411.7500 4.7500 0 0 4.7500 3.7500 0 0 0 0 11.7500 4.7500 0 0 4.7500 3.7500

更多关于

展开全部

算法

扩展卡尔曼滤波器估计通过该非线性随机方程支配的过程的状态:

X ķ + 1 = F X ķ ü ķ w ^ ķ Ť

Xķ在步骤的状态ķf ()是状态转移函数。随机噪声的干扰,w ^ķ,可影响对象运动。该过滤器还支持一个简化形式,万博1manbetx

X ķ + 1 = F X ķ ü ķ Ť + w ^ ķ

使用简化的形式,组HasAdditiveProcessNoise真正

在扩展的卡尔曼滤波器,所述测量也状态的一般功能:

ž ķ = H X ķ v ķ Ť

H(Xķ,vķ,t)的是确定测量值作为状态的函数的测量功能。典型测量的位置和速度或位置和速度一些功能。该测量也可以包括噪声,由下式表示vķ。同样,过滤器提供了一个简单的公式。

ž ķ = H X ķ Ť + v ķ

使用简化的形式,组HasAdditiveMeasurmentNoise真正

这些方程表示实际运动和对象的实际测量值。然而,在每一步的噪声贡献是未知的,不能确定性建模。只有噪声的统计特性是已知的。

参考文献

[1]棕色,R.G.和P.Y.C.王某。简介随机信号分析与应用卡尔曼滤波。第3版。纽约:John Wiley和Sons,1997年。

线性过滤与预测问题的新方法。在ASME-中医基础工程学报。卷。82,系列d,1960年3月,第35-45。

[3]布莱克曼塞缪尔和R.波波利。设计和现代跟踪系统的分析。艺达House.1999。

[4]布莱克曼,塞缪尔。多目标跟踪雷达应用。艺达大厦。1986年。

扩展功能

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

介绍了在R2018b