分享

连载:基于安卓平台的电子飞行包(三)

 天上精灵兔 2021-07-23

说明:

本文是北京航空航天大学 盖玉杰 硕士的2015年的毕业论文,经许可在公众号发表。本文著作权归作者盖玉杰先生,如需转载请联系本站或作者本人。

该项目是与民航研究院一同开展,对国内电子飞行包的研究发展起了重要的补充,但很遗憾的是目前该项目已经中止。


基于Android平台的

电子飞行包(EFB)

设计与实现

Design and Implementation of Electronic Flight Bag (EFB)Based On Android Platform

作者:盖玉杰
指导教授:龙翔

前文回顾:

  • 摘要

  • 绪论

    • 电子飞行包简介

      • 电子飞行包的含义

      • 电子飞行包的功能分析

    • 研究的背景和意义

    • 研究目标及内容

    • 本文的组织结构

  • 电子飞行包的对比分析

    • Jeppesen Mobile FliteDeck

    • FlyQ EFB

    • GlobalNavSource EFB

    • Avplan EFB

    • Android平台上EFB功能分析

    • 小结


连载接上
   3   系统设计与实现
本项目基于Android平台的电子飞行包设计与实现,包括Android端的电子飞行包软件系统的设计与实现和地面支持系统的设计与实现。
Android端电子飞行包主要包括:
  • 文档的快速查询和阅览

  • 文档的增量更新和版本维护

  • 性能计算

  • 机场滑行导航

  • 飞行导航

  • 电子化检查单

地面支持系统主要是:

  • 导航数据导入数据库

  • 导航数据 对比。

本文的基于Android平台的电子飞行包系统以及导航数据库系统的整体设计如图17所示。

3.1       航图快速查阅的设计与实现

电子飞行包发展初期,最基本的功能就是将纸质的航空图表等资料电子化。使用电子飞行包来查看资料可以减少纸质航图资料的使用,有利于无纸化机舱的发展,同时能让航行情报人员从繁琐的航图更新任务中解脱,减少航图更新过程中的错误而引起的飞行延迟等。电子飞行包在减轻飞行员的工作量的同时,也能减少机舱的负载,提高飞行的安全性。
3.1.    航空图表查阅设计
电子飞行包最基本的功能就是提供航空图表的查阅,航空图表快速查阅功能直接关乎到整个电子飞行包系统设计的成败。本项目中航图的快速查询将分为数据准备和界面设计两部分。数据准备主要是获取每个机场的航空图表和AIP。
(编者按:如能采用原始数据——如航路点坐标,实时绘制渲染图表的方式,可实现更灵活的航图展示,但开发难度会大幅增加)

目前大部分的电子飞行包产品航图展示部分采用了根据航图的类型进行分类展示。 Jeppesen FliteDeck为例,它将航图分为

  • REF (非程序性图表)

  • CO (公司资料)

  • STAR (标准航站进场图)

  • APP (进近图)

  • TAXI (滑行图表)

  • SID (标准仪表离 场图)

这样的分类方法需要飞行员更多的操作和查找过程,不能满足中国民航科学技术研究院的需求,我们希望在电子飞行包中航图查阅的设计能够更加直观方便。因此在航图查阅中,将会根据飞行阶段进行分类展示,同时还将公司资料分为运行手册、规章标准和机型手册。

每一个机场都有各自的航空图表,按照飞行阶段可以将航图分为标准仪表进场图, 标准仪表离场图,放油区图,机场图_停机位置图,机场障碍物图_精密进近地形图,近 图_RNAV_RNP_RADAR_GPS_GNSS-目视进近图,区域图一空中走廊一放油区图,仪表 进近图,仪表进近图」LS,仪表进近图_NDB,仪表进近图_VOR,机场AIP,目视离场 图。每一种飞行阶段的航空图表都有一个唯一的类型编号标识,如表2所示。

并不是每一个机场都有所有种类的航空图表,为了快速的对航空图表进行检索和展示,需要将机场的航空图表按照飞行阶段展示,方便检索。每一个机场的所有航空图表将放在以机场四字代码为名字的文件夹下,比如北京首都机场的四字代码为ZBAA,那么就会把北京首都机场的所有航空图表都放在ZBAA文件夹下。只是简单的将航空图表简单的组织在一起并不能让飞行员快速的查找到航空图表,为了方便飞行员查找需要分门别类的将机场的航图区分开来,在每一个机场航图文件夹下还会有一个index.txt的文件。这个index.txt文件的每一行是用两个制表符隔开的字符串,字符串从左到右的含义分别是航空图表的文件名、航空图表的类型编号和航空图表的名字。

