查看: 1886|回复: 0

|资源|一些开源的航空航天仿真工具软件

[复制链接]
发表于 2024-5-9 22:37:42 | 显示全部楼层 |阅读模式
序:“小时候,晴朗的天空总是蔚蓝,就连那连绵不断的山峰也无法遮挡住那深邃的远方。曾几何时,天空中偶尔会飞过一架飞机,于是众小伙伴奔走相告,哪怕飞机的轰鸣早已响彻耳旁。有时,我们会目不转睛地望着飞机,直到它飞出视野范围之外,并梦想着有一天能够像飞机一样在天空中翱翔,到我们想去的远方。

依稀记得,那些年,为了躲避夏日的炎热,我们姐妹三人常常在优静的晚上躺在繁星闪烁的夜空下,仰望宇宙的苍穹。那时,我们的视力好到可以看见亮度十分暗淡的人造卫星飞越上空。而为了等待流星划过夜空的美丽瞬间,我们更是轮流看守,不放过任何一次机会。令我们感到十分惊讶的是,我们几乎总是能在深夜欣赏到流星划过的瞬间,甚至有时还会中头奖,来一次令人激动不已的流星雨。

童年纵然逝去,但我相信每个人心中都有个孩子,每个人心中都留有一份童真,每个人心中都深藏童年的美好记忆。现在看来,长大可并不是一件好事,但是爸妈却不这么想,天天盼望着我们长大成人,并能有所作为。

童年对头顶上那片天空产生的特殊情怀使得我踏上了航空航天的学习道路,然而多年以来却术无专攻、学无所成。唯一值得欣慰的是,这么多年来,我学会了一个原则,那就是做任何事都不要首先尝试重新发明轮子,而要学着制造汽车。用牛顿先生的话说,就是:“如果说我比别人看得更远些,那是因为我站在了巨人的肩膀上。”于是,当我需要某种工具时,必先用 Google 搜寻一番,哪怕是 Bing 也是可以的。时至今日才猛然发现,在开放的世界竟然有那么多实用的工具可以为我所用,即使是专业特性超强的航空航天领域。”

本文并非一篇教读者如何在庞杂的信息世界里搜索合适的工具,而是直接授之以鱼,将笔者已知的航空航天领域十分优秀的开放仿真工具介绍给大家,并辅以相应的入门级教程。这其实是一项十分艰难的工作,因为大部分开放软件的文档都较为匮乏,且绝大多数由英文写成。这倒不是致命伤,关键在于,笔者不可能把每一款软件都学会,然后写出教程。从时间和精力的角度来讲,这都是不现实的。所以本文将重点对功能相对强大且笔者认为十分有研究价值的工具软件展开介绍,希望能抛砖引玉,吸引更多的爱好者加入到本文的撰写过程中来。

本文定性为航空航天仿真工具的相关介绍和研究,主要涉及航空航天领域大量优秀的开放仿真软件,不会涉及任何与开放硬件相关的话题。这里的开放是指读者可以免费获取资源,而无需为其支付任何使用费用。文中介绍的工具包含了很多开源的软件,而开源是开放的子集,开源的软件绝大多数是免费的。此外,开源软件最鲜明的特点是其源代码必定公开,并可以通过互联网或其它媒介自由获取。书中并不包含那些停止开发或多年未曾更新的工具软件,因为笔者认为,只有历经岁月的洗礼,才能称得上优秀,并最具研究价值。原则上,长达五年未曾更新的软件不会出现在本文的分类之中,已经包含在本文中的软件如果在未来五年之内不再更新,亦将在下一次更新过程中被剔除。

是开源赋予了这个时代更多的活力,而开放则将知识的种子播撒开来。知识本就不应该被束之高阁,即使是本文所讨论的航空航天。衷心地希望本文能够帮助读者了解航空航天,了解开放的世界,并最终找到自己钟爱的航空航天仿真工具。

第零篇 基本信息0.1 版本信息0.1.1 更新记录
• 2016/06/28 v1.0 建立基本框架,对每款软件进行较为完整的介绍,并不涉及任何操作实践,甚至不包括如何安装软件。

