From 6f7d1322398ac20a021e9705818bbdb6f31a1bc4 Mon Sep 17 00:00:00 2001 From: Leandro Matheus Date: Wed, 14 Oct 2020 15:49:40 -0300 Subject: [PATCH] Proof PLANETARY_INERTIAL_ORIENTATION #623 (#717) Co-authored-by: James Harris --- .../PLANETARY_INERTIAL_ORIENTATION.agc | 238 +++++++++--------- 1 file changed, 116 insertions(+), 122 deletions(-) diff --git a/Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc b/Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc index 8fc6582..303d2fc 100644 --- a/Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc +++ b/Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc @@ -25,32 +25,31 @@ # 16:27 JULY 14, 1969 # Page 1140 -# ***** RP-TO-R SUBROUTINE ***** -# SUBROUTINE TO CONVERT RP (VECTOR IN PLANETARY COORDINATE SYSTEM, EITHER -# EARTH-FIXED OR MOON-FIXED) TO R (SAME VECTOR IN THE BASIC REF. SYSTEM) +# ..... RP-TO-R SUBROUTINE ..... +# SUBROUTINE TO CONVERT RP (VECTOR IN PLANETARY COORDINATE SYSTEM,EITHER +# EARTH-FIXED OR MOON-FIXED) TO R (SAME VECTOR IN THE BASIC REF. SYSTEM) # -# R = MT(T) * (RP + LP X RP) MT = M MATRIX TRANSPOSE +# R=MT(T)*(RP+LPXRP) MT= M MATRIX TRANSPOSE # # CALLING SEQUENCE -# L CALL -# L+1 RP-TO-R +# L CALL +# L+1 RP-TO-R # # SUBROUTINES USED -# EARTHMX, MOONMX, EARTHL -# -# ITEMS AVAILABLE FROM LAUNCH DATA -# 504LM = THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL, EXPRESSED -# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0 +# EARTHMX,MOONMX,EARTHL # +# ITEMS AVAILABLE FROM LAUNCH DATA +# 504LM= THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL,EXPRESSED +# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0 # ITEMS NECESSARY FOR SUBR. USED (SEE DESCRIPTION OF SUBR.) # # INPUT -# MPAC = 0 FOR EARTH, NON-ZERO FOR MOON -# 0-5D = RP VECTOR -# 6-7D = TIME +# MPAC= 0 FOR EARTH,NON-ZERO FOR MOON +# 0-5D= RP VECTOR +# 6-7D= TIME # # OUTPUT -# MPAC = R VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON +# MPAC= R VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON SETLOC PLANTIN1 BANK @@ -84,32 +83,31 @@ RPTORA CALL # EARTH COMPUTATIONS COUNT* $$/LUROT # Page 1142 -# ***** R-TO-RP SUBROUTINE ***** +# ..... R-TO-RP SUBROUTINE ..... # SUBROUTINE TO CONVERT R (VECTOR IN REFERENCE COORD. SYSTEM) TO RP -# (VECTOR IN PLANETARY COORD SYSTEM) EITHER EARTH-FIXED OR MOON-FIXED +# (VECTOR IN PLANETARY COORD SYSTEM) EITHER EARTH-FIXED OR MOON-FIXED # -# RP = M(T) * (R - L X R) +# RP=M(T)*(R-LXR) # # CALLING SEQUENCE -# L CALL -# L+1 R-TO-RP +# L CALL +# L+1 R-TO-RP # # SUBROUTINES USED -# EARTHMX, MOONMX, EARTHL +# EARTHMX,MOONMX,EARTHL # # INPUT -# MPAC = 0 FOR EARTH, NON-ZERO FOR MOON -# 0-5D = R VECTOR -# 6-7D = TIME -# -# ITEMS AVAILABLE FROM LAUNCH DATA -# 504LM = THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL, EXPRESSED -# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0 +# MPAC= 0 FOR EARTH, NON-ZERO FOR MOON +# 0-5D= R VECTOR +# 6-7D= TIME # +# ITEMS AVAILABLE FROM LAUNCH DATA +# 504LM= THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL,EXPRESSED +# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0 # ITEMS NECESSARY FOR SUBROUTINES USED (SEE DESCRIPTION OF SUBR.) # # OUTPUT -# MPAC = RP VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON +# MPAC=RP VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON R-TO-RP STQ BHIZ RPREXIT @@ -119,11 +117,11 @@ R-TO-RP STQ BHIZ VLOAD VXM 504LM # LP=LM MMATRIX - VSL1 # L = MT(T)*LP RADIANS B0 + VSL1 # L=MT(T)*LP RADIANS B0 RTORPB VXV BVSU 504RPR 504RPR - MXV # M(T)*(R-LXR) B-2 + MXV # M(T)*(R-LXR) B-2 MMATRIX RPRPXXXX VSL1 SETPD 0D @@ -133,74 +131,73 @@ RTORPA CALL # EARTH COMPUTATIONS EARTHMX CALL EARTHL - GOTO # MPAC=L=(-AX,-AY,0) RAD B-0 + GOTO # MPAC=L=(-AX,-AY,0) RAD B-0 RTORPB # Page 1143 -# ***** MOONMX SUBROUTINE ***** +# ..... MOONMX SUBROUTINE ..... # SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE MOON # # CALLING SEQUENCE -# L CALL -# L+1 MOONMX +# L CALL +# L+1 MOONMX # # SUBROUTINES USED -# NEWANGLE +# NEWANGLE # # INPUT -# 6-7D = TIME -# -# ITEMS AVAILABLE FROM LAUNCH DATA -# BSUBO, BDOT -# TIMSUBO, NODIO, NODDOT, FSUBO, FDOT -# COSI = COS(I) B-1 -# SINI = SIN(I) B-1 -# I IS THE ANGLE BETWEEN THE MEAN LUNAR EQUATORIAL PLANE AND THE -# PLANE OF THE ECLIPTIC (1 DEGREE 32.1 MINUTES) +# 6-7D= TIME +# ITEMS AVAILABLE FROM LAUNCH DATA +# BSUBO,BDOT +# TIMSUBO,NODIO,NODDOT,FSUBO,FDOT +# COSI= COS(I) B-1 +# SINI= SIN(I) B-1 +# I IS THE ANGLE BETWEEN THE MEAN LUNAR EQUATORIAL PLANE AND THE +# PLANE OF THE ECLIPTIC (1 DEGREE 32.1 MINUTES) # # OUTPUT -# MMATRIX = 3X3 M MATRIX B-1 (STORED IN VAC AREA) +# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA) MOONMX STQ SETPD EARTHMXX 8D AXT,1 # B REQUIRES SL 0, SL 5 IN NEWANGLE 5 - DLOAD PDDL # PD 10D 8-9D=BSUBO - BSUBO # 10-11D=BDOT + DLOAD PDDL # PD 10D 8-9D=BSUBO + BSUBO # 10-11D= BDOT BDOT PUSH CALL # PD 12D - NEWANGLE # EXIT WITH PD 8D AND MPAC= B REVS B0 + NEWANGLE # EXIT WITH PD 8D AND MPAC= B REVS B0 PUSH COS # PD 10D - STODL COB # PD 8D COS(B) B-1 - SIN # SIN(B) B-1 - STODL SOB # SETUP INPUT FOR NEWANGLE - FSUBO # 8-9D=FSUBO - PDDL PUSH # PD 10D THEN 12D 10-11D=FDOT + STODL COB # PD 8D COS(B) B-1 + SIN # SIN(B) B-1 + STODL SOB # SETUP INPUT FOR NEWANGLE + FSUBO # 8-9D=FSUBO + PDDL PUSH # PD 10D THEN 12D 10-11D=FDOT FDOT - AXT,1 CALL # F REQUIRES SL 1, SL 6 IN NEWANGLE. + AXT,1 CALL # F REQUIRES SL 1, SL 6 IN NEWANGLE 4 NEWANGLE # EXIT WITH PD 8D AND MPAC= F REVS B0 STODL AVECTR +2 # SAVE F TEMP NODIO # 8-9D=NODIO - PDDL PUSH # PD 10D THEN 12D 10-11D=NODDOT + PDDL PUSH # PD 10D THEN 12D 10-11D=NODDOT NODDOT # MPAC=T AXT,1 CALL # NODE REQUIRES SL 0, SL 5 IN NEWANGLE 5 NEWANGLE # EXIT WITH PD 8D AND MPAC= NODI REVS B0 # Page 1144 - PUSH COS # PD 10D 8-9D= NODI REVS B0 - PUSH # PD 12D 10-11D= COS(NODI) B-1 + PUSH COS # PD 10D 8-9D= NODI REVS B0 + PUSH # PD 12D 10-11D= COS(NODI) B-1 STORE AVECTR DMP SL1R - COB # COS(NODI) B-1 - STODL BVECTR +2 # PD 10D 20-25D=AVECTR= COB*SIN(NODI) - DMP SL1R # SOB*SIN(NODI) + COB # COS(NODI) B-1 + STODL BVECTR +2 # PD 10D 20-25D=AVECTR= COB*SIN(NODI) + DMP SL1R # SOB*SIN(NODI) SOB STODL BVECTR +4 # PD 8D - SIN PUSH # PD 10D -SIN(NODI) B-1 - DCOMP # 26-31D=BVECTR= COB*COS(NODI) - STODL BVECTR # PD 8D SOB*COS(NODI) + SIN PUSH # PD 10D -SIN(NODI) B-1 + DCOMP # 26-31D=BVECTR= COB*COS(NODI) + STODL BVECTR # PD 8D SOB*COS(NODI) AVECTR +2 # MOVE F FROM TEMP LOC. TO 504F STODL 504F DMP SL1R @@ -214,30 +211,30 @@ MOONMX STQ SETPD COUNT* $$/LUROT MOONMXA STODL AVECTR +2 - SINNODI # 8-9D=SIN(NODI) B-1 + SINNODI # 8-9D=SIN(NODI) B-1 DMP SL1R SOB - STODL AVECTR +4 # 0 - HI6ZEROS # 8-13D= CVECTR= -SOB B-1 - PDDL DCOMP # PD 10D COB + STODL AVECTR +4 # 0 + HI6ZEROS # 8-13D= CVECTR= -SOB B-1 + PDDL DCOMP # PD 10D COB SOB PDDL PDVL # PD 12D THEN PD 14D COB BVECTR - VXSC PDVL # PD 20D BVECTR*SINI B-2 + VXSC PDVL # PD 20D BVECTR*SINI B-2 SINI CVECTR - VXSC VAD # PD 14D CVECTR*COSI B-2 + VXSC VAD # PD 14D CVECTR*COSI B-2 COSI VSL1 STOVL MMATRIX +12D # PD 8D M2=BVECTR*SINI+CVECTR*COSI B-1 VXSC PDVL # PD 14D - SINI # CVECTR*SINI B-2 + SINI # CVECTR*SINI B-2 BVECTR - VXSC VSU # PD 8D BVECTR*COSI B-2 + VXSC VSU # PD 8D BVECTR*COSI B-2 COSI VSL1 PDDL # PD 14D - 504F # 8-13D=DVECTR=BVECTR*COSI-CVECTR*SINI B-1 + 504F # 8-13D=DVECTR=BVECTR*COSI-CVECTR*SINI B-1 COS VXSC # Page 1145 DVECTR @@ -256,13 +253,12 @@ MOONMXA STODL AVECTR +2 VSL1 VCOMP STCALL MMATRIX # M0= -(AVECTR*COSF+DVECTR*SINF) B-1 EARTHMXX - # COMPUTE X=X0+(XDOT)(T+T0) -# 8-9D= X0 (REVS B-0), PUSHLOC SET AT 12D +# 8-9D= X0 (REVS B-0),PUSHLOC SET AT 12D # 10-11D=XDOT (REVS/CSEC) SCALED B+23 FOR WEARTH,B+28 FOR NODDOT AND BDOT -# AND B+27 FOR FDOT -# X1=DIFFERENCE IN 23 AND SCALING OF XDOT, =0 FOR WEARTH, 5 FOR NDDOT AND -# BDOT AND 4 FOR FDOT +# AND B+27 FOR FDOT +# X1=DIFFERENCE IN 23 AND SCALING OF XDOT,=0 FOR WEARTH,5 FOR NODDOT AND +# BDOT AND 4 FOR FDOT # 6-7D=T (CSEC B-28), TIMSUBO= (CSEC B-42 TRIPLE PREC.) NEWANGLE DLOAD SR # ENTER PD 12D @@ -273,58 +269,58 @@ NEWANGLE DLOAD SR # ENTER PD 12D MPAC STODL TIMSUBM # T+T0 CSEC B-42 TIMSUBM +1 - DMP # PD 10D MULT BY XDOT IN 10-11D - SL* DAD # PD 8D ADD X0 IN 8-9D AFTER SHIFTING - 5,1 # SUCH THAT SCALING IS B-0 - PUSH SLOAD # PD 10D SAVE PARTIAL (X0+XDOT*T) IN 8-9D + DMP # PD 10D MULT BY XDOT IN 10-11D + SL* DAD # PD 8D ADD X0 IN 8-9D AFTER SHIFTING + 5,1 # SUCH THAT SCALING IS B-0 + PUSH SLOAD # PD 10D SAVE PARTIAL (X0+XDOT*T) IN 8-9D TIMSUBM SL DMP 9D 10D # XDOT - SL* DAD # PD 8D SHIFT SUCH THAT THIS PART OF X - 10D,1 # IS SCALED REVS/CSEC B-0 + SL* DAD # PD 8D SHIFT SUCH THAT THIS PART OF X + 10D,1 # IS SCALED REVS/CSEC B-0 BOV # TURN OFF OVERFLOW IF SET BY SHIFT - +1 # INSTRUCTION BEFORE EXITING. + +1 # INSTRUCTION BEFORE EXITING RVQ # MPAC=X= X0+(XDOT)(T+T0) REVS B0 # Page 1146 -# ***** EARTHMX SUBROUTINE ***** +# ..... EARTHMX SUBROUTINE ..... # SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE EARTH # # CALLING SEQUENCE -# L CALL -# L+1 EARTHMX +# L CALL +# L+1 EARTHMX # # SUBROUTINE USED -# NEWANGLE +# NEWANGLE # # INPUT -# INPUT AVAILABLE FROM LAUNCH DATA AZO REVS B-0 -# TEPHEM CSEC B-42 -# 6-7D= TIME CSEC B-28 +# INPUT AVAILABLE FROM LAUNCH DATA AZO REVS B-0 +# TEPHEM CSEC B-42 +# 6-7D= TIME CSEC B-28 # # OUTPUT -# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA) +# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA) BANK 26 SETLOC PLANTIN1 BANK COUNT* $$/LUROT -EARTHMX STQ SETPD # SET 8-9D=AZO +EARTHMX STQ SETPD # SET 8-9D=AZO EARTHMXX 8D # 10-11D=WEARTH - AXT,1 # FOR SL 5, AND SL 10 IN NEWANGLE + AXT,1 # FOR SL 5, AND SL 10 IN NEWANGLE 0 - DLOAD PDDL # LEAVING PD SET AT 12D FOR NEWANGLE + DLOAD PDDL # LEAVING PD SET AT 12D FOR NEWANGLE AZO WEARTH PUSH CALL NEWANGLE SETPD PUSH # 18-19D=504AZ - 18D # COS(AZ) SIN(AZ) 0 - COS PDDL # 20-37D= MMATRIX= -SIN(AZ) COS(AZ) 0 B-1 - 504AZ # 0 0 1 + 18D # COS(AZ) SIN(AZ) 0 + COS PDDL # 20-37D= MMATRIX= -SIN(AZ) COS(AZ) 0 B-1 + 504AZ # 0 0 1 SIN PDDL HI6ZEROS PDDL SIN @@ -339,20 +335,20 @@ EARTHMX STQ SETPD # SET 8-9D=AZO EARTHMXX # Page 1147 -# ***** EARTHL SUBROUTINE ***** +# ..... EARTHL SUBROUTINE ..... # SUBROUTINE TO COMPUTE L VECTOR FOR EARTH # # CALLING SEQUENCE -# L CALL -# L+1 EARTHL +# L CALL +# L+1 EARTHL # # INPUT -# AXO,AYO SET AT LAUNCH TIME WITH AYO IMMEDIATELY FOLLOWING AXO IN CORE +# AXO,AYO SET AT LAUNCH TIME WITH AYO IMMEDIATELY FOLLOWING AXO IN CORE # # OUTPUT -# -AX -# MPAC= -AY RADIANS B-0 -# 0 +# -AX +# MPAC= -AY RADIANS B-0 +# 0 BANK 06 SETLOC EARTHLOC @@ -371,21 +367,19 @@ EARTHL DLOAD DCOMP # Page 1148 # CONSTANTS AND ERASABLE ASSIGNMENTS - 1B1 = DP1/2 # 1 SCALED B-1 RPREXIT = S1 # R-TO-RP AND RP-TO-R SUBR EXIT -EARTHMXX = S2 # EARTHMX, MOONMX SUBR. EXITS -504RPR = 0D # 6 REGS R OR RP VECTOR -SINNODI = 8D # 2 SIN(NODI) -DVECTR = 8D # 6 D VECTOR MOON -CVECTR = 8D # 6 C VECTR MOON -504AZ = 18D # 2 AZ -TIMSUBM = 14D # 3 TIME SUB M (MOON) T+T0 IN GETAZ -504LPL = 14D # 6 L OR LP VECTOR -AVECTR = 20D # 6 A VECTOR (MOON) -BVECTR = 26D # 6 B VECTOR (MOON) -MMATRIX = 20D # 18 M MATRIX -COB = 32D # 2 COS(B) B-1 -SOB = 34D # 2 SIN(B) B-1 -504F = 6D # 2 F(MOON) - +EARTHMXX = S2 # EARTHMX,MOONMX SUBR. EXITS +504RPR = 0D # 6 REGS R OR RP VECTOR +SINNODI = 8D # 2 SIN(NODI) +DVECTR = 8D # 6 D VECTOR MOON +CVECTR = 8D # 6 C VECTR MOON +504AZ = 18D # 2 AZ +TIMSUBM = 14D # 3 TIME SUB M (MOON) T+T0 IN GETAZ +504LPL = 14D # 6 L OR LP VECTOR +AVECTR = 20D # 6 A VECTOR (MOON) +BVECTR = 26D # 6 B VECTOR (MOON) +MMATRIX = 20D # 18 M MATRIX +COB = 32D # 2 COS(B) B-1 +SOB = 34D # 2 SIN(B) B-1 +504F = 6D # 2 F (MOON)