当前位置: 首页 > news >正文

基于Matlab在以地球为中心的场景中模拟和跟踪航路飞机仿真(附源码)

此示例演示如何使用以地球为中心的对象对跨越数千公里的飞行轨迹进行建模。可以使用两种不同的模型来生成飞机的综合检测:单站雷达和 ADS-B 报告。可以使用多对象跟踪器来估计平面轨迹、比较跟踪性能并探索 ADS-B 提供的对整体跟踪质量的影响。

在美国,美国联邦航空管理局(FAA)负责监管整个国家领空每天数千个航班。商业航班通常从出发机场到到达时始终被跟踪。空中交通管制系统是一个复杂的多级系统。机场控制塔负责监控和处理机场附近的区域,而空中航线交通控制中心(ARTCC)负责组成国家空域的各个区域的远程航路监视。

在过去的几十年里,空中交通/监视雷达的能力和复杂性显着增加。飞机上应答器的添加增加了雷达设施和飞机之间的双向通信,从而实现非常准确的位置估计,并有利于控制中心的决策。到2020年,所有飞行在10,000英尺以上的飞机都必须配备自动相关监视广播(ADS-B)应答器,以广播其机上估计位置。此消息由空中交通管制中心接收和处理。

一、创建航路空中交通方案

首先要创建一个以地球为中心的场景。

二、定义飞机模型和轨迹

此示例中附加的 matfile 包含从威奇托到芝加哥的飞行轨迹的合成坐标和时间信息。使用对象创建飞行轨迹。

如今,商用飞机都配备了GPS接收器。作为 ADS-B 的主干,机载 GPS 的精度可以设置为符合 ADS-B 的要求。ADS-B中使用的位置和速度的导航精度类别分别称为NACp和NACv。根据FAA的规定,NACp必须小于0.05海里,NACv必须小于每秒10米。在此示例中,使用位置精度为 50 m、速度精度为 10 m/s 的模型来配置模型。还为飞机使用了更逼真的RCS签名,灵感来自波音737的签名。

三、沿路线添加监控站

FAA使用的远程监视雷达有几种型号。空中航线监视雷达4(ARSR-4)是1990年代推出的雷达,可以在250海里(463公里)的长距离内提供任何1平方米物体的3D返回。大多数ARSR-4雷达位于美国大陆的边界,而稍短距离的雷达大多位于非洲大陆的FAA雷达站。在此示例中,根据 ARSR-4 的常见规格对单个雷达类型进行建模,如下所示:

  • 更新速度:12 秒

  • 最大射程(目标1米见方):463公里

  • 距离分辨率: 323 m

  • 量程精度:116 m

  • 方位角视野:360度

  • 方位角分辨率:1.4度

  • 方位角精度:0.176度

  • 高度精度: 900 m​

将向每个雷达站点的方案添加一个平台。这些平台的 RCS 签名设置为−50分贝,以避免产生不必要的雷达回波。

默认情况下,雷达探测报告在雷达安装平台主体框架中,在本例中为位于每个雷达站点位置的本地东北下部框架。但是,在此示例中,将属性设置为 ,以便在以地球为中心的地球固定 (ECEF) 帧中输出检测结果,这允许跟踪器处理来自公共帧中不同雷达站点的所有检测。

用于对 ADS-B 消息的接收进行建模。ADS-B 消息包含由飞机自己的 GPS 仪器测量的位置。该消息通常在1090 MHz信道上进行编码和广播,以供附近的ADS-B接收机接收。您可以在每个监控站周围定义 200 km 的接收范围。在此示例中,您假设监控站彼此之间具有完美的通信。因此,中央接收器在至少一个站的范围内拾取广播的 ADS-B 消息。

四、可视化场景

可以使用 来显示地球上的平台、轨迹、检测和轨迹。

 监视雷达有一个天线盲锥,有时被称为“沉默锥”。它是雷达正上方的一个空间体积,由于天线扫描的限制而无法监视。雷达网络中的重叠覆盖是该盲锥区域的常见缓解策略。然而,通过重叠的策略,仍然可能存在网络未完全覆盖的领域。在此示例中,最南端的静默锥(在上图中以橙色显示)仅被网络中的相邻雷达部分覆盖。这就形成了一个盲点,飞机不会被任何雷达探测到。

五、定义中央雷达跟踪器和跟踪热熔器

通常,一个ARTCC维护其监视区域内所有物体的跟踪,并在物体飞入新区域时将跟踪信息传递给下一个ARTCC。在此示例中,将为所有雷达定义一个集中式跟踪器。可以使用对象从多个雷达融合飞机的雷达检测。

还可以将雷达轨迹与从 ADS-B 接收器获得的 ADS-B 轨迹融合在一起。为此,请配置一个中心对象。可以设置 和 以考虑 1 Hz 的 ADS-B 接收器速率与 1/12 Hz 的雷达跟踪器速率之间的更新速率差异。要允许将至少两条雷达轨迹分配给中央轨道,则命中次数必须至少为trackFuserConfirmationThresholdDeletionThreshold2×12.

六、使用雷达和 ADS-B 跟踪飞行