0.1.2 写作计划

• 2019/04/05 v1.1 添加 OpenRocket 安装教程。

• 2019/04/15 v1.2 添加 Orbiter 入门教程:冲破卡门线。

• 2019/04/25 v1.3 添加 GMAT 入门教程:Molniya 轨道预报。

• 2019/05/15 v1.4 添加 Orbiter 入门教程:造访国际空间站。

• 2019/05/25 v1.5 添加 NASA’s Eyes 入门教程:在家畅游太阳系。

• 2019/06/15 v1.6 添加 Orbiter 入门教程:带她一起去月球。

• 2019/06/25 v1.7 添加 GMAT 入门教程:霍曼转移。

• 2019/07/15 v1.8 添加 Orbiter 进阶教程:TransX 行星际航行指南。

• 2019/07/25 v1.9 添加 Orbiter 进阶教程:红色行星之旅行。

• 2019/08/15 v2.0 添加 Orbiter 高级教程:EVA & EDL。

0.2 使用协议

本文采用 Creative Commons 使用协议,具体内容请参照 Creative Commons 协议官方网站。

第一篇 航空工具集
1.0 内容概述
本篇将对开放航空工具进行分类归纳,由于笔者已不再从事航空学方面的研究工作,所以很少再接触新的航空工具软件,文中涉及的工具皆为笔者早年间熟知的软件,具有一定的代表性。同时希望读者能够分享信息,提供更多关于开放航空仿真工具软件最新的发展状况。

本篇含有三个部分的内容,在广度和深度方面都不如航天工具集篇详实,但其中却不乏重量级的工具。如 flightgear 和 OpenRocket,它们在各自的领域都有着极大的影响力。特别值得一提的是它们的源代码都是开放的,使得用户可以进行深层次的探究。

笔者作为一名模拟飞行爱好者,曾经使用过 x-plane,如今对 Orbiter 有较为系统的学习。虽然只是在虚拟的环境中体验飞行,但这也未曾不失为一种乐趣,而且模拟带着浓厚的教育意味,在此过程中可以学得一些书本之外的知识。

1.1 模拟飞行

图注:“协和”号即将降落在伦敦盖特威克机场跑道上
1.1.1 FlightGear

FlightGear 是一款开源的跨平台模拟飞行器。该项目始于 1997 年,经过最初十年的开发,于 2007 年 12 月发布了功能较为完善的 v1.0.0 版本。其最新版本为 2019 年 1 月 29 日发布的 v2018.3.2 版本,软件授权协议为 GPL(GNU General Public License)。

|资源|一些开源的航空航天仿真工具软件-2061

从 FlightGear 官方手册可知,FlightGear 具有以下诸多特点:

民用性:该项目主要针对民航,用于通用航空和民航飞行模拟。FlightGear 的长远目标是可以作为 FAA 的飞行训练模拟器;FlightGear 不能进行空战模拟可能会让您感觉有些失望。但我们并没有完全排除 FlightGear 的这部分功能,只是因为缺少空战模拟的开发人员所以还没有实现这部分功能。

跨平台:项目所有开发人员都希望代码能不依赖平台,因此 FlightGear 能运行在多种电脑硬件和操作系统上。当前的代码支持 Linux(任何分支和平台)、Windows XP/Vista/7/8/10( Intel/AMD 平台)、Mac OS X、BSD UNIX & Sun Solaris 等等。目前为止,还没有其它任何一款模拟飞行软件(不管是商业化的还是免费的)支持如此多的平台。

开放性:FlightGear 不限定在任何固定开发人员手里,能在项目中发挥作用任何人都是受欢迎的。此项目的版权在自由软件基金会的手中,虽然 GPL 现在还不太被人们了解,但它已经得到法律的保护。在这个体系中,GPL 允许您复制和免费贡献代码,只要你喜欢这样做。然而,你必须免费提供源代码给每个需要它的人,且必须保留原始著作权。简而言之,GPL 允许你做任何除了收费之外的事情。

