主要内容

可视化多平台场景

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

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

updateRate = 0.5;N = 150;

设置转弯飞机使用加速度模型分阶段。平台系统对象™。根据地面雷达的距离和方位角以及飞机的高度,指定飞机的初始位置。飞机在60°方位角距离雷达10公里,高度6公里。飞机在负极以10m /s²的速度加速x方向。

Airplane1range = 10.0e3;airplane1Azimuth = 60.0;Airplane1alt = 6.0e3;airplane1Pos0 = [cosd(airplane1Azimuth)*airplane1range;...信德(airplane1Azimuth) * airplane1range; airplane1alt);airplane1Vel0 = [400.0;-100.0;-20];aircraft 1accel = [-10.0;0.0;0.0];平台=阶段性的。平台(“MotionModel”“加速”...“AccelerationSource”输入端口的“InitialPosition”airplane1Pos0,...“InitialVelocity”airplane1Vel0,“OrientationAxesOutputPort”,真的,...“InitialOrientationAxes”、眼睛(3));

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

groundRadarPos = [0,0,0]';groundararvel = [0,0,0]';地面雷达平台=阶段性的。平台(“MotionModel”“速度”...“InitialPosition”groundRadarPos,“速度”groundRadarVel,...“InitialOrientationAxes”、眼睛(3));

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

groundVehiclePos = [5e3,2e3,0]';groundVehicleVel = [50,50,0]';地面-车辆-平台=相控的。平台(“MotionModel”“速度”...“InitialPosition”groundVehiclePos,“速度”groundVehicleVel,...“InitialOrientationAxes”、眼睛(3));

让第二架飞机也以匀速飞行。

airplane2Pos = [8.5e3,1e3,6000]';airplane2Vel = [-300,100,20]';平台=阶段性的。平台(“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,vehicle - level] = ground - vehicle - platform(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