Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  RCS-CSM_DIGITAL_AUTOPILOT.agc   Sprache: Apollo

 

# Copyright: Public domain.
# Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1002-1024
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum.  The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum.  Many
# thanks to both.  The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo.  If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051.  10:28 APR. 1, 1969
#
# This AGC program shall also be referred to as
# Colossus 2A

# Page 1002
# T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
#  START OF T5 INTERRUPT PROGRAM


  BANK 20
  SETLOC DAPS3
  BANK

  COUNT 21/DAPRC

  EBANK= KMPAC
REDORCS  LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
  CA T5PHASE  # ON A T5 RUPT.
  EXTEND
  BZMF +2  # IF T5PHASE +0, -0, OR -, RESET TO -
  TCF +3  # IF T5PHASE +, LEAVE IT +.  DO A FRESHDAP
  CS ONE
  TS T5PHASE
  EXTEND
  DCA RCSLOC
  DXCH T5LOC  # HOOK UP T5RUPT TO AUTOPILOT
  TCF RCSATT +1
  EBANK= KMPAC
RCSLOC  2CADR RCSATT

RCSATT  LXCH BANKRUPT # SAVE BB
  EXTEND   # SAVE Q
  QXCH QRUPT
  CAF BIT15  # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
  EXTEND   # S/C CONT SW IS IN CMC (I.E. IF G/C AUTO
  RAND CHAN31  # PILOT IS FULLY ENABLED)
  EXTEND
  BZF SETT5  # IF G/C AUTOPILOT IS FULLY ENABLED,
     # GO TO SETT5

  CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
  MASK BIT14
  ADS RCSFLAGS # SET NORATE FLAG,
  CAF POSMAX
  TS HOLDFLAG # SET HOLDFLAG +,
  CAF ZERO  # ZERO ERRORX, ERRORY, AND ERRORZ,
  TS ERRORX
  TS ERRORY
  TS ERRORZ
  CAF BIT14
  EXTEND
  RAND CHAN31  # AND CHECK FREE FUNCTION (BIT14 CHAN31).
  EXTEND
# Page 1003
  BZF SETT5  # IF IN FREE MODE, GO TO SETT5.

  TS T5PHASE  # IF NOT IN FREE MODE,
  CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
  TS TIME5  # IN 100 MS VIA T5RUPT

  TCR ZEROJET  # ZERO JET CHANNELS IN 14 MS VIA ZEROJET

  TCF KMATRIX
DELTATT  OCT 37770  # 80MS (TIME5)
DELTATT2 OCT 37776  # 20MS (TIME5)
ONESEK  DEC 16284  # 1 SEC(TIME5)
CHAN5  EQUALS 5
CHAN6  EQUALS 6
PRIO34A  = PRIO34
#  CHECK PHASE OF T5 PROGRAM

#  BECAUSE OF THE LENGTH OF THE T5 PROGRAM, IT HAS BEEN DIVIDED INTO
# THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
# TO ALLOW FOR THE EXECUTION OF OTHER
# INTERRUPTS.  T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
# VARIABLES AT TURN ON.
# THE CODING OF T5PHASE IS...

# + = INITIALIZE T5 RCS-CSM AUTOPILOT
#    T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
# - = RESTART DAP
#        -0 = PHASE1 OF THE T5 PROGRAM

SETT5  CCS T5PHASE
  TCF FRESHDAP # TURN ON AUTOPILOT
  TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
  TCF REDAP  # RESTART AUTOPILOT

  TS T5PHASE  # PHASE 1 RESET FOR PHASE 2
  CA TIME5
  TS T5TIME  # USED IN COMPENSATING FOR DELAYS IN T5
  CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
  TS TIME5  # OF PROGRAM

# Page 1004
# IMU STATUS CHECK

  CS IMODES33 # CHECK IMU STATUS
  MASK BIT6  # BIT6 = 0  IMU OK
  CCS A  # BIT6 = 1 NO IMU
  TCF RATEFILT
FREECHK  CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
  MASK BIT14  # INITIALIZED
  ADS RCSFLAGS
  CAF BIT14  # NO ATTITUDE REFERENCE
  TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
     # TO PICK UP CDU ANGLES UPON RESUMPTION OF
     # ATTITUDE HOLD
  EXTEND
  RAND CHAN31  # CHECK FOR FREE MODE
  EXTEND
  BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
  TCF REINIT  # .....TILT...............................
