主要内容

分阶段。ScenarioViewer

雷达和目标运动显示

描述

分阶段。ScenarioViewerSystem Object™创建一个三维查看器,以显示雷达仿真中模型的雷达和目标的运动。您可以显示当前位置和速度,对象曲目,位置和速度注释,雷达光束方向和其他对象参数。您可以在仿真过程中更改雷达特征,例如光束范围和光束宽度。你可以使用淘汰系统对象来建模移动的对象,或者你可以提供自己的动态模型。

该图显示了由地雷达,两个飞机和地面车辆组成的四对象场景。您可以查看生成此数字的代码可视化多平台方案例子。

要创建方案查看器:

  1. 定义和设置分阶段。ScenarioViewer系统对象。看到建设.您可以在施工时间设置系统对象属性,或将它们留给其默认值。您在施工时间设置的一些属性可以稍后更改。这些属性是可调

  2. 调用一步方法根据雷达和目标的属性更新显示位置分阶段。ScenarioViewer系统对象。您可以随时更改可调性。

请注意

从R2016b开始,不再使用一步方法执行System对象定义的操作时,可以使用参数调用对象,就像调用函数一样。例如,y =步骤(obj, x)y = obj (x)执行相同操作。

建设

姐姐=分阶段。ScenarioViewer创建场景查看器系统对象,姐姐具有默认属性值。

姐姐= phased.ScenarioViewer(名称,值)返回一个场景查看器姐姐,带有指定的属性的名字设置为指定的价值的名字必须出现在单引号内('').可以以任意顺序指定多个名称-值对参数name1,value1,...,namen,valuen

属性

全部展开

窗口标题名称,指定为字符向量。的的名字财产和标题属性是不同的。

例子:'MultiTarget Viewer'

数据类型:char

参考雷达索引,指定为正整数。此属性选择其中一个雷达作为参考雷达。它的值必须小于或等于您在radar_pos论点的一步方法。此属性是可调的。目标距离、径向速度、方位角和仰角是根据该雷达定义的。

例子:2

数据类型:双倍的

启用显示指定为的雷达波束“ReferenceRadar”“没有”,或“所有”.这个选项决定显示哪个雷达波束。

选项 梁显示
“ReferenceRadar” 指示中指定的雷达波束ReferenceRadar财产。
“没有” 不要显示任何雷达波束。
“所有” 显示所有雷达的波束。

此属性是可调的。

例子:“所有”

数据类型:char

垂直和水平雷达波束宽度,指定为正实值标量、2元列向量、和N-元素行向量,或2乘-N矩阵。N是雷达的数量。所有标量,向量和矩阵条目都是正,实值的数字0-360°之间。单位是度。

价值规范 解释
标量 所有雷达的水平和垂直雷达波束宽度相等和相同。
2-element列向量 第一行指定水平波束宽度。第二行指定垂直波束宽度。这些值对所有雷达都是相同的。
N有效行向量 每个元件适用于一个雷达。每个雷达的垂直和水平波束宽度是相等的。
2 -N矩阵 每列适用于一个雷达。第一行指定每个雷达的水平波束宽度,第二行指定垂直波束宽度。

CameraPerspective被设定为“雷达”时,System对象使用此属性计算值CameraViewAngle.此属性是可调的。

例子:(20 10;18 9]

数据类型:双倍的

雷达波束距离,指定为正标量或N-element行向量,其中N是雷达的数量。单位是米。当指定为标量时,所有雷达都具有相同的波束范围。当指定为矢量时,每个元素对应一个雷达。此属性是可调的。

例子:(1000 1500 850)

数据类型:双倍的

雷达的光束转向方向,指定为正值的实值2元素柱向量或2-by-N实值矩阵的正值。N是雷达的数量。波束转向角度相对于每个雷达的局部坐标轴。单位是度。每一列采用该表单[azimuthangle; elevationangle].当只指定一列时,所有雷达的波束转向方向相同。方位角从-180°到180°,仰角从-90°到90°。此属性是可调的。

例子:[20 60 35;5 0 10]

数据类型:双倍的

