P12 ist das AGC- Führungsprogramm für den normalen Aufstieg von der Mondoberfläche in die Umlaufbahn. Gemäß den Missionsplanungsdokumenten behält die Aufstiegsstufe nach der Trennung und Zündung ihre anfängliche Lage für zwei Sekunden bei (um sich von der Abstiegsstufe zu lösen), bevor sie sich in die Mondsenkrechte neigt; es bleibt etwa weitere 8 Sekunden lang vertikal und beginnt dann im Verlauf des Brennens mit einem allmählichen Pitchover von vertikal zu horizontal.
Unbelastet von der Atmosphäre sollte der optimale Aufstiegspfad ziemlich nahe am linearen Tangenten-Lenkungsgesetz liegen , aber ein Video aus der Kabine des LM zeigt, dass zumindest der frühe Teil des Aufstiegs in diskreten Schritten zu verlaufen scheint, wie in dieser Frage erwähnt .
Gemäß dem Dokument wird jedoch "die Führungslogik der Einführungsphase durch einen Beschleunigungsbefehl definiert, der eine lineare Funktion der Zeit ist"; Aus dem Text geht nicht klar hervor, ob die Insertionsphase ein vom frühen Teil des Aufstiegs getrennter Zustand ist.
Kann jemand, der sich besser mit AGC-Code auskennt als ich, die Funktionsweise von P12 (Quelle auf Github) etwas detaillierter erklären?
Insbesondere:
So beantworten Sie die Teilfragen von @Russell:
Meine Analyse ist noch nicht weit genug, um die Einstellung gegenüber Zeitberechnungen vollständig zu erklären.
Obwohl vor dem Brennen viele Berechnungen durchgeführt werden, gibt es auch zusätzliche Berechnungen innerhalb der Brennschleife, daher bin ich ziemlich zuversichtlich, dass es sich um einen kontinuierlichen Prozess handelt. Es gibt mehrere Flags, die während des Aufstiegsprozesses gesetzt oder gelöscht werden; Anscheinend werden die Aufstiegsphasen so durchgeführt, aber ich analysiere noch, wie es gemacht wird.
Ich habe noch nichts wie die Formeln in Frank Perkins 'Papier über Linear-Tangens-Steuerungsgesetze gefunden. Vielleicht sind die tatsächlich verwendeten Formeln mathematisch gleichwertig - so weit bin ich noch nicht.
Apollo-Missionen trugen zwei nahezu identische Leitcomputer. Die Software für den Command Module-Computer hieß "Colossus" und später "Comanche"; die Software für die Mondlandefähre hieß "Luminary". Die Programmierer versuchten, den Code so weit wie möglich zwischen den beiden Systemen sowie zwischen ähnlichen Operationen auf demselben System wiederzuverwenden. Dies bedeutet, dass es eine große Anzahl globaler Variablen gibt, die Unterroutinen dabei helfen, zu wissen, was sie aufgerufen werden. Das CM und das LEM kontaktieren sich gelegentlich auch per Funk und teilen sich gegenseitig ihre Positionen und Geschwindigkeiten im Raum mit, um ein Rendezvous zu ermöglichen.
Astronauten starteten normalerweise von der Mondoberfläche, indem sie das Programm P12 „Powered Ascent Guidance“ ausführten. Der Quellcode befindet sich in Luminary/P12.agc . Die Zeilen 35-53 bereinigen die vorhandenen Prozesse/Aufgaben, die auf dem Computer ausgeführt werden, und initialisieren globale Variablen, die von Unterroutinen benötigt werden. Die DSKY-Benutzeroberfläche wird in den Zeilen 55-72 konfiguriert. In den Zeilen 73-74 wird die GUIDINIT
Unterroutine aufgerufen (Zeilen 222-236), die die Position des LEM in Mondkoordinaten in universelle Koordinaten umwandelt. Die Zeilen 75–76 setzen ein globales Flag, das einen Vorzündungszustand anzeigt. In Zeile 77 wird die P12INIT
Subroutine aufgerufen (Zeile 179-199), die die Engine-Globalwerte auf die der Aufstiegs -Engine initialisiert. Dies setzt sich in der Subroutine fortCOMMINIT
(Zeile 200-215), die die Koordinaten des "Ziel"-CM in universelle Koordinaten umwandelt. Die Steuerung kehrt zu den Zeilen 79–84 zurück, die die LEMPREC
Integration des beabsichtigten Orbits durch das Encke-Verfahren aufrufen. Die Zeilen 85-109 berechnen die Cross-Range- und Apolune-Werte der beabsichtigten Flugbahn, die den Astronauten angezeigt werden (Zeile 110-113).
Der Computer wartet dann darauf, dass der Astronaut die PROCEED-Taste drückt (Zeile 111-116). Es werden einige Vektorberechnungen durchgeführt (Zeilen 118-143), ein Flag wird gesetzt, das den vertikalen Anstieg anzeigt (144-145), und dann springt die Steuerung zu ASCENT
(siehe unten). Es kehrt zurück, berechnet einige Neigungs- und Gierkorrekturen (Zeilen 147-166), schaltet den Vorzündungszustand aus (168-169) und springt dann zu BURNBABY
(171-177).
BURNBABY
in der Datei Luminary/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc ist eine weit verbreitete Routine zum Starten des Abstiegs- oder Aufstiegstriebwerks. Der Aufrufer übergibt einen Zeiger auf eine Tabelle mit verschiedenen Parametern, einschließlich der Adressen von Unterroutinen, die bei bestimmten Ereignissen zurückgerufen werden sollen. BURNBABY
verzweigt mehrere Prozesse, die bei Bedarf eine Freiraumverbrennung des RCS durchführen (nicht erforderlich für P12), den Motor zünden, Sensoren lesen, die Position und Geschwindigkeit des LEM neu berechnen, das CSM nach seiner Position und Geschwindigkeit abfragen, die DSKY-Anzeige aktualisieren und warten für das Ende des Brennens. Eine der Tasks ruft periodisch die Subroutine zurück ATMAG
, die wiederum aufruft ASCENT
.
ASCENT
in der Datei Luminary/ASCENT_GUIDANCE.agc werden die Flugberechnungen während des Mondaufstiegs durchgeführt. Ich brauche noch einen Tag, um es zu untersuchen. Ich hoffe, diese Antwort morgen zu beenden.
Markieren