500 lines
10 KiB
Plaintext
500 lines
10 KiB
Plaintext
![]() |
# Copyright: Public domain.
|
||
|
# Filename: AUTOMATIC_MANEUVERS.agc
|
||
|
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
|
||
|
# It is part of the source code for the Command Module's (CM)
|
||
|
# Apollo Guidance Computer (AGC), for Apollo 11.
|
||
|
# Assembler: yaYUL
|
||
|
# Contact: Ron Burkey <info@sandroid.org>.
|
||
|
# Website: www.ibiblio.org/apollo.
|
||
|
# Pages: 1025-1036
|
||
|
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
||
|
# same name, using Comanche055 page images.
|
||
|
#
|
||
|
# 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 055 of AGC program Comanche by NASA
|
||
|
# 2021113-051. 10:28 APR. 1, 1969
|
||
|
#
|
||
|
# This AGC program shall also be referred to as
|
||
|
# Colossus 2A
|
||
|
|
||
|
# Page 1025
|
||
|
BANK 21
|
||
|
SETLOC DAPS3
|
||
|
BANK
|
||
|
|
||
|
COUNT 21/DAPAM
|
||
|
|
||
|
EBANK= KMPAC
|
||
|
AHFNOROT EXTEND
|
||
|
READ CHAN31
|
||
|
MASK BIT14
|
||
|
EXTEND
|
||
|
BZMF FREECONT
|
||
|
CA RCSFLAGS # SEE IF RATE FILTER HAS BEEN INITIALIZED
|
||
|
MASK BIT14
|
||
|
CCS A # IF SO, PROCEED WITH ATTITUDE CONTROL
|
||
|
TCF REINIT # IF NOT, RECYCLE TO INITIALIZE FILTER
|
||
|
# AUTOMATIC CONTROL YET
|
||
|
EXTEND
|
||
|
READ CHAN31
|
||
|
MASK BIT13
|
||
|
EXTEND
|
||
|
BZMF HOLDFUNC
|
||
|
|
||
|
AUTOCONT CA HOLDFLAG # IF HOLDFLAG IS +, GO TO GRABANG.
|
||
|
EXTEND # OTHERWISE, GO TO ATTHOLD.
|
||
|
BZMF ATTHOLD
|
||
|
TCF GRABANG
|
||
|
|
||
|
# MINIMUM IMPULSE CONTROL
|
||
|
|
||
|
FREECONT CAF ONE
|
||
|
TS HOLDFLAG # RESET HOLDFLAG
|
||
|
# INHIBIT AUTOMATIC STEERING
|
||
|
EXTEND
|
||
|
READ CHAN32
|
||
|
TS L
|
||
|
COM
|
||
|
MASK MANROT
|
||
|
MASK CHANTEMP
|
||
|
LXCH CHANTEMP
|
||
|
TC STICKCHK
|
||
|
INDEX RMANNDX
|
||
|
CA MINTAU # MINTAU +0
|
||
|
TS TAU # +1 +14MS MINIMUM IMPULSE
|
||
|
INDEX PMANNDX # +2 -14MS TIME
|
||
|
CA MINTAU # +3 +0
|
||
|
TS TAU1
|
||
|
INDEX YMANNDX
|
||
|
CA MINTAU
|
||
|
# Page 1026
|
||
|
TS TAU2
|
||
|
TCF T6PROGM
|
||
|
|
||
|
MINTAU DEC 0
|
||
|
DEC 23 # = 14MS
|
||
|
DEC -23 # = -14MS
|
||
|
DEC 0
|
||
|
|
||
|
# Page 1027
|
||
|
# CALCULATION OF ATTITUDE ERRORS:
|
||
|
# _ * _ _ _
|
||
|
# AK = AMGB (CDUX - THETADX) + BIAS
|
||
|
#
|
||
|
# I.E., *AK * * 1 SIN(PSI) 0 ** CDUX - THETADX * *BIAS *
|
||
|
# * * * ** * * *
|
||
|
# *AK1* = * 0 COS(PSI)COS(PHI) SIN(PHI)** CDUY - THETADY * + *BIAS1*
|
||
|
# * * * ** * * *
|
||
|
# *AK2* * 0 -COS(PSI)SIN(PHI) COS(PHI)** CDUZ - THETADZ * *BIAS2*
|
||
|
#
|
||
|
# THE BIASES ARE ADDED ONLY WHILE PERFORMING AUTOMATIC MANEUVERS (ESP KALCMANU) TO PROVIDE ADDITIONAL LEAD
|
||
|
# AND PREVENT OVERSHOOT WHEN STARTING AN AUTOMATIC MANEUVER. NORMALLY THE REQUIRED LEAD IS ONLY 1-2 DEGREES.
|
||
|
# BUT DURING HIGH RATE MANEUVERS IT CAN BE AS MUCH AS 7 DEGREES. THE BIASES ARE COMPUTED BY KALCMANU AND REMAIN
|
||
|
# FIXED UNTIL THE MANEUVER IS COMPLETED AT WHICH TIME THEY ARE RESET TO ZERO.
|
||
|
|
||
|
ATTHOLD CA CDUX
|
||
|
EXTEND
|
||
|
MSU THETADX
|
||
|
TS ERRORX
|
||
|
CA CDUY
|
||
|
EXTEND
|
||
|
MSU THETADY
|
||
|
TS T5TEMP
|
||
|
EXTEND
|
||
|
MP AMGB1
|
||
|
ADS ERRORX
|
||
|
CA T5TEMP
|
||
|
EXTEND
|
||
|
MP AMGB4
|
||
|
TS ERRORY
|
||
|
CA T5TEMP
|
||
|
EXTEND
|
||
|
MP AMGB7
|
||
|
TS ERRORZ
|
||
|
CA CDUZ
|
||
|
EXTEND
|
||
|
MSU THETADZ
|
||
|
TS T5TEMP
|
||
|
EXTEND
|
||
|
MP AMGB5
|
||
|
ADS ERRORY
|
||
|
CA T5TEMP
|
||
|
EXTEND
|
||
|
MP AMGB8
|
||
|
ADS ERRORZ
|
||
|
CS HOLDFLAG
|
||
|
EXTEND
|
||
|
# Page 1028
|
||
|
BZMF JETS
|
||
|
CA BIAS # AD BIASES ONLY IF PERFORMING AUTOMATIC
|
||
|
ADS ERRORX
|
||
|
CA BIAS1
|
||
|
ADS ERRORY
|
||
|
CA BIAS2
|
||
|
ADS ERRORZ
|
||
|
TCF JETS
|
||
|
|
||
|
HOLDFUNC CCS HOLDFLAG
|
||
|
TCF +3
|
||
|
TCF ATTHOLD
|
||
|
TCF +1
|
||
|
GRABANG CAF ZERO # ZERO WBODYS AND BIASES
|
||
|
TS WBODY
|
||
|
TS WBODY +1
|
||
|
TS WBODY1
|
||
|
TS WBODY1 +1
|
||
|
TS WBODY2
|
||
|
TS WBODY2 +1
|
||
|
TS BIAS
|
||
|
TS BIAS1
|
||
|
TS BIAS2
|
||
|
|
||
|
CA RCSFLAGS
|
||
|
MASK OCT16000
|
||
|
EXTEND # IS RATE DAMPING COMPLETED
|
||
|
BZF ENDDAMP # IF SO, GO TO ENDDAMP
|
||
|
CAF ZERO # OTHERWISE, ZERO ERRORS
|
||
|
TS ERRORX
|
||
|
TS ERRORY
|
||
|
TS ERRORZ
|
||
|
TCF JETS
|
||
|
|
||
|
ENDDAMP TS HOLDFLAG # SET HOLDFLAG +0
|
||
|
EXTEND
|
||
|
DCA CDUX # PICK UP CDU ANGLES FOR ATTITUDE HOLD
|
||
|
DXCH THETADX # REFERENCES
|
||
|
CA CDUZ
|
||
|
TS THETADZ
|
||
|
TCF ATTHOLD
|
||
|
|
||
|
# Page 1029
|
||
|
# JET SWITCHING LOGIC AND CALCULATION OF REQUIRED ROTATION COMMANDS
|
||
|
#
|
||
|
# DETERMINE THE LOCATION OF THE RATE ERROR AND THE ATTITUDE ERROR RELATIVE TO THE SWITCHING LOGIC IN THE PHASE
|
||
|
# PLANE.
|
||
|
#
|
||
|
# COMPUTE THE CHANGE IN RATE CORRESPONDING TO THE ATTITUDE ERROR NECESSARY TO DRIVE THE S/C INTO THE
|
||
|
# APPROPRIATE DEADZONE.
|
||
|
#
|
||
|
# .
|
||
|
# R22 RATE . ERROR
|
||
|
# WL+H .
|
||
|
# ********************************* . ***** SWITCH LINES ENCLOSING DEADZONES
|
||
|
# R23 WL * .
|
||
|
# ----------------------------------* . ----- DESIRED RATE LINES
|
||
|
# R23 WL-H - *.
|
||
|
# ****************** - . R20, R21, R22, ETC REGIONS IN PHASE
|
||
|
# * - .* R18 R20 R21 PLANE FOF COMPUTING DESIRED RESPONSE
|
||
|
# * . *
|
||
|
# *- . *
|
||
|
# R22 R24*- R23 . *
|
||
|
# * . *
|
||
|
# * . *
|
||
|
# + -ADB . * AF ATTITUDE
|
||
|
# ........................+--+---------------+--+........................
|
||
|
# AF * . +ADB + ERROR
|
||
|
# * . *
|
||
|
# * . -*
|
||
|
# * . -*
|
||
|
# * . -*
|
||
|
# * . *
|
||
|
# *. - *
|
||
|
# . - *****************
|
||
|
# .*-
|
||
|
# . * --------------------------------
|
||
|
# .
|
||
|
# .
|
||
|
# FIG. 1 PHASE PLANE SWITCHING LOGIC
|
||
|
#
|
||
|
# CONSTANTS FOR JET SWITCHING LOGIC
|
||
|
|
||
|
WLH/SLOP DEC .00463 # = WL+H/SLOPE = .83333 DEG $180
|
||
|
WL-H/SLP DEC .00277 # = WL-H/SLOPE = .5 DEG $180
|
||
|
WLH 2DEC .0011111111 # = WL+H = 0.5 DEG/SEC $450
|
||
|
|
||
|
WLMH 2DEC .0006666666 # = WL-H = 0.3 DEG/SEC $450
|
||
|
|
||
|
WL 2DEC .0008888888 # = WL = 0.4 DEG/SEC $450
|
||
|
|
||
|
# Page 1030
|
||
|
SLOPE2 DEC .32 # = 0.8 DEG/SEC/DEG $450/180
|
||
|
JETS CA ADB
|
||
|
AD FOUR # AF = FLAT REGION = .044 DEG
|
||
|
TS T5TEMP # ADB+AF
|
||
|
CAF TWO
|
||
|
JLOOP TS SPNDX
|
||
|
DOUBLE
|
||
|
TS DPNDX
|
||
|
EXTEND
|
||
|
INDEX A
|
||
|
DCA ADOT
|
||
|
DXCH EDOT
|
||
|
CA HOLDFLAG # HOLDFLAG = +0 MEANS THAT DAP IS IN
|
||
|
EXTEND # ATTITUDE HOLD AND RATE DAMPING IS OVER.
|
||
|
BZF INHOLD # IF THIS IS THE CASE, BYPASS ADDITION
|
||
|
# OF WBODY AND GO TO INHOLD
|
||
|
EXTEND
|
||
|
INDEX DPNDX
|
||
|
DCS WBODY
|
||
|
DAS EDOT # = ADOT-WBODY
|
||
|
INHOLD INDEX SPNDX
|
||
|
CA ERRORX
|
||
|
TS AERR # AERR = BIAS + AK
|
||
|
|
||
|
CCS EDOT
|
||
|
TCF POSVEL
|
||
|
TCF SIGNCK1
|
||
|
TCF NEGVEL
|
||
|
SIGNCK1 CCS EDOT +1
|
||
|
TCF POSVEL
|
||
|
TCF POSVEL
|
||
|
TCF NEGVEL
|
||
|
TCF NEGVEL
|
||
|
POSVEL EXTEND
|
||
|
DCA EDOT
|
||
|
DXCH EDOTVEL
|
||
|
CA T5TEMP
|
||
|
TS ADBVEL # +(ADB+AF)
|
||
|
CA AERR
|
||
|
TS AERRVEL
|
||
|
TC J6.
|
||
|
NEGVEL EXTEND
|
||
|
DCS EDOT
|
||
|
DXCH EDOTVEL
|
||
|
CS T5TEMP
|
||
|
TS ADBVEL # -(ADB+AF)
|
||
|
CS AERR
|
||
|
TS AERRVEL
|
||
|
|
||
|
J6. EXTEND
|
||
|
# Page 1031
|
||
|
SU ADB
|
||
|
AD WLH/SLOP
|
||
|
EXTEND
|
||
|
BZMF J8
|
||
|
|
||
|
CS T5TEMP # (ADB+AF)
|
||
|
AD AERRVEL
|
||
|
EXTEND
|
||
|
BZMF +2
|
||
|
TCF J7
|
||
|
EXTEND
|
||
|
DCS EDOTVEL
|
||
|
EXTEND
|
||
|
DV SLOPE
|
||
|
EXTEND
|
||
|
SU AERRVEL
|
||
|
AD ADB
|
||
|
EXTEND
|
||
|
BZMF J18
|
||
|
TCF J23
|
||
|
|
||
|
J7 CS WL-H/SLP
|
||
|
EXTEND
|
||
|
SU T5TEMP # (ADB+AF)
|
||
|
AD AERRVEL
|
||
|
EXTEND
|
||
|
BZMF J20
|
||
|
TCF J21
|
||
|
|
||
|
J8 EXTEND
|
||
|
DCS WLH
|
||
|
DXCH WTEMP
|
||
|
EXTEND
|
||
|
DCA EDOTVEL
|
||
|
DAS WTEMP
|
||
|
CCS WTEMP
|
||
|
TCF J22
|
||
|
TCF SIGNCK2
|
||
|
TCF NJ22
|
||
|
SIGNCK2 CCS WTEMP +1
|
||
|
TCF J22
|
||
|
TCF J22
|
||
|
TCF NJ22
|
||
|
|
||
|
NJ22 EXTEND
|
||
|
DCA EDOTVEL
|
||
|
EXTEND
|
||
|
DV SLOPE
|
||
|
AD T5TEMP # (ADB+AF)
|
||
|
AD AERRVEL
|
||
|
# Page 1032
|
||
|
CCS A
|
||
|
TCF J23
|
||
|
TCF J23
|
||
|
TCF +2
|
||
|
TCF J23
|
||
|
|
||
|
EXTEND
|
||
|
DCS WLMH # WL - H
|
||
|
DXCH WTEMP
|
||
|
EXTEND
|
||
|
DCA EDOTVEL
|
||
|
DAS WTEMP
|
||
|
CCS WTEMP
|
||
|
TCF J23
|
||
|
TCF SIGNCK3
|
||
|
TCF NJ23
|
||
|
SIGNCK3 CCS WTEMP +1
|
||
|
TCF J23
|
||
|
TCF J23
|
||
|
TCF NJ23
|
||
|
|
||
|
NJ23 CA AERRVEL
|
||
|
AD T5TEMP # (ADB+AF)
|
||
|
AD WL-H/SLP
|
||
|
CCS A
|
||
|
TCF J24
|
||
|
TCF J24
|
||
|
TCF J22
|
||
|
TCF J22
|
||
|
|
||
|
J18 EXTEND
|
||
|
DCS EDOT
|
||
|
DXCH KMPAC
|
||
|
TCF JTIME
|
||
|
|
||
|
J20 CS AERR
|
||
|
AD ADBVEL
|
||
|
EXTEND
|
||
|
MP SLOPE2 # (HYSTERESIS SLOPE)
|
||
|
DXCH KMPAC
|
||
|
EXTEND
|
||
|
DCS EDOT
|
||
|
DAS KMPAC
|
||
|
TCF JTIME
|
||
|
|
||
|
J21 CCS EDOT
|
||
|
TCF JP
|
||
|
TCF SIGNCK4
|
||
|
TCF JN
|
||
|
SIGNCK4 CCS EDOT +1
|
||
|
# Page 1033
|
||
|
TCF JP
|
||
|
TCF JP
|
||
|
TCF JN
|
||
|
JN EXTEND
|
||
|
DCS EDOT
|
||
|
DXCH KMPAC
|
||
|
EXTEND
|
||
|
DCA WL
|
||
|
DAS KMPAC
|
||
|
TCF JTIME
|
||
|
|
||
|
JP EXTEND
|
||
|
DCS EDOT
|
||
|
DXCH KMPAC
|
||
|
EXTEND
|
||
|
DCS WL
|
||
|
DAS KMPAC
|
||
|
TCF JTIME
|
||
|
|
||
|
J22 CCS EDOT
|
||
|
TCF JN
|
||
|
TCF SIGNCK5
|
||
|
TCF JP
|
||
|
SIGNCK5 CCS EDOT +1
|
||
|
TCF JN
|
||
|
TCF JN
|
||
|
TCF JP
|
||
|
TCF JP
|
||
|
|
||
|
J23 INDEX SPNDX
|
||
|
CS BIT13 # RESET RATE DAMPING FLAG
|
||
|
MASK RCSFLAGS # BIT13 FOR ROLL (SPNDX = 0)
|
||
|
TS RCSFLAGS # BIT12 FOR PITCH (SPNDX = 1)
|
||
|
# BIT11 FOR YAW (SPNDX = 2)
|
||
|
|
||
|
INDEX SPNDX
|
||
|
CAF OCT01400 # IS THERE TO BE A FORCED FIRING ON THIS
|
||
|
MASK RCSFLAGS # AXIS
|
||
|
EXTEND
|
||
|
BZF DOJET +2 # NO, GO TO DOJET +2 AND DO NOTHING
|
||
|
|
||
|
TCF J18 # YES, GO TO J18 AND FORCE A FIRING
|
||
|
|
||
|
J24 CS AERR
|
||
|
EXTEND
|
||
|
SU ADBVEL
|
||
|
EXTEND
|
||
|
MP SLOPE2 # (HYSTERESIS SLOPE)
|
||
|
DXCH KMPAC
|
||
|
EXTEND
|
||
|
# Page 1034
|
||
|
DCS EDOT
|
||
|
DAS KMPAC
|
||
|
|
||
|
# Page 1035
|
||
|
# COMPUTE THE JET ON TIME NECESSARY TO ACCOMPLISH THE DESIRED CHANGE IN RATE, I.E.,
|
||
|
#
|
||
|
# T = J/M(DELTA W)
|
||
|
# J
|
||
|
#
|
||
|
# DELTA W = DESIRED CHANGE IN S/C ANGULAR RATE AS DETERMINED BY THE
|
||
|
# SWITCHING LOGIC, AT THIS POINT STORED IN KMPAC.
|
||
|
#
|
||
|
# J/M = S/C INERTIA TO TORQUE RATIO SCALED BY
|
||
|
# (57.3/450)(B24/1600)(1/.8)
|
||
|
# FOR 1 JET OPERATION (M = 700 FT-LB).
|
||
|
# I.E., J/M = J(SLUG-FTFT) x 0.00000085601606
|
||
|
#
|
||
|
# THE CORRESPONDING COMPUTER VARIABLES ESTABLISHED BY
|
||
|
# KEYBOARD ENTRY ARE
|
||
|
# J/M (ROLL)
|
||
|
# J/M1 (PITCH)
|
||
|
# J/M2 (YAW)
|
||
|
#
|
||
|
# T = JET-ON TIME SCALED 16384/1600 SEC
|
||
|
# J
|
||
|
#
|
||
|
# THE COMPUTER VARIABLES ARE
|
||
|
# TAU (ROLL)
|
||
|
# TAU1 (PITCH)
|
||
|
# TAU2 (YAW)
|
||
|
|
||
|
JTIME INDEX SPNDX # PICK UP S/C INERTIA/TORQUE RATIO
|
||
|
CA J/M # SCALED (57.3/450)(B24/1600)
|
||
|
TC SMALLMP # FOR 1-JET OPERATION
|
||
|
CA BIT11
|
||
|
TC SMALLMP
|
||
|
CCS KMPAC
|
||
|
TCF +4
|
||
|
TCF TAUNORM
|
||
|
TCF +4
|
||
|
TCF TAUNORM
|
||
|
CA POSMAX
|
||
|
TCF DOJET
|
||
|
CA NEGMAX
|
||
|
TCF DOJET
|
||
|
|
||
|
TAUNORM CA KMPAC +1
|
||
|
DOJET INDEX SPNDX
|
||
|
TS TAU
|
||
|
CCS SPNDX
|
||
|
TCF JLOOP
|
||
|
TCF T6PROG
|
||
|
|
||
|
# Page 1036
|
||
|
ZEROCMDS CAF ZERO
|
||
|
TS TAU
|
||
|
TS TAU1
|
||
|
TS TAU2
|
||
|
T6PROG EXTEND # WHEN THE ROTATION COMMANDS (TAUS)
|
||
![]() |
DCA JETADDR # HAVE BEEN DETERMINED
|
||
![]() |
DXCH T5LOC # RESET T5LOC FOR PHASE3
|
||
|
TCF RESUME
|
||
|
|
||
|
EBANK= KMPAC
|
||
|
JETADDR 2CADR JETSLECT
|
||
|
|