主要内容

trackingEKF

扩展卡尔曼滤波器的跟踪对象

自从R2021a

描述

一个trackingEKF对象是一个离散时间扩展卡尔曼滤波器用于追踪动态状态,如位置和速度的目标和对象。

卡尔曼滤波是一种递归算法估算的进化状态过程测量时的过程。扩展的卡尔曼滤波模型的进化状态时,可以遵循一个非线性运动模型,当测量非线性函数的状态,或者当两种情况下适用。扩展卡尔曼滤波器是基于非线性的线性化方程。这种方法会导致一个过滤器形成类似于线性卡尔曼滤波器,trackingKF

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

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

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

看到扩展卡尔曼滤波器为更多的细节。

创建

描述

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

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

例子

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

属性

全部展开

卡尔曼滤波器的状态,指定为一个实值元向量,过滤器的大小状态。的价值确定您使用基于运动模型。例如,如果您使用一个指定的二维恒定速度模型constvel(传感器融合和跟踪工具箱)的状态[x, vx; y; v],是四个。

如果你想要一个过滤器与单精度浮点变量,指定状态作为一个单精度向量变量。例如,

过滤器= trackingEKF(“状态”,单([1;2;3;4)))

例子:(200;0.2)

数据类型:|

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

例子:(20 0.1;0.1 - 1)

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

函数名 函数的目的
constvel 常速状态更新模型
constacc 加速度恒定状态更新模型
constturn 不断的周转周期状态更新模型

您也可以编写自己的状态转换函数。状态转换函数的有效的语法取决于过滤器添加剂过程噪音。表显示了基于价值的有效的语法HasAdditiveProcessNoise财产。

有效的语法(HasAdditiveProcessNoise = true) 有效的语法(HasAdditiveProcessNoise = false)
x (k) = statetransitionfcn (x (k - 1)) x (k) = statetransitionfcn (x (k - 1),参数)
  • x (k)国家在时间吗k

  • 参数代表所有所需的附加参数状态转换函数。

x (k) = statetransitionfcn (x (k - 1), w (k - 1)) x (k) = statetransitionfcn (x (k - 1), w (k - 1), dt) x (k) = statetransitionfcn(__,参数)
  • x (k)国家在时间吗k

  • w (k)是一个值的过程噪声的时间吗k

  • dt的时间步长是吗trackingEKF过滤器,过滤器,最近调用中指定预测函数。的dt论点适用于当您使用过滤器内追踪和调用预测函数的滤波器预测跟踪下一个时间步的状态。对于非相加的过程噪声的情况,跟踪器假设您显式地指定时间一步使用这种语法:预测(过滤器,dt)

  • 参数代表所有所需的附加参数状态转换函数。

例子:@constacc

数据类型:function_handle

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

有效的语法的雅可比矩阵状态转换函数取决于过滤器添加处理噪音。表显示了基于价值的有效的语法HasAdditiveProcessNoise财产。

有效的语法(HasAdditiveProcessNoise = true) 有效的语法(HasAdditiveProcessNoise = false)
Jx (k) = statejacobianfcn Jx (k) (x (k)) = statejacobianfcn (x (k),参数)
  • x (k)国家在时间吗k

  • Jx (k)表示雅可比矩阵的预测状态对之前的状态。雅可比矩阵是一个——- - - - - -矩阵时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)国家在时间吗k

  • w (k)是一个样本元向量的过程噪声在时间k过程噪声协方差的大小。过程噪声向量在非相加的情况下不需要有相同的维度作为状态向量。

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

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

  • dt的时间步长是吗trackingEKF过滤器,过滤器,最近调用中指定预测函数。的dt论点适用于当您使用过滤器内追踪和调用预测函数的滤波器预测跟踪下一个时间步的状态。对于非相加的过程噪声的情况,跟踪器假设您显式地指定时间一步使用这种语法:预测(过滤器,dt)

  • 参数代表所有的雅可比矩阵函数所需的附加参数,如控制输入或时间步大小。

如果没有指定这个属性,数值差分的计算雅克比每次调用的预测函数。这个计算可以增加处理时间和数值不准确。

例子:@constaccjac

数据类型:function_handle

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

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

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

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

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

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

度量模型函数,指定为一个函数处理。该函数接受有效状态向量的输入和输出N有效测量向量。您可以使用这些函数作为度量函数之一。

