Source Code
041854,000001: # Copyright: Public domain.
041855,000002: # Filename: TVCROLLDAP.agc
041856,000003: # Purpose: Part of the source code for Colossus, build 249.
041857,000004: # It is part of the source code for the Command Module's (CM)
041858,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9.
041859,000006: # Assembler: yaYUL
041860,000007: # Reference: Starts at p. 952 of 1701.pdf.
041861,000008: # Contact: Ron Burkey <info@sandroid.org>.
041862,000009: # Website: www.ibiblio.org/apollo/index.html
041863,000010: # Mod history: 08/24/04 RSB. Began transcribing.
041864,000011: # 05/14/05 RSB Corrected website reference above.
041865,000012:
041866,000013: # The contents of the "Colossus249" files, in general, are transcribed
041867,000014: # from a scanned document obtained from MIT's website,
041868,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this
041869,000016: # document read, in part:
041870,000017:
041871,000018: # Assemble revision 249 of AGC program Colossus by NASA
041872,000019: # 2021111-041. October 28, 1968.
041873,000020:
041874,000021: # This AGC program shall also be referred to as
041875,000022: # Colossus 1A
041876,000023:
041877,000024: # Prepared by
041878,000025: # Massachussets Institute of Technology
041879,000026: # 75 Cambridge Parkway
041880,000027: # Cambridge, Massachusetts
041881,000028: # under NASA contract NAS 9-4065.
041882,000029:
041883,000030: # Refer directly to the online document mentioned above for further information.
041884,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org.
041885,000032:
041886,000033: # In some cases, where the source code for Luminary 131 overlaps that of
041887,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131
041888,000035: # source file, and then is proofed to incorporate any changes.
041889,000036:
041890,000037: # Page 952
041891,000038: # PROGRAM NAME....ROLL AUTOPILOT, CONSISTING OF ROLLDAP, DURATION, NOROLL1, ETC.
041892,000039: # ORIGINAL CODING BY F.W.MARTIN, 1965 (SUNDIAL)
041893,000040: # LOC SECTION....ROLL AUTOPILOT SUBROUTINE....DAPCSM
041894,000041: # MOD BY ENGEL DATE 28 DEC, 1967 (SUNDISK TO COLOSSUS)
041895,000042:
041896,000043: # FUNCTIONAL DESCRIPTION....
041897,000044:
041898,000045: # *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
041899,000046:
041900,000047: # *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
041901,000048: # BY IGNOVER (IGNITION)
041902,000049:
041903,000050: # *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
041904,000051:
041905,000052: # *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
041906,000053:
041907,000054: # *USES T6 CLOCK TO TIME JET FIRINGS.
041908,000055:
041909,000056: # *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
041910,000057:
041911,000058: # *MINIMUM JET FIRING TIME = 15 MS
041912,000059:
041913,000060: # *JET PAIRS FIRE ALTERNATELY
041914,000061:
041915,000062: # *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
041916,000063:
041917,000064: # *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
041918,000065: # OF A JET FIRING TIME IS MADE ON A LATER PASS
041919,000066:
041920,000067: # CALLING SEQUENCE....
041921,000068:
041922,000069: # *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
041923,000070: # WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
041924,000071:
041925,000072: # NORMAL EXIT MODES.... ENDOFJOG
041926,000073:
041927,000074: # ALARM OR ABORT EXIT MODES.... NONE
041928,000075:
041929,000076: # SUBROUTINES CALLED.....NONE
041930,000077:
041931,000078: # OTHER INTERFACES....
041932,000079:
041933,000080: # *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
041934,000081: # EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
041935,000082:
041936,000083: # *TVCRESTART PACKAGE WILL RE-START ROLL DAP AFTER A RESTART (PICKING
041937,000084: # UP THE ORIGINAL OGAD)
041938,000085:
041939,000086: # ERASABLE INITIALIZATION REQUIRED
041940,000087:
041941,000088: # *1/CONACC (S40.15)
041942,000089:
041943,000090: # *OGAD (CDUX, AT IGNOVER)
041944,000091:
041945,000092: # *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
041946,000093:
041947,000094: # *OGAPAST (OGANOW AT TVCEXECUTIVE)
041948,000095:
041949,000096: # *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
041950,000097:
041951,000098: # OUTPUT....
041952,000099:
041953,000100: # *ROLL JET PAIR FIRINGS
041954,000101:
041955,000102: # DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
041956,000103: # Page 953
041957,000104:
041958,000105: # SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
041959,000106: # LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
041960,000107: # SWITCHING LOGIC IN THE PHASE PLANE....
041961,000108:
041962,000109: # OGARATE
041963,000110: # *
041964,000111: # *
041965,000112: # * * * * * * * * * * * *
041966,000113: # * (REGION 1, SEE TEXT BELOW)
041967,000114: # * *
041968,000115: # *
041969,000116: # * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL)
041970,000117: # * * .
041971,000118: # * * *
041972,000119: # * * (FIRE NEG ROLL JETS)
041973,000120: # * * *
041974,000121: # (-DB,+LMCRATE)....* *
041975,000122: # * * *
041976,000123: # * * OGAERROR
041977,000124: # ************************************************************************
041978,000125: # * * (-AK, OGAERR)
041979,000126: # * * * (REGION 6-PRIME)
041980,000127: # * * (SEE TEXT BELOW)
041981,000128: # * * *
041982,000129: # * * ...STRAIGHT LINE
041983,000130: # (FIRE POS ROLL JETS) * * * .
041984,000131: # * (COAST) *
041985,000132: # * * * * * * * * * * *
041986,000133: # * -MINLIM
041987,000134: # * *
041988,000135: # *
041989,000136: # * * * * * * * * * * * * * * * *
041990,000137: # * -MAXLIM
041991,000138: # *
041992,000139: # *
041993,000140:
041994,000141: # SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
041995,000142: # CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
041996,000143: # ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
041997,000144: # FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
041998,000145: # SUBJECT TO TEH LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
041999,000146: # ABOVE.
042000,000147:
042001,000148: # THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRISED OF
042002,000149: # TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
042003,000150: # 5-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
042004,000151: # Page 954
042005,000152:
042006,000153: # GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
042007,000154: # IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
042008,000155: # PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3
042009,000156: # DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
042010,000157: # TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
042011,000158: # LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
042012,000159: # INSTEAD. CONSIDER AN OPERATING POINT IN REGION 6. PASS A TANGENT TO
042013,000160: # THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
042014,000161: # INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
042015,000162: # THE INTERSECTION DEFINES THE DESIRED OGARATE. IF THE OPERATING POINT IS
042016,000163: # CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
042017,000164: # THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
042018,000165: # THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE
042019,000166: # TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
042020,000167: # INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE
042021,000168: # RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
042022,000169: # SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
042023,000170: # APPROXIMATION.
042024,000171:
042025,000172: # FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDRY BEFORE
042026,000173: # INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
042027,000174: # IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
042028,000175: # THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
042029,000176: # IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
042030,000177: # THE DESIRED INTERSECTION (I.E., IN THE REGION BETWEEN THE MINLIM
042031,000178: # AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION
042032,000179: # BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
042033,000180: # IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
042034,000181: # FAILED-ON.
042035,000182:
042036,000183: # WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
042037,000184: # MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
042038,000185: # DEFINED BY: OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
042039,000186: # OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
042040,000187: # REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
042041,000188: # FROM REGION 1 TO REGION 6, THE DUMMY POINT IS NO LONGER REQUIRED,
042042,000189: # AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6 POINT.
042043,000190:
042044,000191: # EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
042045,000192: # 2
042046,000193: # SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
042047,000194:
042048,000195: # EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
042049,000196:
042050,000197: # SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
042051,000198:
042052,000199: # WHERE INTERCEP = DB(-SLOPE) - LMCRATE
042053,000200: # Page 955
042054,000201:
042055,000202: # EQUATION FOR INTERSECTION, CONTROL PARABOLA, AND STRAIGHT SWITCH LINE....
042056,000203:
042057,000204: # DOGADOT = NUM/DEN, WHERE
042058,000205: # 2
042059,000206: # NUM = (-SLOPE)(OGARATE) (1/CONACC)
042060,000207: # +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
042061,000208: # +LMCRATE
042062,000209:
042063,000210: # DEN = (-SLOPE)(OGARATE)(1/CONACC) = SGN(DELOGA)
042064,000211: # 2
042065,000212: # DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2)SGN(OGADOT)
042066,000213:
042067,000214: # FOR REGIONS 6 AND 6-PRIME, USE ACTUAL OPEATING POINT (OGA, OGARATE)
042068,000215: # FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
042069,000216: # FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
042070,000217: # AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
042071,000218:
042072,000219: # OGAERROR = DELOGA + DB SGN(OGARATE)
042073,000220:
042074,000221: # OGARATE = -LMCRATE SGN(OGARATE)
042075,000222:
042076,000223: # NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
042077,000224: # ALSO, AT POINT WHERE DOGADOT IS COMPUTED, REGISTER DELOGA IS USED
042078,000225: # AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE.
042079,000226: # Page 956
042080,000227:
042081,000228: # ROLLDAP CODING....
042082,000229:
042083,000230: 16,2000 SETLOC DAPROLL
042084,000231: 16,2000 BANK
042085,000232: 16,3313 E6,1672 EBANK= OGANOW
042086,000233: 16,3313 COUNT* $$/ROLL
042087,000234:
042088,000235: 16,3313 31672 ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
042089,000236: 16,3314 00006 EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC)
042090,000237: 16,3315 21673 MSU OGAPAST
042091,000238: 16,3316 00006 EXTEND
042092,000239: 16,3317 74706 MP BIT5
042093,000240: 16,3320 22000 LXCH A
042094,000241: 16,3321 55533 TS OGARATE # SC.AT B-4 REV/SEC
042095,000242:
042096,000243: # COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
042097,000244: # EXAMINE DURATION OF LAST ROLL FIRING IF JETS ARE NOW ON.
042098,000245:
042099,000246: 16,3322 31611 DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
042100,000247: 16,3323 00006 EXTEND
042101,000248: 16,3324 13326 BZF +2 # ROLL JETS ARE NOW OFF.
042102,000249: 16,3325 13334 TCF ROLLOGIC # ENTER LOGIC, JETS NOW ON.
042103,000250:
042104,000251: 16,3326 31613 CAE TEMREG # EXAMINE LAST FIRING INTERVAL
042105,000252: 16,3327 00006 EXTEND # IF POSITIVE, DON'T FIRE
042106,000253: 16,3330 13334 BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
042107,000254:
042108,000255: 16,3331 34714 CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
042109,000256: 16,3332 55613 TS TEMREG # RESET TEMREG
042110,000257: 16,3333 15213 WAIT1/2 TCF TASKOVER # EXIT ROLL DAP
042111,000258:
042112,000259: # COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING)
042113,000260:
042114,000261: 16,3334 41533 ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
042115,000262: 16,3335 00006 EXTEND
042116,000263: 16,3336 71650 MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV
042117,000264: 16,3337 00006 EXTEND
042118,000265: 16,3340 71533 MP OGARATE
042119,000266: 16,3341 63727 AD DB # SCALED AT 2(+0) REV
042120,000267: 16,3342 55613 TS TEMREG # QUANTITY SCALED AT 2(+0) REV.
042121,000268:
042122,000269: # GET SIGN OF OGARATE
042123,000270:
042124,000271: 16,3343 31533 CA OGARATE
042125,000272: 16,3344 00006 EXTEND
042126,000273: 16,3345 63350 BZMF +3 # LET SGN(0) BE NEGATIVE
042127,000274: 16,3346 34712 CA BIT1
042128,000275: 16,3347 13351 TCF +2
042129,000276: 16,3350 44712 CS BIT1
042130,000277: 16,3351 55676 TS SGNRT # + OR - 2(-14)
042131,000278:
042132,000279: # CALCULATE DISTANCE FROM SWITCH PARABOLA,DELOGA
042133,000280: 16,3352 00006 EXTEND
042134,000281: 16,3353 71613 MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
042135,000282: # Page 957
042136,000283: 16,3354 40001 CS L
042137,000284: 16,3355 61674 AD OGA # SCALED AT 2(+0) REV
042138,000285: 16,3356 55677 DELOGAC TS DELOGA # SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB
042139,000286:
042140,000287: # EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
042141,000288:
042142,000289: 16,3357 00006 EXTEND
042143,000290: 16,3360 63363 BZMF +3
042144,000291: 16,3361 34371 CAF PRIO30 # = CA (30000)
042145,000292: 16,3362 13364 TCF +2
042146,000293: 16,3363 34674 CAF BIT15 # = CS (40000)
042147,000294: 16,3364 55700 TS I
042148,000295:
042149,000296: 16,3365 51700 INDEX I # TSET ON I SGN(OGARATE)
042150,000297: 16,3366 01676 0 SGNRT # CA OR CS
042151,000298: 16,3367 40000 COM
042152,000299: 16,3370 00006 EXTEND
042153,000300: 16,3371 63442 REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
042154,000301:
042155,000302: # NO JET FIRE YET. TEST FOR MAX OGARATE.
042156,000303:
042157,000304: 16,3372 51700 INDEX I
042158,000305: 16,3373 01533 0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
042159,000306: 16,3374 55701 TS IOGARATE # I.E., I OGARATE
042160,000307: 16,3375 63735 AD MAXLIM # SCALED AT 2(-4) REV/SEC
042161,000308: 16,3376 00006 EXTEND
042162,000309: 16,3377 63521 REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
042163,000310:
042164,000311: # COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT: NOTE THAT STR. LINE
042165,000312: # SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG. QUANTITY
042166,000313:
042167,000314: 16,3400 31533 CA OGARATE
042168,000315: 16,3401 00006 EXTEND
042169,000316: 16,3402 74675 MP BIT14
042170,000317: 16,3403 55613 TS TEMREG
042171,000318: 16,3404 31674 CA OGA
042172,000319: 16,3405 00006 EXTEND
042173,000320: 16,3406 73730 MP -SLOPE
042174,000321: 16,3407 20001 DDOUBL
042175,000322: 16,3410 20001 DDOUBL
042176,000323: 16,3411 20001 DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG)
042177,000324: 16,3412 61613 AD TEMREG
042178,000325:
042179,000326: 16,3413 51700 INDEX I
042180,000327: 16,3414 00000 0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
042181,000328: 16,3415 40000 COM
042182,000329: 16,3416 63732 AD INTERCEP # SCALED AT 2(-3) REV.
042183,000330: 16,3417 40000 COM
042184,000331: 16,3420 00006 EXTEND
042185,000332: 16,3421 63632 REG2TST BZMF NOROLL # IP REGION 2 (COAST SIDE OF STRT LINE)
042186,000333:
042187,000334: # CHECK TO SEE IF OGARATE IS ABOVE MINLIM
042188,000335:
042189,000336: 16,3422 31701 CA IOGARATE # ALWAYS NEGATIVE
042190,000337: 16,3423 63733 AD MINLIM # SCALED AT 2(-4) REV/SEC.
042191,000338: # Page 958
042192,000339: 16,3424 00006 EXTEND
042193,000340: 16,3425 63632 REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
042194,000341:
042195,000342: # ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
042196,000343:
042197,000344: 16,3426 51700 INDEX I
042198,000345: 16,3427 01674 0 OGA
042199,000346: 16,3430 40000 COM
042200,000347: 16,3431 63727 AD DB
042201,000348: 16,3432 40000 COM
042202,000349: 16,3433 00006 EXTEND
042203,000350: 16,3434 63632 REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
042204,000351:
042205,000352: # JETS MUST FIRE NOW. OGARATE IS NEG. (OR VICE VERSA). USE DIRECT STR. LINE.
042206,000353: # DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN TEH SOLUTION OF A
042207,000354: # STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
042208,000355: # OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
042209,000356: # LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR
042210,000357: # OPERATING POINTS IN REGIONS 6 AND 6-PRIME)
042211,000358:
042212,000359: 16,3435 31674 REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
042213,000360: 16,3436 55677 TS DELOGA # ACTUAL STATE
042214,000361: 16,3437 31533 CA OGARATE
042215,000362: 16,3440 55675 TS DELOGART # ACTUAL STATE, I.E., DEL OGARATE
042216,000363: 16,3441 13451 TCF ONROLL
042217,000364:
042218,000365: # JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA), USE INDIRECT
042219,000366: # STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
042220,000367: # + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
042221,000368: # OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1-PRIME )
042222,000369:
042223,000370: 16,3442 51700 ROLLON INDEX I
042224,000371: 16,3443 03727 0 DB
042225,000372: 16,3444 27677 ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA
042226,000373:
042227,000374: 16,3445 43731 CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC
042228,000375: 16,3446 51700 INDEX I
042229,000376: 16,3447 00000 0 A
042230,000377: 16,3450 55675 TS DELOGART # EVALUATE STATE FOR INDIRECT LINE.
042231,000378:
042232,000379: # SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
042233,000380:
042234,000381: 16,3451 00006 ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL
042235,000382: 16,3452 71650 MP 1/CONACC
042236,000383: 16,3453 60000 DOUBLE
042237,000384: 16,3454 00006 EXTEND
042238,000385: 16,3455 73730 MP -SLOPE
042239,000386: 16,3456 55613 TS TEMREG # 2(-SLOPE)RATE /CONACC
042240,000387: 16,3457 00006 EXTEND
042241,000388: 16,3460 71675 MP DELOGART
042242,000389: 16,3461 55675 TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC
042243,000390: 16,3462 44700 CS BIT11
042244,000391: 16,3463 51700 INDEX I
042245,000392: # Rate 959
042246,000393: 16,3464 00000 0 A
042247,000394: 16,3465 27613 RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
042248,000395:
042249,000396: 16,3466 51700 INDEX I
042250,000397: 16,3467 01677 0 DELOGA
042251,000398: 16,3470 40000 COM
042252,000399: 16,3471 63727 AD DB
042253,000400: 16,3472 40000 COM
042254,000401: 16,3473 00006 EXTEND
042255,000402: 16,3474 73730 MP -SLOPE
042256,000403: 16,3475 27675 ADS DELOGART
042257,000404: 16,3476 33731 CA LMCRATE
042258,000405: 16,3477 00006 EXTEND
042259,000406: 16,3500 74700 MP BIT11
042260,000407: 16,3501 61675 RATENUM AD DELOGART # NUMERATOR COMPLETED
042261,000408:
042262,000409: 16,3502 56001 XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
042263,000410: 16,3503 34714 CA ZERO
042264,000411: 16,3504 00006 EXTEND
042265,000412: 16,3505 11613 DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
042266,000413: 16,3506 00006 EXTEND
042267,000414: 16,3507 13515 BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L
042268,000415:
042269,000416: 16,3510 10000 MINLIMAP CCS A
042270,000417: 16,3511 34672 CAF POSMAX # POSITIVE OVERFLOW
042271,000418: 16,3512 13524 TCF ROLLSET
042272,000419: 16,3513 44672 CS POSMAX # NEGATIVE OVERFLOW
042273,000420: 16,3514 13524 TCF ROLLSET
042274,000421:
042275,000422: 16,3515 22000 DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 INTO L
042276,000423: 16,3516 00006 EXTEND
042277,000424: 16,3517 11613 DV TEMREG # RESULT OF DIVISIONIS DESIRED OGARATE
042278,000425: 16,3520 13524 TCF ROLLSET # (SCALED AT B-4 REV/SEC)
042279,000426: 16,3521 43735 RATELIM CS MAXLIM
042280,000427: 16,3522 51700 INDEX I
042281,000428: 16,3523 00000 0 A # IF I = CA, DESIRED RATE IS -MAXLIM
042282,000429:
042283,000430: # BASED ON DESIRED RATE - PRESENT RATE, COMPUTE JET FIRE TIME
042284,000431:
042285,000432: 16,3524 55613 ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
042286,000433: 16,3525 00006 EXTEND
042287,000434: 16,3526 61533 SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC
042288,000435: 16,3527 55613 TS TEMREG # OVERFLOW PROTECT
042289,000436: 16,3530 13533 TCF +3 # ? ?
042290,000437: 16,3531 50000 INDEX A # ? ?
042291,000438: 16,3532 44673 CS LIMITS # ? ?
042292,000439: 16,3533 00006 EXTEND
042293,000440: 16,3534 77665 MP T6SCALE # T6SCALE = 8/10.24
042294,000441: 16,3535 00006 EXTEND
042295,000442: # Page 960
042296,000443: 16,3536 71650 MP 1/CONACC # SCALED AT 2(+9) SECSQ/REV
042297,000444: 16,3537 20001 DDOUBL
042298,000445: 16,3540 20001 DDOUBL
042299,000446: 16,3541 55613 TS TEMREG # OVERFLOW PROTECT
042300,000447: 16,3542 13545 TCF +3 # ? ?
042301,000448: 16,3543 50000 INDEX A # ? ?
042302,000449: 16,3544 44673 CS LIMITS # ? ?
042303,000450: 16,3545 55613 TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT
042304,000451: 16,3546 00006 EXTEND # POS MEANS POSITIVE ROLL TORQUE.
042305,000452: 16,3547 13632 BZF NOROLL
042306,000453:
042307,000454: # JET FIRE TIME IS NZ, ARE JETS ON NOW.
042308,000455:
042309,000456: 16,3550 31613 CAE TEMREG # DESIRED CHANGE IN OGARATE
042310,000457: 16,3551 00006 EXTEND
042311,000458: 16,3552 71611 MP ROLLFIRE # (SGN OF TORQUE: ZERO IF JETS NOW OFF)
042312,000459: 16,3553 10000 CCS A
042313,000460: 16,3554 13560 TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
042314,000461: 16,3555 13563 TCF NEWROLL # START NEW FIRING NOW, PLUS
042315,000462: 16,3556 13632 TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED
042316,000463: 16,3557 13563 TCF NEWROLL # START NEW FIRING NOW, MINUS
042317,000464:
042318,000465: # CONTINUE PRESENT FIRING
042319,000466:
042320,000467: 16,3560 34714 MOREROLL CAF ZERO
042321,000468: 16,3561 55700 TS I # USE TEMP. AS MOREROLL SWITCH
042322,000469: 16,3562 13574 TCF MAXTFIRE
042323,000470:
042324,000471: # START NEW FIRING BUT CHECK IF GREATER THAN MINIMUM FIRE TIME.
042325,000472:
042326,000473: 16,3563 11613 NEWROLL CCS TEMREG # CALL THIS T6FIRE
042327,000474: 16,3564 64712 AD ONE
042328,000475: 16,3565 13567 TCF +2
042329,000476: 16,3566 64712 AD ONE
042330,000477: 16,3567 40000 COM # -MAG(T6FIRE)
042331,000478: 16,3570 63736 AD TMINFIRE # TMINFIRE-MAG(T6FIRE)
042332,000479: 16,3571 40000 COM
042333,000480: 16,3572 00006 EXTEND
042334,000481: 16,3573 63632 MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
042335,000482:
042336,000483: # PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE
042337,000484:
042338,000485: 16,3574 31613 MAXTFIRE CA TEMREG
042339,000486: 16,3575 00006 EXTEND
042340,000487: 16,3576 74710 MP 1/TMXFIR # I.E., 1/TMAXFIRE
042341,000488: 16,3577 00006 EXTEND
042342,000489: 16,3600 13606 MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
042343,000490:
042344,000491: 16,3601 10000 CCS A
042345,000492: 16,3602 33737 CAF TMAXFIRE # USE MAXIMUM
042346,000493: 16,3603 13605 TCF +2
042347,000494: 16,3604 43737 CS TMAXFIRE # USE MAXIMUM
042348,000495: 16,3605 55613 TS TEMREG
042349,000496:
042350,000497: # Page 961
042351,000498: # SET UP SIGN OF REQUIRED TORQUE
042352,000499:
042353,000500: 16,3606 11613 NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
042354,000501: 16,3607 34672 CA POSMAX # POSITIVE TORQUE REQUIRED
042355,000502: 16,3610 13612 TCF +2
042356,000503: 16,3611 34674 CA NEGMAX # NEGATIVE TORQUE REQUIRED
042357,000504: 16,3612 55611 TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE
042358,000505:
042359,000506: 16,3613 40000 COM # COMPLEMENT... POS. FOR NEG. TORQUE
042360,000507: 16,3614 00006 EXTEND
042361,000508: 16,3615 63620 BZMF +3 # POSITIVE TORQUE REQUIRED
042362,000509: 16,3616 41613 CS TEMREG
042363,000510: 16,3617 55613 TS TEMREG
042364,000511:
042365,000512: 16,3620 31700 FIRELOOK CA I # IS IT MOREROLL
042366,000513: 16,3621 00006 EXTEND
042367,000514: 16,3622 13624 BZF FIREPLUG # YES
042368,000515: 16,3623 13635 TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG
042369,000516:
042370,000517: 16,3624 30031 FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
042371,000518: 16,3625 00006 EXTEND
042372,000519: 16,3626 61613 SU TEMREG
042373,000520: 16,3627 00006 EXTEND
042374,000521: 16,3630 65213 EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DON'T, EXIT ROLL DAP
042375,000522: 16,3631 13635 TCF JETROLL
042376,000523:
042377,000524: 16,3632 44714 NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
042378,000525: 16,3633 55611 TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS
042379,000526: 16,3634 55613 TS TEMREG
042380,000527:
042381,000528: 16,3635 00006 JETROLL EXTEND
042382,000529: 16,3636 33726 DCA NOROL1T6
042383,000530: 16,3637 53311 DXCH T6LOC
042384,000531: 16,3640 31613 CA TEMREG # ENTER JET FIRING TIME
042385,000532: 16,3641 54031 TS TIME6
042386,000533:
042387,000534: 16,3642 31700 CA I # I=0 IF MOREROLL, KEEP SAME JETS ON
042388,000535: 16,3643 00006 EXTEND
042389,000536: 16,3644 15213 SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
042390,000537:
042391,000538: 16,3645 11611 CCS ROLLFIRE
042392,000539: 16,3646 13652 TCF +TORQUE
042393,000540: 16,3647 13713 TCF T6ENABL
042394,000541: 16,3650 13673 TCF -TORQUE
042395,000542: 16,3651 13713 TCF T6ENABL
042396,000543:
042397,000544: # PROCEED WITH + TORQUE
042398,000545:
042399,000546: 16,3652 31612 +TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION
042400,000547: 16,3653 74712 MASK BIT1 # WAS IT NO.9-11
042401,000548: 16,3654 00006 EXTEND
042402,000549: 16,3655 13665 BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME
042403,000550:
042404,000551: # Page 962
042405,000552: 16,3656 44712 NO.13-15 CS BIT1
042406,000553: 16,3657 71612 MASK ROLLWORD
042407,000554: 16,3660 55612 TS ROLLWORD # CHANGE BIT 1 TO ZERO
042408,000555: 16,3661 34732 CAF +ROLL2
042409,000556: 16,3662 00006 EXTEND
042410,000557: 16,3663 01006 WRITE CHAN6
042411,000558: 16,3664 13713 TCF T6ENABL
042412,000559:
042413,000560: 16,3665 34712 NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
042414,000561: 16,3666 27612 ADS ROLLWORD # CHANGE BIT 1 TO ONE
042415,000562: 16,3667 34715 CAF +ROLL1
042416,000563: 16,3670 00006 EXTEND
042417,000564: 16,3671 01006 WRITE CHAN6
042418,000565: 16,3672 13713 TCF T6ENABL
042419,000566:
042420,000567: 16,3673 31612 -TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION
042421,000568: 16,3674 74711 MASK BIT2 # WAS IT NO.12-10
042422,000569: 16,3675 00006 EXTEND
042423,000570: 16,3676 13706 BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME
042424,000571:
042425,000572: 16,3677 44711 NO.16-14 CS BIT2
042426,000573: 16,3700 71612 MASK ROLLWORD
042427,000574: 16,3701 55612 TS ROLLWORD # CHANGE BIT 2 TO ZERO
042428,000575: 16,3702 33740 CAF -ROLL2
042429,000576: 16,3703 00006 EXTEND
042430,000577: 16,3704 01006 WRITE CHAN6
042431,000578: 16,3705 13713 TCF T6ENABL
042432,000579:
042433,000580: 16,3706 34711 NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
042434,000581: 16,3707 27612 ADS ROLLWORD # CHANGE BIT 2 TO ONE
042435,000582: 16,3710 34377 CAF -ROLL1
042436,000583: 16,3711 00006 EXTEND
042437,000584: 16,3712 01006 WRITE CHAN6
042438,000585:
042439,000586: 16,3713 34674 T6ENABL CAF BIT15
042440,000587: 16,3714 00006 EXTEND
042441,000588: 16,3715 05013 WOR CHAN13
042442,000589: 16,3716 15213 RDAPEND TCF TASKOVER # EXIT ROLL DAP
042443,000590:
042444,000591: # Page 963
042445,000592: # THIS T6 TASK SHUTS OFF ALL ROLL JETS
042446,000593:
042447,000594: 16,3717 22016 NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
042448,000595: 16,3720 34714 CAF ZERO # CALLED BY "JETROLL")
042449,000596: 16,3721 55611 TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
042450,000597: 16,3722 00006 EXTEND
042451,000598: 16,3723 01006 KILLJETS WRITE CHAN6
042452,000599: 16,3724 15224 TCF NOQRSM
042453,000600:
042454,000601: # Page 964
042455,000602: # CONSTANTS FOR ROLL AUTOPILOT
042456,000603:
042457,000604: 16,3725 E6,1742 EBANK= BZERO
042458,000605: 16,3725 03717 34066 NOROL1T6 2CADR NOROLL1
042459,000606:
042460,000607: 16,3727 00344 DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV
042461,000608: 16,3730 06315 -SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
042462,000609: # PER SEC
042463,000610: 16,3731 00111 LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
042464,000611: # B-4 REV/SEC
042465,000612: 16,3732 00510 INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
042466,000613: 16,3733 01330 MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
042467,000614: 16,3734 00027 1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT
042468,000615: 16,3735 07071 MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
042469,000616: # The following two were B+4.---RSB 2004.
042470,000617: 16,3736 00030 TMINFIRE DEC 1.5 B-10 # 15 MS. (14MIN), SC.AT 16 BITS/CS
042471,000618: 16,3737 07640 TMAXFIRE DEC 250 B-10 # 2.5 SEC, SC.AT 16 BITS/CS
042472,000619:
042473,000620: 16,3740 4710 1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
042474,000621: # ROUNDS TO OCT00004, SO ALLOWS 2.56
042475,000622: # SEC FIRINGS BEFORE APPLYING LIMIT
042476,000623: 16,3740 7665 T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
042477,000624: 16,3740 4715 +ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
042478,000625: 16,3740 4732 +ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
042479,000626: 16,3740 4377 -ROLL1 = TEN # ONBITS FOR JETS 12 AND 10
042480,000627: 16,3740 00240 -ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14
042481,000628:
End of include-file TVCROLLDAP.agc. Parent file is MAIN.agc