AGCcomputerul de ghidaj Apollo, explicat și pilotat
Unități

Apollo Guidance Computer32 de kilograme, 2.048 de cuvinte de memorie de lucru și o tastatură cu verbe și substantive. Așa a ajuns Eagle pe Lună.

Pagina are două părți. Mai întâi conceptele: ce face computerul, cum vorbea echipajul cu el prin DSKY (afișajul cu tastatură al computerului) și cum se orienta modulul lunar (LM). Apoi simulatorul, unde parcurgi o introducere în DSKY și trei secvențe din Apollo 11, tastă cu tastă, și vezi efectul asupra vehiculului: orientarea LM, traiectoria, ce se vede pe hublou și telemetria în timp real.

Afișajul din dreapta e un DSKY simulat care rulează acum V16 N36: monitorizează ceasul misiunii. R1 arată orele, R2 minutele, R3 secundele cu sutimi. Treci cu mouse-ul peste afișaj (sau atinge-l) ca să vezi ce înseamnă fiecare câmp.

Cum se citește DSKY
Ora 102:45:40 GET (timpul scurs de la lansare) este momentul aterizării Apollo 11. Ceasul de mai sus pornește cu puțin înainte.

1Ce este AGC

AGC era computerul de bord al navelor Apollo, proiectat la MIT Instrumentation Laboratory. Fiecare misiune lunară avea două: unul în modulul de comandă (software-ul Colossus) și unul în modulul lunar (software-ul Luminary; pentru Apollo 11, versiunea Luminary 099). LM mai avea un al doilea computer, mai simplu, construit de TRW: AGS (Abort Guidance System), care putea duce LM înapoi pe orbită dacă AGC se defecta.

16 bițipe cuvânt: 15 de date + 1 de paritate, aritmetică în complement față de unu
36.864cuvinte de memorie fixă (core rope), țesută manual, cu fire prin sau pe lângă inele de ferită
2.048cuvinte de memorie de lucru (erasable)
11,7 µsun ciclu de memorie; o adunare dura două cicluri

Treaba lui se împărțea în trei: navigație (unde sunt și cât de repede merg, din platforma inerțială (IMU), radar și stele), ghidaj (unde trebuie să ajung și ce accelerație îmi trebuie acum) și control (pornește și dozează motorul, orientează nava cu micile propulsoare de orientare, numite RCS).

Software-ul rula pe un mic sistem de operare în timp real: un Executive care pornea lucrări după prioritate și un Waitlist pentru sarcini programate la momente precise. Când avea prea mult de lucru, putea face un restart controlat și să păstreze doar ce era vital. Această proprietate a salvat aterizarea Apollo 11 (vezi alarmele 1201/1202 mai jos).

2DSKY: afișaj și tastatură

DSKY (Display and Keyboard) era singura interfață directă cu computerul. Cifrele sunt electroluminescente, verzi. În partea de sus sunt trei câmpuri de două cifre, dedesubt trei registre de câte cinci cifre cu semn.

ElementCe înseamnă
PROGprogramul major care rulează acum (de exemplu 63 = faza de frânare a coborârii).
VERBacțiunea: afișează, monitorizează, încarcă, schimbă programul, cere aprobare.
NOUNdatele asupra cărora acționează verbul: ceasul, altitudinea, vitezele, unghiurile.
R1 R2 R3cele trei valori ale substantivului. Semnul + sau − înseamnă zecimal; fără semn, octal (codurile de alarmă).
COMP ACTYse aprinde cât timp computerul execută o lucrare; când e stinsă, computerul doar așteaptă.
Lămpilealbe: KEY REL, OPR ERR (eroare de operator), STBY, NO ATT etc.; galbene: PROG (alarmă de program), RESTART, ALT și VEL (datele radarului de aterizare nu sunt bune), GIMBAL LOCK, TEMP.

În simulator, când treci cu mouse-ul peste un câmp, un registru sau o lampă a DSKY-ului, apare o explicație: ce înseamnă valoarea, în ce unități e și cum se citește formatul (de exemplu, de ce +01234 înseamnă 123,4). Pe ecran tactil atingi câmpul.

Tastele

VERB și NOUN pregătesc introducerea celor două cifre. ENTR execută. PRO (proceed) răspunde „da, continuă” la o cerere a computerului. CLR șterge ce ai tastat, RSET stinge lămpile de eroare, iar KEY REL îi dă tastatura înapoi programului după ce ai cerut tu un afișaj. + și − marchează semnul când încarci numere.

