主要内容

可视化多平台的场景

这个示例演示了如何创建和显示一个多平台场景,其中包含一个地面固定雷达、一架转弯的飞机、一架恒速飞机和一辆移动的地面车辆。转弯飞机在以20米/秒的速度下降时遵循抛物线飞行路径。

指定场景刷新率为0.5 Hz。对于150个步骤,该场景的持续时间为300 s。

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;...信德(airplane1Azimuth) * airplane1range; airplane1alt);airplane1Vel0 = (400.0, -100.0, -20);airplane1Accel = (-10.0; 0.0; 0.0);airplane1platform =分阶段。平台(“MotionModel”“加速”...“AccelerationSource”输入端口的“InitialPosition”airplane1Pos0,...“InitialVelocity”airplane1Vel0,“OrientationAxesOutputPort”,真的,...“InitialOrientationAxes”、眼睛(3));

在全球坐标系原点处设置静止地面雷达。要模拟一个旋转雷达,在处理回路中改变地面雷达波束转向角度。

groundRadarPos = (0, 0, 0) ';groundRadarVel = (0, 0, 0) ';groundradarplatform =分阶段。平台(“MotionModel”“速度”...“InitialPosition”groundRadarPos,“速度”groundRadarVel,...“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.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 + 4,360.0);如果BeamSteering = BeamSteering - 360.0;结束viewer.BeamSteering (1) = BeamSteering;暂停(0.2);结束

Baidu
map