在本节中,将模拟场景并对雷达跟踪器、跟踪热熔器、ADS-B 应答器和接收器进行步进。

 在场景开始时,飞机远离最南端的监视站,并且没有传输ADS-B消息。因此,飞机仅由雷达跟踪。请注意,ARSR检测在高度上相对不准确,这通常是可以接受的,因为空中交通管制员将飞机水平而不是垂直分开。最不准确的探测是由位于更远距离的雷达站点产生的。然而,这些检测仍然与轨道相关联。在图中,白线表示真实轨迹,黄线表示雷达跟踪器估计的轨迹。飞行的第一段远离任何雷达,相应的探测具有高测量噪声。此外,等速运动模型在起飞后的初始飞行转弯期间不能很好地模拟运动。雷达轨迹被传递到热熔器,热熔器输出一个以橙色显示的熔断轨迹,紧跟雷达轨迹。融合轨迹与雷达轨迹不同,因为热熔器会将自己的过程噪声添加到轨道状态中​。

在上面的快照中,飞机在ADS-B通信范围内,并建立了新的ADS-B轨道。热熔器处理了这个新轨道,提高了熔断轨道的精度。 

 在上面的快照中,飞机进入了沉默的锥体。雷达跟踪器在多次更新后删除轨迹,没有任何新的检测。此时,热熔器仅依靠ADS-B轨道来估计飞机的位置。

 当飞机进入第二和第三监视雷达站覆盖的区域时,建立了新的雷达轨道。来自两个雷达站的探测由雷达跟踪器融合,轨道融合器将新的雷达轨道与ADS-B轨道融合。

七、分析结果

可以比较雷达和 ADS-B 的记录轨迹数据。真实位置和速度可从“使用 OSPA”指标获得,以比较仅来自雷达、仅 ADS-B 和来自与 ADS-B 融合的雷达的跟踪质量。可以使用对象的默认设置来比较跟踪位置和检测分配的 NEES(归一化估计误差平方)。

 

OSPA 指标显示了通过将 ADS-B 轨迹与雷达轨迹融合获得的改进。从19分钟到25分钟的模拟时间,只有OSPA的雷达很高,因为飞机飞越雷达网络的盲点。如融合的 OSPA 所示,ADS-B 在这一领域的可用性大大提高了跟踪性能。此外,该指标在开始时显示两个峰值,这可归因于等速滤波器在轨迹初始转弯期间性能差以及ADS-B不可用。大约在 40 分钟左右,仅 ADS-B 的 OSPA 会因该区域的 ADS-B 可用性丢失而降级。在仿真的后续部分中,雷达和ADS-B都可用。仅雷达 OSPA 总体上比仅反接 ADS-B 差。这是因为与GPS相比,雷达的垂直精度较差。

八、总结

在此示例中,学习了如何使用大地坐标创建以地球为中心的方案和定义轨迹。还学习了如何对空中航线监视雷达进行建模并生成综合检测。可以将这些检测结果提供给多对象跟踪器,并估计飞机的位置、速度和航向。通过添加和融合 ADS-B 信息,可以提高跟踪性能。​对 ADS-B 报表进行了建模,并将其集成到跟踪解决方案中。在此示例中,仅对单个航班进行了建模。在空中交通管制员必须保持安全间隔距离的情况下对多个航班进行建模时,ADS-B的优势可以进一步体现出来。 

九、程序

使用matlab R2021a版本,点击打开。

打开下面的“AirTrafficEarthCenteredScenarioExample.mlx”文件,点击运行,就可以看到上述效果。

 关注下面公众号,后台回复关键词:模拟和跟踪航路飞机仿真,发送源码链接。

相关文章:

  • TYUT太原理工大学2022需求工程考试填空题
  • Flink 成长之路简介
  • 软件测试面试,如何自我介绍?如何介绍项目?如何介绍个人技术?(提供面试话术)
  • Vue2 之 Vuex - 状态管理
  • 一篇带你走进Vue+阿里云的uni-app开发(HBuilder X开发版)
  • 高蛋白饮食≠健康 多组学分析揭示植物高蛋白对血糖和肝脏脂质代谢的影响
  • 【HTML+CSS+JS表白网站搭建】520七夕到了,快搭个漂亮的表白网站送给TA吧
  • 【云原生】Elasticsearch + kibana on k8s 讲解与实战操作
  • 10月计算机类SCI合集来了,多领域极速审稿,想要快速录用吗?
  • (9)目标检测_SSD的原理
  • Java反射小练之手写BeanUtils的copyProperties(Upgrade)
  • 千粉缔造760w播放!B站“新人”UP主在B站怎么加速上位?
  • 对于B+树,为什么说一般查找行记录,最多只需1~3次磁盘IO
  • 如何在充满不确定性的当下探索未来?
  • FPGA—从加法运算理解流水线的作用
  • ----------
  • [译]前端离线指南(上)
  • co.js - 让异步代码同步化
  • CSS 专业技巧
  • Git学习与使用心得(1)—— 初始化
  • Hibernate最全面试题
  • HTTP--网络协议分层,http历史(二)
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java深入 - 深入理解Java集合
  • js算法-归并排序(merge_sort)
  • nodejs实现webservice问题总结
  • Otto开发初探——微服务依赖管理新利器
  • SpringBoot 实战 (三) | 配置文件详解
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 半理解系列--Promise的进化史
  • 笨办法学C 练习34:动态数组
  • 给Prometheus造假数据的方法
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 如何利用MongoDB打造TOP榜小程序
  • 使用 Docker 部署 Spring Boot项目
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 手写一个CommonJS打包工具(一)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 系统认识JavaScript正则表达式
  • 用简单代码看卷积组块发展
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​渐进式Web应用PWA的未来
  • #vue3 实现前端下载excel文件模板功能
  • (6)设计一个TimeMap
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (差分)胡桃爱原石
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (一)80c52学习之旅-起始篇
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)程序员疫苗:代码注入
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • ../depcomp: line 571: exec: g++: not found
  • .aanva