文档

trackingEKF类

扩展卡尔曼滤波器

描述

trackingEKF类创建一个离散时间扩展卡尔曼滤波器用于跟踪物体的位置和速度可能会遇到一个自动驾驶场景中,如汽车、行人、自行车、和固定结构或障碍。卡尔曼滤波是一种递归算法估算的进化状态过程测量时的过程。扩展的卡尔曼滤波模型的进化状态,遵循一个非线性运动模型,或当测量非线性函数的状态,或两者兼而有之。过滤器还允许可选控制或部队采取行动的对象。扩展卡尔曼滤波器是基于非线性的线性化方程。这种方法会导致一个过滤器配方非常类似于线性卡尔曼滤波器,trackingKF

过程和测量可以有高斯噪声,可以包括在两个方面:

  • 噪音可以添加到过程和测量。在这种情况下,过程噪声和测量噪声的大小必须匹配状态向量的大小和测量向量,分别。

  • 噪音可以包括在状态转换函数,度量模型函数,或两者兼而有之。在这些情况下,相应的噪声大小不受限制。

建设

过滤器= trackingEKF创建一个扩展卡尔曼滤波对象离散时间系统使用默认值StateTransitionFcn,MeasurementFcn,状态属性。这个过程和测量噪声是假定为添加剂。

过滤器= trackingEKF (transitionfcn,measurementfcn,状态)指定了状态转换函数,transitionfcn,测量功能,measurementfcn系统的初始状态,状态

过滤器= trackingEKF (___,名称,值)配置的属性对象使用一个或多个扩展卡尔曼滤波器名称,值对参数。任何未指定的属性有默认值。

属性

全部展开

卡尔曼滤波器的状态,指定为一个实值元向量。

例子:(200;0.2)

数据类型:

状态误差协方差,指定为正定实值——- - - - - -矩阵过滤器的大小状态。协方差矩阵表示的不确定性过滤状态。

例子:(20 0.1;0.1 - 1)

状态转换函数,指定为一个函数处理。这个函数计算时间步的状态向量k在时间步的状态向量k1。函数可以把额外的输入参数,如控制输入或时间步长。还可以包括噪声值的函数。

  • 如果HasAdditiveProcessNoise真正的使用这些语法,指定的函数:

    x (k) = transitionfcn (x (k - 1))
    x (k) = transitionfcn (x (k - 1),参数)
    在哪里x (k)国家在时间吗k。的参数术语代表所有所需的附加参数状态转换函数。

  • 如果HasAdditiveProcessNoise使用这些语法,指定的函数:

    x (k) = transitionfcn (x (k - 1), w (k - 1))
    x (k) = transitionfcn (x (k - 1), w (k - 1),参数)
    在哪里x (k)国家在时间吗kw (k)是一个值的过程噪声的时间吗k。的参数参数代表所有所需的附加参数状态转换函数。

例子:@constacc

数据类型:function_handle

雅可比矩阵的状态转换函数,指定为一个函数处理。这个函数有相同的输入参数的状态转换函数。

  • 如果HasAdditiveProcessNoise真正的,指定雅可比矩阵函数使用这些语法:

    Jx (k) = statejacobianfcn (x (k))
    Jx (k) = statejacobianfcn (x (k),参数)
    在哪里x (k)国家在时间吗k。的参数参数代表所有所需的附加参数状态转换函数。

    Jx (k)表示雅可比矩阵的预测状态对之前的状态。雅可比矩阵是一个——- - - - - -矩阵时k。雅可比矩阵函数可以把额外的输入参数,如控制输入或时间步长。

  • 如果HasAdditiveProcessNoise,指定雅可比矩阵函数使用这些语法:

    (Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k))
    (Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k),参数)
    在哪里x (k)国家在时间吗kw (k)是一个样本元向量的过程噪声在时间k过程噪声协方差的大小。不同添加剂过程噪声的情况下,这个过程噪声向量在非附加噪声的情况下不需要有相同的维度作为状态向量。

    Jx (k)表示雅可比矩阵的预测状态对之前的状态。雅可比矩阵是一个——- - - - - -矩阵时k。雅可比矩阵函数可以把额外的输入参数,如控制输入或时间步长。

    Jw (k)表示——- - - - - -雅可比矩阵的预测状态的过程噪声的元素。

如果未指定,则计算雅克比通过数值差分的每个调用预测方法。这个计算可以增加处理时间和数值不准确。

例子:@constaccjac

数据类型:function_handle

过程噪声协方差:

  • HasAdditiveProcessNoise真正的,指定过程噪声协方差作为标量或正定实值——- - - - - -矩阵。状态向量的维数。当指定为一个标量,矩阵的多——- - - - - -单位矩阵。

  • HasAdditiveProcessNoise,指定过程噪声协方差作为——- - - - - -矩阵。过程噪声向量的大小。

    您必须指定ProcessNoise在任何调用之前预测方法。在以后的调用预测,您可以选择指定的过程噪声作为标量。在这种情况下,过程噪声矩阵的多——- - - - - -单位矩阵。

例子:[1.0 - 0.05;0.05 - 2]

选择模型过程噪声作为添加剂,指定为真正的。当这个属性真正的、过程噪声添加到状态向量。否则,噪音是纳入状态转换函数。

