Apollo-11/Comanche055/TVCDAPS.agc

785 lines
16 KiB
Plaintext
Raw Normal View History

2016-07-07 08:47:26 +00:00
# Copyright: Public domain.
# Filename: TVCDAPS.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: 961-978
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: Eliminated an extraneous EXTEND,
# added a missing instruction to PFORWARD.
2016-12-28 16:11:25 +00:00
# 2000-05-21 RSB Wrong opcode was used with DELBRTMP and
2016-07-07 08:47:26 +00:00
# DELBRTMP +1 operands in 4 places. Corrected
# an MP operation in 2CASFLTR.
#
# 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
2016-12-28 16:11:25 +00:00
# illegible, contact me at info@sandroid.org about getting access to the
2016-07-07 08:47:26 +00:00
# (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
2016-12-28 16:11:25 +00:00
# 2021113-051. 10:28 APR. 1, 1969
2016-07-07 08:47:26 +00:00
#
# This AGC program shall also be referred to as
# Colossus 2A
# Page 961
# PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC.
# LOG SECTION...TVCDAPS SUBROUTINE...DAPCSM
2016-07-07 08:47:26 +00:00
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
# FUNCTIONAL DESCRIPTION....
2016-07-07 08:47:26 +00:00
# SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS
# FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS,
# IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING
# (S40.8). IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD
# ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS).
2016-07-07 08:47:26 +00:00
# THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY.
# EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION,
# GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR
# INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTER
2016-07-07 08:47:26 +00:00
# FOR CSM OR CSM/LM OPERATION. A FILTER OUTPUT LIMITER.
# CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP.
2016-07-07 08:47:26 +00:00
# THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE
# TIME, AS DETERMINED BY T5TVCDT. THE ACTUATOR COMMANDS ARE
# REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH
# TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU
# MODING.
2016-07-07 08:47:26 +00:00
# CALLING SEQUENCE.... (TYPICALLY)
2016-07-07 08:47:26 +00:00
# T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40)
# T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE)
# T5 CALL OF PITCHDAP BY DAPINIT
# T5 CALL OF YAWDAP BY PITCHDAP
# T5 CALL OF PITCHDAP BY YAWDAP
# ETC.
2016-07-07 08:47:26 +00:00
# (AUTOMATIC SEQUENCING FROM TVCDAPON)
2016-07-07 08:47:26 +00:00
# NORMAL EXIT MODE....RESUME
2016-07-07 08:47:26 +00:00
# ALARM OR ABORT EXIT MODES....NONE
2016-07-07 08:47:26 +00:00
# SUBROUTINES CALLED....
2016-07-07 08:47:26 +00:00
# HACK FOR STROKE TEST (V68) WAVEFORM GENERATION
# PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE)
# DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS
# ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND
# OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND
# YAW DAPS
# FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER
# OUTPUTS AND STORAGE VALUES
# RESUME
2016-07-07 08:47:26 +00:00
# Page 962
# OTHER INTERFACES....
2016-07-07 08:47:26 +00:00
# S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC
# S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC
# TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS
# TVCRESTART PACKAGE FOR TVC RESTART PROTECTION.
2016-07-07 08:47:26 +00:00
# ERASABLE INITIALIZATION REQUIRED....
# PAD-LOAD ERASABLES ( SEE ERASABLE ASSIGNMENTS )
2016-07-07 08:47:26 +00:00
# CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03
# ENGINE-ON BIT (11.13) FOR RESTARTS
# TVCPHASE FOR RESTARTS ( SEE DOTVCON, AND TVCINIT4 )
2016-07-07 08:47:26 +00:00
# T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS
# MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4,
# INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN
# CDUX,Y,Z AND SINCDUX....COSCDUX AS PREPARED BY QUICTRIG (WITH
2016-07-07 08:47:26 +00:00
# UPDATES EVERY 1/2 SECOND)
# ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE
# UNLESS BENCH-TESTING.
#
# OUTPUT....
#
# TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMEN-
# TAL COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY-
2016-07-07 08:47:26 +00:00
# AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS,
# OFFSET-TRACKER-FILTER OUTPUTS, ETC.
# DEBRIS....
2016-07-07 08:47:26 +00:00
# MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
BANK 17
SETLOC DAPS2
BANK
EBANK= BZERO
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
COUNT* $$/DAPS
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# Page 963
# PITCH TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
2016-07-07 08:47:26 +00:00
PITCHDAP LXCH BANKRUPT # T5 ENTRY, NORMAL OR VIA DAPINIT
EXTEND
QXCH QRUPT
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF YAWT5 # SET UP T5 CALL FOR YAW AUTOPILOT (LOW-
TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
CAE T5TVCDT
TS TIME5
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
TC HACK # TEST-START OR TEST-IN-PROGRESS
TCF +2 # NO-TEST
TC HACK # TEST-IN-PROGRESS
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PCDUDOTS CAE CDUY # COMPUTE CDUYDOT (USED BY PITCH AND YAW)
XCH PCDUYPST
EXTEND
MSU PCDUYPST
TCR RLIMTEST # RATE TEST
TS MCDUYDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAE CDUZ # COMPUTE CDUZDOT (USED BY PITCH AND YAW)
XCH PCDUZPST
EXTEND
MSU PCDUZPST
TCR RLIMTEST # RATE TEST
TS MCDUZDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
TCF PINTEGRL
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
RLIMTEST TS TTMP1 # TEST FOR EXCESSIVE CDU RATES (GREATER
EXTEND # THAN 2.33 DEG IN ONE SAMPLE PERIOD)
2016-07-07 08:47:26 +00:00
MP 1/RTLIM
EXTEND
BZF +3
CAF ZERO
TS TTMP1
CAE TTMP1
TC Q
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE
DCA PERRB # ERROR, SC.AT B-1 REVS
DXCH ERRBTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND
DCA OMEGAYC
DAS ERRBTMP
2016-12-28 16:11:25 +00:00
# Page 964
2016-07-07 08:47:26 +00:00
CS COSCDUZ # PREPARE BODY-AXIS PITCH RATE, OMEGAYB
EXTEND
MP COSCDUX
DDOUBL
EXTEND
MP MCDUYDOT
DDOUBL
DXCH OMEGAYB
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS MCDUZDOT
EXTEND
MP SINCDUX
DDOUBL
DAS OMEGAYB # (COMPLETED OMEGAYB, SC.AT 1/2TVCDT REVS)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND # PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE)
DCS OMEGAYB
DAS ERRBTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PERORLIM TCR ERRORLIM # PITCH BODY-AXIS-ERROR INPUT LIMITER
PFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
DCA PTMP1 # FOR THE PITCH CHANNEL
DXCH TMP1
EXTEND
DCA PTMP3
DXCH TMP3
EXTEND
DCA PTMP5
DXCH TMP5
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
# (INCLUDES VARIABLE GAIN PACKAGE)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
POFFSET EXTEND
2016-12-28 16:11:25 +00:00
DCA PDELOFF
2016-07-07 08:47:26 +00:00
DAS CMDTMP # NO SCALED AT B+0 ASCREV
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PACLIM TCR ACTLIM # ROUND OFF & LIMIT PITCH ACTUATOR COMMAND
POUT CS PCMD # INCREMENTAL PITCH COMMAND
AD CMDTMP
ADS TVCPITCH # UPDATE THE ERROR COUNTER (NO RESTART-
# PROTECT. SINCE ERROR CNTR ZEROED)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF BIT11 # BIT FOR TVCPITCH COUNT RELEASE
EXTEND
WOR CHAN14
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR PITCH
# Page 965
DCA PTMP2
DXCH TMP2
EXTEND
DCA PTMP4
DXCH TMP4
EXTEND
DCA PTMP6
DXCH TMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
2016-12-28 16:11:25 +00:00
DELBARP CAE DELPBAR +1 # UPDATE PITCH OFFSET-TRACKER-FILTER
2016-07-07 08:47:26 +00:00
EXTEND
MP E(-AT)
TS DELBRTMP +1
CAE DELPBAR
EXTEND
MP E(-AT)
DAS DELBRTMP
CAE CMDTMP
EXTEND
MP 1-E(-AT)
DAS DELBRTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PCOPYCYC TCR PCOPY # PITCH COPYCYCLE
PDAPEND TCF RESUME # PITCH DAP COMPLETED
# Page 966
# PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE)
PCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (1)
# NOTE POSSIBLE RE-ENTRY FROM RESTART
# PACKAGE, SHOULD A RESTART OCCUR
# DURING PITCH COPYCYCLE.
2016-12-28 16:11:25 +00:00
EXTEND
DCA TMP1
2016-07-07 08:47:26 +00:00
DXCH PTMP1
EXTEND
DCA TMP2
DXCH PTMP2
EXTEND
DCA TMP3
DXCH PTMP3
2016-12-28 16:11:25 +00:00
EXTEND
2016-07-07 08:47:26 +00:00
DCA TMP4
DXCH PTMP4
EXTEND
DCA TMP5
DXCH PTMP5
EXTEND
DCA TMP6
DXCH PTMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
PMISC EXTEND # MISC....PITCH-RATE-ERROR INTEGRATOR
DCA ERRBTMP
TS AK1 # FOR PITCH NEEDLES, SC.AT B-1 REVS
DXCH PERRB
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAE CMDTMP # PITCH ACTUATOR COMMAND
TS PCMD
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND # PITCH OFFSET-TRACKER-FILTER
DCA DELBRTMP
DXCH DELPBAR
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
INCR TVCPHASE # PITCH COPYCYCLE COMPLETED (2)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TC Q
# Page 967
# YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
YAWDAP LXCH BANKRUPT # T5 ENTRY, NORMAL
EXTEND
QXCH QRUPT
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF PITCHT5 # SET UP T5 CALL FOR PITCH AUTOPILOT (LOW-
TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
CAE T5TVCDT
TS TIME5
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
YSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
TC HACK # TEST-START OR TEST-IN-PROGRESS
TCF +2 # NO-TEST
TC HACK # TEST-IN-PROGRESS
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# USE BODY RATES FROM PITCHDAP (PCDUDOTS)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
YINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE
DCA YERRB # ERROR, SC.AT B-1 REVS
DXCH ERRBTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND
DCA OMEGAZC
DAS ERRBTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAE COSCDUZ # PREPARE BODY-AXIS YAW-RATE, OMEGAZB
EXTEND
MP SINCDUX
DDOUBL
EXTEND
MP MCDUYDOT
DDOUBL
DXCH OMEGAZB
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS MCDUZDOT
EXTEND
MP COSCDUX
DDOUBL
DAS OMEGAZB # (COMPLETED OMEGAZB, SC.AT 1/2TVCDT REVS)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND # PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE)
DCS OMEGAZB
DAS ERRBTMP
2016-12-28 16:11:25 +00:00
YERORLIM TCR ERRORLIM # YAW BODY-AXIS-ERROR INPUT LIMITER
2016-07-07 08:47:26 +00:00
YFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
DCA YTMP1 # FOR THE YAW CHANNEL
2016-12-28 16:11:25 +00:00
# Page 968
2016-07-07 08:47:26 +00:00
DXCH TMP1
EXTEND
DCA YTMP3
DXCH TMP3
EXTEND
DCA YTMP5
DXCH TMP5
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
# (INCLUDES VARIABLE GAIN PACKAGE)
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
YOFFSET EXTEND
DCA YDELOFF
DAS CMDTMP # NOW SCALED AT B+0 ASCREV
YACLIM TCR ACTLIM # ROUND OFF & LIMIT YAW ACTUATOR COMMAND
2016-07-07 08:47:26 +00:00
2016-07-11 12:35:15 +00:00
YOUT CS YCMD # INCREMENTAL YAW COMMAND
2016-07-07 08:47:26 +00:00
AD CMDTMP
ADS TVCYAW # UPDATE THE ERROR COUNTER (NO RESTART-
# PROTECT, SINCE ERROR CNTR ZEROED)
CAF BIT12 # BIT FOR TVCYAW COUNT RELEASE
EXTEND
WOR CHAN14
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
YPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR YAW
DCA YTMP2
DXCH TMP2
EXTEND
DCA YTMP4
DXCH TMP4
EXTEND
DCA YTMP6
DXCH TMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DELBARY CAE DELYBAR +1 # UPDATE YAW OFFSET-TRACKER-FILTER
EXTEND
MP E(-AT)
TS DELBRTMP +1
CAE DELYBAR
EXTEND
MP E(-AT)
DAS DELBRTMP
CAE CMDTMP
EXTEND
MP 1-E(-AT)
DAS DELBRTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# Page 969
YCOPYCYC TCR YCOPY # YAW COPYCYCLE
YDAPEND TCF RESUME # YAW DAP COMPLETED
# Page 970
# TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW TVCDAP OR TVC RESTART PACKAGE)
YCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (3)
# NOTE POSSIBLE RE-ENTRY FROM RESTART
# PACKAGE, SHOULD A RESTART OCCUR
# DURING YAW COPYCYCLE.
2016-12-28 16:11:25 +00:00
EXTEND
DCA TMP1
2016-07-07 08:47:26 +00:00
DXCH YTMP1
EXTEND
DCA TMP2
DXCH YTMP2
EXTEND
DCA TMP3
2016-12-28 16:11:25 +00:00
DXCH YTMP3
EXTEND
2016-07-07 08:47:26 +00:00
DCA TMP4
DXCH YTMP4
EXTEND
DCA TMP5
DXCH YTMP5
EXTEND
DCA TMP6
DXCH YTMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
YMISC EXTEND # MISC....YAW-RATE-ERROR INTEGRATOR
DCA ERRBTMP
TS AK2 # FOR YAW NEEDLES, SC.AT B-1 REVS
DXCH YERRB
2016-12-28 16:11:25 +00:00
CAE CMDTMP
2016-07-07 08:47:26 +00:00
TS YCMD
2016-12-28 16:11:25 +00:00
EXTEND
2016-07-07 08:47:26 +00:00
DCA DELBRTMP
DXCH DELYBAR
2016-12-28 16:11:25 +00:00
CAF ZERO # YAW COPYCYCLE COMPLETED
2016-07-07 08:47:26 +00:00
TS TVCPHASE # RESET TVCPHASE
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TC Q
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# Page 971
# SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS....
2016-07-07 08:47:26 +00:00
# INITIALIZATION PACKAGE FOR CDURATES....
DAPINIT LXCH BANKRUPT # T5 RUPT ENTRY (CALLED BY TVCINT4)
CAF NEGONE # SET UP
AD T5TVCDT # T5 CALL FOR PITCHDAP IN TVCDT SECS
AD NEGMAX # (T5TVCDT = POSMAX - TVCDT/2 +1)
AD T5TVCDT
TS TIME5
CAF PITCHT5 # (BBCON ALREADY THERE)
TS T5LOC
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAE CDUY # READ AND STORE CDUS FOR DIFFERENTIATOR
TS PCDUYPST # PAST-VALUES
CAE CDUZ
TS PCDUZPST
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TCF NOQRSM
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# BODY-AXIS-ERROR INPUT LIMITER PACKAGE....
ERRORLIM CAE ERRBTMP # CHECK FOR INPUT-ERROR LIMIT
EXTEND # CHECKS UPPER WORD ONLY
MP 1/ERRLIM
EXTEND
BZF +6
CCS ERRBTMP
CAF ERRLIM
TCF +2
CS ERRLIM
TS ERRBTMP # LIMIT WRITES OVER UPPER WORD ONLY
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TC Q
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# ACTUATOR-COMMAND LIMITER PACKAGE....
ACTLIM CAE CMDTMP +1 # ROUND UP FOR OUTPUT
DOUBLE
TS L
CAF ZERO
AD CMDTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
EXTEND # CHECK FOR ACTUATOR COMMAND LIMIT
MP 1/ACTSAT
EXTEND
# Page 972
BZF +6
CCS CMDTMP # APPLY LIMITS
CAF ACTSAT
TCF +2
CS ACTSAT
TS CMDTMP # LIMITS WRITE OVER CMDTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TC Q
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# FILTER COMPUTATIONS FOR PRESENT OUTPUT................
FWDFLTR CAF ZERO
TS DAP1
TS DAP2
TS DAP3
TS CMDTMP
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TS DELBRTMP
1DAPCAS CAE ERRBTMP +1 # FIRST DAP CASCADE
EXTEND
MP N10 # N10
TS DAP1 +1
CA ERRBTMP
EXTEND
MP N10 # N10
DAS DAP1
DXCH TMP1
DAS DAP1
2DAPCAS CAE DAP1 +1 # SECOND DAP CASCADE
EXTEND
MP N10 +5 # N20
TS DAP2 +1
CA DAP1
EXTEND
MP N10 +5 # N20
DAS DAP2
DXCH TMP3
DAS DAP2
CAE DAPDATR1 # TEST FOR LEM ON OR OFF
MASK BIT14
CCS A
TCF 3DAPCAS # LEM ON
EXTEND # LEM OFF
DCA DAP2
DXCH DAP3
TCF OPTVARK
2016-12-28 16:11:25 +00:00
# Page 973
2016-07-07 08:47:26 +00:00
3DAPCAS CAE DAP2 +1 # THIRD DAP CASCADE
EXTEND
MP N10 +10D # N30
TS DAP3 +1
CA DAP2
EXTEND
MP N10 +10D # N30
DAS DAP3
DXCH TMP5
DAS DAP3
OPTVARK CS DAP3 +1 # VARIABLE GAIN PACKAGE
EXTEND # (ALSO, SIGN CHANGE IN FORWARD LOOP)
MP VARK # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
TS CMDTMP +1
CS DAP3
EXTEND
MP VARK
DAS CMDTMP
2016-12-28 16:11:25 +00:00
DXCH CMDTMP # FIX UP SCALING - SCALED B+3 ASCREVS
2016-07-07 08:47:26 +00:00
DDOUBL
DDOUBL
DXCH CMDTMP # - SCALED B+1 ASCREVS
# NOTE - THERE IS AN INHERANT GAIN OF
2016-07-07 08:47:26 +00:00
# (B+1 ASCREVS) ON THE OUTPUT DACS.
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TC Q
2016-07-07 08:47:26 +00:00
# FILTER PRECOMPUTATIONS FOR NEXT PASS................
PRECOMP CAF ZERO # ***** FIRST CASCADE FILTER **********
2016-07-07 08:47:26 +00:00
TS TTMP1
TS TTMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CA ERRBTMP +1 # MULTIPLY INPUT BY
EXTEND
MP N10 +1 # N11/2
TS TTMP1 +1
CA ERRBTMP
EXTEND
MP N10 +1 # N11/2
DAS TTMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS DAP1 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +3 # D11/2
TS TTMP2 +1
CS DAP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
# Page 974
EXTEND
MP N10 +3 # D11/2
DAS TTMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TTMP2
DAS TTMP1
DXCH TTMP1
DDOUBL
DAS TMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TMP2
DXCH TMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF ZERO
TS TTMP1
TS TMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CA ERRBTMP +1 # MULTIPLY INPUT BY
EXTEND # SECOND-ORDER NUMERATOR COEFF.
MP N10 +2 # N12
TS TTMP1 +1
CA ERRBTMP
EXTEND
MP N10 +2 # N12
DAS TTMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS DAP1 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +4 # D12
TS TMP2 +1
CS DAP1
EXTEND
MP N10 +4 # D12
DAS TMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TTMP1
DAS TMP2
2016-12-28 16:11:25 +00:00
2CASFLTR CAF ZERO # *****SECOND CASCADE FILTER*****
2016-07-07 08:47:26 +00:00
TS TTMP1
TS TTMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CA DAP1 +1 # MULTIPLY INPUT BY
EXTEND
MP N10 +6 # N21/2
TS TTMP1 +1
CA DAP1
EXTEND
MP N10 +6 # N21/2
2016-12-28 16:11:25 +00:00
# Page 975
2016-07-07 08:47:26 +00:00
DAS TTMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS DAP2 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +8D # D21/2
TS TTMP2 +1
CS DAP2
EXTEND
MP N10 +8D # D21/2
DAS TTMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TTMP2
DAS TTMP1
DXCH TTMP1
DDOUBL
DAS TMP4
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TMP4
DXCH TMP3
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF ZERO
TS TTMP1
TS TMP4
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CA DAP1 +1 # MULTIPLY INPUT BY
EXTEND
2016-07-07 08:47:26 +00:00
MP N10 +7 # N22
TS TTMP1 +1
CA DAP1
EXTEND
MP N10 +7 # N22
DAS TTMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS DAP2 +1 # MULTIPLY OUTPUT BY
EXTEND
MP N10 +9D # D22
TS TMP4 +1
CS DAP2
EXTEND
MP N10 +9D # D22
DAS TMP4
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TTMP1
DAS TMP4
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAE DAPDATR1 # TEST FOR LEM ON OR OFF
MASK BIT13
CCS A
TC Q # EXIT IF LEM OFF
2016-12-28 16:11:25 +00:00
# Page 976
3CASFLTR CAF ZERO # *****THIRD CASCADE FILTER*****
2016-07-07 08:47:26 +00:00
TS TTMP1
TS TTMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CA DAP2 +1 # MULTIPLY INPUT BY (1/2)
EXTEND
MP N10 +11D # N31/2
TS TTMP1 +1
CA DAP2
EXTEND
MP N10 +11D # N31/2
DAS TTMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS DAP3 +1
EXTEND
MP N10 +13D # D31/2
TS TTMP2 +1
CS DAP3
EXTEND
MP N10 +13D # D31/2
DAS TTMP2
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TTMP2
DAS TTMP1
DXCH TTMP1
DDOUBL
DAS TMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TMP6
DXCH TMP5
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CAF ZERO
TS TTMP1
TS TMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CA DAP2 +1 # MULTIPLY INPUT BY
2016-12-28 16:11:25 +00:00
EXTEND
2016-07-07 08:47:26 +00:00
MP N10 +12D # N32
TS TTMP1 +1
CA DAP2
EXTEND
MP N10 +12D # N32
DAS TTMP1
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
CS DAP3 +1
EXTEND
MP N10 +14D # D32
TS TMP6 +1
CS DAP3
EXTEND
2016-12-28 16:11:25 +00:00
# Page 977
2016-07-07 08:47:26 +00:00
MP N10 +14D # D32
DAS TMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
DXCH TTMP1
DAS TMP6
2016-12-28 16:11:25 +00:00
2016-07-07 08:47:26 +00:00
TC Q
2016-12-28 16:11:25 +00:00
# Page 978
2016-07-07 08:47:26 +00:00
# CONSTANTS FOR AUTOPILOTS
# NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41x16384/3600/360)
2016-07-07 08:47:26 +00:00
# 1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS
ACTSAT DEC 253 # ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV
1/ACTSAT DEC .0039525692 # RECIPROCAL (1/253)
ERRLIM EQUALS BIT13 # FILTER INPUT LIMIT....B-3 REVS (45DEG),
1/ERRLIM EQUALS BIT3 # SC.AT B-1 REV, AND ITS RECIPROCAL
PITCHT5 GENADR PITCHDAP # UPPER WORDS OF T5 2CADRS, LOWER WORDS
DAPT5 GENADR DAPINIT # (BBCON) ALREADY THERE. ORDER IS
YAWT5 GENADR YAWDAP # REQUIRED.
1/RTLIM DEC 0.004715 # .004715(CDUDIF) = 0 IF CDUIF < 2.33 DEG
1-E(-AT) OCT 00243 # AT = .01SEC....EITHER(1/A=4SEC, T=40MS),
E(-AT) OCT 37535 # OR(1/A=8SEC, T=80MS)