扩展性:从设计之初开始,FlightGear 的场景地形、飞机模型、内部参数、API 和其它任何东西都是对用户透明并有文档记录的。就算没有任何开发文档,您也能参看源代码来了解 FlightGear 是如何工作的。FlightGear 开发人员的目标是建立是一个能自由进行场景设计、飞行面板设计、ATC 设计及声音驱动的基本引擎。FlightGear 项目凝结了来自全世界开发者的智慧,我们希望此项目所有的开发人员和用户都能从中获益。

1.1.2 Plane-Maker

Plane-Maker 是随 X-Plane 免费发布的一款内部模型插件开发工具,专门供 X-Plane 插件开发者为其开发飞机、人物、车辆及地景模型等第三方插件。用户只需安装 X-Plane Demo,而非购买完整的 X-Plane 软件包,即可获得 Plane-Maker 进行插件开发。

|资源|一些开源的航空航天仿真工具软件-5931

Plane-Maker 虽然是免费软件,但它的功能却异常强大。首先,它给开发者提供了一个十分方便的 GUI 集成环境,从而使得开发者可以很轻松地在该环境中创建各种类型的模型;其次,Plane-Maker 与 X-Plane 的交互过程既简单又高效,且在 Plane-Maker 中开发的飞机插件可以直接导入 X-Plane 这一高仿真度的模拟飞行环境中进行试飞;此外,Plane-Maker 能够读取来自外部三维软件(如 Blender、Google Sketchup、AC3D 及 3DS Max 等)所构建的各种模型。

事实上,Plane-Maker 完全是 X-Plane 团队为提升自身竞争力而为第三方开发者量身打造的插件开发工具。时间证明,这种做法是成功的。因为,如今 X-Plane 的插件开发者已经为其开发了大量的优秀插件,这间接增加了 X-Plane 对用户的吸引力。你可以从 X-Plane 官方论坛下载到由众多爱好者开发的各种插件。当然,如果你想设计一架属于自己的机模,我相信 Plane-Maker 一定是不错的选择。

1.1.3 CRRCSim

CRRCSim 是一款基于 GPL 发布的开源遥控模型飞机飞行模拟器,由 C 和 C++ 语言编写而成,OpenGL 作为图形驱动引擎。CRRCSim 可运行在主流的操作系统平台之上,多数 Linux 发行版本、Mac OS X 及 Microsoft Windows。使用 CRRCSim 不仅可以帮助你学习如何操控遥控模型飞机,并在模拟环境中提高遥控操纵技能,还可以帮助你测试新设计的飞机模型。

|资源|一些开源的航空航天仿真工具软件-622

1.2 飞行动力学仿真

|资源|一些开源的航空航天仿真工具软件-2899

图注:基于 JSBSim 开发的 MATLAB/Simulink 仿真模块

1.2.1 JSBSim

JSBSim 是一套开源的飞行动力学模型软件库,目前为 FlightGear 两大常用的飞行动力学引擎之一。此外,JSBSim 还被 OpenEaagles 模拟框架所使用,并可以单独被其它程序调用,以此来创建一些模拟工具。

|资源|一些开源的航空航天仿真工具软件-9668

JSBSim 于 1996 年被开发并使用至今,可运行在 Linux、Mac OS X 及 Microsoft Windows 等多种操作系统平台上,它由 C++ 编写而成,使用 XML 解析配置文件。

1.2.2 YASim

YASim 是 FlightGear 两大常用的飞行动力学引擎之一,它采用飞机的几何外形来生成其飞行特性。虽然这种方法只能是近似,但在获得初始结果后可以对飞行参数作进一步调整,以此来达到逼真的仿真效果。如果你已经获得飞机可靠的飞行数据(比如风洞数据),或是想生成超级真实的仿真模型,那么 JSBSim 应该是更好的选择。但如果你手中缺乏飞行数据,只知道飞机的几何模型,那么 YASim 则能提供可以满足绝大多数仿真需求的解决方案。此外,YASim 还包含直升机飞行动力学模型。

|资源|一些开源的航空航天仿真工具软件-2219

1.3 飞行性能分析

|资源|一些开源的航空航天仿真工具软件-7991

图注:OpenRocket Photo Studio生成的探空火箭云层穿越想象图

