主要内容

使用theaterPlot可视化雷达场景

方法的使用theaterPlot对象以可视化雷达场景的各个方面。

简介

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

的结构表示theaterPlot对象。

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

策划者属性保存添加到theaterPlot对象。

可以在创建绘图仪时为每个绘图仪指定视觉元素和效果。每个绘图仪还配有一个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)结束结束

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

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

总结

在这个例子中,你学习了一个组织theaterPlot对象。方法可视化一个简单的雷达场景theaterPlot对象。

Baidu
map