3Verb + Noun: limbajul echipajului

O comandă e o propoziție scurtă: un verb și un substantiv. VERB 1 6 NOUN 3 6 ENTR, prescurtat V16N36E, înseamnă „monitorizează (16) ceasul (36)”. Programele folosesc același limbaj în sens invers: când computerul afișează un verb și un substantiv care clipesc, îți pune o întrebare și așteaptă răspunsul (de obicei PRO).

VerbAcțiune
V05afișează în octal (de ex. N09, codurile de alarmă)
V06afișează în zecimal
V16monitorizează în zecimal, actualizat la fiecare secundă
V34încheie afișajul sau programul curent
V35testul lămpilor DSKY
V37schimbă programul (V37E, apoi numărul programului, E)
V50„te rog execută” (de ex. V50N18: rotește nava)
V57permite actualizarea altitudinii cu radarul de aterizare
V82afișează parametrii orbitei (N44)
V99„autorizezi aprinderea motorului?” (cere PRO)
NounDate (R1 / R2 / R3)
N09coduri de alarmă
N18unghiurile de orientare dorite
N33ora aprinderii (TIG)
N36ceasul AGC: ore / minute / secunde
N40timp față de aprindere / ΔV rămas / ΔV realizat
N42, N44apolună / perilună / ΔV sau timp
N61timp până la creșterea tracțiunii / timp față de aprindere / abatere laterală
N62viteză / timp față de aprindere / ΔV
N63viteză inerțială / viteză verticală / altitudine
N64timp LPD + unghi LPD / viteză verticală / altitudine
N68distanță până la sit / timp rămas / Δh
Regula de aur: verb și noun care clipesc = computerul așteaptă după tine. PRO = continuă, V34E = renunță.

4Cum introduci comenzile

Echipajele scriau comenzile prescurtat: V pentru VERB, N pentru NOUN, E pentru ENTR. V16N36E înseamnă că apeși, în ordine, VERB 1 6 NOUN 3 6 ENTR. Aceeași notație apare în pașii simulatorului.

Pas cu pas: V16N36E

ApeșiCe se vede pe DSKY
VERBcâmpul VERB se golește și așteaptă două cifre; orice clipire se oprește cât timp scrii.
1 6în VERB apare 16. O a treia cifră aprinde OPR ERR.
NOUNcâmpul NOUN se golește și așteaptă două cifre.
3 6în NOUN apare 36.
ENTRcomputerul execută comanda: R1, R2 și R3 arată orele, minutele și secundele. Cu verbul 16 valorile se actualizează la fiecare secundă.

Până la ENTR nimic nu se execută, deci poți corecta: CLR șterge câmpul pe care îl scrii, iar o nouă apăsare pe VERB sau NOUN rescrie câmpul respectiv de la zero.

Situații speciale

TasteziCe se întâmplă
V37E 63Eschimbă programul. După primul ENTR câmpul NOUN clipește gol: cele două cifre tastate acum sunt numărul programului, fără să mai apeși NOUN.
V16Everb fără substantiv: se aplică substantivului deja afișat.
V34E V35E V36E V57E V82Everbe care nu au nevoie de substantiv: încheie, test lămpi, pornire curată, folosește radarul de aterizare, parametrii orbitei.
PROrăspunde „da” la un verb și substantiv care clipesc. V34E răspunde „nu” și abandonează programul. ENTR singur nu e un răspuns.
KEY RELcât timp afișezi ceva cerut de tine (de exemplu V16N68), programul nu-și poate arăta cererile și lampa KEY REL clipește. KEY REL sau V34E îi dă tastatura înapoi.
RSETstinge lămpile OPR ERR și PROG; nu anulează nicio comandă.
+ −semnul unui număr când încarci date cu verbele 21–25. Încărcarea nu e simulată, așa că aici aprind OPR ERR.

Ce aprinde OPR ERR

Cifre tastate fără VERB sau NOUN înainte, o a treia cifră într-un câmp, un verb sau un substantiv necunoscut, un program inexistent sau nepermis acum (de exemplu P40 înainte de P30). Simulatorul afișează de fiecare dată un mesaj scurt cu motivul. Apeși RSET și reiei comanda.

Ce înțelege simulatorul