1.3.1 XFLR5

XFLR5 是一个在低雷诺数下翼型、机翼和飞机的分析工具,使用 Xfoil(用于分析翼型气动力的共享软件,由 MIT 航空航天系的 Prof. Mark Drela 和 H. Youngren 开发)作为求解器,QT 开发用户界面。其主要功能包括:

• 基于 Xfoil 翼型分析程序的直接和逆向分析能力;

• 基于升力线法、涡格法和 3D 面元法的机翼设计和分析。

|资源|一些开源的航空航天仿真工具软件-8973

XFLR5 v6 版本引入了模型飞机的稳定性分析。

1.3.2 OpenRocket

|资源|一些开源的航空航天仿真工具软件-1324

OpenRocket 是一款功能强大的模型火箭仿真软件,你可以用它设计你的模型火箭,然后对其进行模拟试飞,得到其仿真性能参数,并加以改进。OpenRocket 包括以下主要功能:

• 六自由度飞行仿真

• 自动设计优化

• 实时高度、速度及加速度仿真显示

• 对火箭串并联级的支持

•  跨平台(基于 Java)

OpenRocket 以 GPL 开源协议发布,这意味着你可以自由地使用它。正如其它开源软件一样,OpenRocket 提供完整的项目源代码(由 Java 语言编写而成),这使得感兴趣的模型火箭爱好者可以理解其内部运作机理,并对其进行功能扩展。

1.3.3 Sumo

Sumo 是由一位在皇家理工学院(位于瑞典首都斯德哥尔摩)飞行动力学实验室工作的研究员基于 C++ 开发的一款飞行器建模与网格生成工具软件。

|资源|一些开源的航空航天仿真工具软件-8741

Sumo 能够快速生成飞机的几何模型,并自动对其表面进行网格划分。但它并不是一套 CAD 系统,而是一个简单易用的画板,专门用于飞机的外形结构建模。Sumo 发型版本中自带一款叫做 Scope 的气动弹性可视化工具,用于显示流体势能求解器 dwfs 生成的分析结果(如飞机表面数据、颤振振型及飞行轨迹)。另外,Scope 还能读取 NASTRAN 数据文件、模型分析结果和动画本征模态形式。

|资源|一些开源的航空航天仿真工具软件-5742

图注:航天先驱“罗伯特·戈达得”和他的名言

第二篇 航天工具集

2.0 内容概述

本篇将对开放航天工具进行分类归纳,由于笔者现今从事航天学方面的研究工作,所以接触的航天工具软件比航空更加广泛,其中一些工具早在几年前已经有所了解,但出于时间和兴趣的关系没有深入研究。

本篇含有三部分内容,但其实每部分介绍的工具软件在功能上存在着交叉。比如 Orbiter 被划分在了 2.1 航天交互式仿真,该部分内容主要收集具有很强人机交互性的航天仿真软件,但 Orbiter 的功能并不仅限于此,其内部包含着丰富的航天动力学理论知识。之所以进行这样的分类,是因为各款工具软件有着功能侧重点之分,需体现出它们的功能特色及主要用途。

2.1 航天交互式仿真

本节将对 Orbiter 、EYES ON THE SOLAR SYSTEM 和 Celestia 三款极具交互性的航天仿真工具软件展开介绍,之所以将三者单独成章是因为它们具有较为相似的功能特性,即强大的交互能力以及令人惊艳的视觉效果。下图截自 EYES ON THE SOLAR SYSTEM,展示的是土星那美丽而又神秘的巨大光环。计算机图形显示技术的飞速发展使得我们在个人计算机上欣赏这一美景得以成为现实。

|资源|一些开源的航空航天仿真工具软件-5899

图注:EYES ON THE SOLAR SYSTEM 中的土星和它那美丽而又神秘的巨大光环

2.1.1 Orbiter Space Flight Simulator

