Proof TVCROLLDAP #271 (#398)

* Proof FIXED_FIXED_CONSTANT_POOL (#207)

* wip(pp. 0984-0985): Proof TVCROLLDAP #271

* done(pp. 0984-0998): Proof TVCROLLDAP #271

* fix: change back "B-10 (simulator patch) to "B+4" (original GAP printouts)
This commit is contained in:
Glenn Dwiyatcita 2019-07-20 00:18:51 +02:00 committed by James Harris
parent f2be2c6ffe
commit 16ffeaeb08

View File

@ -28,56 +28,57 @@
# Colossus 2A # Colossus 2A
# Page 984 # Page 984
# PROGRAM NAME....TVC ROLL AUTOPILOT # PROGRAM NAME...TVC ROLL AUTOPILOT
# LOG SECTION....TVCROLLDAP SUBROUTINE....DAPCSM # LOG SECTION...TVCROLLDAP SUBROUTINE...DAPCSM
# MOD BY SCHLUNDT 21 OCTOBER 1968 # MOD BY SCHLUNDT 21 OCTOBER 1968
#
# FUNCTIONAL DESCRIPTION.... # FUNCTIONAL DESCRIPTION....
#
# *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER # *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
# *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN # *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
# BY IGNOVER (P40) # BY IGNITION (P40)
# *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE # *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
# *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3 # *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
# *USES T6 CLOCK TO TIME JET FIRINGS. # *USES T6 CLOCK TO TIME JET FIRINGS
# *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER # *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
# *MINIMUM JET FIRING TIME = 15 MS # *MINIMUM JET FIRING TIME = 15 MS
# *JET PAIRS FIRE ALTERNATELY # *JET PAIRS FIRE ALTERNATELY
# *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED # *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
# *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION # *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
# OF A JET FIRING TIME IS MADE ON A LATER PASS # OF A JET FIRING TIME IS MADE ON A LATER PASS
#
# CALLING SEQUENCE.... # CALLING SEQUENCE....
#
# *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC) # *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
# WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.) # WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
#
# NORMAL EXIT MODES.... ENDOFJOB # NORMAL EXIT MODES.... ENDOFJOB
#
# ALARM OR ABORT EXIT MODES.... NONE # ALARM OR ABORT EXIT MODES.... NONE
#
# SUBROUTINES CALLED.....NONE # SUBROUTINES CALLED.....NONE
#
# OTHER INTERFACES.... # OTHER INTERFACES....
#
# *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC # *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
# EVERY 10 SECONDS (VIA MASSPROP AND S40.15) # EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
# *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC # *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC
# SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS # SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS
# NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED. # NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED.
#
# ERASABLE INITIALIZATION REQUIRED # ERASABLE INITIALIZATION REQUIRED....
#
# *1/CONACC (S40.15) # *1/CONACC (S40.15)
# *OGAD (CDUX, AT IGNITION) # *OGAD (CDUX AT IGNITION)
# *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE) # *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
# *OGAPAST (OGANOW AT TVCEXECUTIVE) # *OGAPAST (OGANOW AT TVCEXECUTIVE)
# *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON) # *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
# #
# OUTPUT.... # OUTPUT....
#
# *ROLL JET PAIR FIRINGS # *ROLL JET PAIR FIRINGS
#
# Page 985 # Page 985
# DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY # DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
@ -86,7 +87,7 @@
# LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS. # LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
# SWITCHING LOGIC IN THE PHASE PLANE.... # SWITCHING LOGIC IN THE PHASE PLANE....
#
# OGARATE # OGARATE
# * # *
# * # *
@ -118,17 +119,17 @@
# * -MAXLIM # * -MAXLIM
# * # *
# * # *
#
# SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF # SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
# CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC # CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
# ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET # ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
# FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE, # FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
# SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION, # SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
# ABOVE. # ABOVE.
#
# THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRISED OF # THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRIZED OF
# TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME... # TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
# 5-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS) # 6-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
# Page 987 # Page 987
# #
# GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE # GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
@ -137,7 +138,7 @@
# DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION # DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
# TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT # TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
# LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE # LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
# INSTEAD. CONSIDER AN OPERATING POINT IN REGION 6'. PASS A TANGENT TO # INSTEAD. TAKE AN OPERATING POINT IN REGION 6' . PASS A TANGENT TO
# THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS # THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
# INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE... # INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
# THE INTERSECTION DEFINES THE DESIRED OGARATE. IF THE OPERATING POINT IS # THE INTERSECTION DEFINES THE DESIRED OGARATE. IF THE OPERATING POINT IS
@ -149,61 +150,63 @@
# RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2 # RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
# SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE # SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
# APPROXIMATION. # APPROXIMATION.
#
# FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDARY BEFORE # FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDARY BEFORE
# INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS # INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
# IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO # IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
# THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO. # THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
# IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING # IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
# THE DESIRED INTERSECTION (I.E., IN THE REGION BETWEEN THE MINLIM # THE DESIRED INTERSECTION (IE. IN THE REGION BETWEEN THE MINLIM
# AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION # AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION
# BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY # BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
# IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET # IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
# FAILED-ON. # FAILED-ON.
#
# WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS # WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
# MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT, # MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
# DEFINED BY: OGAERROR = INTERSECTION OF CONTROL PARABOLA AND # DEFINED BY.. OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
# OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF # OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
# REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED # REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
# FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED, # FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED,
# AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT. # AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT.
#
# EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE).... # EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
# 2 # 2
# SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE) # SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
#
# EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT.... # EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
#
# SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP # SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
#
# WHERE INTERCEP = DB(-SLOPE) - LMCRATE # WHERE INTERCEP = DB(-SLOPE) - LMCRATE
# Page 988 # Page 988
# #
# EQUATION FOR INTERSECTION, CONTROL PARABOLA, AND STRAIGHT SWITCH LINE.... # EQUATION FOR INTERSECTION, CONTROL PARABOLA AND STRAIGHT SWITCH LINE....
#
# DOGADOT = NUM/DEN, WHERE # DOGADOT = NUM/DEN, WHERE
# 2 # 2
# NUM = (-SLOPE)(OGARATE) (1/CONACC) # NUM = (-SLOPE)(OGARATE) (1/CONACC)
# +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB)) # +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
# +LMCRATE # +LMCRATE
#
# DEN = (-SLOPE)(LMCRATE)(1/CONACC) = SGN(DELOGA) # DEN = (-SLOPE)(LMCRATE)(1/CONACC) - SGN(DELOGA)
# 2
# DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2)SGN(OGARATE) # 2
# # DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2) SGN(OGARATE)
# FOR REGIONS 6 AND 6-PRIME, USE ACTUAL OPERATING POINT (OGA, OGARATE)
# FOR REGIONS 6 AND 6-PRIME USE ACTUAL OPERATING POINT (OGA, OGARATE)
# FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE. # FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
# FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR # FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
# AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY.... # AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
# OGAERROR= DELOGA + DB SGN(OGARATE)
# OGARATE= -LMCRATE SGN(OGARATE)
# #
# OGAERROR = DELOGA + DB SGN(OGARATE) # NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
# # ALSO, AT POINT WHERE DOGARATE IS COMPUTED, REGISTER DELOGA IS USED
# OGARATE = -LMCRATE SGN(OGARATE) # AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE
#
# NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
# ALSO, AT POINT WHERE DOGADOT IS COMPUTED, REGISTER DELOGA IS USED
# AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE.
# Page 989 # Page 989
# ROLLDAP CODING.... # ROLLDAP CODING....
@ -221,15 +224,15 @@ ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
TS OGARATE # SC.AT B-4 REV/SEC TS OGARATE # SC.AT B-4 REV/SEC
# COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER) # COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
# EXAMINE DURATION OF LAST ROLL FIRING IF JETS ARE NOW ON. # EXAMINE DURATION OF LAST JET FIRING IF JETS ARE NOW ON.
DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
EXTEND EXTEND
BZF +2 # ROLL JETS ARE NOW OFF. BZF +2 # ROLL JETS ARE NOW OFF.
TCF ROLLOGIC # ENTER LOGIC, JETS NOW ON. TCF ROLLOGIC # ENTER LOGIC,JETS NOW ON.
CAE TEMREG # EXAMINE LAST FIRING INTERVAL CAE TEMREG # EXAMINE LAST FIRING INTERVAL
EXTEND # IF POSITIVE, DON'T FIRE EXTEND # IF POSITIVE, DONT FIRE
BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF. BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
@ -257,7 +260,8 @@ ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
TS SGNRT # + OR - 2(-14) TS SGNRT # + OR - 2(-14)
# Page 990 # Page 990
# CALCULATE DISTANCE FROM SWITCH PARABOLA,DELOGA # CALCULATE DISTANCE FROM SWITCH PARABOLA (DELOGA)
EXTEND EXTEND
MP TEMREG # SGN(OGARATE) TEMREG NOW IN L MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
CS L CS L
@ -268,28 +272,28 @@ DELOGAC TS DELOGA # SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB
EXTEND EXTEND
BZMF +3 BZMF +3
CAF PRIO30 # = CA (30000) CAF PRIO30 # =CA (30000)
TCF +2 TCF +2
CAF BIT15 # = CS (40000) CAF BIT15 # =CS (40000)
TS I TS I
INDEX I # TSET ON I SGN(OGARATE) INDEX I # TSET ON I SGN(OGARATE)
0 SGNRT # CA OR CS 0 SGNRT # CA OR CS
COM COM
EXTEND EXTEND
REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN) REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
# NO JET FIRE YET. TEST FOR MAX OGARATE. # NO JET FIRE YET. TEST FOR MAX OGARATE
INDEX I INDEX I
0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE 0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
TS IOGARATE # I.E., I OGARATE TS IOGARATE # I.E. I OGARATE
AD MAXLIM # SCALED AT 2(-4) REV/SEC AD MAXLIM # SCALED AT 2(-4) REV/SEC
EXTEND EXTEND
REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS) REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
# COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT: NOTE THAT STR. LINE # COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT..NOTE THAT STR. LINE
# SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG. QUANTITY # SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG QUANTITY
CA OGARATE CA OGARATE
EXTEND EXTEND
@ -312,10 +316,10 @@ REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
EXTEND EXTEND
REG2TST BZMF NOROLL # IP REGION 2 (COAST SIDE OF STRT LINE) REG2TST BZMF NOROLL # IP REGION 2 (COAST SIDE OF STRT LINE)
# CHECK TO SEE IF OGARATE IS ABOVE MINLIM # CHECK TO SEE IF OGARATE IS ABOVE MINLIM BOUNDARY
CA IOGARATE # ALWAYS NEGATIVE CA IOGARATE # ALWAYS NEGATIVE
AD MINLIM # SCALED AT 2(-4) REV/SEC. AD MINLIM # SCALED AT 2(-4) REV/SEC
EXTEND EXTEND
REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM) REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
@ -329,7 +333,7 @@ REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
EXTEND EXTEND
REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB) REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
# JETS MUST FIRE NOW. OGARATE IS NEG. (OR VICE VERSA). USE DIRECT STR. LINE. # JETS MUST FIRE NOW.OGARATE IS NEG.(OR VICE VERSA).USE DIRECT STR. LINE.
# DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A # DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
# STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION # STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
# OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT # OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
@ -339,13 +343,13 @@ REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
TS DELOGA # ACTUAL STATE TS DELOGA # ACTUAL STATE
CA OGARATE CA OGARATE
TS DELOGART # ACTUAL STATE, I.E., DEL OGARATE TS DELOGART # ACTUAL STATE,I.E. DEL OGARATE
TCF ONROLL TCF ONROLL
# JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA), USE INDIRECT # JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA),USE INDIRECT
# STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA # STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
# + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY # + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
# OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1') # OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1' )
ROLLON INDEX I ROLLON INDEX I
0 DB 0 DB
@ -386,7 +390,7 @@ RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
MP BIT11 MP BIT11
RATENUM AD DELOGART # NUMERATOR COMPLETED RATENUM AD DELOGART # NUMERATOR COMPLETED
XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
CA ZERO CA ZERO
EXTEND EXTEND
DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
@ -402,12 +406,12 @@ MINLIMAP CCS A
DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 INTO L DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 INTO L
EXTEND EXTEND
DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE
TCF ROLLSET # (SCALED AT B-4 REV/SEC) TCF ROLLSET # ( SCALED AT B-4 REV/SEC )
RATELIM CS MAXLIM RATELIM CS MAXLIM
INDEX I INDEX I
# Page 993 # Page 993
0 A # IF I = CA, DESIRED RATE IS -MAXLIM 0 A # IF I = CA, DESIRED RATE IS -MAXLIM
# COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE # COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE
@ -436,7 +440,7 @@ ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
CAE TEMREG # DESIRED CHANGE IN OGARATE CAE TEMREG # DESIRED CHANGE IN OGARATE
EXTEND EXTEND
MP ROLLFIRE # (SGN OF TORQUE: ZERO IF JETS NOW OFF) MP ROLLFIRE # (SGN OF TORQUE..ZERO IF JETS NOW OFF)
CCS A CCS A
TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
TCF NEWROLL # START NEW FIRING NOW, PLUS TCF NEWROLL # START NEW FIRING NOW, PLUS
@ -462,11 +466,11 @@ NEWROLL CCS TEMREG # CALL THIS T6FIRE
EXTEND EXTEND
MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE) MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
# PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE # PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE.
MAXTFIRE CA TEMREG MAXTFIRE CA TEMREG
EXTEND EXTEND
MP 1/TMXFIR # I.E., 1/TMAXFIRE MP 1/TMXFIR # I.E. 1/TMAXFIRE
EXTEND EXTEND
MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
@ -476,7 +480,7 @@ MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
CS TMAXFIRE # USE MAXIMUM CS TMAXFIRE # USE MAXIMUM
TS TEMREG TS TEMREG
# SET UP SIGN OF REQUIRED TORQUE # SET UP SIGN OF REQUIRED TORQUE.
NOMXFIRE CCS TEMREG # FOR TORQUE SIGN NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
CA POSMAX # POSITIVE TORQUE REQUIRED CA POSMAX # POSITIVE TORQUE REQUIRED
@ -499,7 +503,7 @@ FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
EXTEND EXTEND
SU TEMREG SU TEMREG
EXTEND EXTEND
EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DON'T, EXIT ROLL DAP EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DONT, EXIT ROLL DAP
TCF JETROLL TCF JETROLL
NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6) NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
@ -513,7 +517,7 @@ JETROLL EXTEND
CA TEMREG # ENTER JET FIRING TIME CA TEMREG # ENTER JET FIRING TIME
TS TIME6 TS TIME6
CA I # I=0 IF MOREROLL, KEEP SAME JETS ON CA I # I=0 IF MOREROLL,KEEP SAME JETS ON
EXTEND EXTEND
SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
@ -574,7 +578,7 @@ RDAPEND TCF TASKOVER # EXIT ROLL DAP
# THIS T6 TASK SHUTS OFF ALL ROLL JETS # THIS T6 TASK SHUTS OFF ALL ROLL JETS
NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
CAF ZERO # CALLED BY "JETROLL") CAF ZERO # CALLED BY ..JETROLL..)
TS ROLLFIRE # ZERO INDICATES JETS NOW OFF TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
EXTEND EXTEND
KILLJETS WRITE CHAN6 KILLJETS WRITE CHAN6
@ -600,18 +604,16 @@ MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
# The following two were B+4.---RSB 2009. TMINFIRE DEC 1.5 B+4 # 15 MS (14MIN), SC.AT 16 BITS/CS
TMINFIRE DEC 1.5 B-10 # 15 MS. (14MIN), SC.AT 16 BITS/CS
TMAXFIRE DEC 250 B-10 # 2.5 SEC, SC.AT 16 BITS/CS TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS
1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT, 1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
# ROUNDS TO OCT00004, SO ALLOWS 2.56 # ROUNDS TO OCT00004, SO ALLOWS 2.56
# SEC FIRINGS BEFORE APPLYING LIMIT # SEC FIRINGS BEFORE APPLYING LIMIT
T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC) T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
+ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11 +ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
+ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15 +ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
-ROLL1 = TEN # ONBITS FOR JETS 12 AND 10 -ROLL1 = TEN # ONBITS FOR JETS 12 NAD 10
-ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14 -ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14