# Copyright: Public domain. # Filename: Q_R-AXIS_RCS_AUTOPILOT.agc # Purpose: Part of the source code for Luminary 1A build 099. # It is part of the source code for the Lunar Module's (LM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: Ron Burkey <info@sandroid.org>. # Website: www.ibiblio.org/apollo. # Pages: 1442-1459 # Mod history: 2009-05-27 RSB Adapted from the corresponding # Luminary131 file, using page # images from Luminary 1A. # 2009-06-07 RSB Corrected "DEC 96.0" to "DEC 96", since # the former is not compatible with yaYUL. # # This source code has been transcribed or otherwise adapted from # digitized images of a hardcopy from the MIT Museum. The digitization # was performed by Paul Fjeld, and arranged for by Deborah Douglas of # the Museum. Many thanks to both. The images (with suitable reduction # in storage size and consequent reduction in image quality as well) are # available online at www.ibiblio.org/apollo. If for some reason you # find that the images are illegible, contact me at info@sandroid.org # about getting access to the (much) higher-quality images which Paul # actually created. # # Notations on the hardcopy document read, in part: # # Assemble revision 001 of AGC program LMY99 by NASA 2021112-061 # 16:27 JULY 14, 1969
# Page 1442 BANK17 SETLOC DAPS2 BANK
EBANK= CDUXD
COUNT* $$/DAPQR
CALLQERR CA BIT13 # CALCULATE Q,R ERRORS UNLESS THESE AXES EXTEND# ARE IN MANUAL RATE COMMAND.
RAND CHAN31 CCS A TCF +5# IN AUTO COMPUTE Q,R ERRORS CS DAPBOOLS # IN MANUAL RATE COMMAND? MASK OURRCBIT EXTEND BZF Q,RORGTS # IF SO BYPASS CALCULATION OF ERRORS. TC QERRCALC
Q,RORGTS CCS COTROLER # CHOOSE CONTROL SYSTEM FOR THIS DAP PASS: TCF GOTOGTS # GTS (ALTERNATES WITH RCS WHEN DOCKED) TCF TRYGTS # GTS IF ALLOWED, OTHERWISE RCS
RCS CAF ZERO # RCS (TRYGTS MAY BRANCH TO HERE) TS COTROLER
DXCH EDOTQ TC ROT-TOUV DXCH OMEGAU
# X - TRANSLATION # # INPUT: BITS 7,8 OF CH31 (TRANSLATION CONTROLLER) # ULLAGER # APSFLAG, DRIFTBIT # ACC40R2X, ACRBTRAN # # OUTPUT: NEXTU, NEXTV CODES OF TRANSLATION FOR AFTER ROTATION # SENSETYP TELL ROTATION DIRECTION AND DESIRE # # X-TRANS POLICIES ARE EITHER 4 JETS OR A DIAGONAL PAIR. IN 2-JET TRANSLATION THE SYSTEM IS SPECIFIED. A FAILURE # WILL OVERRIDE THIS SPECIFICATION. AN ALARM RESULTS WHEN NO POLICY IS AVAILABLE BECAUSE OF FAILURES.
SENSEGET CA BIT7 # INPUT BITS OVERRIDE THE INTERNAL BITS EXTEND# SENSETYP WILL NOT OPPOSE ANYTRANS
RAND CHAN31 EXTEND BZF +X0RULGE # Page 1443 CA BIT8 EXTEND
RAND CHAN31 EXTEND BZF -XTRANS
CA ULLAGER MASK DAPBOOLS CCS A TCF +X0RULGE
TS NEXTU # STORE NULL TRANSLATION POLICIES TS NEXTV CS DAPBOOLS # BURNING OR DRIFTING? MASK DRIFTBIT EXTEND BZF TSENSE CA FLGWRD10 # DPS (INCLUDING DOCKED) OR APS? MASK APSFLBIT CCS A CAF TWO # FAVOR +X JETS DURING AN APS BURN.
TSENSE TS SENSETYP TCF QRCONTRL
+X0RULGE CAF ONE
-XTRANS AD FOUR TS ROTINDEX AD NEG3 TS SENSETYP # FAVOR APPROPRIATE JETS DURING TRANS. CA DAPBOOLS MASK ACC4OR2X CCS A TCF TRANS4
CA DAPBOOLS MASK AORBTRAN CCS A CA ONE # THREE FOR B AD TWO # TWO FOR A SYSTEM 2 JET X TRANS
TSNUMBRT TS NUMBERT
# Q,R-AXES RCS CONTROL MODE SELECTION # SWITCHES INDICATION WHEN SET # BIT13/CHAN31 AUTO, GO TO ATTSTEER # PULSES MINIMUM IMPULSE MODE # (OTHERWISE) RATE COMMAND/ATTITUDE HOLD MODE
QRCONTRL CA BIT13 # CHECK MODE SELECT SWITCH. EXTEND
RAND CHAN31 # BITS INVERTED CCS A TCF ATTSTEER
CHKBIT10 CAF PULSES # PULSES = 1 FOR MIN IMP USE OF RHC MASK DAPBOOLS EXTEND BZF CHEKSTIK # IN ATT-HOLD/RATE-COMMAND IF BIT10=0
# MINIMUM IMPULSE MODE
INHINT TC IBNKCALL CADR ZATTEROR CA ZERO TS QERROR TS RERROR # FOR DISPLAYS RELINT
EXTEND READ CHAN31 TS TEMP31 # IS EQUAL TO DAPTEMP1 CCS OLDQRMIN TCF CHECKIN
# RATE COMMAND MODE: # # DESCRIPTION (SAME AS P-AXIS)
CHEKSTIK TS INGTS # NOT IN GTS WHEN IN ATT HOLD CS ONE # 1/ACCS WILL DO THE NULLING DRIVES TS COTROLER # COME BACK TO RCS NEXT TIME CA BIT15 MASK CH31TEMP EXTEND BZF RHCACTIV # BRANCH IF OUT OF DETENT. CA OURRCBIT # *********** MASK DAPBOOLS # *IN DETENT* CHECK FOR MANUAL CONTROL EXTEND# *********** LAST TIME. BZF STILLRCS CS BIT9 MASK RCSFLAGS TS RCSFLAGS # BIT 9 IS 0. TCF DAMPING 40CYCL OCT50 1/10S OCT1
LINRAT DEC46
DAMPING CA ZERO TS SAVEHAND TS SAVEHAND +1
RHCACTIV CCS SAVEHAND # ****************** TCF +3# Q,R MANUAL CONTROL WC = A*(B+|D|)*D TCF +2# ****************** TCF +1 DOUBLE# WHERE DOUBLE# AD LINRAT # WC = COMMANDED ROTATIONAL RATE EXTEND# A = QUADRATIC SENSITIVITY FACTOR MP SAVEHAND # B = LINEAR/QUADRATIC SENSITIVITY CA L # |D| = ABS. VALUE OF DEFLECTION EXTEND# D = HAND CONTROLLER DEFLECTION MP STIKSENS XCH QLAST # COMMAND Q RATE, SCALED 45 DEG/SEC
COM # Page 1447 AD QLAST TS DAPTEMP3 CCS SAVEHAND +1 TCF +3 TCF +2 TCF +1 DOUBLE DOUBLE AD LINRAT EXTEND MP SAVEHAND +1 CA L EXTEND MP STIKSENS XCH RLAST
COM AD RLAST TS DAPTEMP4 CS QLAST # INTERVAL. AD OMEGAQ TS QRATEDIF CS RLAST AD OMEGAR TS RRATEDIF
ENTERQR DXCH QRATEDIF # TRANSFORM RATES FROM Q,R TO U,V AXES TC ROT-TOUV DXCH URATEDIF CCS DAPTEMP3 # CHECK IF Q COMMAND CHANGE EXCEEDS TC +3# BREAKOUT LEVEL. IF NOT, CHECK R. TC +2 TC +1 AD -RATEDB EXTEND BZMF +2 TCF ENTERUV -2# BREAKOUT LEVEL EXCEEDED. DIRECT RATE. CCS DAPTEMP4 # R COMMAND BREAKOUT CHECK. TC +3 TC +2 TC +1 AD -RATEDB EXTEND BZMF +2 TCF ENTERUV -2# BREAKOUT LEVEL EXCEEDED. DIRECT RATE. CA RCSFLAGS # BREAKOUT LEVEL NOT EXCEEDED. CHECK FOR MASK QRBIT # DIRECT RATE CONTROL LAST TIME. EXTEND BZF +2 TCF ENTERUV # CONTINUE DIRECT RATE CONTROL. TCF STILLRCS # PSEUDO-AUTO CONTROL. CA40CYCL # Page 1448 TS TCQR
ENTERUV INHINT# DIRECT RATE CONTROL TC IBNKCALL
FCADR ZATTEROR RELINT CA ZERO TS DYERROR TS DYERROR +1 TS DZERROR TS DZERROR +1 CCS URATEDIF TCF +3 TCF +2 TCF +1 AD TARGETDB # IF TARGET DB IS EXCEEDED, CONTINUE EXTEND# DIRECT RATE CONTROL. BZMF VDB CCS VRATEDIF TCF +3 TCF +2 TCF +1 AD TARGETDB EXTEND BZMF +2 TCF QRTIME CA ZERO TS VRATEDIF TCF QRTIME
VDB CCS VRATEDIF TC +3 TC +2 TC +1 AD TARGETDB # IF TARGET DB IS EXCEEDED, CONTINUE EXTEND# DIRECT RATE CONTROL. IF NOT, FIRE AND BZMF TOPSEUDO # SWITCH TO PSEUDO-AUTO CONTROL ON NEXT CA ZERO # PASS. TS URATEDIF
QRTIME CA TCQR # DIRECT RATE TIME CHECK. EXTEND BZMF +5# BRANCH IF TIME EXCEEDS 4 SEC. CS RCSFLAGS MASK QRBIT ADS RCSFLAGS # BIT 11 IS 1. TC +4
TOPSEUDO CS QRBIT MASK RCSFLAGS TS RCSFLAGS # BIT 11 IS 0. CA HANDADR TS RETJADR CA ONE
# Page 1449
BACKHAND TS AXISCTR
CA FOUR TS NUMBERT
INDEX AXISCTR INDEX SKIPU TCF +1 CA FOUR INDEX AXISCTR TS SKIPU TCF LOOPER
INDEX AXISCTR CCS URATEDIF # INDEX AXIS QUANTITY CA ZERO # 0 -U 1/JETACC-AOSU TCF +2# 1 +U 1/JETACC+AOSU CA ONE # 16 -V 1/JETACC-AOSV INDEX AXISCTR # 17 +V 1/JETACC+AOSV AD AXISDIFF # JETACC = 2 JET ACCELERATION (1 FOR FAIL)
INDEX A CS1/ANET2 +1 EXTEND INDEX AXISCTR # UPRATEDIF IS SCALED AT PI/4 RAD/SEC MP URATEDIF # JET TIME IN A, SCALED 32 SEC TS Q DAS A AD Q TS A # OVERFLOW SKIP TCF +2 CA Q # RIGHT SIGN AND BIGGER THAN 150MS
SETTIME INDEX AXISCTR TS TJU # SCALED AT 10.67 WHICH IS CLOSE TO 10.24 TCF AFTERTJ
ZEROTJ CA ZERO TCF SETTIME
HANDADR GENADR BACKHAND
# GTS WILL BE TRIED IF # 1. USEQRJTS = 0, # 2. ALLOWGTS POS, # 3. JETS ARE OFF (Q,R-AXES)
TRYGTS CAF USEQRJTS # IS JET USE MANDATORY. (AS LONG AS MASK DAPBOOLS # USEQRJTS BIT IS NOT BIT 15, CCS IS SAFE.) CCS A TCF RCS CCS ALLOWGTS # NO. DOES AOSTASK OK CONTROL FOR GTS? # Page 1450 TCF +2 TCF RCS EXTEND READ CHAN5 CCS A TCF CHKINGTS
GOTOGTS EXTEND DCA GTSCADR
DTCB
CHKINGTS CCS INGTS # WAS THE TRIM GIMBAL CONTROLLING TCF +2# YES. SET UP A DAMPED NULLING DRIVE. TCF RCS # NO. NULLING WAS SET UP BEFORE. DO RCS. INHINT TC IBNKCALL CADR TIMEGMBL RELINT CAF ZERO TS INGTS TCF RCS
EBANK= CDUXD
GTSCADR 2CADR GTS
# Page 1451 # SUBROUTINE TO COMPUTE Q,R-AXES ATTITUDE ERRORS FOR USE IN THE RCS AND GTS CONTROL LAWS AND THE DISPLAYS.
QERRCALC CAE CDUY # Q-ERROR CALCULATION EXTEND MSU CDUYD # CDU ANGLE -- ANGLE DESIRED (Y-AXIS) TS DAPTEMP1 # SAVE FOR RERRCALC EXTEND MP M21 # (CDUY-CDUYD)*M21 SCALED AT PI RADIANS TS E
CAE CDUZ # SECOND TERM CALCULATION: EXTEND MSU CDUZD # CDU ANGLE -ANGLE DESIRED (Z-AXIS) TS DAPTEMP2 # SAVE FOR RERRCALC EXTEND MP M22 # (CDUZ-CDUZD)*M22 SCALED AT PI RADIANS AD DELQEROR # KALCMANU INERFACE ERROR AD E XCH QERROR # SAVE Q-ERROR FOR EIGHT-BALL DISPLAY.
RERRCALC CAE DAPTEMP1 # R-ERROR CALCULATION: EXTEND# CDU ANGLE -ANGLE DESIRED (Y-AXIS) MP M31 # (CDUY-CDUYD)*M31 SCALED AT PI RADIANS TS E
CAE DAPTEMP2 # SECOND TERM CALCULATION: EXTEND# CDU ANGLE -ANGLE DESIRED (Z-AXIS) MP M32 # (CDUZ-CDUZD)*M32 SCALED AT PI RADIANS AD DELREROR # KALCMANU INERFACE ERROR AD E XCH RERROR # SAVE R-ERROR FOR EIGHT-BALL DISPLAY. TC Q
# Page 1452 # "ATTSTEER" IS THE ENTRY POINT FOR Q,R-AXES (U,V-AXES) ATTITUDE CONTROL USING THE REACTION CONTROL SYSTEM
ATTSTEER EQUALS STILLRCS # "STILLRCS" IS THE RCS EXIT FROM TRYGTS.
STILLRCS CA RERROR LXCH A CA QERROR TC ROT-TOUV DXCH UERROR
# PREPARES CALL TO TJETLAW (OR SPSRCS(DOCKED)) # PREFORMS SKIP LOGIC ON U OR Y AXIS IF NEEDED.
TJLAW CA TJLAWADR TS RETJADR CA ONE TS AXISCTR INDEX AXISCTR INDEX SKIPU TCF +1 CA FOUR INDEX AXISCTR TS SKIPU TCF LOOPER INDEX AXISCTR CA UERROR TS E INDEX AXISCTR CA OMEGAU TS EDOT CA DAPBOOLS MASK CSMDOCKD CCS A TCF +3 TC TJETLAW TCF AFTERTJ
+3CS DAPBOOLS # DOCKED. IF GIMBAL USABLE DO GTS CONTROL MASK USEQRJTS # ON THE NEXT PASS. CCS A # USEQRJTS BIT MUST NOT BE BIT 15. TS COTROLER # GIMBAL USABLE. STORE POSITIVE VALUE. INHINT TC IBNKCALL CADR SPSRCS # DETERMINE RCS CONTROL RELINT CAF FOUR # ALWAYS CALL FOR 2-JET CONTROL ABOUT U,V. TS NUMBERT # FALL THROUGH TO JET SELECTION, ETC.
# Q,R-JET-SELECTION-LOGIC # # INPUT: AXISCTR 0,1 FOR U,V # SNUFFBIT ZERO TJETU,V AND TRANS. ONLY IF SET IN A DPS BURN # Page 1453 # TJU,TJV JET TIME SCALED 10.24 SEC. # NUMBERT INDICATES NUMBER OF JETS AND TYPE OF POLICY # RETJADR WHERE TO RETURN TO # # OUTPUT: NO.U(V)JETS RATE DERIVATION FEEDBACK # CHANNEL 5 # SKIPU,SKIPV FOR LESS THAN 150MS FIRING # # NOTES: IN CASE OF FAILURE IN DESIRED ROTATION POLICY, "ALL" UNFAILED # JETS OF THE DESIRED POLICY ARE SELECTED. SINCE THERE ARE ONLY # TWO JETS, THIS MEANS THE OTHER ONE OR NONE. THE ALARM IS SENT # IF NONE CAN BE FOUND. # # TIMES LESS THAN 14 MSEC ARE TAKEN TO CALL FOR A SINGLE-JET # MINIMUM IMPULSE, WITH THE JET CHOSEN SEMI-RANDOMLY.
AFTERTJ CA FLAGWRD5 # IF SNUFFBIT SET DURING A DPS BURN GO TO MASK SNUFFBIT # XTRANS; THAT IS, INHIBIT CONTROL. EXTEND BZF DOROTAT CS FLGWRD10 MASK APSFLBIT EXTEND BZF DOROTAT CA DAPBOOLS MASK DRIFTBIT EXTEND BZF XTRANS
DOROTAT CAF TWO TS L INDEX AXISCTR CCS TJU TCF +5 TCF NOROTAT TCF +2 TCF NOROTAT
ZL AD ONE TS ABSTJ
CA AXISCTR AD L TS ROTINDEX # 0 1 2 3 = -U -V +U +V
CA ABSTJ AD -150MS EXTEND BZMF DOSKIP # Page 1454 TC SELCTSUB
INDEX AXISCTR CA INDEXES TS L
CA POLYTEMP INHINT INDEX L TC WRITEP
RELINT TCF FEEDBACK
NOROTAT INDEX AXISCTR CA INDEXES INHINT INDEX A TC WRITEP -1
ADS ABSTJ INDEX AXISCTR CCS TJU CA +TJMINT6 TCF +2 CS +TJMINT6 INDEX AXISCTR TS TJU
CCS SENSETYP # ENSURE MIN-IMPULSE NOT AGAINST TRANS TCF NOTMIN -1 EXTEND READ LOSCALAR MASK ONE TS NUMBERT
NOTMIN TC SELCTSUB
INDEX AXISCTR CA INDEXES INHINT # Page 1455 TS T6FURTHA +1 CA POLYTEMP INDEX T6FURTHA +1 TC WRITEP
CA ABSTJ TS T6FURTHA TC JTLST # IN QR BANK BY NOW
RELINT
CA ZERO INDEX AXISCTR TS SKIPU
FEEDBACK CS THREE AD NUMBERT EXTEND BZMF +3
CA TWO TCF +2 CA ONE INDEX AXISCTR TS NO.UJETS TCF LOOPER
XTRANS CA ZERO TS TJU TS TJV CA FOUR INHINT XCH SKIPU EXTEND BZF +2 TC WRITEU -1 CA FOUR XCH SKIPV RELINT
EXTEND BZF CLOSEOUT INHINT TC WRITEV -1 RELINT
TCF CLOSEOUT
INDEXES DEC4 DEC13
+TJMINT6 DEC22 # Page 1456
-150MS DEC -240
BIT8,9OCT00600
SCLNORM OCT266
TJLAWADR GENADR TJLAW +3# RETURN ADDRESS FOR RCS ATTITUDE CONTROL
# THE JET LIST: # THIS IS A WAITLIST FOR T6RUPTS. # # CALLED BY: # CA TJ # TIME WHEN NEXT JETS WILL BE WRITTEN # TS T6FURTHA # CA INDEX # AXIS TO BE WRITTEN AT TJ (FROM NOW) # TS T6FURTHA +1 # TC JTLST # # EXAMPLE -- U-AXIS AUTOPILOT WILL WRITE ITS ROTATION CODE OF # JETS INTO CHANNEL 5. IF IT DESIRES TO TURN OFF THIS POLICY WITHIN # 150MS AND THEN FIRE NEXTU, A CALL TO JTLST IS MADE WITH T6FURTHA # CONTAINING THE TIME TO TURN OFF THE POLICY, T6FURTHA +1 THE INDEX # OF THE U-AXIS(4), AND NEXTU WILL CONTAIN THE "U-TRANS" POLICY OR ZERO. # # THE LIST IS EXACTLY 3 LONG. (THIS LEADS UP TO SKIP LOGIC AND 150MS LIMIT) # THE INPUT IS THE LAST MEMBER OF THE LIST. # # RETURNS BY: # + TC Q # # DEFINITIONS: (OUTPUT) # TIME6 TIME OF NEXT RUPT # T6NEXT DELTA TIME TO NEXT RUPT # T6FURTHA DELTA TIME FROM 2ND TO LAST RUPT # NXT6ADR AXIS INDEX 0 -- P-AXIS # T6NEXT +1 AXIS INDEX 4 -- U-AXIS # T6FURTHA +1 AXIS INDEX 13 -- V-AXIS
JTLST CS T6FURTHA AD TIME6 EXTEND BZMF MIDORLST # TIME6 -- TI IS IN A
# Page 1457
MIDORLST AD T6NEXT EXTEND BZMF LASTCHG # TIME6 + T6NEXT - T IS IN A
LXCH T6NEXT +1 DXCH T6FURTHA EXTEND
SU TIME6 DXCH T6NEXT
TC Q
LASTCHG CS A AD NEG0 TS T6FURTHA
TC Q
# ROT-TOUV IS ENTERED WITH THE Q-COMPONENT OF THE QUANTITY TO BE TRANSFORMED IN A AND THE R-COMPONENT IN L. # ROT-TOUV TRANSFORMS THE QUANTITY INTO THE NON-ORTHOGONAL U-V AXIS SYSTEM. IN THE U-V SYSTEM NO CROSS-COUPLING IS # PRODUCED FROM RCS JET FIRINGS. AT THE COMPLETION OF ROT-TOUV, THE U-COMPONENT OF THE TRANSFORMED QUANTITY IS IN # A AND THE V-COMPONENT IS IN L.
ROT-TOUV LXCH ROTEMP2 # (R) IS PUT INTO ROTEMP2 EXTEND MP COEFFQ XCH ROTEMP2 # (R) GOES TO A AND COEFFQ.(Q) TO ROTEMP2 EXTEND MP COEFFR TS L # COEFFR.(R) IS PUT INTO L AD ROTEMP2 TS ROTEMP1 # COEFFQ.(Q)+COEFFR.(R) IS PUT IN ROTEMP1 TCF +4 INDEX A # COEFFQ.(Q) + COEFFR.(R) HAS OVERFLOWED CS LIMITS # AND IS LIMITED TO POSMAX OR NEGMAX TS ROTEMP1 CS ROTEMP2 AD L # -COEFFQ.(Q) + COEFFR.(R) IS NOW IN A TS7 TCF +3 INDEX A # -COEFFQ.(Q) + COEFFR.(R) HAS OVERFLOWED CS LIMITS # AND IS LIMITED TO POSMAX OR NEGMAX LXCH ROTEMP1 # COEFFQ.(Q) + COEFFR.(R) IS PUT INTO L TC Q
SELCTSUB INDEX ROTINDEX CA ALLJETS INDEX NUMBERT MASK TYPEPOLY TS POLYTEMP # Page 1458 MASK CH5MASK CCS A TCF +2
TC Q
CA THREE
FAILOOP TS NUMBERT INDEX ROTINDEX CA ALLJETS INDEX NUMBERT MASK TYPEPOLY TS POLYTEMP MASK CH5MASK EXTEND BZF FAILOOP -2 CCS NUMBERT TCF FAILOOP INDEX AXISCTR TS TJU TC ALARM OCT02004 TCF NOROTAT
ALLJETS OCT00110# -U 6 13 OCT00022# -V 2 9 OCT00204# +U 5 14 OCT00041# +V 1 10
TYPEPOLY OCT00125# -X 1 5 9 13 OCT00252# +X 2 6 10 14 OCT00146# A 2 5 10 13 OCT00231# B 1 6 9 14 OCT00377# ALL 1 2 5 6 9 10 13 14
# THE FOLLOWING SETS THE INTERRUPT FLIP-FLOP AS SOON AS POSSIBLE, WHICH PERMITS A RETURN TO THE INTERRUPTED JOB.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.