Proof CM_ENTRY_DIGITAL_AUTOPILOT (#340, closes #196)

Proof CM_ENTRY_DIGITAL_AUTOPILOT (closes #196)
This commit is contained in:
cai 2018-07-19 06:08:49 +08:00 committed by James Harris
parent 3a9b000cb4
commit b47cb532c2

View File

@ -31,11 +31,11 @@
# Colossus 2A # Colossus 2A
# Page 1063 # Page 1063
# SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2'S COMPLEMENT, BUT THE # SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
# DIFFERENCES ARE IN 1'S COMP. ENTER AND READ ANGLES EACH .1 SEC. # DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
# #
# CM/DSTBY = 1 FOR DAP OPERATION # CM/DSTBY = 1 FOR DAP OPERATION
# CM/DSTBY = 0 TO TERMINATE DAP OPERATION # CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
BANK 15 BANK 15
@ -47,17 +47,17 @@
EBANK= AOG EBANK= AOG
READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
ADS CM/GYMDT # PIPTIME. (GROUP 6) ADS CM/GYMDT # PIPTIME. (GROUP 6)
# IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE # IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
# PHASCHNG PROTECTION IS IN CM/DAPIC. # PHASCHNG PROTECTION IS IN CM/DAPIC.
CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU. CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU.
MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS MASK IMODES33 # ( PROTECT AOG/PIP ETC AS WELL AS
EXTEND # GIMBAL DIFFERENCES) EXTEND # GIMBAL DIFFERENCES)
BZF READGYM1 # OK BZF READGYM1 # OK
CS BIT1 # NOT IN FINE ALIGN, SO IDLE CS BIT1 # NOT IN FINE ALIGN, SO IDLE.
MASK CM/FLAGS # SET GYMDIFSW = 0 MASK CM/FLAGS # SET GYMDIFSW = 0
TS CM/FLAGS TS CM/FLAGS
TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE. TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
@ -87,7 +87,7 @@ DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1
INDEX A INDEX A
TC +1 TC +1
TC DOBRATE # OK, GO ON TC DOBRATE # OK, GO ON
TC CM/GYMIC # DON'T CALC BODYRATE ON FIRST PASS. TC CM/GYMIC # DONT CALC BODYRATE ON FIRST PASS.
NOOP NOOP
TC FLUSHJET # TURN OFF ALL JETS TC FLUSHJET # TURN OFF ALL JETS
@ -97,7 +97,7 @@ DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1
TC TASKOVER TC TASKOVER
DOBRATE CA ONE # DO BODYRATE DOBRATE CA ONE # DO BODYRATE
DOBRATE1 TS JETEM # SKIP BODYRATE DOBRATE1 TS JETEM # SKIP BODYRATE.
CA TEN # KEEP CDU READ GOING. CA TEN # KEEP CDU READ GOING.
TC WAITLIST TC WAITLIST
@ -108,9 +108,9 @@ DOBRATE1 TS JETEM # SKIP BODYRATE
CCS JETEM CCS JETEM
TC BODYRATE TC BODYRATE
TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES) TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0 CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
CAF ZERO CAF ZERO
TS JETAG TS JETAG
TS OLDELP TS OLDELP
@ -168,7 +168,7 @@ CM/DAPON CA EBAOG
TS EBANK TS EBANK
TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER. TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
ADRES DAPBIT1 # BIT 15 FLAG 6 CMFLAGS. ADRES DAPBIT1 # BIT 15 FLAG 6 CM FLAGS.
TC DOWNFLAG # RESET DAPBIT2 TC DOWNFLAG # RESET DAPBIT2
ADRES DAPBIT2 # BIT 14 FLAG 6 ADRES DAPBIT2 # BIT 14 FLAG 6
EXTEND EXTEND
@ -181,7 +181,7 @@ CM/DAPON CA EBAOG
TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS. TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
CS 13,14,15 CS 13,14,15
MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY MASK DAPDATR1 # SET CONFIG BITS =0 FOR ENTRY
TS DAPDATR1 TS DAPDATR1
TC +4 TC +4
@ -198,8 +198,7 @@ NOTYET CA .5SEC
# NEXT PASS. # NEXT PASS.
TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
# HEADSUP IS SET IN P62. # HEADSUP IS SET IN P62.
# FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
# FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62
CA 7 CA 7
TS JETAG TS JETAG
@ -240,7 +239,7 @@ CM/DAPIC CA EBAOG
INHINT INHINT
CM/DAP2C CS PIPTIME +1 CM/DAP2C CS PIPTIME +1
# PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1. # PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1
TS JETEM TS JETEM
CA POS1/2 CA POS1/2
@ -264,13 +263,13 @@ CM/DAP2C CS PIPTIME +1
MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
AD CM/SWIC2 # SET CM/DSTBY, LATSW AD CM/SWIC2 # SET CM/DSTBY, LATSW
# DISABLE ENTRY DISPLAY, SINCE DES. GIMB. # DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
# CALC. (P62.3) GOES TO ENDEXIT # CALC. (P62.3) GOES TO ENDEXIT.
TS CM/FLAGS TS CM/FLAGS
CA 7 CA 7
TS BETA/180 # NECESSARY: NO OVFL CORRECTIO TS BETA/180 # NECESSARY: NO OVFL CORRECTION
CA ONE # INITIALIZE THE TM OF BODY RATES VIA CA ONE # INITIALIZE THE TM OF BODY RATES VIA
TS SW/NDX # UPBUFF. TS SW/NDX # UPBUFF.
TC 2PHSCHNG # DOES INHINT/RELINT TC 2PHSCHNG # DOES INHINT/RELINT
OCT 40116 # SAVE TBASE6 OCT 40116 # SAVE TBASE6
@ -282,20 +281,20 @@ CM/DAP2C CS PIPTIME +1
CADR P62.2 CADR P62.2
CM/SWIC1 OCT 16017 CM/SWIC1 OCT 16017
CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW CM/SWIC2 = TEN # 00012 : CM/DSTBY, LATSW
-CDUT+1 OCT 77766 -CDUT+1 OCT 77766
EBANK= T5LOC EBANK= T5LOC
T5IDLER1 2CADR T5IDLOC T5IDLER1 2CADR T5IDLOC
# Page 1070 # Page 1070
# THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES # THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
# XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARILY ERASE. JETEM, JETEM +1 # XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARY ERASE. JETEM, JETEM +1
# #
# SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS, # SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
# THE 0.1 SEC DAPS WILL MISS A CYCLE, AND WILL PICK UP AT THE NEXT 0.1 SEC UPDATE. MOST OF THE TIME THE 2 SEC # THE 0.1 SEC DAPS WILL MISS A CYCLE, AND WILL PICK UP AT THE NEXT 0.1 SEC UPDATE. MOST OF THE TIME THE 2 SEC
# ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS # ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
# STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE. # STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
# THIS IS NECESSARY UNDER THE GROUND-RULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS. # THIS IS NECESSARY UNDER THE GROUNDRULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
EBANK= AOG EBANK= AOG
BANK 15 BANK 15
@ -304,7 +303,7 @@ T5IDLER1 2CADR T5IDLOC
COUNT 15/DAPEN COUNT 15/DAPEN
BODYRATE CA AMG # THESE ARE 2'S COMPL NOS, BUT USE ANYWAY. BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
TC SPCOS TC SPCOS
TS COSM TS COSM
@ -544,10 +543,10 @@ BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
TCF +2 TCF +2
CA CM/BIAS CA CM/BIAS
AD L # BIAS THE ERROR. AD L # BIAS THE ERROR.
LXCH Q # SAVE CALLER'S RETURN ADDRES. LXCH Q # SAVE CALLERS RETURN ADDRESS.
TC 3DDZ # GO GENERATE THE ERROR BIT. TC 3DDZ # GO GENERATE THE ERROR BIT.
DXCH L # BIT TO L, RESTORE CALLER'S Q. DXCH L # BIT TO L, RESTORE CALLERS Q.
4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT 4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
TCF +2 # JET BITS ACCORDING TO SGN OF RATE. TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
AD 4D/SLIM AD 4D/SLIM
@ -641,7 +640,7 @@ EXDAP1 TS RAXERR # FOR YAW FDAI
CA ONE # USE BETADOT TO COORD IN MODE +0 CA ONE # USE BETADOT TO COORD IN MODE +0
INDEX A # OTHERWISE USE RREL. INDEX A # OTHERWISE USE RREL.
CA RREL CA RREL
TC BIASEDZ # GO TEST DZ +0 IF IN DX, +-1 OTHERWISE TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
# IF GEQ 4D/S, SET ERROR BIT IN L=0 # IF GEQ 4D/S, SET ERROR BIT IN L=0
EXTEND EXTEND
ROR LCHAN # L HAS BETA BIT ROR LCHAN # L HAS BETA BIT
@ -660,7 +659,7 @@ EXDAP1 TS RAXERR # FOR YAW FDAI
EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1 EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD
# =0 AND JETAG =-1, QUENCHES JETS IF ON) # =0 AND JETAG =-1, QUENCHES JETS IF ON)
CCS P63FLAG # IF FLAG WAS +1, SET =0. CCS P63FLAG # IF FLAG WAS +1, SET =0.
@ -687,11 +686,11 @@ EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
INDEX A INDEX A
CAF P/RJCODE # GET ROLL CODE CAF P/RJCODE # GET ROLL CODE
EXTEND # ROLL CONTROL WITH YAW JETS. EXTEND # ROLL CONTROL WITH YAW JETS.
WRITE ROLLJETS # WE'LL SKIP REGULAR ROLL SYST WRITE ROLLJETS # WE,LL SKIP REGULAR ROLL SYST
CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME. CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
EXTEND EXTEND
MSU ROLL/180 # 1'S COMPL, BUT SO WHAT'S A BIT? MSU ROLL/180 # 1,S COMPL, BUT SO WHATS A BIT.?
TS L # FORCE A LIMIT CYCLE IN YAW RATE. TS L # FORCE A LIMIT CYCLE IN YAW RATE.
CCS SALFA CCS SALFA
CA L # TO REMOVE ITS BIASING EFFECT ON M DOT. CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
@ -713,11 +712,11 @@ SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3) COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
# TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA # TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
# USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY # USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
# FROM TRIM, SO USE ON-BOARD ESTIMATES. # FROM TRIM, SO USE ON-BOARD ESTIMATES.
# Page 1080 # Page 1080
# JET CODE TABLES FOLLOW # JET CODE TABLES FOLLOW _
OCTAL 00120 # POS Y OCTAL 00120 # POS Y
YJETCODE OCTAL 00000 # RCS JET BITS YJETCODE OCTAL 00000 # RCS JET BITS
@ -787,7 +786,7 @@ GETLCX CA POS1/2 # FORM RCOM/360
AD NEG1/2 AD NEG1/2
AD NEG1/2 # IGNORE OVFL AD NEG1/2 # IGNORE OVFL
XCH LCX/360 # -R/360 XCH LCX/360 # -R/360
ADS LCX/360 # LCX/360 = RCOM/360 - R/360 RANGE (-1,1) ADS LCX/360 # LCX/360 = RCOM/360 -R/360 RANGE (-1,1)
# DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ? # DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
@ -840,7 +839,7 @@ COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
MP 180/8ATT MP 180/8ATT
TS VSQ/4API TS VSQ/4API
# IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360 POS? # IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 - .5 BUFLIM/360 POS?
WHICHALF DOUBLE # FOR SECOND BURN, A1 WHICHALF DOUBLE # FOR SECOND BURN, A1
COM COM
@ -861,7 +860,7 @@ WHICHALF DOUBLE # FOR SECOND BURN, A1
AD BUFLIM AD BUFLIM
AD BUFLIM AD BUFLIM
EXTEND EXTEND
BZMF DZ1 # POINT (X,V) IN RHP BZMF DZ1 # POINT (X,V) IN RHP.
# IS POINT WITHIN VELOCITY DZ? # IS POINT WITHIN VELOCITY DZ?
@ -899,7 +898,7 @@ DZ2 CS XMIN/360 # XMIN/360 = 4/360
AD LCX/360 AD LCX/360
AD SR # C(SR) = -VT/360 AD SR # C(SR) = -VT/360
EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $ EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0. BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0.
# IS XD/360 - VM/360K - XS/360 POS? # IS XD/360 - VM/360K - XS/360 POS?
@ -1003,7 +1002,7 @@ TIMSCAL TS TOFF # IN CS
TS JETAG # SET +0 TO SHOW ROLL DAP CALLED. TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
# CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE # CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
# INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON EXIT # INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON EXIT
# AND ON ALTERNATE PASSES THROUGH CM/DUMPR. # AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
CA ONE CA ONE
@ -1188,7 +1187,7 @@ CM/FDAIR CA HALF
CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
TS SW/NDX TS SW/NDX
EXTEND # INDEX EXTEND # INDEX.
BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
# ENDBUF. # ENDBUF.
# INDEX IS POS FOR NEEDLES. # INDEX IS POS FOR NEEDLES.
@ -1203,7 +1202,6 @@ CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
CMTMFILE AD THREE CMTMFILE AD THREE
EXTEND EXTEND
BZMF SAVENDX BZMF SAVENDX
# Page 1091 # Page 1091
CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF. CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
TS CMTMTIME TS CMTMTIME
@ -1250,9 +1248,9 @@ T5IDLER2 2CADR T5IDLOC
# SPACER # SPACER
# #
# CONSTANTS USED IN THE ROLL CONTROL SYSTEM: # CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
# CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC, # CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
# XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE # XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
# XBUF = 4DEG # XBUF = 4 DEG
-T-3 DEC -203 # CS -T-3 DEC -203 # CS
VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180) VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180)
@ -1266,10 +1264,10 @@ XMIN/360 DEC 182 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
1/16A1 = 180/8ATT 1/16A1 = 180/8ATT
# 1/16A1 = 180/(16 A1 TT) # 1/16A1 = 180/(16 A1 TT)
# = 180/(16 4.55 4) # = 180/(16 4.55 4)
XS/360 DEC 91 # = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14 XS/360 DEC 91 # =(XMIN +VI (T-1/K))/360 = 2/360 EXP 14
BUFLIM = XS/360 # 4/(2 360) BUFLIM = XS/360 # 4/(2 360)
KTRCS = HALF # KT = (.25) 2 = .5 KTRCS = HALF # KT = (.25) 2 = .5
# *** END OF TVCDAPS .011 *** # *** END OF TVCDAPS .011 ***