启用速度输入参数,radar_velocitytgt_velocity, 的一步方法,指定为真正的.将此属性设置为真正的启用输入参数。当这个属性,速度矢量由连续更新之间的位置变化除以更新间隔来估计。更新间隔与UpdateRate价值。

例子:

数据类型:逻辑

允许输入局部坐标系方向轴,radar_laxestgt_laxes,一步方法,指定为真正的.将此属性设置为真正的启用输入参数。当这个属性时,方向轴与全局坐标轴对齐。

例子:真正的

数据类型:逻辑

更新方案查看器的速度,指定为正标量。单位是赫兹。

例子:2.5

数据类型:双倍的

显示标题,指定为字符向量。的标题财产和的名字属性是不同的。显示标题出现在顶部的图形中。名称出现在图形窗口的顶部。此属性是可调的。

例子:“雷达和目标显示”

数据类型:char

分配给雷达和目标的名称,指定为1-by-(N + M)字符向量的单元格数组。N是雷达数量和为目标的数量。按雷达名称和目标名称排序。名称出现在图例和注释中。当您设置PlatformNames“汽车”,名称是按顺序创建的“雷达1”对雷达和“目标1”为目标。

例子:{“固定雷达”,“移动雷达”,“飞机”}

数据类型:细胞

物体轨迹可见性的长度,指定为正整数或(N + M)正整数的长度向量。N是雷达数量和为目标的数量。当TrailLength为标量,所有轨迹具有相同的长度。当TrailLength是一个矢量,矢量的每个元素指定相应雷达或目标轨迹的长度。通过雷达命令输入,然后是目标。每次呼唤到一步方法生成一个新的可见点。此属性是可调的。

例子:[100150100]

数据类型:双倍的

摄像机视角,指定为“汽车”“自定义”,或“雷达”.当您将此属性设置为“汽车”,系统对象估计适当的值为摄像机的位置,方向和视角,以显示所有的轨迹。当您将此属性设置为“自定义”,可以通过摄像机属性或摄像机工具栏设置摄像机的位置、方向和角度。当您将此属性设置为“雷达”,系统对象从雷达位置和雷达光束转向方向确定相机位置,方向和角度。此属性是可调的。

例子:“雷达”

数据类型:char

相机位置,指定为一个[x,y,z]实值向量。单位是米。此属性在设置时应用CameraPerspective“自定义”.当您没有指定此属性时,System对象将根据您的显示配置选择值。此属性是可调的。

例子:(100、50、40)

数据类型:双倍的

摄像机方向,指定为(锅、倾斜、卷)正实值的向量。单位是度。平移和滚动角度来自-180°180°.倾斜角度从-90°90°.摄像机旋转的顺序是:平移、倾斜和滚动。此属性在设置时应用CameraPerspective“自定义”.当您没有指定此属性时,System对象将根据您的显示配置选择值。此属性是可调的。

例子:(180, 45岁,30)

数据类型:双倍的

相机视图角度,指定为真实值的标量。单位是度。视角值在0°至360°的范围内。此属性在设置时应用CameraPerspective“自定义”.当您没有指定此属性时,System对象将根据您的显示配置选择值。此属性是可调的。

例子:75

数据类型:双倍的

选项显示查看器图例,指定为真正的.此属性是可调的。

例子:真正的

数据类型:逻辑

选项显示查看器场景的接地面,指定为真正的.此属性是可调的。

例子:

数据类型:逻辑

用名称注释雷达和目标轨道,指定为真正的.您可以使用定义自定义平台名称PlatformNames.此属性是可调的。

例子:

数据类型:逻辑

选项注释雷达和目标轨道与位置,指定为真正的.此属性是可调的。

例子:真正的

数据类型:逻辑

选项注释雷达和目标轨道与范围从参考雷达,指定为真正的.此属性是可调的。

例子:真正的

数据类型:逻辑

选择用海拔地区注释雷达和目标轨道,指定为真正的.此属性是可调的。

例子:真正的

数据类型:逻辑

选项注释雷达和目标航迹与速度,指定为真正的.此属性是可调的。

例子:真正的

数据类型:逻辑

