主要内容

使用theaterPlot可视化雷达场景

这个例子展示了如何使用theaterPlot可视化雷达场景的各个方面。

介绍

theaterPlot是一种有效的工具,用于可视化雷达场景的各个方面。它由主对象和绘图仪组成,主对象承载基于父轴的绘图环境,绘图仪绘制来自雷达场景的所需特征方面。

这幅图显示了a的结构表示theaterPlot对象。

属性指定启用剧场情节的轴。你可以在创建对象时指定剧场情节的父轴。如果不指定父轴,theaterPlot创建一个新图形,并使用已创建图形的当前轴作为它的财产。属性也可以设置父轴的轴限制XLimitsYLimits,Zlimits属性,在创建对象期间使用名称-值对参数。设置每个轴的测量单位使用AxesUnits财产。

策划者属性包含添加到的绘图器theaterPlot对象。

您可以在创建绘图仪期间为每个绘图仪指定视觉元素和效果。每个绘图仪还配有一个theaterPlot对象函数,您需要调用该函数来绘制结果。例如,一个coveragePlotterplotCoverage显示传感器覆盖范围的对象函数。

这个示例展示了一些用于可视化雷达场景的绘图器。theaterPlot能有效地工作吗radarScenario即使你不需要雷达场景使用theaterPlot对象。

创建theaterPlot和雷达场景对象

创建一个雷达场景对象和一个theaterPlot对象。

simulationDuration = 100;现场= radarScenario (“StopTime”, simulationDuration);tp = theaterPlot (“XLimits”(-250 250),“YLimits”(-250 250),“ZLimits”120年[0]);网格视图(3);

为目标创建一个轨迹绘图仪和一个平台绘图仪

为目标平台创建一个路径点轨迹。

timeOfArrival = [0 simulationDuration];路径点= [100 -100 10;100 100 80];轨迹= waypointTrajectory(锚点,timeOfArrival);

添加一个遵循指定轨迹的长方体目标平台。首先在雷达场景中添加一个目标平台。

目标=平台(场景,“轨迹”轨迹,“维度”...结构(“长度”, 35岁,“宽度”15岁的“高度”, 5.5,“OriginOffset”, 0 0 0));

然后添加一个trajectoryPlotter对象的theaterPlot对象,并使用plotTrajectory函数来绘制路径点轨迹。

trajPlotter = trajectoryPlotter (tp,“DisplayName的”“轨迹”“颜色”“k”“线宽”, 1.2);plotTrajectory (trajPlotter {trajectory.Waypoints})

提示您可以使用一个绘图仪绘制多个相同类型的特性(平台、轨迹、方向、覆盖、检测或轨迹)。方法的第二个参数指定一个路径点单元格数组,可以将多个轨迹绘制在一起plotTrajectory函数。的语法说明plotTrajectory为更多的细节。

为目标平台定义绘图器。

targetPlotter = platformPlotter (tp,“DisplayName的”“目标”...“标记”“年代”“MarkerEdgeColor”‘g’“MarkerSize”2);plotPlatform (targetPlotter目标。的位置,...target.Dimensions,四元数(target.Orientation“rotvecd”))

控件上可以添加绘图器对象以外的图形对象theaterPlot直接在父轴上绘图theaterPlot对象。在原点做一个圆圈标记。

持有plot3 (tp。父,0,0,0,“颜色”“k”“标记”“o”“MarkerSize”4)

创建一个安装有雷达传感器的平台

在场景中添加一个塔平台。

塔=平台(场景,“位置”(-100, 0, 0),“维度”...结构(“长度”5,“宽度”5,“高度”30岁的“OriginOffset”[0 0 -15)));

使用平台绘图仪显示塔。

towerPlotter = platformPlotter (tp,“DisplayName的”“塔”“标记”“年代”“MarkerSize”2);plotPlatform (towerPlotter tower.Position tower.Dimensions,四元数(tower.Orientation,“rotvecd”))

在塔顶安装一个单站雷达。

雷达= radarDataGenerator (1,“DetectionMode”“单站”...“UpdateRate”5,...“MountingLocation”(0, 0, 30),...“FieldOfView”(4, 30),...“MechanicalAzimuthLimits”, 60 [-60],...“MechanicalElevationLimits”[0 0],...“HasElevation”,真的,...“RangeResolution”, 200,...“AzimuthResolution”, 20岁,...“ElevationResolution”, 20);塔。传感器=雷达;

添加一个coveragePlotter并绘制单基地雷达的覆盖范围和初始波束。当绘制覆盖范围时plotCoverage对象函数需要第二个参数来指定传感器覆盖的配置。通过配置文件获取配置信息coverageConfig功能在雷达场景场景

radarPlotter = coveragePlotter (tp,“颜色”“b”“DisplayName的”“雷达波束”);plotCoverage (radarPlotter coverageConfig(场景)

创建一个检测绘图器来绘制雷达生成的检测。

detPlotter = detectionPlotter (tp,“DisplayName的”“检测”“MarkerFaceColor”“r”“MarkerSize”4);

运行场景并更新剧场情节

迭代雷达场景并生成雷达检测。绘制平台、雷达覆盖和探测图。

rng (2019)%为可重复结果推进(场景)%的阴谋的目标。plotPlatform (targetPlotter目标。的位置,...target.Dimensions,四元数(target.Orientation“rotvecd”))%绘图传感器覆盖范围。plotCoverage (radarPlotter coverageConfig(场景)%从塔视图中提取目标姿态并使用所提取的姿态生成检测。poseInTower = targetPoses(塔);[detections, numDets] =雷达(poseInTower,scene.SimulationTime);detPos = 0 (numDets, 3);detNoise = 0 (3 3 numDets);获取相对于场景帧的检测位姿。此外,获得%检测协方差。i=1:numDets a =检测;detPos(i,:) = tower.Trajectory.Position + detections{i}.Measurement';detNoise(:,:我)={我}.MeasurementNoise技术;结束%绘制任何生成的检测与协方差椭圆。如果~ isempty (detPos) plotDetection (detPlotter、detPos detNoise)结束结束

图中包含一个轴对象。axis对象包含7个类型为line, patch的对象。这些物体代表轨迹,目标,塔,雷达波束,探测。

您可以放大图中的检测,以可视化生成检测的协方差椭圆。

总结

在这个例子中,您学习了一个theaterPlot对象。您还学习了如何使用theaterPlot对象。