Orbiter 是一款功能异常强大的免费太空飞行模拟器,它可以带你冲破卡门线,驶入浩瀚的星空,体味驾驶宇宙飞船的快感。Orbiter 的核心部分由 Dr. Martin Schweiger 团队开发,第一个版本于 2000 年 11 月 27 日发布,最新稳定版本为 Orbiter 2016。通常,官方发布的 Orbiter 版本只是基础版(Base Edition),用户要想获得绝佳的飞行体验还需要下载第三方扩展插件,如 DanSteph 开发的 OrbiterSound,及社区开发用于支持 DirectX9 图形渲染的 D3D9Client 客户端。

|资源|一些开源的航空航天仿真工具软件-5808

Orbiter 能够十分真实地模拟航天器在轨运行的轨迹,这源于隐藏在视觉背后的航天动力学理论知识。当用户驾驶飞船翱翔在太阳系时,实际上是沉侵于太阳强大的引力场中。

更多关于 Orbiter 的介绍,可跳转小编的另一篇博文:Orbiter 模拟航天入门攻略 - Ch00。

2.1.2 EYES ON THE SOLAR SYSTEM

Eyes on the Solar System 是一个包含了众多 NASA 真实航天任务数据的三维仿真环境。你可以用 Eyes 在自己的电脑上畅游太阳系:登上小行星,和“旅行者”号一起飞向太阳系的边缘,并实时观看整个太阳系的运动情况。

|资源|一些开源的航空航天仿真工具软件-3514

总之,在 Eyes 的虚拟世界里,所有操作都取决于你,空间和时间任由你掌控。而以这种前所未有的方式探索太阳系,只需你点击“Launch”按钮,或是选择一个特定的任务模块即可。

2.1.3 Celestia

|资源|一些开源的航空航天仿真工具软件-1563

Celestia 是一款由 Chris Claurel 主导开发的开源天文软件,以 OpenGL 为三维图形引擎,跟据 JPL/SPICE 星历表模拟宇宙中的各种天体。

通过 Celestia,用户不仅可以鸟瞰地球,还可以畅游太阳系,以及其它多达 10 万颗星体,甚至是银河系以外的星座。在 Celestia 中,你可以远观星云,也可以近看飞行器,所有的查看和缩放都非常平滑。

Celestia 包含了巨大的天文数据库,恒星、行星、卫星、彗星以及太空飞船。如果自带的这些天体模型还满足不了你的话,你可以从 Celestia 相关社区下载并安装扩展插件。当你在 Celestia 中飞行时,不会受到速度、方向及时间的限制,可以以任何角度观赏小至人造卫星、大至星系的各种天体。

Celestia 是在 GPL 开源许可协议下发布的自由软件,目前已有 Microsoft Windows、Mac OS X 和 Linux 发行版本。此外,NASA 和 ESA 已将 Celestia 用于教育和推广项目,并将其作为轨道分析软件的接口。

2.2 航天动力学仿真

本节将对几款重量级的航天动力学仿真工具展开介绍,它们绝大多数是开源的,而且功能十分强大。此外,互联网上存在很多开放的航天动力学仿真工具,但笔者并未将它们一一囊括在本节。这样做的原因有很多,最主要的原因是很多工具既不成熟也不完整,而且大多数以库的形式存在,对用户自身的编程能力及专业要求过高。

航天动力学的主要任务是对航天器的轨道特性进行分析,传统的开普勒体系和牛顿力学并不能精确地反应真实的情况,所以考虑各种摄动力对航天器的影响显得尤为重要。下图截自 GMAT,是对考虑地球非球形引力摄动的 LEO 圆轨道所做的长时间预报仿真,可以很明显地看出,该轨道的升交点赤经在地球非球形引力摄动的长时间作用下发生了很大的漂移。

|资源|一些开源的航空航天仿真工具软件-3804

图注:考虑地球非球形引力摄动的LEO圆轨道预报仿真

2.2.1 General Mission Analysis Tool

GMAT (General Mission Analysis Tool) 是一套由 NASA 戈达德太空飞行中心主导开发的通用航天任务仿真工具,作为一款开源的通用航天任务分析仿真软件,其功能涵盖了基本的航天任务分析需求,如轨道设计、轨道优化、飞行任务分析、星座设计及行星际飞行仿真等。GMAT 的仿真精度可以与 AGI/STK 相媲美,足以将其直接应用于通用航天任务的分析与仿真工作之中。