Verbele 05 (doar cu N09), 06, 16, 34, 35, 36, 37, 57 și 82; verbele 50 și 99 le afișează doar computerul, ca cereri. Substantivele 09, 18, 20, 33, 36, 40, 42, 43, 44, 45, 60, 61, 62, 63, 64, 68, 74, 76, 81, 85 și 94. Programele 00, 12, 30, 40, 63 și 68 se aleg cu V37; 64, 65 și 66 pornesc singure sau din comenzile echipajului.

Tastatura calculatorului și ecranul tactil

TastăTasta DSKY
V / NVERB / NOUN
0–9cifrele
Enter sau EENTR
PPRO
C sau EscCLR
RRSET
KKEY REL
+ / −+ / −
TastăPanoul echipajului
W / Smaneta ACA înainte / înapoi
↑ / ↓comutatorul ROD: coborâre mai lentă / mai rapidă
Yrotire 180° (fața în sus)
XENGINE STOP
Spațiupauză

ACA (Attitude Controller Assembly) este maneta cu care comandantul orientează LM; în P64 aceeași manetă mută ținta aterizării. ROD (Rate Of Descent) este comutatorul care, în P66, mărește sau micșorează viteza de coborâre cu 1 ft/s (0,3 m/s) la fiecare clic.

Pe ecran tactil apeși direct tastele DSKY. Butoanele ACA și ROD repetă comanda cât timp le ții apăsate. Fiecare pas din simulator are și butonul „Tastează pentru mine”, care apasă tastele în ordine, ca să urmărești secvența pe afișaj.

5Programe

Programele majore (afișate în PROG) sunt fazele zborului. Echipajul le alegea cu V37; unele se schimbau singure, de exemplu din P63 în P64 la poarta înaltă.

Poarta înaltă (în engleză high gate, termen preluat din aviație) este punctul în care se termină frânarea: circa 2,4 km altitudine (7.800 ft) și 7 km înainte de locul de aterizare, cu viteza redusă la circa 140 m/s. De acolo LM se ridică spre verticală, iar echipajul vede pentru prima dată locul de aterizare prin hublou. Poarta joasă (low gate) e capătul apropierii: circa 150 m altitudine și câteva sute de metri de țintă. De acolo echipajul putea lăsa computerul să aterizeze sau putea prelua controlul.

ProgramRol
P00inactiv („POO”): computerul doar navighează
P12decolarea de pe Lună cu motorul de urcare (APS)
P30încarcă o manevră calculată la sol: ora și vectorul ΔV
P40execută aprinderea motorului de coborâre (DPS) pentru acea manevră
P52alinierea platformei inerțiale după stele
P63frânarea: de la 15 km și ≈ 1.700 m/s până la poarta înaltă
P64apropierea: LM se înclină ca echipajul să vadă locul de aterizare; unghiul afișat se citește pe scala LPD (Landing Point Designator) gravată pe hublou
P65aterizare complet automată (n-a fost folosită în zbor)
P66comandantul controlează orientarea și rata de coborâre, computerul dozează motorul
P68confirmarea aterizării și poziția pe suprafață; echipajul o alege cu V37E68E după ce e sigur că nu trebuie să decoleze imediat

6Navigație și orientarea LM

Platforma inerțială (IMU) e un bloc cu giroscoape ținut fix față de stele prin trei cadre cardanice. Unghiurile dintre platformă și navă dau orientarea; accelerometrele de pe platformă dau schimbarea vitezei. Din ele AGC își ține la zi vectorul de stare: poziția și viteza.

Axele LM sunt diferite de cele ale unui avion. X merge în sus, de-a lungul tracțiunii motorului. Z merge înainte, prin hublouri și trapă. Y merge spre dreapta. Rotația în jurul lui X se numește yaw (girație), în jurul lui Y pitch (tangaj), în jurul lui Z roll (ruliu).

+X sus (tracțiune) +Z înainte +Y spre tine = dreapta pilotului privind spre +Z Vedere laterală: hublourile sunt pe fața +Z
Yaw = rotație în jurul lui X, pitch în jurul lui Y, roll în jurul lui Z.

Fața în jos, fața în sus

La frânare tracțiunea trebuie să fie aproape opusă vitezei, deci axa X stă aproape orizontal. Apollo 11 a început coborârea cu hublourile spre Lună (fața în jos), ca să recunoască repere. După câteva minute echipajul a rotit LM cu 180° în jurul axei X (yaw), cu fața în sus, ca radarul de aterizare să vadă solul. Atunci prin hublou se vedea cerul negru și Pământul. La începutul P64 nava se ridică spre verticală și solul reapare în partea de jos a hubloului.

Radarul de aterizare și Δh

