主要内容

trackFuser

单假定进行航迹熔化炉

描述

trackFuser生成的系统对象™融合跟踪跟踪传感器或追踪者和建筑师分散的跟踪系统。trackFuser使用全球最近邻(GNN)算法来维护一个假说对其追踪的对象。输入跟踪被称为当地的追踪和跟踪调用的输出中央的痕迹。

使用这个对象融合跟踪:

  1. 创建trackFuser对象并设置其属性。

  2. 调用对象的参数,就好像它是一个函数。

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

熔化炉= trackFuser创建一个进行航迹熔化炉,使用全球最近邻(GNN)算法来维持一个假说对其追踪的对象。

例子

熔化炉= trackFuser (名称,值)集属性熔化炉使用一个或多个名称-值对。未指定的属性有默认值。在单引号附上每个属性的名字。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

fuser唯一索引,指定为一个正整数。使用这个属性来区分不同熔化炉multiple-fuser环境。

例子:2

最大数量的fuser能保持源配置,指定为一个正整数。

例子:200年

源系统的配置,指定的单元阵列fuserSourceConfiguration对象。默认值是1N单元阵列的fuserSourceConfiguration对象,N的价值吗MaxNumSources财产。您可以指定这个属性在创建一个名称-值对创建或指定。

数据类型:对象

分配算法,指定为“MatchPairs”,“Munkres”,“Jonker-Volgenant”,“拍卖”,或“自定义”。Munkres是唯一分配算法,保证最优的解决方案,但它也是最慢的,特别是大量的检测和跟踪。其他算法并不能保证问题的最优解,但可以快20或更多的跟踪和检测。使用“自定义”定义自己的作业功能和指定的名称CustomAssignmentFcn财产。

数据类型:字符

自定义赋值函数,指定为一个函数处理。赋值函数必须有以下语法:

(作业、unassignedCentral unassignedLocal] = f(成本、costNonAssignment)
赋值函数的一个例子,它的参数的描述,看看assignmunkres

依赖关系

要启用这个特性,设置赋值财产“自定义”

数据类型:函数处理|字符串|字符

进行航迹赋值阈值,指定为一个积极的标量或矢量1×2 (C1C2),C1C2。如果指定为一个标量,指定的值,瓦尔,是扩大到瓦尔,]。

最初,fuser执行规范化的粗估计距离的所有地方和中央的踪迹。fuser只计算准确的归一化距离的地方和中央组合粗归一化距离小于C2。同时,fuser只能分配一个本地跟踪中央跟踪如果他们准确的归一化距离小于C1。看到距离函数用于跟踪滤波器(trackingCKFtrackingEKF例如)距离计算的一个解释。

小贴士:

  • 增加的价值C2如果有地方和中央的组合跟踪,但不应计算作业。如果减少计算要花太多的时间。

  • 增加的价值C1如果有当地追踪,但不应该分配给中央足迹。减少它如果有地方跟踪分配给中央追踪他们不应该分配给(太远)。

状态转换函数,指定为一个函数处理。这个函数计算时间步的状态k基于时间步的状态k1。

  • 如果HasAdditiveProcessNoise真正的,该函数必须使用下面的语法:

    x (k) = f (x (k - 1), dt)
    地点:

    • x (k)——(估计)状态的时间k,指定为一个向量或矩阵。如果指定为一个矩阵,矩阵的每一列代表一个状态向量。

    • dt——预测的时间步。

  • 如果HasAdditiveProcessNoise,该函数必须使用这种语法:

    x (k) = f (x (k - 1), w (k - 1), dt)
    地点:

    • x (k)——(估计)状态的时间k,指定为一个向量或矩阵。如果指定为一个矩阵,矩阵的每一列代表一个状态向量。

    • w (k)——过程噪声在时间k

    • dt——预测的时间步。

例子:@constacc

数据类型:function_handle|字符|字符串

雅可比矩阵的状态转换函数,指定为一个函数处理。如果不指定,雅可比矩阵数值计算,这可能会增加处理时间和数值不准确。如果指定,该函数必须支持这两个语法之一:金宝app

  • 如果HasAdditiveProcessNoise真正的,该函数必须使用这种语法:

    Jx (k) = statejacobianfcn (x (k), dt)
    地点:

    • x (k)——(估计)状态的时间k指定为一个1的向量的值。

    • dt——预测的时间步。

    • Jx (k)-雅可比矩阵的状态转换函数的状态,df / dx,评估x (k)。雅可比矩阵作为一个返回——- - - - - -矩阵。

  • 如果HasAdditiveProcessNoise,该函数必须使用这种语法:

    (Jx (k) (Jw (k)] = statejacobianfcn (x (k), w (k), dt)
    地点:

    • x (k)——(估计)状态的时间k指定为一个1的向量的值。

    • w (k)——过程噪声在时间k指定为一个W1的向量的值。

    • dt——预测的时间步。

    • Jx (k)-雅可比矩阵的状态转换函数的状态,df / dx,评估x (k)。雅可比矩阵作为一个返回——- - - - - -矩阵。

    • Jw (k)-雅可比矩阵的状态转换函数对过程噪声,df / dw,评估x (k)w (k)。雅可比矩阵作为一个返回——- - - - - -W矩阵。

例子:@constaccjac

数据类型:function_handle|字符|字符串

过程噪声协方差,指定为一个积极的真正的标量或一个正定矩阵。

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

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

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

数据类型:|

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

参数的跟踪状态参考系,指定为一个结构或一个结构数组。fuser通过其StateParameters属性值对StateParameters属性生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。

例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)米,其起源速度(2 2 0)米每秒的帧的场景。

