theaterPlot
可视化雷达场景这个例子展示了如何使用theaterPlot
可视化雷达场景的各个方面。
theaterPlot
是一种有效的工具,用于可视化雷达场景的各个方面。它由主对象和绘图仪组成,主对象承载基于父轴的绘图环境,绘图仪绘制来自雷达场景的所需特征方面。
这幅图显示了a的结构表示theaterPlot
对象。
的父
属性指定启用剧场情节的轴。你可以在创建对象时指定剧场情节的父轴。如果不指定父轴,theaterPlot
创建一个新图形,并使用已创建图形的当前轴作为它的父
财产。属性也可以设置父轴的轴限制XLimits
,YLimits
,Zlimits
属性,在创建对象期间使用名称-值对参数。设置每个轴的测量单位使用AxesUnits
财产。
的策划者
属性包含添加到的绘图器theaterPlot
对象。
platformPlotter
-在雷达场景中绘制平台
trajectoryPlotter
-在雷达场景中绘制轨迹
orientationPlotter
—在雷达场景下绘制平台方向图
coveragePlotter
—在雷达场景下绘制传感器覆盖范围和传感器波束
detectionPlotter
—雷达场景下测绘传感器检测
trackPlotter
-在雷达场景中绘制轨迹
您可以在创建绘图仪期间为每个绘图仪指定视觉元素和效果。每个绘图仪还配有一个theaterPlot
对象函数,您需要调用该函数来绘制结果。例如,一个coveragePlotter
与plotCoverage
显示传感器覆盖范围的对象函数。
这个示例展示了一些用于可视化雷达场景的绘图器。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)结束结束
您可以放大图中的检测,以可视化生成检测的协方差椭圆。
在这个例子中,您学习了一个theaterPlot
对象。您还学习了如何使用theaterPlot
对象。