选择注释雷达和目标轨道与径向速度,指定为真正的.径向速度相对于参考雷达。此属性是可调的。

例子:真正的

数据类型:逻辑

选择注释雷达和目标轨道与方位角和仰角相对于参考雷达,指定为真正的.此属性是可调的。

例子:真正的

数据类型:逻辑

场景查看器窗口的大小和位置,指定为[左下宽度]正实值的向量。单位是像素。

  • 设置窗口左边缘的位置。

  • 底部设置窗口下边缘的位置。

  • 宽度设置窗口的宽度。

  • 高度设置窗口的高度。

当您没有指定此属性时,窗口将定位在屏幕的中心,并使用宽度高度的值410300像素,分别。此属性是可调的。

例子:[100,200,800,500]

数据类型:双倍的

选择降低绘图率以提高性能的选项,指定为真正的.将此属性设置为真正的以较低的速度更新给观众。将此属性设置为将每个调用更新查看器一步方法。这种模式对查看器性能有不利影响。此属性是可调的。

例子:

数据类型:逻辑

方法

隐藏 隐藏场景查看器窗口
重启 复位状态系统对象
显示 显示方案查看器窗口
一步 更新场景查看器显示
所有系统对象都是通用的
释放

允许系统对象属性值改变

例子

全部折叠

可视化雷达和单个飞机目标的轨迹。雷达静止不动,飞机沿直线飞行。保持雷达波束指向飞机。

创建雷达和飞机平台系统对象™。设置更新速率为0.1 s。

updateRate = 0.1;radarPlatform =分阶段。平台(...“InitialPosition”,[0; 0; 10],...“速度”, (0, 0, 0));airplanePlatforms =分阶段。平台(...“InitialPosition”(5000.0; 3500.0; 6000.0),...“速度”, -300, 0, 0);

创造分阶段。ScenarioViewer系统对象。显示雷达波束并标注轨道的位置、速度和高度。

然而=分阶段。ScenarioViewer (“BeamRange”, 5000.0,“UpdateRate”,updaterate,...“PlatformNames”, {“地面雷达”“飞机”},'展示',真的,...“ShowSpeed”,真的,'露天',真的,“ShowLegend”,真正的);

运行场景。每一步,计算与目标的角度。用这个角度引导雷达波束向目标方向移动。

i = 1:100 [radar_pos,radar_vel] = step(radarPlatform,updateRate); / /更新平台[tgt_pos, tgt_vel] = (airplanePlatforms updateRate)步;(rng, ang) = rangeangle (tgt_pos radar_pos);科学价值。BeamSteering = ang;步骤(然而,radar_pos radar_vel、tgt_pos tgt_vel);暂停(0.1);结束

可视化机载雷达和地面车辆目标的轨迹。机载雷达由一架在5公里高空飞行的无人驾驶飞机携带。

创建无人机雷达和地面车辆使用淘汰系统对象™。设置更新速率为0.1 s。

updateRate = 0.1;无人机=分阶段。平台(...“InitialPosition”(100; 1000; 5000),...“速度”, 400, 0, 0);车辆=分阶段。平台(“MotionModel”“加速”...“InitialPosition”(5000.0; 3500.0; 0.0),...“InitialVelocity”(40; 5 0),“加速”, (0.1, 0.1, 0));

创造分阶段。ScenarioViewer系统对象。显示雷达波束并标注轨道的位置、速度和高度。

观众=分阶段。ScenarioViewer (“BeamRange”, 8000.0,波束宽度的2,“UpdateRate”,updaterate,...“PlatformNames”, {'无人机雷达'“汽车”},'展示',真的,...“ShowSpeed”,真的,'露天',真的,“ShowLegend”,真的,'标题''车辆跟踪雷达');

运行场景。每一步,计算与目标的角度。用这个角度引导雷达波束向目标方向移动。

i = 1:100 [radar_pos,radar_vel] = step(drone,updateRate); / /更新[tgt_pos, tgt_vel] =(车辆、updateRate)步;(rng, ang) = rangeangle (tgt_pos radar_pos);查看器。BeamSteering = ang;查看器(radar_pos radar_vel、tgt_pos tgt_vel)暂停(1。)结束