函数名 函数的目的
cvmeas 常速测量模型
cameas 恒定加速度测量模型
ctmeas 不断的周转周期测量模型

您也可以编写自己的测量功能。

  • 如果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。的参数参数代表所有所需的附加参数测量功能。

  • 如果HasMeasurementWrapping属性是真正的另外,你必须返回测量包装范围,过滤器使用包装测量残差,作为第二个输出参数的测量功能。

    [z (k),边界]= measurementfcn (__)
    函数必须返回界限作为一个2实值矩阵,的大小是z (k)。在每一行,第一和第二元素指定的上下边界,分别对应的测量变量。您可以使用−正代表的变量没有较低或上界。

    例如,考虑一个测量方位和距离的函数,它返回一个平台(方位;范围]。如果-180年和180年之间的方位角包装度虽然范围是无限的和非负,然后指定第二个输出参数的函数(-180 180;0正]

例子:@cameas

数据类型:function_handle

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

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

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

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

    (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

测量残差的包装过滤器,指定为一个逻辑0()或1(真正的)。当指定为真正的,测量函数中指定MeasurementFcn属性必须返回两个输出参数:

  • 第一个参数是测量,作为一个返回元实值向量。

  • 第二个参数是包装范围,作为一个返回2实值矩阵,测量的尺寸。在每一行,第一和第二元素的上下边界对应的测量变量。您可以使用−正代表的变量没有较低或上界。

如果你启用这个特性,根据测量范围过滤包装测量残差,这有助于防止过滤器散度测量方法不正确造成的剩余价值。

这些测量功能有预定义的包装范围:

在这些功能,包装范围为方位角测量(-180 180)度和(-90 90)度仰角测量。其他测量不有界的。

请注意

您可以指定这个属性只在构建过滤器。

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

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

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

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

例子:0.2

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

启用状态平滑,指定为真正的。将这个属性设置为真正的需要传感器融合和跟踪工具箱™许可证。当指定为真正的,您可以:

  • 使用光滑的(传感器融合和跟踪工具箱)功能,传感器融合和跟踪提供的工具箱,平稳状态的估计前面的步骤。在内部,过滤器商店前面的步骤的结果允许向后平滑。

  • 使用指定的最大数量平滑步骤MaxNumSmoothingSteps财产的跟踪滤波器。

最大数量的向后平滑步骤,指定为一个正整数。

依赖关系

要启用这个特性,设置EnableSmoothing财产真正的

按顺序测量的最大数量(OOSM)步骤,指定为一个非负整数。

  • 将这个属性设置为0禁用OOSM retrodiction过滤器对象的能力。

  • 将这个属性设置为一个正整数使OOSM retrodiction过滤器对象的能力。这个选项需要一个传感器融合和跟踪工具箱许可证。当你设定这个属性N> 1,过滤器对象保存过去的状态和状态协方差历史到最后N+ 1的修正。您可以使用OOSM和retrodict(传感器融合和跟踪工具箱)retroCorrect(传感器融合和跟踪工具箱)(或retroCorrectJPDA(传感器融合和跟踪工具箱)为多个OOSMs)对象的函数来减少不确定性估计状态。

增加这个属性的值增加了分配的内存数量,必须为国家历史,但允许您过程OOSMs到达后再延迟。注意,不确定性的影响减少使用OOSM减少延误就变长。

对象的功能

预测 预测状态和状态估计误差协方差的跟踪滤波器
正确的 正确的状态和状态估计误差协方差使用跟踪滤波器
correctjpda 正确的状态和状态估计误差协方差使用跟踪滤波器和JPDA
距离 当前和预测之间的距离的测量跟踪滤波器
可能性 从跟踪滤波器测量的可能性
克隆 创建重复跟踪滤波器
剩余 测量残余和残余噪声跟踪滤波器
初始化 初始化状态和协方差的跟踪滤波器
tunableProperties(传感器融合和跟踪工具箱) 获得可调谐滤波器的性质
setTunedProperties(传感器融合和跟踪工具箱) 设置属性调整值

例子

全部折叠

创建一个二维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,会影响物体运动。过滤器还支持一个简化的形式,金宝app

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

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

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

引用

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

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

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

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

扩展功能

版本历史

介绍了R2021a