度量模型函数,指定为一个函数处理。这个函数可以预测的非线性函数,模型测量状态。输入函数有效状态向量。输出是N有效测量向量。该函数可以把额外的输入参数,如传感器位置和姿态。

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

    z (k) = measurementfcn (x (k))
    z (k) = measurementfcn (x (k),参数)
    在哪里x (k)国家在时间吗kz (k)预测的测量在时间吗k。的参数词代表所有所需的附加参数测量功能。

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

    z (k) = measurementfcn (x (k), v (k))
    z (k) = measurementfcn (x (k), v (k),参数)
    在哪里x (k)国家在时间吗kv (k)测量噪声在时间吗k。的参数参数代表所有所需的附加参数测量功能。

例子:@cameas

数据类型:function_handle

雅可比矩阵的测量功能,指定为一个函数处理。函数的输入参数测量功能。函数可以把额外的输入参数,这种传感器位置和姿态。

  • 如果HasAdditiveMeasurmentNoise真正的,指定雅可比矩阵函数使用这些语法:

    Jmx (k) = measjacobianfcn (x (k))
    Jmx (k) = measjacobianfcn (x (k),参数)
    在哪里x (k)国家在时间吗kJx (k)表示N——- - - - - -雅可比矩阵的测量功能的状态。的参数参数代表所需的所有参数测量功能。

  • 如果HasAdditiveMeasurmentNoise,指定雅可比矩阵函数使用这些语法:

    (Jmx (k), Jmv (k)] = measjacobianfcn (x (k), v (k))
    (Jmx (k), Jmv (k)] = measjacobianfcn (x (k), v (k),参数)
    在哪里x (k)国家在时间吗kv (k)是一个R维样本噪声向量。Jmx (k)表示N——- - - - - -雅可比矩阵的测量功能的状态。Jmv (k)表示的雅可比矩阵N——- - - - - -R对测量噪声测量功能。的参数参数代表所需的所有参数测量功能。

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

例子:@cameasjac

数据类型:function_handle

测量噪声协方差,指定为一个积极的标量或正定实值矩阵。

  • HasAdditiveMeasurementNoise真正的,指定的测量噪声协方差作为一个标量或一个N——- - - - - -N矩阵。N是测量向量的大小。当指定为一个标量,矩阵的多N——- - - - - -N单位矩阵。

  • HasAdditiveMeasurementNoise,指定的测量噪声协方差作为R——- - - - - -R矩阵。R是测量噪声向量的大小。

    您必须指定MeasurementNoise在任何调用之前正确的方法。在第一次调用正确的,您可以选择指定的测量噪声作为标量。在这种情况下,测量噪声矩阵的多R——- - - - - -R单位矩阵。

例子:0.2

选项来启用添加剂测量噪音,指定为真正的。当这个属性真正的、噪声添加到测量。否则,噪音是纳入测量功能。

方法

克隆 创建扩展卡尔曼滤波对象与相同的属性值
正确的 正确的卡尔曼滤波状态向量和状态误差协方差矩阵
距离 距离测量预测测量
预测 扩展卡尔曼预测状态向量和状态误差协方差矩阵

例子

全部折叠

创建一个二维trackingEKF对象来定义和使用名称-值对StateTransitionJacobianFcnMeasurementJacobianFcn属性。使用预定义的常速运动和测量模型和雅克比。

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

过滤器运行。使用预测正确的方法来传播。你可以叫预测正确的多次在任何顺序和你想要的。指定在笛卡尔坐标测量。

测量= (1;1,0);[xpred, ppr] =预测(EKF);[xcorr, Pcorr] =正确(卡尔曼滤波器,测量);[xpred, ppr] =预测(EKF);[xpred, ppr] =预测(EKF)
xpred =4×11.2500 0.2500 1.2500 0.2500
ppr =4×411.7500 - 4.7500 0 0 4.7500 - 3.7500 0 0 0 0 0 0 4.7500 3.7500 11.7500 - 4.7500

更多关于

全部展开

算法

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

x k + 1 = f ( x k , u k , w k , t )

xk状态的步骤吗kf ()是状态转移函数。运动可以受到随机噪声扰动的影响,wk。过滤器还支持一个简化的形式,万博1manbetx

x k + 1 = f ( x k , u k , t ) + w k

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

扩展卡尔曼滤波的测量也一般函数的状态:

z k = h ( x k , v k , t )

h (x)k,vk,t)是测量函数,决定了测量的功能状态。典型的测量位置和速度或某个函数。测量还可以包括噪音,为代表vk。过滤器提供了一个简单的配方

z k = h ( x k , t ) + v k

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

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

引用

[1]布朗R.G. P.Y.C.王。介绍了随机信号分析和应用卡尔曼滤波。第3版。纽约:约翰·威利& Sons, 1997。

[2]卡尔曼,r . e .“线性滤波和预测问题的一种新方法。“ASME-Journal事务的基本工程,82卷,D系列,1960年3月,35 - 45页。

[3]Blackman,撒母耳和r . Popoli。现代跟踪系统的设计和分析,Artech House.1999。

[4]Blackman,撒母耳。多个目标与雷达跟踪应用程序,Artech房子。1986。

扩展功能

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

介绍了R2017a

这个主题有帮助吗?