BITS4,5  OCT 30

RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
  MASK BIT14
  EXTEND   # IF SO, PROCEED WITH RATE DERIVATION
  BZF +2
  TCF KMATRIX  # IF NOT, SKIP RATE DERIVATION

#  RATE FILTER TIMING = 7.72 MS

# RATE FILTER EQUATIONS
# DRHO = DELRHO - (.1)ADOT + (1 = GAIN1)DRHO
#     -1
# ADOT = ADOT   + GAIN2 DRHO + KMJ DFT
#      -1
# -        *     -     -
# WHERE DELRHO = AMGB (CDU - CDU  )
#   -1

  CAF TWO
DRHOLOOP TS SPNDX
  DOUBLE
  TS DPNDX
  INDEX DPNDX
  CS DRHO  # DRHO SCALED 180 DEGS
  EXTEND
  INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
  MP GAIN1
  INDEX DPNDX
  DAS DRHO  # (1 -.064)DRHO
  EXTEND
# Page 1005
  INDEX DPNDX
  DCS ADOT
  DXCH KMPAC  # -(.1)ADOT
  CA QUARTER
  TC SMALLMP
  DXCH KMPAC
  INDEX DPNDX
  DAS DRHO
  CCS SPNDX
  TCF DRHOLOOP

  CA CDUX  # MEASURED BODY RATES--
  XCH RHO
  EXTEND
  MSU RHO  # -        *     -     -
  COM   # DELRHO = AMGB (CDU - CDU  )
     #   -1
  ZL
  DXCH DELTEMPX
  CA CDUY
  XCH RHO1
  EXTEND
  MSU RHO1
  COM
  TS T5TEMP  # (CDUY - RHO1)    SCALED 90 DEGS
  EXTEND
  MP AMGB1
  DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
     # MUST BE DOUBLE PRECISION OR WILL LOSE
     # PULSES
  CA AMGB4
  EXTEND
  MP T5TEMP
  DXCH DELTEMPY
  CA AMGB7
  EXTEND
  MP T5TEMP
  DXCH DELTEMPZ
  CA CDUZ
  XCH RHO2
  EXTEND
  MSU RHO2
  COM
  TS T5TEMP  # (CDUZ - RHO2)    SCALED 90 DEGS
  EXTEND
  MP AMGB5
  DAS DELTEMPY # DELTEMPY =AMGB4(CDUY-RHO1)
     #   + AMGB5(CDUZ-RHO2)
  CA AMGB8
  EXTEND

# Page 1006
  MP T5TEMP
  DAS DELTEMPZ # DELTEMPZ = AMBG7(CDUY-RHO1)
     #   + AMGB8(CDUZ-RHO2)
  CAF TWO
ADOTLOOP TS SPNDX
  DOUBLE
  TS DPNDX
  EXTEND
  INDEX DPNDX
  DCA DELTEMPX
  INDEX DPNDX
  DAS DRHO
  EXTEND
  INDEX DPNDX
  DCA DELTEMPX
  INDEX DPNDX
  DAS MERRORX
  INDEX DPNDX
  CA DRHO
  DOUBLE   # N.B.
  DOUBLE   # N.B.
  EXTEND
  INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
  MP GAIN2
  INDEX DPNDX  # ADOT   + (.16)(.1)DRHO
  DAS ADOT  #     -1
  INDEX SPNDX  # S/C TORQUE TO INERTIA RATIO
  CA KMJ  # SCALED (450)(1600)/(57.3)(16384)=1/1.3
  EXTEND
  INDEX SPNDX
  MP DFT
  INDEX DPNDX
  DAS ADOT  # KMJ(DFT)
  CCS SPNDX
  TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
KMATRIX  CA ATTSEC
  MASK LOW4
  CCS A
  TCF TENTHSEK
  CAF PRIO34  # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
  TC NOVAC  # MATRIX FROM GIMBAL AXES TO BODY AXES
  EBANK= KMPAC
  2CADR AMBGUPDT

  CAF NINE

TENTHSEK TS ATTSEC

# Page 1007
# WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
# SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--

# CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
# CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
# CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)

# THE STEERING PROGRAMS-
# 1) ATTITUDE MANEUVER ROUTINE
# 2) LEM TRACKING

# SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
# DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.

# HOLDFLAG CODING-

# + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
#     AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
#     ALSO IGNORE AUTOMATIC STEERING
#     SET = + BY
# 1) INITIALIZATION PHASE OF AUTOPILOT
# 2) OCCURANCE OF RHC COMMANDS
# 3) FREE MODE
# 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
#    WHILE DOING AUTOMATIC STEERING (IN THIS CASE
#    HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
#    FUNCTIONS AS IF IT WERE.)
# 5) S/C CONTROL SWITCH IS SCS
# 6) IMU POWER OFF
#      +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
# - = PERFORMING AUTOMATIC MANEUVER
#      -0 = NOT USED AT PRESENT


#  NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
# SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
# DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE THE APPROPRIATE ACTION.

  CS HOLDFLAG
  EXTEND
  BZMF DACNDLS  # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
     # COMMANDS
DCDUINCR CAF TWO
DELOOP  TS SPNDX
  DOUBLE
  TS DPNDX
  EXTEND
  INDEX A
  DCA CDUXD
# Page 1008
  DXCH KMPAC
  EXTEND
  INDEX DPNDX
  DCA DELCDUX
  TC DPADD
  EXTEND
  DCA KMPAC
  INDEX SPNDX
  TS THETADX
  INDEX DPNDX
  DXCH CDUXD
  CCS SPNDX
  TCF DELOOP

# Page 1009
# RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY

# THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-

# MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
# GENERATED INTERNALLY BY THE AUTOPILOT

# MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
# WITH RESPECT TO THE CONTENTS OF N22

# MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
# WITH RESPECT TO THE CONTENTS OF N17

# MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS.  IN THIS
# MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE

# MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
# IN N22.  THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
# AS A FLY-TO INDICATOR.

# MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
# IN N17.  THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
# AS A FLY-TO INDICATOR.

#  V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
# WITH THE CURRENT S/C ATTITUDE.  THIS VERB MAY BE USED AT ANY TIME.

#  THESE DISPLAYS WILL BE AVAILABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
# INITIATED VIA V46E.  MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD.  THE CREW MAY PRESET (VIA
# V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.

DACNDLS  CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
  MASK BIT4
  EXTEND
  BZF FDAIDSP2

FDAIDSP1 ADS RCSFLAGS
  TC NEEDLER
KRESUME1 TCF RESUME  # END PHASE 1

# Page 1010
# FDAI ATTITUDE ERROR DISPLAY SUBROUTINE

# PROGRAM DESCRIPTION: D. KEENE  5/24/67

#  THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
# IN THE CDUS.  CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
# OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
# THE DACS.


# CALLING SEQUENCE:

#  DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
# TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:

# CS RCSFLAGS # IN EBANK6
# MASK BIT3
# ADS RCSFLAGS

# THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:

# AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
# AK1 SCALED 180 DEGREES TO CHANGE
# AK2 SCALED 180 DEGREES

# FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
# (= 384 BITS IN IMU ERROR COUNTER)

# A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:

# INHINT
# TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6
# CADR NEEDLER
# RELINT

#  THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED.  AT LEAST 3 PASSES THRU THE PROGRAM ARE
# REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
# NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.

# ERASABLE USED:
# AK CDUXCMD
# AK1 CDUYCMD
# AK2 CDUZCMD
# EDRIVEX A,L,Q
# EDRIVEY T5TEMP
# EDRIVEZ SPNDX

# SWITCHES: RCSFLAGS BITS 3,2

# I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
# Page 1011
# CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
# CHAN14 BIT 13,14,15 (DAC ACTIVITY)


# SIGN CONVENTION< AK = THETAC - THETA
# WHERE THETAC = COMMAND ANGLE
# THETA = PRESENT ANGLE


NEEDLER  CAF BIT4  # CHECK FOR COARSE ALIGN ENABLE
  EXTEND   # IF IN COARSE ALIGN DO NOT USE IMU
  RAND CHAN12  # ERROR COUNTERS.  DONT USE NEEDLES
  EXTEND
  BZF NEEDLER1
  CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
  MASK BIT3
  ADS RCSFLAGS
  TC Q

NEEDLER1 CA RCSFLAGS
  MASK SIX
  EXTEND
  BZF NEEDLES3
  MASK BIT3
  EXTEND
  BZF NEEDLER2 # BIT3 = 0, BIT2 = 1

  CS BIT6  # FIRST PASS BIT3 = 1
  EXTEND   # DISABLE IMU ERROR COUNTER TO ZERO DACS
  WAND CHAN12  # MUST WAIT AT LEAST 60 MS BEFORE
