Proof PLANETARY_INERTIAL_ORIENTATION #623 (#717)

Co-authored-by: James Harris <wopian@wopian.me>
This commit is contained in:
Leandro Matheus 2020-10-14 15:49:40 -03:00 committed by GitHub
parent 7c7680fcc4
commit 6f7d132239
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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