以北京首都机场仪表进近图为例,文件名字为ZBAA-5HP.pdf,航空图表名字为ILS RWY36L,那么在index.txt文件中就会有ZBAA-5HP.pdf10ILS RWY36L这条数据信息,中间以制表符分开,方便查询。

当飞行员检索某个机场的航图资料时,只要读取index.txt文件的内容就可以以飞行阶段的名字作为一级菜单,具体的航图的名字为二级菜单展示,而且对于每一类航空图表还有字母编号,按照字母编号的顺序展示航空图表,能帮助飞行员更加快速的查阅。

在航空图表的快速查阅方面,飞行员可以使用机场的名称、四字代码或者三字代码搜索。除航空图表外,在本文设计的基于Android平台的电子飞行包系统中,还为某一次飞行的起飞机场和降落机场的航空图表,设置了单独的航空图表页面。航空图表查阅的设计如图18所示。

3.1.2 航空图表查阅实现

在航空图表的展示部分使了Android系统的ListViewExpandableListView控件同时还需要给ExpandableListView自定义Adapter来进行层级菜单的展示和刷新。航空图表的阅览功能模块需要使用Android平台上的PDF阅读器。在Android平台上有多种开源的PDF阅读器可供选择,比如VuDroidDroidReader 、 APV pdf viewerApdfviewerMuPDF。它们的对比情况,如表3所示。

MuPDFArtifex Software Inc研发的开源PDF读取库,通过简单配置,MuPDF 能够快速完成PDF的读取和解析任务。通过上图的对比可知,MuPDF对于PDF格式的解析兼容性好,大文件读取比较快同时还有一个比较强大的维护团队,比较适合在 Android平台的电子飞行包系统上阅览航空图表。

MuPDF与目前比较流行的PDF阅读Adobe Reader和福昕阅读器进行对比。下面以北京首都机场区域图zbaa-laP.pdf为例,测试平台为三星GT-8000平板电脑,分别 Adobe Reader、福昕阅读器和MuPDF阅读器打开,对比结果经过多次测试取平均值。对比结果如表4所示。

 

通过上表的对比可知,MuPDF打开文件的速度和缩放渲染图片的速度比Adobe Reader和福昕阅读器要快。

在将MuPDF集成到电子飞行包系统中的时候,遇到了内存溢出的问题。经过查看 调试信息可知,是由于打开大的PDF文件使得bitmap占用了过多的内存导致的。通过 及时回收内存和增大应用程序能够使用的内存空间,解决了内存溢出的问题。MuPDF 展示航图如图19所示。

3.2  性能计算设计与实现''

近年来飞行手册AFM)中的性能数据趋于软件形式提供,该软件作为AFM的一部分需要经过适航审查。因此,对性能软件的计算方法、可靠性和健壮性提出了更高的要求

起飞性能计算是飞行性能计算较为复杂的部分之一,计算结果直接影响研发进度、适航取证以及飞行安全,受到飞机设计、适航当局和运营商三方的密切关注。

本节性能计算以北京首都机场起飞性能计算为例,根据机场不同的跑道、飞机的空调是否打开、防冰是否打开、道面是干的还是湿的、襟翼是多少以及风速是多少来计算出温度、重量、速度以及限定条件等结果。以便飞行员进行对照比较,根据比较结果,会在飞行过程中,对某些方面进行特别的注意或者采取特别的措施,保证起飞的正常。

3.2.1 起飞性能计算的设计

起飞阶段(大约3分钟)、进近着陆(大约8分钟)是航空器最容易发生重大飞行事故 的阶段,民航界称其为“黑色11分钟”。在起飞滑跑阶段发生特殊情况的机率相当大。2001108日,一架斯堪的纳维亚航空公司的麦道80客机在米兰利那特机场起飞时, 机场附近因有雾能见度较差,飞机为躲避一架轻型飞机而转向,撞上了附近的建筑物失 事,据官方估计至少有100人死亡;由此可见飞机起飞阶段是事故多发段,所以研究飞机起飞阶段的起飞性能非常重要,特别是加强机组飞行性能方面知识的培训