这个示例展示了如何创建和显示一个多平台场景,该场景包含一个地面固定雷达、一个转弯飞机、一个恒定速度的飞机和一个移动的地面车辆。转弯飞机沿抛物线飞行,下降速度为20米/秒。

指定0.5 Hz的方案刷新率。对于150步,方案的持续时间为300秒。

updateRate = 0.5;N = 150;

设置转弯飞机使用加速度模型淘汰系统对象™。指定飞机从地面雷达的距离和方位角及其仰角的初始位置。飞机在60°方位角距离雷达10公里,高度6公里。飞机正以10m /s²的负速度加速x方向。

airplane1range = 10.0 e3;airplane1Azimuth = 60.0;airplane1alt = 6.0 e3;airplane1Pos0 = [cosd (airplane1Azimuth) * airplane1range;...sind(airplane1azimuth)* airplane1range; airplane1art];airplane1vel0 = [400.0; -100.0; -20];airplane1accel = [-10.0; 0.0; 0.0];airplane1platform = phased.platform(“MotionModel”“加速”...“AccelerationSource”输入端口的“InitialPosition”airplane1Pos0,...“InitialVelocity”airplane1Vel0,“OrientationAxesOutputPort”,真的,...“InitialOrientationAxes”、眼睛(3));

在全球坐标系原点处建立静止地面雷达。为了模拟旋转雷达,在处理回路中改变地面雷达波束转向角度。

groundRadarPos = (0, 0, 0) ';groundRadarVel = (0, 0, 0) ';groundradarplatform =分阶段。平台(“MotionModel”“速度”...“InitialPosition”groundRadarPos,“速度”,陆地扶手,...“InitialOrientationAxes”、眼睛(3));

使地面车辆以恒定速度移动。

groundVehiclePos = (5 e3, 2 e3, 0) ';groundVehicleVel = (50 50 0) ';groundvehicleplatform =分阶段。平台(“MotionModel”“速度”...“InitialPosition”groundVehiclePos,“速度”groundVehicleVel,...“InitialOrientationAxes”、眼睛(3));

让第二架飞机也以恒定速度移动。

airplane2Pos = (8.5 e3, 1 e3, 6000) ';airplane2Vel = (-300100, 20) ';airplane2platform =分阶段。平台(“MotionModel”“速度”...“InitialPosition”airplane2Pos,“速度”airplane2Vel,...“InitialOrientationAxes”、眼睛(3));

设置场景查看器。指定雷达的波束范围为8公里,垂直波束宽度为30°,水平波束宽度为2°。用位置、速度、高度和距离标注轨道。

BeamSteering = (0; 50);观众=分阶段。ScenarioViewer (“BeamRange”,8.0e3,波束宽度的,[2; 30],“UpdateRate”,updaterate,...“PlatformNames”, {“地面雷达”“把飞机”“汽车”《飞机2》},'展示',真的,...“ShowSpeed”,真的,'露天',真的,“ShowLegend”,真的,“ShowRange”,真的,...'标题'“多平台的场景”“BeamSteering”, BeamSteering);

步骤通过显示处理循环,更新雷达和目标位置。在每个步骤中将地基雷达转向角旋转四度。

n = 1: n [grounddradarpos, grounddradarvel] = grounddradarplatform (updateRate);[airplane1Pos, airplane1Vel airplane1Axes] = airplane1platform (updateRate airplane1Accel);[vehiclePos, vehicleVel] = groundvehicleplatform (updateRate);[airplane2Pos, airplane2Vel] = airplane2platform (updateRate);查看器(groundRadarPos groundRadarVel [airplane1Pos vehiclePos, airplane2Pos),...[Airplane1Vel,Lasevel,Airplane2Vel]);Beamsteering = Viewer.beamstering(1);Beamsteering = Mod(Beamsteering + 4,360.0);如果Beamsteering> 180.0 Beamsteering = Beamsteering  -  360.0;结束viewer.BeamSteering (1) = BeamSteering;暂停(0.2);结束

介绍了R2016a