Altitudinea calculată de AGC venea din navigația inerțială, cu o eroare de câteva sute de metri. Radarul de aterizare (LR) măsura altitudinea direct. Diferența, numită Δh, apărea în registrul R3 al lui N68; de aceea a cerut Aldrin V16N68. După ce controlorii de la sol au aprobat valoarea și echipajul a tastat V57E, computerul începea să folosească radarul și Δh scădea spre zero. Lămpile ALT și VEL de pe DSKY se sting când radarul a prins solul.

7Coborârea, pe faze

DOI (Descent Orbit Insertion) e o aprindere scurtă, de circa 20–25 m/s, făcută cu jumătate de orbită înainte. Coboară perilună de la circa 110 km la 15 km. PDI (Powered Descent Initiation) pornește motorul de coborâre aproape de perilună, la circa 460 km de locul de aterizare. Primele 26 de secunde merge la 10 %, cât se aliniază motorul cu centrul de masă, apoi la tracțiune maximă.

Frânarea (P63) ține până la poarta înaltă, apropierea (P64) până la poarta joasă, iar ultima sută de metri o face fie computerul (P65), fie comandantul (P66).

De ce 94 % și apoi „reducerea tracțiunii”? Motorul de coborâre (DPS) se putea regla continuu doar între 10 % și 65 % din tracțiunea nominală de 46,7 kN. Între 65 % și circa 93 % camera de ardere ablativă se eroda prea repede, așa că acolo motorul lucra doar într-o poziție fixă, la tracțiunea maximă (FTP, fixed throttle position: circa 43,9 kN, adică 94 % în simulator). Ghidajul era gândit să ceară mai mult de 65 % aproape toată frânarea, deci motorul stătea la FTP. Cu circa două minute înainte de poarta înaltă comanda scădea sub prag și motorul trecea în zona reglabilă (throttle recovery), ca să rămână marjă de corecție pentru apropiere.

suprafața Lunii (scară verticală exagerată) PDI: 15 km, ≈ 1.700 m/s P63 frânare, motor la 94 % reducerea tracțiunii, ≈ 6,5 min poarta înaltă: ≈ 2,4 km, P64 poarta joasă: ≈ 150 m P66, aterizare ≈ 460 km până la locul de aterizare, ≈ 12 minute
Valorile sunt rotunjite, pentru profilul nominal Apollo 11.

Ghidajul din Luminary calculează la fiecare 2 secunde accelerația necesară pentru a ajunge într-un punct-țintă cu viteza, accelerația și „smucitura” dorite. Timpul rămas până la țintă (TGO) se recalculează la fiecare ciclu. Simulatorul folosește aceeași formă a legii de ghidaj, cu ținte aproximate.

La Apollo 11, o mică eroare de navigație a făcut ca Eagle să fie cu circa 6 km mai departe decât plănuise. Locul spre care îl ducea computerul era chiar lângă craterul West, într-un câmp de bolovani. De aceea Armstrong a trecut în P66 și a zburat manual încă vreo 400 de metri. Simulatorul reproduce această situație.

8Alarmele 1201 și 1202

Comutatorul radarului de întâlnire era într-o poziție care făcea electronica lui să trimită spre AGC mii de impulsuri inutile pe secundă. Cauza era o nepotrivire de fază între alimentările de 800 Hz ale electronicii radarului și ale AGC: contoarele de unghi oscilau continuu, iar impulsurile mâncau 13–15 % din timpul procesorului. Când Aldrin a cerut în plus monitorizarea V16N68, rezerva de calcul s-a terminat.

Executive-ul nu mai avea zone de memorie libere pentru o nouă lucrare: 1202 înseamnă că nu mai erau „core sets”, 1201 că nu mai erau zone VAC. Computerul a făcut un restart controlat, a abandonat lucrările neesențiale și a continuat ghidajul. Au fost cinci alarme, la 316, 356, 552, 578 și 594 de secunde după PDI. Controlorii Steve Bales și Jack Garman au decis în câteva secunde că aterizarea poate continua.

În simulator, după o alarmă, afișajul revine la N63 sau N64, lampa PROG se aprinde, iar codul îl citești cu V05N09E. RSET stinge lampa.

9Despre simulator

Simulatorul nu rulează codul original Luminary (pentru asta există Virtual AGC). Reproduce comportamentul vizibil: verbe, substantive, programe, cereri care clipesc, alarme. Dedesubt rulează o fizică reală: gravitația Lunii, masa care scade odată cu consumul, limitele motorului (10–65 % sau 94 %) și o lege de ghidaj de tip Luminary.