NEEDLE11 CS ZERO  # ENABLING COUNTERS.
  TS AK  # ZERO THE INPUTS ON FIRST PASS
  TS AK1
  TS AK2
  TS EDRIVEX  # ZERO THE DISPLAY REGISTERS
  TS EDRIVEY
  TS EDRIVEZ
  TS CDUXCMD  # ZERO THE OUT COUNTERS
  TS CDUYCMD
  TS CDUZCMD
  CS SIX  # RESET RCSFLAGS FOR PASS2
  MASK RCSFLAGS
  AD BIT2
  TS RCSFLAGS
  TC Q  # END PASS1

NEEDLER2 CAF BIT6  # ENABLE IMU ERROR COUNTERS
  EXTEND
  WOR CHAN12
  CS SIX  # RESET RCSFLAGS TO DISPLAY ATTITUDE
# Page 1012
  MASK RCSFLAGS # ERRORS    WAIT AT LEAST 4 MS FOR
  TS RCSFLAGS # RELAY CLOSURE
  TC Q

NEEDLES3 CAF BIT6  # CHECK TO SEE IF IMU ERROR COUNTER
  EXTEND   # IS ENABLED
  RAND CHAN12
  EXTEND   # IF NOT RECYCLE NEEDLES
  BZF NEEDLER +5

NEEDLES  CAF TWO
DACLOOP  TS SPNDX
  CS QUARTER
  EXTEND
  INDEX SPNDX
  MP AK
  TS L
  CCS A
  CA DACLIMIT
  TCF +2
  CS DACLIMIT
  AD L
  TS T5TEMP  # OVFLO CHK
  TCF +4
  INDEX A  # ON OVERFLOW LIMIT OUTPUT TO +-384
  CAF DACLIMIT
  TS L
  INDEX SPNDX
  CS EDRIVEX  # CURRENT VALUE OF DAC
  AD L
  INDEX SPNDX
  ADS CDUXCMD
  INDEX SPNDX
  LXCH EDRIVEX
  CCS SPNDX
  TCF DACLOOP
  CAF 13,14,15
  EXTEND
  WOR CHAN14  # SET DAC ACTIVITY BITS
  TC Q

REINIT  CAF DELAY200 # ........TILT LOGIC
  TS TIME5  # REINITIALIZE DAP IN 200MS
  TS T5PHASE
  TCF RESUME
DELAY200 DEC 16364  # 200MS

  DEC -384

# Page 1013
DACLIMIT DEC 16000
  DEC 384

# Page 1014
# INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT

# THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY

# WBODY (+1) DFT TAU2
# WBODY1 (+1) DFT1 BIAS
# WBODY2 (+1) DFT2 BIAS1
# ADOT (+1) DRHO (+1) BIAS2
# ADOT1 (+1) DRHO1 (+1) ERRORX
# ADOT2 (+1) DRHO2 (+1) ERRORY
# MERRORX (+1) ATTSEC ERRORZ
# MERRORY (+1) TAU
# MERRORZ (+1) TAU1
FRESHDAP CAF ONE  # RESET HOLDFLAG TO STOP AUTOMATIC
  TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
     # ATTITUDE HOLD REFERENCE

REDAP  TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
  CADR S41.2  # RATES, QUADFAILS, QUAD MANAGEMENT

  TC IBNKCALL # DECODE IXX, IAVG, AND CONVERT
  CADR S40.14  # TO AUTOPILOT GAINS

  CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
ZEROT5  TS SPNDX  # ZERO ALL NECESSARY ERASABLE REGISTERS
  CAF ZERO
  INDEX SPNDX
  TS WBODY
  CCS SPNDX
  TCF ZEROT5
  TCR ZEROJET

  CS ZERO
  TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL

  TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
     # MANUAL RATE MODES

  CAF =.24
  TS SLOPE  # INITIALIZE SWITCHING LOGIC SLOPE

  CAF FOUR
  TS T5TIME  # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
     # 60 MS.  PHASE 2 RESETS FOR PHASE 1 RUPT
     # IN (80MS - T5TIME(40MS)).  THEREFORE
     # PHASE 1 (RATEFILTER) BEGINS CYCLING 100
     # MS FROM NOW AND EVERY 100MS THEREAFTER.

  CAF ELEVEN
  TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
     # TO INITIALIZE THE S/C ANGULAR RATES
