From b47cb532c2261aa11da6ab524410bce0ba85dae5 Mon Sep 17 00:00:00 2001 From: cai Date: Thu, 19 Jul 2018 06:08:49 +0800 Subject: [PATCH] Proof CM_ENTRY_DIGITAL_AUTOPILOT (#340, closes #196) Proof CM_ENTRY_DIGITAL_AUTOPILOT (closes #196) --- Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc | 94 +++++++++++----------- 1 file changed, 46 insertions(+), 48 deletions(-) diff --git a/Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc b/Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc index 06fb01d..c107615 100644 --- a/Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc +++ b/Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc @@ -31,11 +31,11 @@ # Colossus 2A # Page 1063 -# SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2'S COMPLEMENT, BUT THE -# DIFFERENCES ARE IN 1'S COMP. ENTER AND READ ANGLES EACH .1 SEC. +# SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE +# DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC. # # CM/DSTBY = 1 FOR DAP OPERATION -# CM/DSTBY = 0 TO TERMINATE DAP OPERATION +# CM/DSTBY = 0 TO TERMINATE DAP OPERATION. BANK 15 @@ -47,17 +47,17 @@ EBANK= AOG 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. CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU. - MASK IMODES33 # (PROTECT AOG/PIP ETC AS WELL AS - EXTEND # GIMBAL DIFFERENCES) + MASK IMODES33 # ( PROTECT AOG/PIP ETC AS WELL AS + EXTEND # GIMBAL DIFFERENCES) 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 TS CM/FLAGS 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 TC +1 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 TC FLUSHJET # TURN OFF ALL JETS @@ -97,7 +97,7 @@ DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1 TC TASKOVER DOBRATE CA ONE # DO BODYRATE -DOBRATE1 TS JETEM # SKIP BODYRATE +DOBRATE1 TS JETEM # SKIP BODYRATE. CA TEN # KEEP CDU READ GOING. TC WAITLIST @@ -108,9 +108,9 @@ DOBRATE1 TS JETEM # SKIP BODYRATE CCS JETEM 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 TS JETAG TS OLDELP @@ -168,7 +168,7 @@ CM/DAPON CA EBAOG TS EBANK 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 ADRES DAPBIT2 # BIT 14 FLAG 6 EXTEND @@ -181,7 +181,7 @@ CM/DAPON CA EBAOG TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS. CS 13,14,15 - MASK DAPDATR1 # SET CONFIG BITS=0 FOR ENTRY + MASK DAPDATR1 # SET CONFIG BITS =0 FOR ENTRY TS DAPDATR1 TC +4 @@ -198,8 +198,7 @@ NOTYET CA .5SEC # NEXT PASS. TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL # HEADSUP IS SET IN P62. - - # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62 + # FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62. CA 7 TS JETAG @@ -240,7 +239,7 @@ CM/DAPIC CA EBAOG INHINT CM/DAP2C CS PIPTIME +1 - # PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1. + # PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1 TS JETEM CA POS1/2 @@ -264,13 +263,13 @@ CM/DAP2C CS PIPTIME +1 MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP AD CM/SWIC2 # SET CM/DSTBY, LATSW # DISABLE ENTRY DISPLAY, SINCE DES. GIMB. - # CALC. (P62.3) GOES TO ENDEXIT + # CALC. (P62.3) GOES TO ENDEXIT. TS CM/FLAGS 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 - TS SW/NDX # UPBUFF. + TS SW/NDX # UPBUFF. TC 2PHSCHNG # DOES INHINT/RELINT OCT 40116 # SAVE TBASE6 @@ -282,20 +281,20 @@ CM/DAP2C CS PIPTIME +1 CADR P62.2 CM/SWIC1 OCT 16017 -CM/SWIC2 = TEN # 00012: CM/DSTBY, LATSW +CM/SWIC2 = TEN # 00012 : CM/DSTBY, LATSW -CDUT+1 OCT 77766 EBANK= T5LOC T5IDLER1 2CADR T5IDLOC # Page 1070 # 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, -# 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 +# 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 +# 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. -# 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 BANK 15 @@ -304,7 +303,7 @@ T5IDLER1 2CADR T5IDLOC 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 TS COSM @@ -544,10 +543,10 @@ BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L. TCF +2 CA CM/BIAS 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. - DXCH L # BIT TO L, RESTORE CALLER'S Q. -4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT + DXCH L # BIT TO L, RESTORE CALLERS Q. +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 TCF +2 # JET BITS ACCORDING TO SGN OF RATE. AD 4D/SLIM @@ -641,7 +640,7 @@ EXDAP1 TS RAXERR # FOR YAW FDAI CA ONE # USE BETADOT TO COORD IN MODE +0 INDEX A # OTHERWISE USE 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 EXTEND ROR LCHAN # L HAS BETA BIT @@ -660,7 +659,7 @@ EXDAP1 TS RAXERR # FOR YAW FDAI EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1 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) CCS P63FLAG # IF FLAG WAS +1, SET =0. @@ -687,11 +686,11 @@ EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1 INDEX A CAF P/RJCODE # GET ROLL CODE 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. 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. CCS SALFA 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) # 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. # Page 1080 -# JET CODE TABLES FOLLOW +# JET CODE TABLES FOLLOW _ OCTAL 00120 # POS Y YJETCODE OCTAL 00000 # RCS JET BITS @@ -787,7 +786,7 @@ GETLCX CA POS1/2 # FORM RCOM/360 AD NEG1/2 AD NEG1/2 # IGNORE OVFL 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 ? @@ -840,7 +839,7 @@ COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN. MP 180/8ATT 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 COM @@ -861,7 +860,7 @@ WHICHALF DOUBLE # FOR SECOND BURN, A1 AD BUFLIM AD BUFLIM EXTEND - BZMF DZ1 # POINT (X,V) IN RHP + BZMF DZ1 # POINT (X,V) IN RHP. # IS POINT WITHIN VELOCITY DZ? @@ -899,7 +898,7 @@ DZ2 CS XMIN/360 # XMIN/360 = 4/360 AD LCX/360 AD SR # C(SR) = -VT/360 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? @@ -1003,7 +1002,7 @@ TIMSCAL TS TOFF # IN CS TS JETAG # SET +0 TO SHOW ROLL DAP CALLED. # 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. CA ONE @@ -1188,7 +1187,7 @@ CM/FDAIR CA HALF CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE TS SW/NDX - EXTEND # INDEX + EXTEND # INDEX. BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO # ENDBUF. # INDEX IS POS FOR NEEDLES. @@ -1203,7 +1202,6 @@ CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE CMTMFILE AD THREE EXTEND BZMF SAVENDX - # Page 1091 CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF. TS CMTMTIME @@ -1250,9 +1248,9 @@ T5IDLER2 2CADR T5IDLOC # SPACER # # 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, -# XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE -# XBUF = 4DEG +# 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 +# XBUF = 4 DEG -T-3 DEC -203 # CS 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/(16 A1 TT) # = 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) -KTRCS = HALF # KT = (.25) 2 = .5 +KTRCS = HALF # KT = (.25) 2 = .5 # *** END OF TVCDAPS .011 ***