Система управления прерыванием полета Apollo
Apollo Система управления прерыванием полета ( AGS , также известная как секция управления прерыванием ) представляла собой резервную компьютерную систему, обеспечивающую возможность прерывания в случае отказа основной системы наведения лунного модуля ( PGNCS Apollo ) во время спуска, подъема или встречи. Как система прерывания, она не поддерживала управление посадкой на Луну. [1]
AGS был разработан TRW независимо от разработки компьютера управления Apollo и PGNCS .
Это была первая навигационная система, в которой использовался бесплатформенный инерциальный измерительный блок , а не гиростабилизированный IMU на подвесе (как используется PGNCS ). [2] Хотя он и не такой точный, как подвесной IMU, он обеспечивает удовлетворительную точность с помощью оптического телескопа и радара сближения . Кроме того, он был легче и меньше по размеру.
Описание
[ редактировать ]Система управления прерыванием включала следующие компоненты: [3]
- Прерывание электронной сборки (AEA): компьютер AGS
- Сборка датчика прерывания (ASA): простой бесплатформенный IMU
- Сборка ввода и отображения данных (DEDA): интерфейс астронавта, аналогичный DSKY.
Использовался компьютер MARCO 4418 (MARCO означает «Компьютер с рейтингом человека»), размеры которого составляли 5 на 8 на 23,75 дюйма (12,7 на 20,3 на 60,33 сантиметра); он весил 32,7 фунта (14,83 кг) и требовал мощности 90 Вт. Поскольку память имела последовательный доступ, она работала медленнее, чем AGC, хотя некоторые операции с AEA выполнялись так же быстро или быстрее, чем с AGC.
Компьютер имел следующие характеристики:
- Он имел 4096 слов памяти на магнитном сердечнике с временем цикла 5 микросекунд . Младшие 2048 слов представляли собой стираемую память (ОЗУ), более высокие 2048 слов служили постоянной памятью (ПЗУ), при этом один измерительный провод проходил только через ноль ядер. [4] : с. 5 Постоянная и стираемая память были устроены одинаково, поэтому соотношение между постоянной и стираемой памятью было переменным.
- Это была 18-битная машина с 17 битами величины и знаковым битом . Адреса имели длину 13 бит; MSB указывает индексную адресацию.
- Слова данных имели дополнение до двух и имели форму с фиксированной запятой .
Регистры
[ редактировать ]AEA имеет следующие регистры: [4]
- A: аккумулятор (18 бит)
- M: Регистр памяти (18 бит), хранит данные, передаваемые между центральным компьютером и памятью.
- Вопрос: Регистр множителя-частного (18 бит), хранит младшую половину результата после умножения и деления . Его также можно использовать как расширение аккумулятора.
- Индексный регистр (3 бита): используется для индексной адресации.
Другие регистры включают в себя:
- Регистр адреса (12 бит): содержит адрес памяти, запрошенный центральным компьютером.
- Регистр кода операции (5 бит): хранит 5-битный код инструкции во время ее выполнения.
- Счетчик программ (12 бит)
- Счетчик циклов (5 бит): управляет инструкциями по сдвигу.
- Таймеры (2 регистра): создают сигналы синхронизации управления.
- Входные регистры: 13 регистров. Многие из входных регистров имели счетчики для суммирования импульсов от систем прерывания и первичного наведения. [4]
Набор инструкций
[ редактировать ]Формат инструкции AEA состоял из пятибитного кода инструкции , индексного бита и 12-битного адреса.
В компьютере было 27 инструкций:
ADD
: Содержимое ячейки памяти добавляется в аккумулятор A. Содержимое ячейки памяти остается неизменным.
ADZ
(Сложение и ноль) : Содержимое памяти добавляется к аккумулятору А. Содержимое памяти устанавливается на ноль.
SUB
(Вычитание) : Содержимое памяти вычитается из аккумулятора А. Содержимое памяти остается неизменным.
SUZ
(Вычитание и ноль) : Содержимое памяти вычитается из аккумулятора A. Содержимое памяти устанавливается на ноль.
MPY
(Умножить) : Содержимое аккумулятора А умножается на содержимое памяти. Наиболее значимая часть произведения помещается в аккумулятор А, наименее значимая — в регистр Q.
MPR
(Умножение и округление) : Идентично MPY
В инструкции наиболее значительная часть произведения в аккумуляторе A округляется путем прибавления единицы к содержимому аккумулятора A, если бит 1 регистра Q равен единице.
MPZ
(Умножение и ноль) : Идентично MPR
инструкции содержимое памяти обнуляется.
DVP
(Разделение) : Содержимое аккумулятора A и регистра Q, образующее делимое, делится на содержимое памяти. Частное помещается в аккумулятор А и округляется, если только округление не приведет к переполнению.
COM
(Дополнительный аккумулятор) : Содержимое аккумулятора A заменяется дополнением до двух. Если содержимое аккумулятора А положительное, ноль или минус единица, оно остается неизменным.
CLA
(Очистить и добавить) : Аккумулятор А загружается из памяти. Содержимое памяти остается неизменным.
CLZ
(Очистить, добавить и ноль) : аналогично CLA
инструкция; содержимое памяти обнуляется.
LDQ
(Загрузка регистра Q) : Регистр Q загружается содержимым памяти. Содержимое памяти остается неизменным.
STO
(Сохранить аккумулятор) : Содержимое аккумулятора А сохраняется в памяти. Содержимое аккумулятора А остается неизменным.
STQ
(Сохранить регистр Q) : Содержимое регистра Q сохраняется в памяти. Содержимое регистра Q остается неизменным.
ALS N
(Арифметический сдвиг влево) : Содержимое аккумулятора А сдвигается на N позиций влево.
LLS N
(Длинный сдвиг влево) : Содержимое аккумулятора A и биты 1–17 регистра Q сдвигаются влево на одну регистровую позицию N. Знак регистра Q приведен в соответствие со знаком аккумулятора А.
LRS N
(Длинный сдвиг вправо) : Аналогично LLS
, но содержимое сдвинуто вправо на N мест.
TRA
(Передача) : Следующая инструкция берется из памяти.
TSQ
(Передача и установка Q) : Содержимое регистра Q заменяется полем адреса, значение которого на один больше, чем местоположение TSQ
инструкция. Следующая инструкция берется из памяти.
TMI
(Передача по минусовому аккумулятору) : следующая инструкция берется из памяти, если содержимое аккумулятора А отрицательное. В противном случае выполняется следующая инструкция по порядку.
TOV
(Передача при переполнении) : Если установлен индикатор переполнения, следующая инструкция берется из памяти.
AXT N
(Адрес к индексу) : Регистр индекса установлен на N.
TIX
(Тестовый индекс и передача) : Если индексный регистр положителен, он уменьшается на единицу, и следующая инструкция берется из памяти.
DLY
(Задержка) : выполнение останавливается до тех пор, пока не будет получен сигнал синхронизации. Следующая инструкция берется из памяти.
INP
(Вход) : Содержимое входного регистра, указанного адресом, помещается в аккумулятор А. Входной регистр либо устанавливается в ноль, либо остается неизменным (в зависимости от выбранного регистра).
OUT
(Выход) : Содержимое аккумулятора A помещается в выходной регистр, указанный по адресу.
Программное обеспечение
[ редактировать ]Первые идеи дизайна системы управления прерыванием включали не использование компьютера, а скорее секвенсор без каких-либо навигационных возможностей. Этого было бы достаточно, чтобы вывести лунный модуль на лунную орбиту, где экипаж будет ждать спасения от CSM Apollo . Более поздняя конструкция включала цифровой компьютер для обеспечения некоторой автономии. [2]
Программное обеспечение AGS написано на языке ассемблера LEMAP, который использует 27 описанных выше инструкций и набор псевдоопераций, используемых ассемблером.
Основной цикл вычислений длился 2 секунды. Этот 2-секундный цикл был разделен на 100 сегментов; каждый из этих сегментов имел длительность 20 мс . Эти сегменты использовались для вычислений, которые необходимо было пересчитывать каждые 20 мс (например, обработка сигналов IMU, обновление данных нисходящей линии связи PGNCS, обновление направляющих косинусов и т. д.).
Также существовал набор вычислений, которые нужно было выполнять каждые 40 мс (команды двигателя, выборка внешнего сигнала , ориентация и т. д.).
Другие вычисления выполнялись каждые 2 секунды, и эти уравнения были разделены на более мелкие группы, чтобы их можно было пересчитать в течение оставшегося (т. е. неиспользованного) времени сегментов по 20 мс (например, обработка радиолокационных данных, расчет параметров орбиты, расчет последовательности сближения, калибровка датчики IMU и т. д.) [5]
Программное обеспечение для AGS неоднократно пересматривалось с целью обнаружения ошибок в программе и уменьшения размера программного обеспечения. Известно несколько версий программного обеспечения, которые использовались для испытаний без экипажа и с экипажем. [6]
Пользовательский интерфейс
[ редактировать ]Блок пользовательского интерфейса AGS получил название DEDA ( сборка ввода и отображения данных ). Его функцией был ввод и считывание данных с АГС. Некоторые функции системы были встроены в DEDA, в отличие от DSKY, используемого AGC.
DEDA имело следующие элементы:
- Цифровые клавиши 0–9
- Ключ знака + и -
- Клавиша CLR: очищает экран ввода и гаснет индикатор OPR ERR.
- Клавиша ENTER: для ввода данных/адреса.
- Клавиша READOUT: считывает данные с указанного адреса и отображает обновленные данные каждые полсекунды.
- Клавиша HOLD: останавливает непрерывный вывод данных.
- Индикатор OPR ERR: указывает на ошибку оператора.
- дисплеи используются для ввода и чтения данных
Использование АГС
[ редактировать ]Реальных описаний использования AGS мало, поскольку во время миссий Аполлона прерывание посадки никогда не требовалось. Однако было четыре случая использования АГС.
Его первое использование было для испытаний спускаемой ступени лунного модуля в орбитальном полете Земли во время миссии «Аполлон-9» . [7] Он снова использовался в миссии «Аполлон-10» после отделения ступени спуска лунного модуля перед сгоранием APS. Неправильная настройка переключателя [8] оставление AGS в автоматическом режиме, а не в режиме Attitude Hold , привело к быстрому и явному отклонению в позе за несколько мгновений до постановки. [9] Ситуацию быстро взяли под контроль.
Следующее использование AGS произошло во время фазы восхождения на Луну миссии «Аполлон-11» , когда экипаж LM выполнил последовательность маневров сближения, которые привели к блокировке карданного подвеса ; Впоследствии AGS использовался для контроля ориентации. [3]
AGS сыграл важную роль в безопасном возвращении Аполлона-13 после того, как взрыв кислородного баллона привел к повреждению служебного модуля и вынудил астронавтов использовать лунный модуль в качестве «спасательной шлюпки». Подача электроэнергии и воды на LM была ограничена, а основная система наведения и навигации использовала слишком много воды для охлаждения. В результате, после того, как основной спускаемый двигатель LM сгорел через два часа после максимального приближения к Луне, чтобы сократить путь домой, AGS использовался для большей части возвращения, включая две коррекции на середине курса. [10] стр. III-17,32,35,40
Ссылки
[ редактировать ]- ^ «Глава вторая — Компьютеры на борту космического корабля «Аполлон»» . Компьютеры в космических полетах: опыт НАСА (отчет). НАСА . Проверено 11 декабря 2022 г.
- ^ Jump up to: а б Компьютеры в космических полетах: опыт НАСА. Глава вторая. Компьютеры на борту космического корабля «Аполлон».
- ^ Jump up to: а б Система управления прерыванием беременности (AGS)
- ^ Jump up to: а б с «Прерывание электронной сборки — Справочник по программированию» (PDF) .
- ^ Беттви, TS, Отчет TRW 05952-6076-T009, 25 января 1967 г., стр. 12-29, «Описание уравнений полета LM AGS»
- ^ Эволюция летного программного обеспечения
- ^ «Аполлон-9» .
- ^ Отчет о миссии Аполлона-10
- ^ «Журнал полетов Аполлона-10. День 5, часть 20: Постановочный сюрприз» .
- ^ Отчет о работе миссии Аполлон-13, 28 апреля 1970 г.