# Page 1015
  CA CDUX
  TS RHO
  CA CDUY
  TS RHO1
  CA CDUZ
  TS RHO2
  CAF ZERO  # RESET AUTOPILOT TO BEGIN EXECUTING
  TS T5PHASE  # PHASE2 OF PROGRAM

  CS IMODES33 # CHECK IMU STATUS
  MASK BIT6  # IF BIT6 = 0 IMU IN FINE ALIGN
  CCS A  # IF BIT6 = 1 IMU NOT READY
  TCF IMUAOK
  TS ATTKALMN # CANNOT USE IMU
  CAF RCSINITB # PROVIDE FREE CONTROL ONLY
  TCF RCSSWIT  # DONT START UP RATE FILTER
     # SIGNAL NO RATE FILTER

IMUAOK  CAF PRIO34  # START MATRIX INITIALIZATION
  TC NOVAC  # BYPASS IF IMU NOT IN FINE ALIGN
  EBANK= KMPAC
  2CADR AMBGUPDT

  CAF RCSINIT  # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
RCSSWIT  TS RCSFLAGS # CLEAR BIT1  -INITIALIZE T6 PROGRAM
     #   SET BIT3  -INITIALIZE NEEDLES
     # CLEAR BIT4  -RESET FOR FDAIDSP1
  CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
     # ERROR COUNTER TO ZERO.
     # (MINIMUM DELAY = 15 MS)
  TS TIME5  # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
  TC RESUME  # PICK UP THE KALMAN FILTER GAINS.  RATE
     # FILTER WILL BEGIN OPERATING ZOOMS FROM
     # NOW

# CONSTANTS USED IN INITIALIZATION PROGRAM

NO.T5VAR DEC 36
=.24  DEC .24  # = SLOPE OF 0.6/SEC
RCSINIT  OCT 00004
RCSINITB OCT 20004
T5WAIT60 DEC 16378  # = 6 CS
  EBANK= KMPAC
T6ADDR  2CADR T6START

ZEROJET  CAF ELEVEN  # ZERO BLAST2, BLAST1, BLAST, YWORD2,
  TS SPNDX  # YWORD1, PWORD2, PWORD1, RWORD2,
  CAF ZERO  # AND RWORD1.

# Page 1016
  INDEX SPNDX
  TS RWORD1
  CCS SPNDX
  TCF ZEROJET +1

  CAF FOUR
  TS BLAST1 +1
  CAF ELEVEN
  TS BLAST2 +1

  CS BIT1
  MASK RCSFLAGS
  TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0

  EXTEND
  DCA T6ADDR
  DXCH T6LOC
  CAF =+14MS  # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
  TS TIME6
  CAF BIT15
  EXTEND
  WOR CHAN13

  TC Q

T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
  TCF KALUPDT

  TCF +2  # ONLY IF ATTKALMN POSITIVE
  TCF +1
  CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
  XCH TIME5  # (JET SELECTION LOGIC)
  ADS T5TIME  # TO COMPENSATE FOR DELAYS IN T5RUPT

  CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
  MASK BIT15  # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
  EXTEND   # ATTKALMN TO -1
  BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
  CS ONE
NOHIAUTO TS ATTKALMN

# Page 1017
# MANUAL ROTATION COMMANDS

  CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
  MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
  TS RCSFLAGS

  EXTEND
  READ CHAN31
  TS L
  CA CH31TEMP
  EXTEND
  RXOR LCHAN
  MASK MANROT  # = OCT00077
  EXTEND
  BZMF NOCHANGE

  LXCH A
  TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP

  CA L
  EXTEND
  MP BIT5  # PUT BITS 6-1 OF A IN BITS 10-5 OF L
  CA L
  ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
     # CHANGES IN COMMAND.  BITS 10,9 FOR
     # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
     # PITCH

  CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12,AND
  MASK OCT16000 # 11 OF RCSFLAGS)
  ADS RCSFLAGS

NOCHANGE CS CH31TEMP
  MASK MANROT
  EXTEND
  BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT

  TS HOLDFLAG # SET HOLDFLAG +

  TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
     # YMANNDX, AND RMANNDX ARE ALL SET, BY
     # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
     # +, OR - ROTATION RESPECTIVELY AS
     # COMMANDED BY THE RHC.

     # HOWEVER, IT IS WELL TO NOTE THAT AFTER
     # THE RHC IS RETURNED TO DETENT, THE
     # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
     # STICKCHK SO PMANNDX, YMANNDX, AND
     # RMANNDX ARE NOT RESET TO ZERO BUT RATHER
     # LEFT SET TO THEIR LAST OUT OF DETENT
