菜单

登月舱 (Luminary099)

相关源文件

概述

Luminary099是阿波罗11号任务期间控制登月舱 (LM) 的阿波罗导航计算机 (AGC) 软件。该软件负责登月舱所有关键操作,包括动力下降到月球表面、月球着陆本身、表面操作、从月球起飞以及与指令舱的会合。Luminary099代表AGC程序LMY99的001版本,日期为1969年7月14日。

有关指令舱软件的信息,请参阅指令舱 (Comanche055)

来源: README.md99-102 Luminary099/README.md9-19

系统架构

Luminary099被设计为一个复杂、集成的软件系统,具有多个相互关联的组件,并按子系统层次结构排列。该软件负责登月舱导航、制导和控制的所有方面。

高层架构

来源: Luminary099/MAIN.agc1-92 Luminary099/README.md32-107

核心运行时系统

核心运行时系统构成了Luminary099软件的基础,负责管理任务调度、内存分配和命令处理。

核心系统包括

组件文件目的
ExecutiveEXECUTIVE.agc管理多任务和程序流程控制
WaitlistWAITLIST.agc以精确的时间安排基于时间的任务
解释器INTERPRETER.agc处理动词-名词命令并处理程序执行
重启保护FRESH_START_AND_RESTART.agc管理系统初始化和恢复

来源: Luminary099/EXECUTIVE.agc Luminary099/WAITLIST.agc Luminary099/INTERPRETER.agc Luminary099/FRESH_START_AND_RESTART.agc

制导、导航与控制

GN&C子系统负责确定登月舱的位置、规划和执行机动以及控制航行器的姿态和轨迹。

数字自动驾驶仪系统

数字自动驾驶仪 (DAP) 是一个关键组件,负责控制登月舱的姿态和推力。它包括

来源: Luminary099/DAP_INTERFACE_SUBROUTINES.agc Luminary099/DAPIDLER_PROGRAM.agc Luminary099/P-AXIS_RCS_AUTOPILOT.agc Luminary099/Q_R-AXIS_RCS_AUTOPILOT.agc Luminary099/TJET_LAW.agc Luminary099/TRIM_GIMBAL_CONTROL_SYSTEM.agc Luminary099/KALMAN_FILTER.agc

来源: Luminary099/CONIC_SUBROUTINES.agc Luminary099/ORBITAL_INTEGRATION.agc Luminary099/INTEGRATION_INITIALIZATION.agc Luminary099/POWERED_FLIGHT_SUBROUTINES.agc Luminary099/IMU_COMPENSATION_PACKAGE.agc Luminary099/TIME_OF_FREE_FALL.agc

任务程序

Luminary099包含许多执行特定任务阶段的任务程序(P-codes)。每个程序都为特定的操作顺序而设计。

月球着陆程序

月球着陆是登月舱的主要任务,由几个专用程序控制。

主要着陆程序包括:

程序文件目的
P63THE_LUNAR_LANDING.agc从轨道高度下降的制动阶段
P64THE_LUNAR_LANDING.agc最终着陆点选择的进近阶段
P65-P67THE_LUNAR_LANDING.agc自动和手动着陆序列
着陆制导LUNAR_LANDING_GUIDANCE_EQUATIONS.agc下降的数学制导算法
油门控制THROTTLE_CONTROL_ROUTINES.agc下降期间的发动机功率调节

来源: Luminary099/THE_LUNAR_LANDING.agc Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.agc Luminary099/THROTTLE_CONTROL_ROUTINES.agc Luminary099/LANDING_ANALOG_DISPLAYS.agc

会合程序

在月球表面操作后,登月舱需要与指令舱会合,这需要精确的轨道机动。

关键会合程序包括:

程序文件目的
P12P12.agc从月球表面到轨道的动力上升
P20-P25P20-P25.agc会合导航与跟踪
P30-P37P30_P37.agc轨道转移规划
P32-P35/P72-P75P32-P35_P72-P75.agc会合转移机动
上升制导ASCENT_GUIDANCE.agc月球起飞的制导算法

来源: Luminary099/P12.agc Luminary099/P20-P25.agc Luminary099/P30_P37.agc Luminary099/P32-P35_P72-P75.agc Luminary099/ASCENT_GUIDANCE.agc

中止程序

安全至上,因此 Luminary099 包含专用中止程序

程序文件目的
P70P70-P71.agc下降中止 - 直接上升
P71P70-P71.agc低空下降中止

来源: Luminary099/P70-P71.agc

用户界面

宇航员通过 DSKY(显示器和键盘)界面与 AGC 进行交互,DSKY 由多个软件组件控制

用户界面包括

组件文件目的
弹球PINBALL_GAME_BUTTONS_AND_LIGHTS.agc主 UI 处理
扩展动词EXTENDED_VERBS.agc命令定义和处理
名词表PINBALL_NOUN_TABLES.agc数据格式定义
显示界面DISPLAY_INTERFACE_ROUTINES.agc输出管理
键盘中断KEYRUPT_UPRUPT.agc键盘中断处理

来源: Luminary099/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc Luminary099/EXTENDED_VERBS.agc Luminary099/PINBALL_NOUN_TABLES.agc Luminary099/DISPLAY_INTERFACE_ROUTINES.agc Luminary099/KEYRUPT_UPRUPT.agc

文件组织

Luminary099 软件被组织成大约 100 个源文件,每个文件处理特定的功能。这些文件包含在主汇编文件 (MAIN.agc) 中,该文件充当中央集成点。

组织遵循逻辑结构,相关功能分组在一起

  1. 系统定义和参数(第 1-152 页)

    • 汇编信息、常量、通道定义、标志字分配、可擦除内存分配
  2. 核心基础设施(第 153-243 页)

    • 中断、遥测、初始化、重启保护
  3. 用户界面(第 244-389 页)

    • DSKY 界面、动词、名词、显示处理
  4. 任务程序(第 390-925 页)

    • 飞行程序、制导算法、着陆、上升、交会
  5. 子系统和实用程序(第 926-1510 页)

    • 数学例程、导航、自动驾驶仪、服务例程

来源: Luminary099/MAIN.agc1-92 Luminary099/README.md32-127 Luminary099/README.md1-31

历史背景

Luminary099 是 1969 年 7 月 20 日成功引导阿波罗 11 号登月舱“鹰”号着陆月球表面的软件版本,使其成为人类最重大的技术成就之一。该软件由麻省理工学院仪器实验室(现德雷珀实验室)在 NASA 合同下开发。

原始源代码是整体性的,但在此存储库中已分为功能模块,以便于学习和理解。考虑到阿波罗制导计算机硬件严苛的内存和处理限制,该代码代表了一项卓越的工程成就。

来源: README.md85-106 Luminary099/README.md1-31