字段名 价值
框架 “矩形”
位置 (10 10 0)
速度 (2 2 0)

可调:是的

数据类型:结构体

阈值中心跟踪确认,指定为一个正整数,或1×2向量的正整数N)与N。中央跟踪确认如果是分配给当地至少追踪次在过去N更新。如果指定了一个正整数,确认阈值扩展到,]。

数据类型:|

阈值中心跟踪删除指定为一个正整数P,或1×2向量的正整数PR)与PR。中央跟踪删除如果跟踪没有分配给当地至少追踪P次在过去R更新。如果指定了一个正整数P,确认阈值扩展到P,P]。

例子:(5 - 6)

数据类型:|

保险丝只确认当地的追踪,指定为真正的。将此属性设置为如果你想融合所有本地跟踪不管他们的确认状态。

数据类型:逻辑

保险丝摸当地,指定为真正的。将此属性设置为真正的最后如果你想融合本地歌曲(IsCoasted的字段或属性localTracks输入是真正的)。将其设置为如果你想只融合当地跟踪不摸样。

例子:真正的

数据类型:逻辑

状态融合算法,指定为:

  • “十字”——使用cross-covariance融合算法

  • “十字路口”——使用协方差交叉融合算法

  • “自定义”——允许您指定一个定制的融合功能

使用StateFusionParameters属性来指定其他参数使用的状态融合算法。

数据类型:字符

自定义状态融合函数,指定为一个函数处理。国家融合函数必须支持以下语法之一:金宝app

[fusedState, fusedCov] = f (trackState trackCov) [fusedState fusedCov] = f (trackState、trackCov fuseParams)
地点:

  • trackState被指定为一个N——- - - - - -矩阵。N跟踪状态的维数,是轨道的数目。

  • trackCov被指定为一个N——- - - - - -N- - - - - -矩阵。N跟踪状态的维数,是轨道的数目。

  • fuseParams是可选的参数中定义的StateFusionParameters财产。

  • fusedState作为一个返回N1的向量。

  • fusedCov作为一个返回N——- - - - - -N矩阵。

依赖关系

要启用这个特性,设置StateFusion财产“自定义”

数据类型:function_handle|字符|字符串

参数状态融合功能。这取决于所选择的StateFusion算法,您可以指定StateFusionParameters为:

  • 如果StateFusion“十字”,指定它作为标量(0,1)。看到fusexcov为更多的细节。

  • 如果StateFusion“十字路口”,指定“引爆器”“跟踪”。看到fusecovint为更多的细节。

  • 如果StateFusion“自定义”,您可以指定这些参数在任何变量类型,只要他们比赛的设置可选的fuseParams输入自定义的状态融合函数中指定CustomStateFusionFcn财产。

默认情况下,这个属性是空的。

这个属性是只读的。

中央目前跟踪由熔化炉维护,作为一个非负整数返回。

数据类型:

这个属性是只读的。

数量确认中央追踪目前由熔化炉维护,作为一个非负整数返回。

数据类型:

使用

描述

confirmedTracks=熔化炉(localTracks,tFusion)从列表中返回一个确认列表跟踪当地的痕迹。确认轨道预计更新时间,tFusion

(confirmedTracks,tentativeTracks,allTracks,analysisInformation)=熔化炉(localTracks,tFusion)还返回一个试探性的歌曲列表,所有歌曲的列表,和分析信息。

输入参数

全部展开

当地的追踪,指定为数组objectTrack对象,或一组结构和字段名称相匹配的属性名objectTrack对象。当地铁路轨道产生源跟踪系统追踪器。

数据类型:对象|结构体

更新时间,指定为一个标量。fuser预计这次所有中央跟踪。单位是秒。

数据类型:|

输出参数

全部展开

跟踪确认,作为一个数组返回objectTrackMATLAB中的对象®的结构,作为一个数组返回代码生成。在代码生成中,字段名称返回的结构相同的属性名objectTrack