# Page 1018
     # VALUES.

  CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
  MASK BIT14  # PROGRAMS (P20) THAT ASTRONAUT HAS
  ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT

  CAF BIT14
  EXTEND
  RAND CHAN31
  EXTEND
  BZMF FREEFUNC

  CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
  MASK BIT14  # HAS BEEN INITIALIZED
  CCS A  # IF SO, PROCEED WITH MANUAL RATE COMMANDS
  TCF REINIT  # .....TILT, RECYCLE TO INITIALIZE FILTER

  CS FIVE  # IF MANUAL MANEUVER IS AT HIGH RTE, SET
  AD RATEINDX # ATTKALMN TO -1.
  EXTEND   # OTHERWISE, LEAVE ATTKALMN ALONE.
  BZMF +3
  CS ONE
  TS ATTKALMN

  CAF TWO  # AUTO-HOLD MANUAL ROTATION
SETWBODY TS SPNDX
  DOUBLE
  TS DPNDX
  INDEX SPNDX  # RMANNDX = 0 NO ROTATION
  CA RMANNDX  #   = 1  + ROTATION
  EXTEND   #     = 2  - ROTATION
  BZF NORATE  # IF NO ROTATION COMMAND ON THIS AXIS,
     # GO TO NORATE.

  AD RATEINDX # RATEINDX = 0  0.05 DEG/SEC
  TS Q  #          = 2  0.2  DEG/SEC
  INDEX Q  #          = 4  0.5  DEG/SEC
  CA MANTABLE -1 #          = 6  2.0  DEG/SEC
  EXTEND
  MP BIT9  # MULTIPLY MANTABLE BY 2 TO THE -6
  INDEX DPNDX  # TO GET COMMANDED RATE.
  DXCH WBODY  # SET WBODY TO COMMANDED RATE.

  CA RCSFLAGS
  MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
  EXTEND   # 11 OF RCSFLAGS ALL ZERO.)  IF SO, GO TO
  BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
     # ERROR.

# Page 1019
ZEROER  CA ZERO  # ZEROER ZEROS MERRORS
  ZL
  INDEX DPNDX
  DXCH MERRORX
  TCF SPNDXCHK

NORATE  ZL
  INDEX DPNDX
  DXCH WBODY  # ZERO WBODY FOR THIS AXIS
  CA RCSFLAGS
  MASK OCT16000
  EXTEND   # IS RATE DAMPING COMPLETED
  BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
  TCF ZEROER  # NO,GO TO ZEROER

MERUPDAT INDEX Q  # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
  CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
  EXTEND   # THE ADDITION OF MEASURED CHANGE IN ANGLE
  MP BIT7  # HAS ALREADY BEEN DONE IN THE RATE FILTER
  INDEX DPNDX  # COMMANDED CHANGE IN ANGLE = WBODY TIMES
  DAS MERRORX  # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8

SPNDXCHK INDEX DPNDX
  CA MERRORX
  INDEX SPNDX
  TS ERRORX  # ERRORX = HIGH ORDER WORD OF MERRORX
  CCS SPNDX
  TCF SETWBODY
  TCF JETS

OCT01760 OCT 01760  # FORCED FIRING BITS MASK

OCT01400 OCT 01400  # ROLL FORCED FIRING MASK ORDER OF
OCT00060 OCT 00060  # PITCH FORCED FIRING MASK DEFINITION
OCT00300 OCT 00300  # YAW FORCED FIRING MASK MUST BE
     # PRESERVED
     #       FOR INDEXING
MANROT  OCT 77
OCT16000 OCT 16000  # RATE DAMPING FLAGS MASK
MANTABLE DEC .0071111
  DEC -.0071111
  DEC .028444
  DEC -0.028444
  DEC .071111
  DEC -.071111
  DEC .284444
  DEC -.284444
=+14MS  DEC 23
FREEFUNC INDEX RMANNDX  # ACCELERATION
# Page 1020
  CA FREETAU  # COMMANDS
  TS TAU
  INDEX PMANNDX
  CA FREETAU  # FREETAU 0 SEC
  TS TAU1  # +1        +0.10 SEC
  INDEX YMANNDX  # +2        -0.10 SEC
  CA FREETAU  # (+3) 0 SEC
  TS TAU2
  TCF T6PROGM

