Интернет магазин китайских планшетных компьютеров



Компьютеры - Маринер-1 - Ошибка в программном обеспечении

06 июля 2011


Оглавление:
1. Маринер-1
2. Ошибка в программном обеспечении



Наиболее популярная версия причины потери связи с аппаратом — ошибка в ручном переводе математического символа в спецификации программы, а точнее — потерянная черта над символом. Также упоминается «пропущенный дефис» — в данных или в компьютерной инструкции, возможно и в каком-то уравнении. Без сомнений, многие факторы повлияли на появление версии о «пропущенном дефисе» и её долговечность, в том числе и в официальных отчетах НАСА и ЛРД. Основные факторы:

  • Схожесть черты над символом и дефиса.
  • Сложность описания реальной ошибки населению США и их избранным представителям.
  • Взаимодействие при трёхстороннем сотрудничестве
  • Дефицит времени из-за ограниченного стартового окна, оставлявшего очень мало времени для расследования обстоятельств до запуска Маринера-2 и, если это будет необходимо, Маринера-3. Официальные выводы были представлены руководству менее чем за неделю.

Не столь важно, почему в первичных отчетах появилась версия о «пропущенном дефисе», но это была простое и убедительно звучавшее объяснение для публики и Конгресса. «Дефис» был объявлен утерянным из инструкции или из уравнения).

«Самый дорогой дефис в истории»

Как написала Нью-Йорк Таймс в своем обзоре, ошибка произошла из-за «пропущенного дефиса в некоторых данных».

В этом же обзоре было написано, что дефис был символом, который должен был быть загружен в память компьютера вместе с массой «иных кодированных математических инструкций». Эта формулировка появлялась во многих последующих вариантах истории, официальных и нет. Версия о «пропущенном дефисе» появилась из сообщений официальной службы поддержки. Представитель НАСА Ричард Моррисон так свидетельствовал перед Конгрессом о пропущенном дефисе:

…он дает команду космическому аппарату игнорировать данные, поступающие из компьютера, до тех пор, пока не будет восстановлен радарный контакт. Из-за пропуска дефиса контрольные системы аппарата получали неверную информацию. В результате, компьютер отдал команду на сильное отклонение влево, соплом вниз и аппарат потерпел крушение.

По его же словам:

В свидетельских показаниях перед Комитетом Домашней Науки и Астронавтики, Ричард Моррисон, начальник отдела ракет-носителей НАСА, показал, что ошибка в компьютерных уравнениях при запуске к Венере аппарата Маринер-1 21 июля привела к его уничтожению при потере им курса.

В отчете НАСА, отправленном в Конгресс в 1963, дефис упоминается пропущенным в двух различных местах:

После полётный обзор Маринера-1 НАСА-ЛРД-ВВС США описывает пропущенный дефис в коде компьютерных инструкций, передававших неверные сигналы наведения кораблю Маринер-1, запущенного двухступенчатой ракетой Атлас-Агена с мыса Канаверал 21 июля. Пропуск дефиса в редактировании данных вынудил компьютер дать серию ненужных сигналов о коррекции курса, которые сбили корабль с курса и привели к его уничтожению.

В итоговом отчете ЛРД о проекте Маринер в 1965 году упоминается, что на 4 минуте 25 секунде полета произошло «незапланированное отклонение»:

…были переданы команды управления, но неверное вычисление курсовых уравнений сильно отклонило аппарат с курса.

Спустя несколько лет Артур Кларк писал, что Маринер-1 был «уничтожен самым дорогим дефисом в истории».

В отчете НАСА, опубликованном в 1985, Оран Никс высказал другую версию произошедшего, однако ошибка программного обеспечения все ещё связывалась с «пропущенным дефисом»:

Антенна наведения на ракете-носителе Атлас функционировала плохо, хуже необходимого. Когда сигнал, получаемый ракетой стал слабым и нечётким, ракета потеряла синхронизацию с наземным сигналом управления, передававшим рулевые команды. Однако это было предусмотрено; в случае потери радиосигнала бортовой компьютер был обязан отклонять ложные сигналы, полученные антенной, и выполнять заложенную в него программу, которая позволяла успешно осуществить полет. Однако, в этом месте была допущена вторая ошибка. Каким-то образом был пропущен дефис в программе наведения, загруженной в компьютер, что позволило неверным сигналам отдать приказ на отклонение влево и разворот сопла вниз. Дефис был пропущен и в предыдущем успешном полете Атласа, но эта часть вычислений не использовалась, так как не был потерян радиосигнал управления. Достаточно сказать, что первая попытка США запустить межпланетный полет провалилась из-за дефиса.

Сейчас на веб-сайте НАСА указано, что проблема была вероятно вызвана комбинацией двух факторов. Неточным действием радиомаяка Атласа, что вызвало потерю эффективности сигнала от ракеты на длительный период. Радиомаяк, использовавшийся для получения данных, не работал в течение четырёх периодов длительностью от 1.5 до 61 секунды. Также, в отчёте о полете Маринера-1 была указана потеря дефиса «в коде компьютерной инструкции в программе обработке данных», что сделало возможным передачу неверных рулевых сигналов на корабль. В те периоды, когда радиомаяк был в нерабочем состоянии, пропуск дефиса в «программе обработки данных» позволил компьютеру принять сигнал от наземного передатчика таким, каким его приняла антенна, и совместить эти данные с данными слежения, отправленными для вычисления траектории. Это вызвало серию бессмысленных попыток коррекции курса одновременно с ложными рулевыми командами, что привело в итоге к полной потере курса кораблем.

Или самая дорогая точка?

Иногда утверждается, что ошибка была вызвана тем, что при написании программы была поставлена точка вместо запятой. В языке ФОРТРАН, на котором была написана программа, выражение изменило свой смысл:

DO 17 I = 1, 10

было интерпретировано как

DO17I = 1.10

то есть как присвоение переменной DO17I — так как пробельные символы не учитываются языком. Есть легенда, что подобная ошибка была в одной из программ НАСА для вычисления орбиты, однако это программа использовалась в проекте Меркурий, а не Маринер, и эта ошибка была исправлена до запуска корабля.

Ошибка при переводе макрона

Ошибка появилась при ручном переводе символа в спецификации программы наведения. Писавший пропустил макрон или подчеркивание в

\bar{\dot{R}_n}

что значит «n-ое сглаживание значения производной радиуса R по времени». Без функции сглаживания, обозначаемой макроном, программа воспринимала нормальные небольшие изменения скорости как очень серьёзные, что вызывало лишние поправки, сбивавшие ракету с курса. Затем ракета была уничтожена офицером курсовой безопасности.



Просмотров: 2299


<<< Авария ракеты-носителя Ариан 5 (4 июня 1996)
Фобос (КА) >>>