|资源|一些开源的航空航天仿真工具软件-374

GMAT 由 GSFC 从 2002 年开始开发。随后在NASA的领导下,Thinking System, Inc 公司、 Computer Sciences Corporation 公司和 Honeywell Technology Solutions, Inc 公司参与了该软件的开发,目前 NASA 仍在招商开源伙伴合作商参与该项目的进一步研发。

GMAT 的主要特性包括:

• 高仿真度航天动力学模型;

• 图形和报表生成;

• 任务优化及目标定位;

• MATLAB & Python 编程接口;

• Apache License Version 2.0 开源许可协议;

• 跨平台:支持 Windows、MacOS X & Linux;

• 内建脚本编程;

• 用户自定义函数;

• 以及二次开发等。

当前最新版本为 2018 年 5 月发布的 GMAT R2018a。经过十多年的持续开发,GMAT 的用户手册已经相当完善,但由于文档皆用英文撰写,所以学习起来存在一定的语言障碍。

2.2.2 Orbit Determination Toolbox

ODTB (Orbit Determination ToolBox) 是由 NASA 戈达德太空飞行中心的导航与任务设计部门(Navigation & Mission Design branch at NASA GSFC)开发的一款航天器高级任务仿真分析定轨工具箱,基于 MATLAB 环境和 Java 语言实现,可用于航天任务设计的概念研究、方案分析和早期设计等阶段,特别适用于编队飞行及系统研究。

|资源|一些开源的航空航天仿真工具软件-5545

ODTB 的底层构架相当灵活,使得高级用户可以在此基础之上开发自己的导航算法及仿真程序 ODTB 的核心功能由一系列预估指令实现,并辅以蒙特卡洛(Monte Carlo)数据模拟、线性协方差分析及普通水平的测量处理功能。目前,ODTB 的主要功能逐渐移植到了 GMAT 。
2.2.3 PreviSat: Satellite Tracking For Everyone
PreviSat 是一款通过解析由美国太空监视网(Space Surveillance Network,SSN)发布并定期更新的“两行轨道根数”(Two-Line Element,TLE)实现卫星轨道预报及跟踪的开源航天仿真工具,其用户界面友好,可同时对多达数百个在轨目标的 TLE 参数进行解析。

|资源|一些开源的航空航天仿真工具软件-7413

TLE ANALYSER 内部使用来自北美空防司令部(North American Air Defense Command,NORAD)开发的 SGP4(Simplified General Perturbations Models,SGP4)和 SDP4 模型进行轨道预报,能较为精确地预报 TLE 编目卫星下一时间段的轨道位置。

2.2.4 Celestlab

Celestlab 是由 CNES (Centre National d Etudes Spatiales - French Space Agency,法国宇航局) 基于 Scilab 开发的轨道力学工具箱,可对多种航天任务进行轨迹分析及轨道设计。

|资源|一些开源的航空航天仿真工具软件-1534

工程师们可用 Celestlab 完成轨道预报、姿态计算、初步轨道机动计算、参考系转换及坐标变换等初步任务设计分析工作,其中的函数分为下面几种类型:

• 坐标及参考系:定义参考系,时间尺度,坐标类型等;

• 几何形状及事件:计算轨道几何形状及其相关事件(地面站可见性等);

• 星际航行:星际航行和三体问题;

• 数学:数学函数;

• 模型:大气密度模型,日月位置等;

• 轨道特征:太阳同步轨道,回归轨道,冻结轨道,轨道根数的漂移等;

• 相对运动:用 C-W Hill 方程分析航天器相对运动轨迹;

• 轨道及机动:轨道预报和轨道机动计算;

• 工具集:各种实用工具及多目标函数。

2.2.5 STELA

STELA (Semi-analytic Tool for End of Life Analysis,半解析全寿命分析工具) 是一款由 CNES (Centre National d Etudes Spatiales - French Space Agency,法国宇航局) 开发并维护的轨道寿命分析软件,用于支持 FSOA(French Space Operations Act),用户可免费下载并使用此软件。

|资源|一些开源的航空航天仿真工具软件-5872

