主要内容

trackingIMM

交互多模型(IMM)过滤器对象跟踪

描述

trackingIMM对象代表了一个交互多模型(IMM)滤波器设计跟踪高度机动的对象。使用过滤器来预测未来对象的位置,以减少噪音检测位置,或帮助他们将多个对象检测与跟踪。

多个运动模型的IMM滤波器处理贝叶斯框架。这种方法解决了目标运动的不确定性通过使用多个模型对机动目标。IMM算法同时处理所有模型和模型之间的开关根据更新后的重量。

创建

描述

imm= trackingIMM返回一个对象IMM滤波器用默认跟踪滤波器{trackingEKF, trackingEKF, trackingEKF}与运动模型设置为恒定的速度,加速度恒定,分别和常数。过滤器使用默认的转换功能,@switchimm

imm= trackingIMM (trackingFilters)指定了TrackingFilters财产和所有其他属性设置为默认值。

imm= trackingIMM (trackingFilters,modelConversionFcn)还指定了ModelConversionFcn财产。

imm= trackingIMM (trackingFilters,modelConversionFcn,transitionProbabilities)还指定了TransitionProbabilities财产。

例子

imm= trackingIMM (___、名称、值)指定的属性使用一个或多个过滤器名称,值对参数。任何未指定的属性默认值。先从以前的语法指定其他输入参数。

属性

全部展开

过滤状态,指定为一个实值元向量。在创建对象时指定初始状态使用名称-值对。

数据类型:|

状态误差协方差,指定为一个——- - - - - -矩阵,过滤器的大小状态。一个标量扩展到一个输入——- - - - - -矩阵。协方差矩阵表示的不确定性过滤状态。指定初始状态协方差在创建对象时使用名称-值对。

例子:眼(6)

数据类型:|

过滤器列表,指定为一个单元阵列的跟踪滤波器。默认情况下,过滤器等概率。指定ModelProbabilities如果过滤器有不同的概率。

如果你想要一个trackingIMM过滤器与单精度浮点变量,使用单精确指定过滤器。例如,

@constvel filter1 = trackingEKF (“StateTransitionFcn”,“状态”,单([1;2;3;4]));@constvel filter2 = trackingEKF (“StateTransitionFcn”,“状态”,单([2、3、3、1]));过滤器= trackingIMM ({filter1, filter2})

数据类型:细胞

这个属性是只读的。

测量残差的包装过滤器,指定为一个K元逻辑向量,K是底层跟踪过滤器中指定的数量吗TrackingFilters财产。如果一个潜在的过滤器使测量包装,那么相应的元素是一个1(真正的)。否则,它是0()。

将状态或状态协方差函数,指定为一个函数处理。协方差函数转换状态或状态从一个模式到另一个类型。函数签名:

函数x2 = modelConversionFcn (modelType1, x1, modelType2)

modelType1modelType2输入的名称是两个模型的名字。x1指定了状态StateCovariance第一个模型。x2输出状态StateCovariance

数据类型:function_handle

过滤器的概率模型转换,指定为一个积极的真正的标量,l元向量,或l——- - - - - -l矩阵,l过滤器的数量:

  • 当指定为一个标量,呆在每个过滤器的概率是统一的。剩下的概率(1 -p均匀地分布在其他运动模型。

  • 当指定为一个向量,每个元素定义的概率保持在每个过滤器。剩下的概率(1 -p均匀地分布在其他均匀运动模型。

  • 当指定为一个矩阵,(j, k)元素定义了概率的过渡jth过滤器的k过滤器。所有元素都必须躺在区间[0,1],和每一行的总和必须为1。

过渡概率为每个模型对应的概率定义过滤器从这种模式切换到另一个模型在1秒。

例子:0.75

数据类型:|

测量噪声协方差,指定为一个积极的标量或正定实值矩阵。当指定为一个标量,矩阵的多N——- - - - - -N单位矩阵。N是测量向量的大小。

指定MeasurementNoise在任何调用之前正确的函数。

例子:0.2

每个过滤器的重量,指定为一个向量的概率从0到1。默认情况下,滤波器的每个组件的重量是相等的。l过滤器的数量。IMM滤波更新每个滤波器的预测步骤的重量。

数据类型:|

启用状态平滑,指定为真正的。当指定为真正的,你可以

  • 使用光滑的函数光滑状态估计在前面的时间步骤。

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

请注意

平滑能力时仅支持金宝apptrackingIMM对象配置了高斯过滤器。

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

依赖关系

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

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

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

  • 将这个属性设置为一个正整数使OOSM retrodiction过滤器对象的能力。启用了OOSM,过滤器对象保存过去的状态和状态协方差的历史。您可以使用OOSM和retrodictretroCorrect(或retroCorrectJPDA为多个OOSMs)对象的函数来减少不确定性估计状态。

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

请注意

当你指定MaxNumOOSMSteps财产trackingIMM对象,MaxNumOOSMSteps底层的过滤器中指定的属性TrackingFilters财产被忽视。为目的的内存保存指定MaxNumOOSMSteps属性作为潜在的过滤器0

对象的功能

预测 预测状态和状态估计误差协方差的跟踪滤波器
正确的 正确的状态和状态估计误差协方差使用跟踪滤波器
correctjpda 正确的状态和状态估计误差协方差使用跟踪滤波器和JPDA
距离 当前和预测之间的距离的测量跟踪滤波器
可能性 从跟踪滤波器测量的可能性
克隆 创建重复跟踪滤波器
初始化 初始化状态和协方差的跟踪滤波器
光滑的 落后的光滑状态的估计trackingIMM过滤器
retrodict Retrodict过滤器前一个时间步
retroCorrect 正确的过滤器使用retrodiction OOSM
retroCorrectJPDA 正确的跟踪滤波器OOSMs使用JPDA-based算法

例子

全部折叠

这个例子展示了如何创建和运行一个交互多模型(IMM)滤波器使用trackingIMM对象。调用预测正确的函数来跟踪一个物体和正确估计基于测量状态。

创建一个过滤器。使用名称-值对指定对象的附加属性。

检测= objectDetection (0 (1; 1, 0)“MeasurementNoise”0.2 (1 0;0.2 - 2 0;0 0 1);过滤器= {initctekf(检测);initcvekf(检测)};modelConv = @switchimm;transProb = [0.9, 0.9];imm = trackingIMM (“状态”,(1;1;3;1;5。1;1],“StateCovariance”眼睛(7),“TransitionProbabilities”transProb,“TrackingFilters”、过滤“ModelConversionFcn”,modelConv);

调用预测预测的状态和协方差的过滤器。使用0.5秒时间步。

[xPred, ppr] =预测(imm, 0.5);

调用正确的与一个给定的测量。

量= (1;1,0);[xCorr, pCorr] =正确(imm,量);

继续预测滤波器的状态。必要时指定所需的时间步在几秒钟内。

[xPred, ppr] =预测(imm);%预测超过1秒[xPred, ppr] =预测(imm, 2);%预测/ 2秒

引用

[1]Bar-Shalom班,彼得·k·威利•和鑫田。跟踪和数据融合。美国CT斯托尔斯:yb出版,2011年。

[2]Blackman,撒母耳和罗伯特Popoli。”现代跟踪系统的设计与分析”。诺伍德,MA: Artech房子,1999。

扩展功能

版本历史

介绍了R2018b