FREETAU  DEC 0
  DEC 480
  DEC -480
  DEC 0

T6PROGM  CAF ZERO  # FOR MANUAL ROTATIONS
  TS ERRORX
  TS ERRORY
  TS ERRORZ
  TCF T6PROG

# Page 1021
  DEC .2112  # FILTER GAIN FOR TRANSLATION, LEM ON
  DEC .8400  # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
  DEC .2112  # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
GAIN1  DEC .0640  # KALMAN FILTER GAINS FOR INITIALIZATION
  DEC .3180  # OF ATTITUDE RATES
  DEC .3452
  DEC .3774
  DEC .4161
  DEC .4634
  DEC .5223
  DEC .5970
  DEC .6933
  DEC .8151
  DEC .9342

  DEC .0174  # FILTER GAIN FOR TRANSLATION, LEM ON
  DEC .3600  # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
  DEC .0174  # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
GAIN2  DEC .0016  # SCALED 10
  DEC .0454
  DEC .0545
  DEC .0666
  DEC .0832
  DEC .1069
  DEC .1422
  DEC .1985
  DEC .2955
  DEC .4817
  DEC .8683
STICKCHK TS T5TEMP
  MASK THREE  # INDICES FOR MANUAL ROTATION
  TS PMANNDX
  CA T5TEMP
  EXTEND   # MAN RATE  0  0 RATE (DP)
  MP QUARTER  #     +1  +RATE (DP)
  TS T5TEMP  #          +2 -RATE (DP)
  MASK THREE  #   (+3) 0 RATE (DP)
  TS YMANNDX
  CA T5TEMP
  EXTEND
  MP QUARTER
  TS RMANNDX
  TC Q


KALUPDT  TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
     # KALMAN FILTER TAKES 1.1 SEC

  CA DELTATT  # =1SEC - 80MS
  AD T5TIME  # + DELAYS
# Page 1022
  TS TIME5
  TCF +3
  CAF DELTATT2 # SAFETY PLAY TO ASSURE
  TS TIME5  # A T5RUPT

KRESUME2 CS ZERO  # RESET FOR PHASE1
  TS T5PHASE  # RESUME INTERRUPTED PROGRAM
  TCF RESUME

FDAIDSP2 CS BIT4  # RESET FOR FDAIDSP1
  MASK RCSFLAGS
  TS RCSFLAGS

  CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
  MASK BIT9  # ERRORS
  EXTEND
  BZF FDAITOTL
  EXTEND
  DCS ERRORX  # OFF -DISPLAY AUTOPILOT FOLLOWING ERROR
  DXCH AK
  CS ERRORZ
  TS AK2
  TCF RESUME  # END PHASE 1

FDAITOTL CA FLAGWRD9
  MASK BIT6
  EXTEND
  BZF WRTN17  # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
     # IF SO, GO TO WRTN17
WRTN22  EXTEND   # OTHERWISE, CONTINUE ON TO WRTN22 AND
  DCA CTHETA  # GET SET TO COMPUTE TOTAL ATTITUDE
  DXCH WTEMP  # ERROR WRT N22 BY PICKING UP THE THREE
  CA CPHI  # COMPONENTS OF N22

GETAKS  EXTEND   # COMPUTE TOTAL ATTITUDE ERROR FOR
  MSU CDUX  # DISPLAY ON FDAI ERROR NEEDLES
  TS AK
  CA WTEMP
  EXTEND
  MSU CDUY
  TS T5TEMP
  EXTEND
  MP AMGB1
  ADS AK
  CA T5TEMP
  EXTEND
  MP AMGB4
# Page 1023
  TS AK1
  CA T5TEMP
  EXTEND
  MP AMGB7
  TS AK2
  CA WTEMP +1
  EXTEND
  MSU CDUZ
  TS T5TEMP
  EXTEND
  MP AMGB5
  ADS AK1
  CA T5TEMP
  EXTEND
  MP AMGB8
  ADS AK2
  TCF RESUME  # END PHASE1 OF RCS DAP

WRTN17  EXTEND   # GET SET TO COMPUTE TOTAL ASTRONAUT
  DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
  DXCH WTEMP  # THE THREE COMPONENTS OF N17
  CA CPHIX
  TCF GETAKS

# Page 1024 (empty page)

Messung V0.5 in Prozent
C=53 H=100 G=80

¤ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912