跟踪确认,如果它满足确认阈值中指定ConfirmationThreshold财产。在这种情况下,IsConfirmed对象的属性或字段的结构真正的

数据类型:结构体|对象

试探性的,作为一个数组返回objectTrack在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack

跟踪是试探性的,如果它不满足确认阈值中指定ConfirmationThreshold财产。在这种情况下,IsConfirmed对象的属性或字段的结构

数据类型:结构体|对象

所有的歌曲,作为一个数组返回objectTrack在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack。所有曲目包括确认和试探性的痕迹。

数据类型:结构体|对象

附加信息分析跟踪更新,作为一个结构返回。这种结构的字段有:

描述
TrackIDsAtStepBeginning

追踪id步骤开始时

CostMatrix

成本分配矩阵

作业

返回的任务分配功能

UnassignedCentralTracks

IDs未赋值的中央

UnassignedLocalTracks

IDs未赋值的局部痕迹

NonInitializingLocalTracks IDs的地方跟踪未赋值的,但不是用来初始化一个中央
InitiatedCentralTrackIDs

IDs的中央追踪期间启动步骤

UpdatedCentralTrackIDs IDs的中央追踪期间更新步骤
DeletedTrackIDs

IDs的中央追踪期间删除步骤

TrackIDsAtStepEnd

IDs的中央跟踪步骤结束时

数据类型:结构体

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

predictTrackToTime 预测跟踪状态
initializeTrack 初始化新轨道
deleteTrack 删除现有的跟踪
sourceIndices 熔化炉源指标
一步 运行系统对象算法
释放 释放资源,并允许修改系统对象属性值和输入特征
克隆 创建重复的系统对象
isLocked 确定系统对象在使用
重置 重置的内部状态系统对象

例子

全部折叠

定义两个追踪来源:内部和外部的。的SourceIndex的每个源必须是唯一的。

internalSource = fuserSourceConfiguration (1,“IsInternalSource”,真正的);externalSource = fuserSourceConfiguration (2“IsInternalSource”、假);

创建一个trackFuserFuserIndex等于3。fuser需要上面定义的两个来源和使用“十字”StateFusion模型。

熔化炉= trackFuser (“FuserIndex”3,“MaxNumSources”2,“SourceConfigurations”{internalSource; externalSource},“StateFusion”,“十字”);

更新熔化炉和两个从两个来源追踪。使用三维恒定速度状态,美国给出的顺序的x;vx;y;v;z;vz]。两个轨道的状态是相同的,但是他们的协方差是不同的。第一,创建一个大型协方差x -轴。第二,创建一个大型协方差y -轴。

跟踪= [objectTrack (“SourceIndex”,1“状态”,(10;0,0,0,0,0),“StateCovariance”诊断接头([100、1000、1、10、1,10]));objectTrack (“SourceIndex”2,“状态”,(10;0,0,0,0,0),“StateCovariance”诊断接头([1,10100、1000、1、10])));

融合与融合时间等于0。

时间= 0;confirmedTracks =熔化炉(跟踪、时间);

获得职位和职位的协方差源追踪和跟踪确认。

positionSelector = [1 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 0 1);% [x;y;z][inputPos, inputCov] = getTrackPositions(追踪,positionSelector);[outputPos, outputCov] = getTrackPositions (confirmedTracks positionSelector);

可视化结果使用trackPlotter

tPlotter = theaterPlot (“XLim”(0,20),“YLim”[10]-10年,“ZLim”,-10,10);tPlotter1 = trackPlotter (tPlotter,“DisplayName的”,“输入追踪”,“MarkerEdgeColor”,“蓝”);tPlotter2 = trackPlotter (tPlotter,“DisplayName的”,“融合跟踪”,“MarkerEdgeColor”,“绿色”);plotTrack (tPlotter1 inputPos inputCov) plotTrack (tPlotter2、outputPos outputCov)标题(“Cross-covariance融合”)

图包含一个坐标轴对象。坐标轴对象与标题Cross-covariance融合包含2线类型的对象。这些对象代表输入跟踪,融合跟踪。”width=

引用

[1]Blackman, s和Popoli, R。,1999年。现代设计与分析跟踪系统(书)。诺伍德,MA: Artech房子,1999。

[2]庄、Chee-Yee Shozo森威廉·h·巴克,Kuo-Chu常。”架构和算法跟踪协会和融合。“IEEE航空航天和电子系统杂志15,没有。第5 - 13 (2000):1。

[3],鑫,班Bar-Shalom, d . Choukroun y Oshman, j . Thienel和m .艾丹•。”进行航迹融合体系结构的有效性评估”。在《评估的发展,导航和航天器控制”。施普林格,2015年。

扩展功能

介绍了R2019b