使用theaterPlot
可视化雷达场景
方法的使用theaterPlot
对象以可视化雷达场景的各个方面。
简介
theaterPlot
是一种有效的工具,用于可视化雷达场景的各个方面。它由主对象和绘图仪组成,主对象承载基于父轴的绘图环境,绘图仪用于绘制雷达场景中所需的特征方面。
的结构表示theaterPlot
对象。
的父
属性指定启用戏剧情节的轴。您可以在对象创建期间指定剧院情节的父轴。如果不指定父轴,theaterPlot
创建一个新图形,并使用所创建图形的当前轴作为其轴父
财产。属性设置父轴的轴限制XLimits
,YLimits
,Zlimits
属性,在对象创建期间使用名称-值参数。属性为每个轴设置度量单位AxesUnits
财产。
的策划者
属性保存添加到theaterPlot
对象。
platformPlotter
-在雷达场景中绘制平台trajectoryPlotter
-在雷达场景中绘制轨迹orientationPlotter
-雷达场景下平台的定位图coveragePlotter
-绘制雷达场景中的传感器覆盖范围和传感器波束detectionPlotter
-在雷达场景中绘制传感器探测图trackPlotter
-在雷达场景中绘制轨迹surfacePlotter
-在雷达场景中绘制表面
可以在创建绘图仪时为每个绘图仪指定视觉元素和效果。每个绘图仪还配有一个theaterPlot
对象函数,您需要调用该函数来绘制结果。例如,coveragePlotter
与一个plotCoverage
显示传感器覆盖范围的对象函数。
这个例子展示了几个用于可视化雷达场景的绘图仪。theaterPlot
能有效地工作radarScenario
即使你不一定需要雷达场景
对象来使用theaterPlot
对象。
创建theaterPlot
和雷达场景
对象
创建雷达场景
对象和theaterPlot
对象。
simulationDuration = 100;场景=雷达场景(“StopTime”, simulationDuration);tp = theaterPlot(“XLimits”(-250 250),“YLimits”(-250 250),“ZLimits”120年[0]);网格视图(3);在;
为目标创建轨迹绘图仪和平台绘图仪
为目标平台创建一个航路点轨迹。
timeOfArrival = [0 simulationDuration];路点= [100 -100 10;100 100 80];轨迹(路点,到达时间);
添加一个长方体目标平台,遵循指定的轨迹。首先向雷达场景添加一个目标平台。
目标=平台(场景,“轨迹”轨迹,“维度”,...结构(“长度”, 35岁,“宽度”15岁的“高度”, 5.5,“OriginOffset”,[0 0 0]));
然后添加trajectoryPlotter
对象的theaterPlot
对象,并使用plotTrajectory
函数来绘制航路点轨迹。
trajPlotter =轨迹plotter (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”))
在塔顶安装单台雷达。
雷达= radardatgenerator (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 = targetpositions(塔);[detection, numDets] = radar(poseInTower,scene.SimulationTime);detPos = 0 (numDets,3);detNoise = 0 (3,3,numDets);获得相对于场景帧的检测位姿。此外,获得%检测的协方差。为i=1:numDets a =检测;detPos(i,:) =塔。轨迹。位置+探测{i}.测量';detNoise(:,:,i) = detecments {i}.MeasurementNoise;结束用协方差椭圆绘制任何生成的检测。如果~ isempty (detPos) plotDetection (detPlotter、detPos detNoise)结束结束
您可以放大图中的检测,以可视化所生成检测的协方差椭圆。
总结
在这个例子中,你学习了一个组织theaterPlot
对象。方法可视化一个简单的雷达场景theaterPlot
对象。