STELA 体现了对 LEO 和 GEO 轨道区域保护的普遍关注(轨道寿命及保护区与报废轨道的交叉问题),并给用户提供了与需求相容的实用评估工具。它基于半解析模型和保护区评估原则,提供了针对 LEO,GEO 和 GTO 有效地长期轨道预报功能,并会在运行过程中生成一份汇总计算结果的报告文件及一份星历文件。

STELA 软件能够:1) 对给定初轨的大气再入寿命进行迭代计算;2) 计算给定寿命 GEO 交叉区的规避问题;3) 对 GTO 进行概率模型分析;4) 计算航天器的平均横截面积;5) 转换 TLE 数据。

STELA 由 JAVA 语言编写而成,能运行在装有 JRE 1.6 及以上版本(Java Runtime Environment,Java 运行时环境)的 Windows、Linux 及其诸如 Sun-Solaris 等 Unix 平台上,并能作为 JAVA 库被用户调用。

2.2.6 Tudat

Tudat (TU Delft Astrodynamics Toolbox) 是由荷兰代尔夫特理工大学航天工程学院航天动力学与航天任务研究组的教职工及学生开发并维护的 C++ 软件库集,它为用户提供了多种可用于航天动力学应用仿真的实用功能。

|资源|一些开源的航空航天仿真工具软件-4641

Tudat 是开源软件,采用 BSD-3-Clause 开源协议,用户可以自由下载使用。但较为不便的是,Tudat 开发团队并不发布编译好的二进制包供用户直接安装,而是只发布软件源码,想使用 Tudat 得先将其编译成可执行文件。

Tudat 分为 Tudat 内核(Tudat Core)和 Tudat 库(Tudat libraries)两大部分。其中 Tudat 内核只包含非常成熟的代码,功能较为有限。而 Tudat 库则大大扩展了 Tudat 内核的功能,虽然有些库可能存在一些未知的问题。

2.2.7 Orekit

Orekit (ORbit Extrapolation KIT, Orekit) 是一套基于 Java 语言编写的底层航天动力学库,旨在为航天动力学应用程序的开发提供准确有效的底层算法支撑。Orekit 被设计为可以简单地应用在各种不同的背景之下,从快速地学习到具体的操作。作为工具库,Orekit 包含了基本的元素(轨道、日期、姿态及框架等)和多样的算法来处理这些元素(坐标转换、轨道预报及定位等)。

|资源|一些开源的航空航天仿真工具软件-6475

Orekit 是开源软件,用户可以同时下载到 .jar封装库和源码,以及相关文档和测试样例。Orekit 采用对商业友好的 Apache 开源许可协议,这意味着任何人都可以使用 Orekit 来构建其它任何程序,且不要求在用户开发的代码中附带任何说明。

自 2008 年发布以来,Orekit 的应用价值得到了世界范围的广泛认可,在一些大型的航天机构中得到了具体的应用,体现在以下方面:

• Orekit 已经成功被法国宇航局和欧空局用于自动转移装置(Automated Transfer Vehicle,ATV)的任务规划和国际空间站(International Space Station,ISS)交会对接调相期间的实时监测;

• Orekit 已于2011年被法国宇航局选为下一代航天飞行动力学系统,包括操作系统、学习系统和任务分析系统;

• Orekit 已经被诸如 Eumetsat 等商业公司用于学习及地面站系统的开发;

• Orekit 已经被 ISAT 用于培训。

2.2.8 SaVi

SaVi (Satellite constellation Visualization)是一款人造卫星星座仿真软件,它具有对人造卫星(尤其是卫星星座)进行轨道预报和地面覆盖仿真分析的能力,并可以二维和三维的形式实现卫星星座可视化。

|资源|一些开源的航空航天仿真工具软件-3460

SaVi 的发行包自带诸如铱星、全球定位系统、伽利略导航系统及闪电通信卫星系统等多个卫星星座仿真示例,供用户学习使用。这从某种程度上弥补了其自身文档不足的缺陷。

SaVi 的运行依赖 Tcl/Tk 库,其三维渲染能力来自 Geomview,虽然 Geomview 并不是必须的,但它能帮助 SaVi 实现三维可视化。