安全性和经济性是民航运输飞行的生命,怎样在保证安全性的条件下提高经济性是 民航运输飞行研究的重点。民用飞机的起飞性能对飞行安全和运营经济性都有重大影响, 是飞机性能的一个重要组成部分。起飞过程中,在安全性方面,据统计表明,起飞段和收襟翼的促使爬升段时间仅占平均总航班的2%,而发生事故的次数却高达总事故的 21.8%,;在经济性方面,飞机的起飞重量受飞机、机场、气象等多种因素的影响,从而限制了飞机的业载,影响运输经济性。所以研究飞机起飞阶段的性能对保证飞行安全和提高经济效益均有重大意义。

起飞性能计算公式复杂,并不适合在移动端实现。而且起飞性能的计算公式也在不断的优化,如果每次因为起飞性能计算公式的优化改进就要重新发布一个版本的电子飞行包系统,那么维护成本是很高的。

(编者按:实时性能计算会是更好的选择,此处可能是开发难度导致)

鉴于上述问题,起飞性能计算将采取地面起飞性能计算系统生成性能计算数据的数据库,移动端采取查询数据库的方式进行性能计算结果的展示,这样,当起飞性能计算的过程进行了优化的时候,只需要将新的数据库文件拷贝到Android移动端就可以了。

地面性能计算系统能够直接导出的数据库是Access的数据库,在Android移动端是不能够直接调用Access里面的数据的,Android移动端可以直接使用的数据库文件是Sqlite 数据库文件。这就需要将Access数据库里面的数据转换成Sqlite数据库里面的数据,然后设计良好的用户计算参数输入界面并展示计算结果。

根据民航的需求,起飞性能查询的条件为跑道、空调、防冰、道面、襟翼和风速。飞行员可以输入温度进行查询,查询的结果是重量、速度和限定条件。如果输入重量进 行查询,那么查询的结果就是温度、速度和限定条件。

需要注意的是,在起飞性能查询时,跑道、空调、防冰、道面、襟翼和风速的数据 需要从数据库中获取,而且当选择某一条件比如跑道,就需要对其他项的数据比如空调、 道面进行过滤更新。

性能计算结果展示如图20所示。

3.2.2  起飞性能计算的实现

机场桌面系统中性能计貿的结果保存在Access数据库中,Access数据库也是在本 系统设计中能得到的数据,为了能够在Android平台上直接使用数据库的数据,需要将 Access数据库转化成Sqlite数据库。

Access数据库转化成Sqlite数据库的步骤为:首先使用DB2MYSQL软件来生成对应的SQL代码。DB2MYSQL是一个数据文件转化软件,它可以自动底地将一个ACCESS 数据库文件转化为对应的SQL代码。它是一款可广泛应用于ACCESS数据库转换为 MYSQL或其他类型的SQL数据库的软件。

DB2MYSQL能够实现可视化操作数据库,转换界面非常简单明了,可轻松实现 ACCESS数据库转换为MYSQL数据库。如果想要将SQL SERVER的数据库转换到 MYSQL,也可以使用这个软件,具体操作是先使用SQLSERVER的“导入和导出数据” 将SQL SERVER数据导出到ACCESS文件,然后再将ACCESS文件导出为MYSQL语句DO】。

运行转换功能后,系统会生成两个输出,一个是在屏幕界面上将转换后的SQL 句输出,另外还会在输出目录下自动生成一个后缀为.SQL的文本文件,里面会记录生成的SQL语句。

根据民航提供的Access数据库文件,起飞性能数据库表项如表5所示:

获取得到起飞性能数据库表项之后,就可以在桌面系统上,进入命令行,创建数据库,在数据库里创建数据库表。就可以将数据导入数据库生成Sqlite数据库。将起飞性 能数据导入Sqlite数据库中,需要先创建数据库表,然后使用.read命令将生成的 Performances.sql文件导入到数据库中⑵】。将数据导入Sqlite数据库的过程如图21所示。

3.3  机场飞机滑跑导航设计与实现

传统的飞机在机场的导航方式,还是需要飞行员记住跑道和其他机场的位置。但是 由于在导航过程中,导航信息传递错误或者飞行员路线记忆错误容易引起飞机滑跑脱离 应该滑行的路线。本节的机场飞机滑行导航可以帮助飞行员在机场滑跑过程中查看飞机 在机场地图上的实时的位置,以此来勳断飞机是否已经偏离应该滑跑的路线。