Simplificări: zborul e plan (fără deplasare laterală), Luna e sferică și nu se rotește, platforma inerțială e perfectă, iar orientarea e redusă la tangaj și yaw. Unghiurile din N18 și N20 sunt măsurate față de verticala locală, nu față de platforma inerțială. Ghidajul se recalculează la 0,5 s (în Luminary, la 2 s). Craterele sunt generate procedural; doar craterul West e plasat intenționat lângă țintă. Eroarea inițială de altitudine a AGC (≈ 850 m) e aleasă pentru simulator. DSKY-ul real afișa unități imperiale (picioare, ft/s, mile marine); aici le poți alege din bara de sus. Implicit sunt metrice.

Cum îl folosești

Alegi un scenariu din bara de sus. Lista de pași îți spune ce tastezi și ce efect are; tastele și scurtăturile sunt descrise în secțiunea 4. Cât timp aștepți un eveniment, accelerează timpul; simulatorul revine singur la 1× când are nevoie de tine.

10Surse

Secvențele de taste, orele misiunii și valorile afișate vin din sursele de mai jos. Țintele legii de ghidaj din simulator sunt aproximări ale mele, alese astfel încât fazele să cadă la momentele din Apollo 11; nu sunt constantele din Luminary 099.

  1. Virtual AGC, Ron Burkey și colaboratorii. Folosit pentru: emulatorul AGC și DSKY, codul original Colossus și Luminary, exemplele V35E, V16N36E, V37E00E și V05N09E.
  2. Moonjs: An Online Apollo Guidance Computer Simulator, Shahriar Iravanian. Folosit pentru: Virtual AGC rulat în browser; exemple de comenzi (V16N65E, V06N62E, V91E).
  3. Apollo Guidance Computer Simulator, Mau0x80, GitHub. Folosit pentru: lămpile și tastele DSKY, scurtăturile de tastatură. Atenție: tabelul lor de faze trece PDI la 101:36:14, care e de fapt ora DOI; PDI a fost la 102:33:05.
  4. Tales from the Lunar Module Guidance Computer, Don Eyles. Folosit pentru: secvența V16N68 și alarmele 1202, conținutul N63, N64 și N68, unghiul LPD.
  5. LGC-Astronaut Interfaces During Landing (Luminary 1D), Don Eyles. Folosit pentru: conținutul N61, N62, N63, N64, N68 și N60, selectarea P68 cu V37E68E, redesemnarea LPD, comutatorul ROD (1 ft/s pe clic).
  6. A User’s Guide to the Luminary 1A Lunar Landing Programs, George W. Cherry și Don Eyles (MIT). Folosit pentru: condițiile nominale la PDI și la poarta înaltă (≈ 2,4 km, ≈ 7 km, ≈ 140 m/s).
  7. Apollo Experience Report: Descent and Ascent (TN D-6846), NASA. Folosit pentru: profilurile nominale ale coborârii și urcării Apollo 11.
  8. Apollo Operations Handbook, LM, secțiunea LGC/DSKY (LMA790-3-LM 4.4), NASA / Grumman. Folosit pentru: regulile DSKY: afișaje care clipesc, KEY REL, restricții pentru verbe și substantive.
  9. GSOP R-567, secțiunea 4: programele LM, MIT Instrumentation Laboratory. Folosit pentru: P12: ridicare verticală până la 40 ft/s, apoi înclinarea spre orizontală.
  10. Luminary 069, P12.agc, Virtual AGC. Folosit pentru: datele afișate în N76 la decolare.
  11. Simple AGC, NASSP (Project Apollo pentru Orbiter). Folosit pentru: succesiunea N62, V99N62 și N63 la PDI; semnificația N64 și N68.
  12. LM Descent to the Moon, Part 1: Theory and Software, Exo Cruiser. Folosit pentru: valorile N63 la aprindere, tracțiunea maximă de 43.900 N după 26 s, unghiul LPD de 33° la poarta joasă.
  13. Apollo 11 1201 and 1202 alarms, Space Daily, după analiza MIT din 4 august 1969. Folosit pentru: momentele celor cinci alarme: 316, 356, 552, 578 și 594 s după PDI.
  14. The Apollo 11 Moon Landing, We Hack the Moon (Draper). Folosit pentru: stingerea lămpilor ALT și VEL la ≈ 38.000 ft și cauza alarmelor 1202.