SaVi 官方只发布能直接运行在 Unix 和 Linux 环境下的安装包,Windows 和 Mac OS X 用户需要通过自己编译源码的方式才能使用它。

SaVi 是自由软件,基于 BSD (Berkeley Software Distribution,BSD) 开源许可协议发布,用户可以修改其代码进行二次发布,但必须得遵守 BSD 协议的相关条款。

2.3 航天器轨迹优化

本节将介绍三款功能强大的开源航天器轨迹优化软件,其中全局优化软件 PaGMO 和通用航天任务分析软件 PyKEM 出自欧空局的先进概念团队 (ESA Advanced Concepts Team,ACT) 之手,软件质量极高。下图是 PaGMO 求解 JPL 主办的第六届国际深空探测轨迹优化设计大赛题目得到的最优结果。

|资源|一些开源的航空航天仿真工具软件-3340

图注:使用 PaGMO 求解 JPL 主办的第六届国际深空探测轨迹优化设计大赛题目得到的最优结果

2.3.1 Trajectory Optimization Tool
TOT (Trajectory Optimization Tool) 是一款由 Arrowstar 基于 MATLAB 环境开发的轨迹优化软件,它用于帮助 Orbiter 及 KSP 用户规划并实施星际转移。
|资源|一些开源的航空航天仿真工具软件-8109

KSPTOT 的主要功能包括:

•  用 Lambert 求解器绘制 Porkchop图(即 C3 能量图),以帮助确定星际转移轨道的逃逸及到达时间;

•  用 Lambert 求解器获得的数据来确定最优双曲线逃逸轨道,并计算变轨需要的推力大小及方向(即矢量)。此外,还提供航天器初始逃逸轨道的点火地点;

•  计算最优行星飞越轨迹,以最小燃料消耗到达 KSP 中诸如 Moho,Eello 等难以造访的目标星体;

•  寻找最优的双脉冲轨道机动方案,以最小的燃料消耗实现轨道调整。

Arrowstar 最初为 Orbiter 开发了 OrbiterTOT 工具,但在 Orbiter TOT v2.1 发布后就未曾更新过,转而将 TOT 移植到 KSP。目前,KSPTOT 的最新发行版本为 KSPTOT v1.6.2,仍处于活跃开发状态。

|资源|一些开源的航空航天仿真工具软件-8724

2.3.2 PaGMO

PaGMO (Parallel Global Multiobjective Optimizer, 并行全局多目标优化器),其 Python 绑定版本命名为 PyGMO。

|资源|一些开源的航空航天仿真工具软件-6458

PaGMO 的主要功能是为用户提供一个能够处理“广义岛屿模型”(Generalized Island Model)的通用并行计算引擎,它友好地为用户提供了大量的全局和局部优化算法及相关问题的求解方案。

PaGMO 最初由欧空局的先进概念团队 (ESA Advanced Concepts Team,ACT) 开发,目的是为了帮助实现星际航行轨迹和航天器轨道转移设计过程的自动化。由于 PaGMO 同时发布其 Python 绑定版本,故用户可以使用 C++ 及 Python 语言实现自己的算法并解决问题。
2.3.3 PyKEM
PyKEM 是一套专为星际航行或通用航天任务分析提供科学计算支持的基本工具库,基于 GPL 开源许可协议,由欧空局的先进概念团队 (ESA Advanced Concepts Team,ACT) 开发。

PyKEM 由 C++ 编写而成,并通过 Boost.Python 实现对 Python 语言的绑定,其算法的执行效率是开发 PyKEM 库过程中考虑的主要因素。

PyKEM 库的核心功能是实现对多圈兰伯特问题,Sims-Flanagan 小推力描述模型,开普勒预报器及Taylor 积分器等进行高效的求解。

注:感谢作者分享。另外,原文里有大量的资源链接和作者联系方式,建议有需要的继续查看原文
好书推荐,《Principles of flight simulation 》(附链接)====================以思驭行,以知为资;以学交友,以文化人;以义取财,以富报国;以身作则,以业立命。
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表