P12 es el programa de guía AGC para el ascenso normal desde la superficie lunar a la órbita. Según los documentos de planificación de la misión , después de la separación y el encendido, la etapa de ascenso mantiene su actitud inicial durante dos segundos (para salir de la etapa de descenso) antes de inclinarse hacia la vertical lunar; permanece vertical durante otros 8 segundos más o menos, luego comienza un cabeceo gradual de vertical a horizontal en el transcurso de la quemadura.
Sin la carga de la atmósfera, la ruta de ascenso óptima debería estar bastante cerca de la ley de dirección tangente lineal , pero el video desde dentro de la cabina del LM muestra que al menos la parte inicial del ascenso parece inclinarse en pasos discretos como se indica en esta pregunta .
Sin embargo, según el documento, "la lógica de guía de la fase de inserción está definida por un comando de aceleración que es una función lineal del tiempo"; no está claro en el texto si la fase de inserción es un estado separado de la primera parte del ascenso.
¿Puede alguien más fluido en el código AGC que yo explicar el funcionamiento de P12 (fuente en github) con un poco más de detalle?
En particular:
Para responder a las subpreguntas de @Russell:
Mi análisis aún no es lo suficientemente lejos como para explicar completamente los cálculos de actitud versus tiempo.
Aunque se realizan muchos cálculos antes de la grabación, también se realizan cálculos adicionales dentro del ciclo de grabación, por lo que estoy bastante seguro de que es un proceso continuo . Hay varias banderas que se configuran o borran durante el proceso de ascenso; al parecer asi se hacen las fases de ascenso, pero aun estoy analizando como se hace.
Todavía no he encontrado nada parecido a las fórmulas del artículo de Frank Perkins sobre las leyes de dirección lineal-tangente. Quizás las fórmulas que se usan en realidad son matemáticamente equivalentes; todavía no estoy del todo ahí.
Las misiones Apolo llevaban dos computadoras de guía casi idénticas. El software para la computadora del módulo de comando se llamó "Colossus" y más tarde "Comanche"; el software del Módulo Lunar se llamó "Luminary". Los programadores intentaron reutilizar el código tanto como fuera posible entre los dos sistemas, así como entre operaciones similares en el mismo sistema. Esto significa que hay una gran cantidad de variables globales que ayudan a las subrutinas a saber para qué están siendo llamadas. El CM y el LEM también se contactan ocasionalmente por radio, dándose sus posiciones y velocidades en el espacio, para facilitar el encuentro.
Los astronautas normalmente despegaban de la superficie lunar ejecutando el programa P12 "Guiado de ascenso motorizado". El código fuente está en Luminary/P12.agc . Las líneas 35-53 limpian los procesos/tareas existentes que se ejecutan en la computadora e inicializan las variables globales que necesitan las subrutinas. La interfaz de usuario de DSKY se configura en las líneas 55-72. En las líneas 73-74 GUIDINIT
se llama a la subrutina (líneas 222-236), que transforma la posición del LEM en coordenadas lunares en coordenadas universales. Las líneas 75-76 establecen una bandera global que indica un estado previo al encendido. En la línea 77, P12INIT
se llama a la subrutina (líneas 179-199), que inicializa los globales del motor a los del motor de ascenso . Esto continúa en la subrutinaCOMMINIT
(líneas 200-215), que transforma las coordenadas del CM "objetivo" en coordenadas universales. El control vuelve a las líneas 79-84, que llama LEMPREC
a integrar la órbita prevista por el método de Encke. Las líneas 85-109 calculan los valores de rango cruzado y apoluno de la ruta de vuelo prevista, que se muestran a los astronautas (líneas 110-113).
Luego, la computadora espera a que el astronauta presione el botón CONTINUAR (líneas 111-116). Se realizan algunos cálculos vectoriales (líneas 118-143), se establece una bandera que indica el ascenso vertical (144-145) y luego el control salta a ASCENT
(ver más abajo). Regresa, calcula algunas correcciones de cabeceo y guiñada (líneas 147-166), desactiva el estado de preignición (168-169) y luego salta a BURNBABY
(171-177).
BURNBABY
en el archivo Luminary/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc es una rutina muy utilizada para iniciar el motor de descenso o ascenso. La persona que llama pasa un puntero a una tabla con varios parámetros, incluidas las direcciones de las subrutinas para devolver la llamada cuando ocurren ciertos eventos. BURNBABY
bifurca varios procesos que realizan una quema de vacío del RCS según sea necesario (no es necesario para P12), enciende el motor, lee los sensores, vuelve a calcular la posición y la velocidad del LEM, consulta al CSM su posición y velocidad, actualiza la pantalla DSKY y espera para el final de la quemadura. Una de las tareas vuelve a llamar periódicamente a la subrutina ATMAG
, que a su vez llama ASCENT
.
ASCENT
en el archivo Luminary/ASCENT_GUIDANCE.agc es donde se realizan los cálculos en vuelo durante el ascenso lunar. Necesito otro día para examinarlo. Espero terminar esta respuesta mañana.
Marca