3.3.1  机场飞机滑跑导航设计

如果飞机的滑行路线和飞机的位置可以在电子飞行包系统中展示来,那么就可以给 飞行员导航提醒,对飞机在机场的滑跑安全的提升有重要意义。

电子飞行包(EFB)系统中的机场导航功能和飞行导航功能需要利用Android设备 获得的GPS定位信息,将飞机的位置展示在地图上,同时还需要在地图上进行路径的标注,地点的提示等。以Android设备为平台,将GPS (全球定位系统)和移动GIS(移动地理信息系统)结合使用"I,就能都够实现上述机场导航和飞行导航的功能。

地理信息系统Geographic InformationSystemm, GIS)是一种为了获取、存储、检索、分析和显示空间定位数据而建立的计算机化的数据库管理系统1998年,美国国家地理 信息与分析中心定义。近年来,移动领域的发展催生了移动GIS行业,移动GIS已经成为GIS研究的重要应用领域。利用Android设备自带的GPS模块来获取飞机的位 置,并将位置信息等展示在移动GIS地图上,就可以实时的看到飞机的位置。

在国外,移动GIS发展起步较早,社会的各个领域都有成功的应用,形成了不少企 业级的应用解决方案,领先的GIS厂商都有自己的移动GIS产品Si目前市场上较常使用的移动GIS软件有ESRL Mapinfo> Autodesk等公司的产品。国内移动GIS软件的 研发也不断发展,主要包括了北京超图eSuperMap、北京图灵Smart In Hand,合众思壮公司掌上经纬通等

移动GIS中的地图有瓦片地图和矢量地图之分,瓦片地图是将地图按照多个不同的 比例尺,裁剪成小正方形,以GIFJPGPNG等形式存储起来,当要展示地图的时候, 计算出需要展示的图形块和将图形块展示在屏幕上的行数和列数,实现地图的快速加载。 矢量地图就是画出来的点线区文件,它保存的时候占用的空间小,不失真。下面对比了 商业移动GIS平台SuperMap, ArcGIS和开源移动GIS平台OSMANDOSMDroid四款移动GIS系统。

本文对 0SMANDOSMDROIDSuperMap GIS Argc GIS 进行了对比分析。对比结果如表6所示。

通过上表的对比可知,开源移动GIS OSMANDOSMDROID桌面地图编辑软件 匮乏,不太适合电子飞行包系统对于地图频繁编辑更新的需求。SuperMap GISArgc GIS是比较好的商业移动GIS平台,两者之间的地图格式可以互相的转换。但是基于目 前大部分的可以使用机场地图都是基于SuperMap的,所以在飞机机场导航部分,使用 SuperMap SuperMap iMobile 比较合适

本文设计的电子飞行包中的飞机在机场的滑跑导航主要是飞机在机场滑行的过程中,根据控中心发送的命令将该飞机在机场应该滑行的路径画出来。

3.3.2  机场飞机滑跑导航实现

下图以北京首都机场为例,当驾驶员被指挥沿着跑道H、跑T1、跑道A0和跑道F 进行滑跑的时候,需要在地图上画出相应的路线和飞机所在的位置,这样飞行员就能够实时得知飞机滑行的位置是否偏离导航路线,从而能尽快做出路线修正措施。如图22 的北京首都机场跑道路线图。

获取飞机的位置使用了 GPS定位,Android系统中有比较完备的接口,主要是通过 LocationManager来判断Android设备的GPS模块是否已经打开,如果已经打开,那么 可以直接进行GPS信息的获取,如果没有打开,那么会跳转到GPS信息打开页面。同 时需要使用SuperMapAndroidGIS系统在它的图层上进行绘制,主要步骤是首先 获取地图的MapControL然后获取到拥有跑道的图层,从这个图层上获取数据矢量集, 然后根据输入的跑道的编号进行数据信息的查询,得到每条跑道的记录集合,然后把线 路画在另外的一个图层上,飞行员的位置则绘制在TrackingLayer图层上。如图23所示。

电子飞行包系统中的机场飞机滑跑导航功能能够帮助驾驶员在大雾或者大雨等恶 劣天气很难判断路线的时候,清楚的获得飞机的位置,在正确的跑道路线上降落滑跑。

未完待续,欢迎继续关注

下一小节:3.4 飞行计划导航

配图 | 网络

编辑 | 小玉

校准 | 采虹兔

投稿 | 1644134@qq.com

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多