可视化多平台的场景
这个例子显示了如何创建和显示一个多平台的场景包含地面静止的雷达,将飞机,常速飞机和地面车辆移动。把飞机沿着抛物线飞行路径而下降的速度20米/秒。
指定的场景在0.5 Hz刷新率。150步,300年代场景的时间。
updateRate = 0.5;N = 150;
建立了飞机使用加速度
的模型phased.Platform
系统对象™。指定范围的飞机的初始位置和地面雷达的方位和仰角。飞机从雷达10公里60°方位,6公里的高度。飞机正在加速在10 m / s²负面的x方向。
airplane1range = 10.0 e3;airplane1Azimuth = 60.0;airplane1alt = 6.0 e3;airplane1Pos0 = [cosd (airplane1Azimuth) * airplane1range;…信德(airplane1Azimuth) * airplane1range; airplane1alt);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 = phased.Platform (“MotionModel”,“速度”,…“InitialPosition”groundRadarPos,“速度”groundRadarVel,…“InitialOrientationAxes”、眼睛(3));
建立了地面车辆在一个恒定的速度移动。
groundVehiclePos = (5 e3, 2 e3, 0) ';groundVehicleVel = (50 50 0) ';groundvehicleplatform = phased.Platform (“MotionModel”,“速度”,…“InitialPosition”groundVehiclePos,“速度”groundVehicleVel,…“InitialOrientationAxes”、眼睛(3));
设置第二架飞机也在恒定的速度移动。
airplane2Pos = (8.5 e3, 1 e3, 6000) ';airplane2Vel = (-300100, 20) ';airplane2platform = phased.Platform (“MotionModel”,“速度”,…“InitialPosition”airplane2Pos,“速度”airplane2Vel,…“InitialOrientationAxes”、眼睛(3));
设置场景中查看器。指定雷达波束范围的8公里,垂直波束宽度30°,水平波束宽度2°。注释的轨道位置,速度,高度,和范围。
BeamSteering = (0; 50);观众= phased.ScenarioViewer (“BeamRange”,8.0 e3,波束宽度的(2、30),“UpdateRate”updateRate,…“PlatformNames”,{“地面雷达”,“把飞机”,“汽车”,《飞机2》},“ShowPosition”,真的,…“ShowSpeed”,真的,“ShowAltitude”,真的,“ShowLegend”,真的,“ShowRange”,真的,…“标题”,“多平台的场景”,“BeamSteering”,BeamSteering);
通过显示处理循环,一步更新雷达和目标位置。4度旋转地面雷达转向角的每一个步骤。
为n = 1: n [groundRadarPos groundRadarVel] = groundradarplatform (updateRate);[airplane1Pos, airplane1Vel airplane1Axes] = airplane1platform (updateRate airplane1Accel);[vehiclePos, vehicleVel] = groundvehicleplatform (updateRate);[airplane2Pos, airplane2Vel] = airplane2platform (updateRate);查看器(groundRadarPos groundRadarVel [airplane1Pos vehiclePos, airplane2Pos),…[airplane1Vel, vehicleVel airplane2Vel]);BeamSteering = viewer.BeamSteering (1);BeamSteering = mod (BeamSteering + 4360 .0);如果BeamSteering > 180.0 BeamSteering = BeamSteering - 360.0;结束viewer.BeamSteering (1) = BeamSteering;暂停(0.2);结束