这个例子展示了如何使用trackingScenarioDesigner
使用现有的会话文件。使用该应用程序,您可以添加、修改或删除平台、单静态雷达传感器和场景中所有对象的轨迹。您还可以将该场景导出为MATLAB脚本以进行进一步分析。
目标跟踪的目标是在不频繁或不确定的测量存在的情况下确定目标的状态。在多目标的情况下,跟踪算法还必须解决数据关联问题。为了测试这些算法,a跟踪情况可用于在三维场景中综合生成逼真的物体检测。
这个例子模拟了一个场景,其中一个雷达塔配备了单站雷达传感器扫描天空。在距离传感器很远的地方,两架飞机在短时间内相互接近飞行。飞机轨迹的近距离和它们与雷达塔的距离挑战了雷达正确分辨这两个物体的能力。对该场景进行了更详细的描述在模糊状态下跟踪近距离目标的例子。
的matfileTSD_TrackingCloselySpacedTargets
之前通过跟踪场景会话保存。要启动应用程序并加载会话文件,使用以下命令:
trackingScenarioDesigner (“TSD_TrackingCloselySpacedTargets.mat”)
应用程序打开并加载该场景。跟踪场景设计器应用程序包括一个工具条和三个文档组:
平台属性和传感器属性面板在左边
平台画布和传感器画布在中心
右侧为三维场景视图
通过在平台画布中单击红色平面来选择它。
使用轨迹表和时间高度图检查其轨迹
在属性面板(紫色)中,请注意平面被建模为一个点对象,其长度、宽度和高度维度为零。默认情况下,它的雷达截面是10 dBsm。
单击工具条中的轨迹表按钮(红色),显示该飞机的路径点列表。轨迹表显示在应用程序的底部中心。
单击工具条上的时间-高度图按钮(绿色),显示该平面的高程剖面。图显示在与平台画布相同的选项卡中。
观察飞机在3000米高度飞行,地面速度83.33米/秒。轨迹的持续时间是50秒。
您可以通过更改表中的参数值或在平台画布中拖动路径点来进一步编辑轨迹,如下面的GIF所示。
对于本例的其余部分,我们使用会话文件中的预定义轨迹。
通过单击平台画布上的平台或从平台属性选项卡中的当前平台列表中选择塔平台来选择塔平台。
在选择平台时,塔平台的传感器属性和传感器画布将变为活动状态。
观察面板(黄色)中的单基地雷达传感器属性。雷达有100hz的更新速率,和40度方位角和10度仰角的扫描范围。它的视野是1.5°方位角和10°仰角。注意,我们使用10.001 def来确保波束不完全是仰角扫描范围的大小,在这种情况下,雷达将在仰角扫描两次。
注意,默认的平台框架是NED(东北- down)。传感器的安装位置定义为X = 0 y = 0 z = -15
确保雷达位于15米高的塔顶。
在Sensor Canvas上,您可以使用工具栏(绿色)来显示塔的侧视图。坐标轴是平台中心坐标。
可以使用属性面板重新配置传感器,可以在传感器画布上拖动其安装位置进行粗编辑。
此外,你可以在工具栏图库中选择一个新的传感器并将其安装到塔上,或者使用平台图库在场景中添加一个新的平台,然后将一个新的传感器安装到它上。这如下面的GIF图所示。
由于这个场景已经设置好了,下一步是运行模拟以生成合成雷达探测。
点击运行来运行模拟。或者,使用下拉菜单进行选择运行没有检测只是为了模拟地面的真实情况。
应用程序进入仿真模式,并自动开始仿真。你会看到这两个平面沿着它们的轨迹运动。当一架飞机被塔检测到时,你可以看到一个深紫色的标记显示在检测的瞬间。
为了更好地观察场景,可以使用坐标轴工具栏在X-Y、X-Z或Y-Z视图之间快速导航。此外,还可以打开和关闭传感器覆盖图、轨迹线、地平面投影和方向指示器。
.
要观察波束扫描目标时的探测创建,可以使用回放控制来暂停、后退和前进模拟。
时间滚动条位于场景视图的底部。它表示仿真的当前状态以及显示的当前时间。
淡蓝色的进度条显示了该场景的数据模拟的进度。深蓝矩形滑块显示场景动画的进度。
矩形滑块可以在已模拟的时间范围内按时间向后(左)或向前(右)拖动。
Step through the simulation, and observe that the radar generated a single detection per sweep between .步进通过仿真,观察到雷达在每次扫描之间产生一个单一的检测T = 19.30 s
和T = 20.50 s
.这是雷达无法分辨两架飞机的模糊区域。
要查看和编辑用于设计场景的代码,可以将场景导出为MATLAB脚本。使用脚本添加跟踪器并以编程方式与场景交互。
点击出口查看创建该场景的等效脚本。
在点击出口,您将看到一个脚本,该脚本可以保存到您选择的文件名中。场景视图的当前3D视图角度也被导出到脚本中。
保存脚本后,您可以运行它并在MATLAB中观察动画剧场情节。
可以添加以下命令来定义跟踪器,如在模糊状态下跟踪近距离目标的例子。
注意:如果您编辑或使用不同的场景,可能需要修改此代码.
从Tracking Scenario Designer生成的脚本有几个注释,指示在哪里添加更多代码。
1)配置trackerJPDA
%在这里配置你的跟踪器:numTracks = 20;门= 45;= 1 e9卷;β= 1 e-14;pd = 0.8;= 1 e-6;追踪= trackerJPDA (...“FilterInitializationFcn”@initCVFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”门,...“TrackLogic”,“集成”,...“DetectionProbability”帕金森病,...“ClutterDensity”,远/卷,...“NewTargetDensity”,β,...“TimeTolerance”, 0.05);
定义一个绘图仪
%添加一个trackPlotter在这里:trackp = trackPlotter (tp,“DisplayName的”,“跟踪”,“ConnectHistory”,“上”,“ColorizeHistory”,“上”);
3)为循环前的检测定义一个缓冲区
%主仿真回路detBuffer = {};
4)更新循环内的跟踪器
%更新您的跟踪器在这里:detBuffer = [detBuffer;依据);% #好< AGROW >如果配置。IsScanDone tracks = tracker(detBuffer,scenario.SimulationTime);pos = getTrackPositions(tracks,[1 0 0 0 0;0 0 1 0 0 0;0 0 0 0 1 0]);标签=字符串([tracks.TrackID]);detBuffer = {};结束
4)更新绘图仪
%更新trackPlotter这里:如果配置。IsScanDone trackp.plotTrack (pos、标签);结束
通过重新运行带有上述附加内容的脚本来观察跟踪动画。现在你将看到这两个平面的轨迹。
在本例中,您使用了跟踪场景设计器应用程序来加载跟踪场景会话文件。您还学习了如何导航应用程序以及如何模拟场景。在这种情况下,两架飞机被一个雷达探测到。有一段时间,两架飞机距离太近,雷达无法分辨。您学习了如何将场景导出到MATLAB脚本以重新运行模拟,以及如何修改脚本以添加JPDA跟踪器。