Proof IMU_COMPENSATION_PACKAGE #587 (#707)

Co-authored-by: James Harris <wopian@wopian.me>
This commit is contained in:
Dimitri Belopopsky 2020-10-14 18:55:46 +02:00 committed by GitHub
parent aa4a6741f5
commit 65bef40ca7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -64,12 +64,12 @@
EXTEND EXTEND
MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9 MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
INDEX BUF +2 INDEX BUF +2
DAS DELVX # (PIPAI) + (PIPAI)(SF) DAS DELVX # (PIPAI) + (PIPAI)(SFE)
INDEX BUF +2 INDEX BUF +2
CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-5) * * CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-5) *
EXTEND EXTEND
MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+5) * MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+3)*
EXTEND EXTEND
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 * MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 *
INDEX BUF +2 INDEX BUF +2
@ -83,7 +83,7 @@
# Page 328 # Page 328
IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS. IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
TS BUF # INDEX COUNTER. IRIGX, IRIGY, IRIGZ. TS BUF # INDEX COUNTER . IRIGX, IRIGY, IRIGZ.
TC IRIGX # COMPENSATE ACCELERATION TERMS TC IRIGX # COMPENSATE ACCELERATION TERMS
@ -93,7 +93,7 @@ IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
TC IRIGY # COMPENSATE ACCELERATION TERMS TC IRIGY # COMPENSATE ACCELERATION TERMS
CS NBDY # (GYRO PULSES)/(CS) X 2(-5) CS NBDY # (GYRO PULSES)/(CS) X 2(-5)
TC DRIFTSUB # +(NBDY)(DELTAT) (GYRO PULSES) X 2(+14) TC DRIFTSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
TC IRIGZ # COMPENSATE ACCELERATION TERMS TC IRIGZ # COMPENSATE ACCELERATION TERMS
@ -104,13 +104,13 @@ IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
TCF +2 # YES SEND OUT GYRO TORQUING COMMANDS. TCF +2 # YES SEND OUT GYRO TORQUING COMMANDS.
TCF IRIG1 # NO RETURN TCF IRIG1 # NO RETURN
CA PRIO21 # PRIO GREATER THAN SERVICER. CA PRIO21 # PRIO GREATER THAN SERVICER
TC NOVAC # SEND OUT GYRO TORQUING COMMANDS. TC NOVAC # SEND OUT GYRO TORQUING COMMANDS.
EBANK= NBDX EBANK= NBDX
2CADR 1/GYRO 2CADR 1/GYRO
RELINT RELINT
IRIG1 CA MODE # RESTORE CALLER'S EBANK IRIG1 CA MODE # RESTORE CALLERS EBANK
TS EBANK TS EBANK
TCF SWRETURN TCF SWRETURN
@ -127,10 +127,10 @@ IRIGX EXTEND
DCS DELVY # (PIPA PULSES) X 2(+14) DCS DELVY # (PIPA PULSES) X 2(+14)
DXCH MPAC # DXCH MPAC #
CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) * CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
TC GCOMPSUB # -(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14) TC GCOMPSUB # +(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14)
# EXTEND # *** # EXTEND # ***
# DCS DELVY # *** (PIPA PULSES) X 2(+14) # DCS DELVZ # *** (PIPA PULSES) X 2(+14)
# DXCH MPAC # *** # DXCH MPAC # ***
# CA ADOAX # *** (GYRO PULSES)/(PIPA PULSE) X 2(-6) * # CA ADOAX # *** (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
# TC GCOMPSUB # *** -(ADOAX)(PIPAZ) (GYRO PULSES) X 2(+14) # TC GCOMPSUB # *** -(ADOAX)(PIPAZ) (GYRO PULSES) X 2(+14)
@ -155,7 +155,7 @@ IRIGY EXTEND
# DCS DELVX # *** (PIPA PULSES) X 2(+14) # DCS DELVX # *** (PIPA PULSES) X 2(+14)
# DXCH MPAC # *** # DXCH MPAC # ***
# CA ADOAY # *** (GYRO PULSES)/(PIPA PULSE) X 2(-6) * # CA ADOAY # *** (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
# TC GCOMPSUB # *** -(ADOAY)(/PIPAX) (GYRO PULSES) X 2(+14) # TC GCOMPSUB # *** -(ADOAY)(PIPAX) (GYRO PULSES) X 2(+14)
TC MPAC +2 TC MPAC +2
@ -195,13 +195,13 @@ GCOMPSUB XCH MPAC # ADIA OR ADSRA COEFFICIENT ARRIVES IN A
CAF ZERO CAF ZERO
DAS VBUF # NOW = (GYRO PULSES) X 2(+8) * DAS VBUF # NOW = (GYRO PULSES) X 2(+8) *
CA VBUF # PARTIAL RESULT -- MAJOR CA VBUF # PARTIAL RESULT - MAJOR
EXTEND EXTEND
MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 * MP BIT9 # SCALE 2(+6) SHIFT RIGHT *
INDEX BUF # RESULT = (GYRO PULSES) X 2(+14) INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI) DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
CA VBUF +1 # PARTIAL RESULT -- MINOR CA VBUF +1 # PARTIAL RESULT - MINOR
EXTEND EXTEND
MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 * MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
TS L TS L
@ -216,14 +216,14 @@ DRIFTSUB EXTEND
QXCH BUF +1 QXCH BUF +1
EXTEND # C(A) = NBD (GYRO PULSES)/(CS) X 2(-5) EXTEND # C(A) = NBD (GYRO PULSES)/(CS) X 2(-5)
MP 1/PIPADT # (CS) X 2(+8) NO (GYRO PULSES) X 2(+3) MP 1/PIPADT # (CS) X 2(+8) NOW (GYRO PULSES) X 2(+3)
LXCH MPAC +1 # SAVE FOR FRACTIONAL COMPENSATION LXCH MPAC +1 # SAVE FOR FRACTIONAL COMPENSATION
EXTEND EXTEND
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
INDEX BUF INDEX BUF
DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14) DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
CA MPAC +1 # NO MINOR PART CA MPAC +1 # NOW MINOR PART
EXTEND EXTEND
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
TS L TS L
@ -241,7 +241,7 @@ DRFTSUB2 CAF TWO # PIPAX, PIPAY, PIPAZ
MASK COMPCHK # DEC -1 MASK COMPCHK # DEC -1
CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES
TS GCOMPSW # YES -- SET GCOMPSW POSITIVE TS GCOMPSW # YES - SET GCOMPSW POSITIVE
TC BUF +1 # NO TC BUF +1 # NO
# Page 333 # Page 333
@ -281,7 +281,7 @@ GCOMP1 CAF FOUR # PIPAZ, PIPAY, PIPAX
INDEX BUF # RESCALE INDEX BUF # RESCALE
CA GCOMP +1 CA GCOMP +1
EXTEND EXTEND
MP BIT8 # SHIFT MINOR PART LEFT 7 -- MAJOR PART = 0 MP BIT8 # SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
INDEX BUF INDEX BUF
LXCH GCOMP +1 # BITS 8-14 OF MINOR PART WERE = 0 LXCH GCOMP +1 # BITS 8-14 OF MINOR PART WERE = 0
@ -303,14 +303,14 @@ NBDONLY CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
TCF ENDOFJOB TCF ENDOFJOB
TCF +1 TCF +1
CA FLAGWRD8 # IF SURFACE FLAG IS SET, SET TEM1 CA FLAGWRD8 # IF SURFACE FLAG IS SET. SET TEM1
MASK BIT8 # POSITIVE SO THAT THE ACCELERATION TERMS MASK BIT8 # POSITIVE SO THAT THE ACCELERATION TERMS
TS TEM1 # WILL BE COMPENSATED. TS TEM1 # WILL BE COMPENSATED.
EXTEND EXTEND
BZF +3 # ARE WE ON THE SURFACE BZF +3 # ARE WE ON THE SURFACE
TC IBNKCALL # ON THE SURFACE TC IBNKCALL # ON THE SURFACE
CADR PIPASR +3 # READ PIPAS, BUT DO NOT SCALE THEM CADR PIPASR +3 # READ PIPAS. BUT DO NOT SCALE THEM
CA TIME1 # (CS) X 2(+14) CA TIME1 # (CS) X 2(+14)
XCH 1/PIPADT # PREVIOUS TIME XCH 1/PIPADT # PREVIOUS TIME
@ -319,7 +319,7 @@ NBDONLY CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
AD 1/PIPADT # PRESENT TIME - PREVIOUS TIME AD 1/PIPADT # PRESENT TIME - PREVIOUS TIME
NBD2 AD HALF # CORRECT FOR POSSIBLE TIME1 TICK NBD2 AD HALF # CORRECT FOR POSSIBLE TIME1 TICK
AD HALF AD HALF
XCH L # IF TIME1 DID NOT DICK, REMOVE RESULTING XCH L # IF TIME1 DID NOT TICK. REMOVE RESULTING
XCH L # OVERFLOW. XCH L # OVERFLOW.
NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14) NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
@ -328,9 +328,9 @@ NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
CA ZERO CA ZERO
TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS. TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
TS BUF # INDEX X, Y, Z. TS BUF # INDEX X. Y, Z.
CCS TEM1 # IF SURFACE FLAG IS SET, CCS TEM1 # IF SURFACE FLAG IS SET.
TC IRIGX # COMPENSATE ACCELERATION TERMS. TC IRIGX # COMPENSATE ACCELERATION TERMS.
EXTEND EXTEND
@ -338,7 +338,7 @@ NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19) DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
CS NBDX # (GYRO PULSES)/(CS) X 2(-5) CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
TC FBIASSUB # -(NBOX)(DELTAT) (GYRO PULSES) X 2(+14) TC FBIASSUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
CCS TEM1 # IF SURFACE FLAG IS SET, CCS TEM1 # IF SURFACE FLAG IS SET,
TC IRIGY # COMPENSATE ACCELERATION TERMS. TC IRIGY # COMPENSATE ACCELERATION TERMS.
@ -349,7 +349,7 @@ NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
CA NBDY # (GYRO PULSES)/(CS) X 2(-5) CA NBDY # (GYRO PULSES)/(CS) X 2(-5)
TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14) TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
CCS TEM1 # IF SURFACE FLAG IS SET, CCS TEM1 # IF SURFACE FLAG IS SET.
TC IRIGZ # COMPENSATE ACCELERATION TERMS TC IRIGZ # COMPENSATE ACCELERATION TERMS
EXTEND EXTEND
@ -415,4 +415,3 @@ GCOMPZER CAF LGCOMP # ROUTINE TO ZERO GCOMP BEFORE FIRST
TS GCOMP +5 TS GCOMP +5
TCF IRIG1 # RESTORE EBANK AND RETURN TCF IRIG1 # RESTORE EBANK AND RETURN