Ракета упала из за ошибки программы
Пуск.
37 секунд полета… бабах!
10 лет и 7 миллиардов долларов, потраченных на разработку.
Четыре полуторатонных спутника научной программы Cluster (изучение взаимодействия солнечного излучения с магнитным полем Земли) и ракета носитель Ariane 5 превратились в «конфети» 4 июня 1996 года.
А вину свалили на программистов.
Предыдущая модель — ракета Ariane 4 — успешно запускалась более 100 раз. Что пошло не так?
Чтобы штурмовать небеса, нужно хорошо знать язык Ада.
Досье
Ariane 5 («Ариан-5») — европейская одноразовая ракета-носитель, входит в семейство Ariane (первый запуск состоялся в 1979 г.). Используется для вывода на околоземную орбиту средних или тяжелых космических аппаратов, может одновременно запускать два-три спутника и попутно до восьми микроспутников.
История проекта
Создана в 1984-1995 гг. Европейским космическим агентством (ЕКА; ESA), основной разработчик — Национальный центр космических исследований Франции (CNES). Участниками программы являются 10 европейских стран, стоимость проекта — 7 млрд долларов США (46,2% — вклад Франции).
В создании ракеты принимали участие около тысячи промышленных фирм. Основной подрядчик — европейская компания Airbus Defence and Space («Эрбас дифенз энд спейс»; подразделение Airbus Group, «Эрбас груп», Париж). Маркетингом Ariane 5 на рынке космических услуг занимается французская компания Arianespace («Арианспейс»; Эври), с которой ЕКА подписало 25 ноября 1997 г. соответствующее соглашение.
Характеристики
Ariane 5 представляет собой двухступенчатую ракету-носитель тяжелого класса. Длина — 52-53 м, максимальный диаметр — 5,4 м, стартовая масса — 775-780 т (в зависимости от конфигурации).
Первая ступень оснащена жидкостным ракетным двигателем Vulcain 2 («Вулкан-2»; в первых трех модификациях ракеты использовался Vulcain), вторая — HM7B (для версии Ariane 5 ECA) или Aestus («Аэстус»; для Ariane 5 ES). Vulcain 2 и HM7B работают на смеси водорода и кислорода, производятся французской компанией Snecma («Снекма»; входит в группу Safran, «Сафран», Париж).
В Aestus используется долгохранимое топливо — тетраоксид азота и монометилгидразин. Двигатель разработан немецкой компанией Daimler Chrysler Aerospace AG (DASA, «ДАСА», Мюнхен).
Кроме того, к первой ступени крепятся два твердотопливных ускорителя (изготовитель — Europropulsion, «Европропелжн»; Сюрен, Франция; совместное предприятие группы Safran и итальянской фирмы Avio, «Авио»), которые обеспечивают более 90% тяги в начале пуска. В варианте Ariane 5 ES вторая ступень может отсутствовать при выводе полезной нагрузки на низкую опорную орбиту.
Расследование
На следующий день после катастрофы Генеральный директор Европейского Космического Агенства (ESA) и Председатель Правления Французского Национального Центра по изучению Космоса (CNES) издали распоряжение об образовании независимой Комиссии по Расследованию обстоятельств и причин этого чрезвычайного происшествия, в которую вошли известные специалисты и ученые изо всех заинтересованных европейских стран.
13 июня 1996 г. Комиссия приступила к работе, а уже 19 июля был обнародован ее исчерпывающий доклад (PDF), который сразу же стал доступен в Сети.
У комиссии были данные телеметрии, траекторные данные, а также запись оптических наблюдений за ходом полета.
Взрыв произошел на высоте приблизительно 4 км, и осколки были рассеяны на площади около 12 кв. км. в саванне и болотах. Были заслушаны показания многочисленных специалистов и изучены производственная и эксплуатационная документации.
Технические подробности аварии
Положение и ориентация ракеты-носителя в пространстве измерялись Навигационной Системой (Inertial Reference Systems — IRS), составной частью которой является встроенный компьютер, вычисляющий углы и скорости на основе информации от бортовой Инерциальной Платформы, оборудованной лазерными гироскопами и акселерометрами. Данные от IRS передавались по специальной шине на Бортовой Компьютер (On-Board Computer — OBC), который обеспечивал необходимую для реализации программы полета информацию и непосредственно — через гидравлические и сервоприводы — управлял твердотопливными ускорителями и криогенным двигателем типа Вулкан (Vulkain).
Для обеспечения надежности Системы Управления Полетом использовалось дублирование оборудования. Поэтому две системы IRS (одна — активная, другая — ее горячий резерв) с идентичным аппаратным и программным обеспечением функционировали параллельно. Как только бортовой компьютер OBC обнаруживал, что «активная» IRS вышла из штатного режима, он сразу же переключается на другую. Бортовых компьютеров тоже было два.
Значимые фазы развития процесса
За 7 минут до запланированного старта было зафиксировано нарушение «критерия видимости». Поэтому старт был перенесен на час.
H0 = 9 час. 33 мин. 59 сек. местного времени «окно запуска» было вновь «поймано» и был, наконец, осуществлен сам запуск, который и происходил штатно вплоть до момента H0+37 секунд.
В последующие секунды произошло резкое отклонение ракеты от заданной траектории, что и закончилось взрывом.
В момент H0+39 секунд из-за высокой аэродинамической нагрузки вследствие превышения «углом атаки» критической величины на 20 градусов произошло отделение стартовых ускорителей ракеты от основной ее ступени, что и послужило основанием для включения Системы Автоподрыва ракеты.
Изменение угла атаки произошло по причине нештатного вращения сопел твердотопливных ускорителей, такое отклонение сопел ускорителей от правильной ориентации вызвала в момент H0 + 37 секунд команда, выданная Бортовым Компьютером на основе информации от активной Навигационной Системы (IRS 2).
Часть этой информации была в принципе некорректной: то, что интерпретировалось как полетные данные, на самом деле являлось диагностической информацией встроенного компьютера системы IRS 2.
Встроенный компьютер IRS 2 передал некорректные данные, потому что диагностировал нештатную ситуацию, «поймав» исключение (exception), выброшенное одним из модулей программного обеспечения.
При этом Бортовой Компьютер не мог переключиться на резервную систему IRS 1, так как она уже прекратила функционировать в течение предшествующего цикла (занявшего 72 миллисекунд) — по той же причине, что и IRS 2.
Исключение, «выброшенное» одной из программ IRS, явилось следствием выполнения преобразования данных из 64-разрядного формата с плавающей точкой в 16-разрядное целое со знаком, что привело к «Operand Error».
«Функция регулировки» действительно должна была (в соответствии с установленными для нее требованиями) действовать еще 50 секунд после инициации «полетного режима» на шине Навигационной Системы (момент H0-3 секунд), что она и делала.
Ошибка «Operand Error» произошла из-за неожиданно большой величины BH (Horizontal Bias — горизонтальный наклон), посчитанной внутренней функцией на основании величины «горизонтальной скорости», измеренной находящимися на Платформе датчиками.
Величина BH служила индикатором точности позиционирования Платформы. величина BH оказалась много больше, чем ожидалось потому, что траектория полета Ariane 5 на ранней стадии существенно отличалась от траектории полета Ariane 4 (где этот программный модуль использовался ранее), что и привело к значительно более высокой «горизонтальной скорости».
Финальным же действием, имевшим фатальные последствия, стало прекращение работы процессора. Соответственно, вся Навигационная Система перестала функционировать. Возобновить же ее действия оказалось технически невозможно.
Эту цепь событий удалось полностью воспроизвести с помощью компьютерного моделирования, что — вкупе с материалами других исследований и экспериментов — позволило заключить, что причины и обстоятельства катастрофы полностью выявлены.
Причины и истоки аварии
Первоначальное требование на продолжение выполнения операции регулировки после взлета ракеты было заложено более чем за 10 лет до рокового события, когда проектировались еще ранние модели серии Ariane.
При некотором маловероятном развитии событий взлет мог быть отменен буквально за несколько секунд до старта, например в промежутке H0-9 секунд, когда на IRS запускался «полетный режим», и H0-5 секунд, когда выдавалась команда на выполнение некоторых операций с ракетным оборудованием.
В случае неожиданной отмены взлета необходимо было быстро вернуться в режим «обратного отсчета» (countdown) — и при этом не повторять сначала все установочные операции, в том числе приведение к исходному положения Инерциальной Платформы (операция, требующая 45 мин. — время, за которое можно потерять «окно запуска»).
Было обосновано, что в случае события отмены старта период в 50 секунд после H0-9 будет достаточным для того, чтобы наземное оборудование смогло восстановить полный контроль за Инерциальной Платформой без потери информации — за это время Платформа прекратит начавшееся было перемещение, а соответствующий программный модуль всю информацию о ее состоянии зафиксирует, что поможет оперативно возвратить ее в исходное положение (это в случае, когда ракета продолжает находиться на месте старта). Однажды, в 1989 году, при старте под номером 33 ракеты Ariane 4, эта особенность была с успехом задействована.
Однако, Ariane 5, в отличие от предыдущей модели, имел уже принципиально другую дисциплину выполнения предполетных действий — настолько другую, что работа рокового программного модуля после времени старта вообще не имела смысла. Однако, модуль повторно использовался без каких-либо модификаций.
Язык АДА
Расследование показало, что в данном программном модуле присутствовало целых семь переменных, вовлеченных в операции преобразования типов. Оказалось, что разработчики проводили анализ всех операций, способных потенциально генерировать исключение, на уязвимость.
Это было их вполне сознательным решением добавить надлежащую защиту к четырем переменным, а три — включая BH — оставить незащищенными. Основанием для такого решения была уверенность в том, что для этих трех переменных возникновение ситуации переполнения невозможно в принципе.
Уверенность эта была подкреплена расчетами, показывающими, что ожидаемый диапазон физических полетных параметров, на основании которых определяются величины упомянутых переменных, таков, что к нежелательной ситуации привести не может. И это было верно — но для траектории, рассчитанной для модели Ariane 4.
А ракета нового поколения Ariane 5 стартовала по совсем другой траектории, для которой никаких оценок не выполнялось. Между тем она (вкупе с высоким начальным ускорением) была такова, что «горизонтальная скорость» превзошла расчетную (для Ariane 4) более чем в пять раз.
Защита для всех семи (включая BH) переменных не была обеспечена, потому что для компьютера IRS была продекларирована максимальная величина рабочей нагрузки в 80%. Разработчики должны были искать пути снижения излишних вычислительных издержек и они ослабили защиту там, где теоретически нежелательной ситуации возникнуть не могло. Когда же она возникла, то вступил в действие такой механизм обработки исключительной ситуации, который оказался совершенно неадекватным.
Этот механизм предусматривал следующие три основных действия.
- Информация о возникновении нештатной ситуации должна быть передана по шине на бортовой компьютер OBC.
- Параллельно она — вместе со всем контекстом — записывалась в перепрограммируемую память EEPROM (которую во время расследования удалось восстановить и прочесть ее содержимое).
- Работа процессора IRS должна была аварийно завершиться.
Выводы
Дефект на Ariane 5 не был вызван одной причиной. В ходе всей разработки и процессов тестирования существовало много стадий, на которых данный дефект мог быть выявлен.
- Программный модуль был повторно использован в новой среде, где условия функционирования отличались от требований программного модуля. Эти требования не были пересмотрены.
- Система выявила и распознала ошибку. К несчастью, спецификация механизма обработки ошибок была несоответственной и вызвала окончательное разрушение.
- Ошибочный модуль никогда должным образом не тестировался в новом окружении — ни на уровне оборудования, ни на уровне системной интеграции. Следовательно, ошибочность разработки и реализации не была обнаружена.
Из отчета комиссии:
Главной задачей при разработке Ariane 5 является уклон в сторону уменьшения случайной аварии. Возникшее исключение, объясняется не случайной аварией, но ошибкой конструкции. Исключение было обнаружено, но обработано неверно, поскольку была принята точка зрения, что программу следует рассматривать как правильную, пока не показано обратное. Комиссия придерживается противоположной точки зрения, что программное обеспечение нужно считать ошибочным, пока использование признанных в настоящее время наилучшими практических методов не продемонстрирует его правильность.
Счастливый конец
Несмотря на фэйл, построили еще 4 спутника Cluster II и вывели на орбиту на ракете Союз-У/Фрегат в 2000 году.
Авария при запуске привлекла внимание общественности, политиков и руководителей организаций к высоким рискам, связанным с использованием сложных вычислительных систем, что способствовало увеличению инвестирования в исследования, направленные на повышение надежности систем с особыми требованиями к безопасности. Последующий автоматический анализ кода Ariane (написан на Ada) стал первым случаем применения статического анализа в рамках крупного проекта с использованием методики абстрактной интерпретации.
Досадные ошибки в программном обеспечении могут стоить компаниям очень дорого и даже ставят под угрозу существование их бизнеса. Однако ошибки, которые допускает сам «бизнес», влияют на судьбу ИТ-индустрии и судьбы целых поколений.
Первый баг был зафиксирован 9 сентября 1945 года: в вычислительной машине Mark II Aiken Relay Calculator нашли мотылька, застрявшего между контактами электромеханического реле, что приводило к ошибкам. Извлеченное насекомое было вклеено в технический дневник с сопроводительной надписью: «First actual case of bug being found». Этот забавный факт и положил начало использованию слова «баг» в современном значении.
Ракета «Маринер-1»: ущерб в 18,5 млн долларов
Фото: NASA
«Инженеры, проанализировавшие записи телеметрии, вскоре обнаружили, что причиной послужили две независимых ошибки. Антенна ведения на „Атласе“ была изготовленна некачественно, с параметрами ниже заявленных. Когда получаемый ракетой сигнал стал слабым и зашумленным, ракета потеряла привязку к сигналу с Земли, посредством которого передавались команды поворота. Такая возможность была предусмотрена; в случае потери сигнала радиоведения бортовой компьютер должен был игнорировать сигналы с неисправной антенны и выполнять собственную программу, которая, возможно, смогла бы обеспечить успешный запуск. Однако, в этот момент проявилась вторая ошибка. Каким-то образом в программе ведения оказался пропущенным дефис, что привело к некорректному управлению ракетой — уходу влево и опусканию носа. Дефис был пропущен и во время предыдущих успешных запусков „Атласа“, но эта часть программы не использовалась, т.к. не происходило разрыва радиосвязи. Таким образом, первая попытка Штатов осуществить межпланетный перелет потерпела крах из-за пропущенного дефиса.» (Oran W. Nicks, NASA, 1985)
Этого могло и не случиться, если бы антенна аппарата не потеряла связь с наводящей системой на Земле. В результате управление взял на себя бортовой компьютер, программа которого и содержала роковую ошибку.
Cтадион «Хартфорд Колизей»: ущерб в 90 млн долларов
18 января 1978 года болельщики чудом избежали смерти на стадионе «Хартфорд Колизей». Через несколько часов после того, как они покинули стадион, его стальная крыша рухнула на трибуны.
Причина случившегося – ошибка в расчетах при проектировании конструкции. Уже в то время для строительного проектирования создавался специальный софт. Программист не учел такие факторы, как мокрый снег и ветер при расчете прочности балок, поддерживающих крышу. Он исходил только из веса самой крыши. В результате одна из опор неожиданно прогнулась под воздействием снега, это вызвало цепную реакцию, которая сложила всю конструкцию вместе с другими участками крыши как костяшки домино.
15 января 1990 года ошибка в новой версии прошивки междугородних коммутаторов привела к сбою 114 коммутаторов
Из-за этого более 60 тысяч человек остались без междугородней связи на 9 часов. Согласно программе, коммутатор должен перезагрузиться, если получит соответствующий сигнал, однако этот сигнал по ошибке пересылался каждый раз при восстановлении после сбоя какого-либо коммутатора.
Все началось с падения и перезагрузки коммутатора в Нью-Йорке, который вызвал масштабную цепную реакцию, в результате которой 114 коммутаторов перезагружались непрерывно каждые 6 секунд. Сначала компания обвиняла хакеров, однако позже выяснилось, что причиной стала одна неверная строка кода, в которой реализовывалась отправка сигнала.
Баг в процессоре Pentium: ущерб в 475 миллионов долларов
В 1994 году профессор математики Линчбургского колледжа Томас Найсли обнаружил баг в популярном процессоре Pentium и опубликовал об этом статью.
Ошибка Pentium FDIV — это ошибка в модуле операций с плавающей запятой в оригинальных процессорах Pentium, выпускавшихся фирмой Intel в 1994 году. Ошибка выражалась в том, что при проведении деления над числами с плавающей запятой при помощи команды процессора FDIV в некоторых случаях результат мог быть некорректным.
Согласно заявлению Intel причиной проблемы послужили неточности в таблице поиска, используемой при проведении операции деления.
Компания Intel в ответ на это замечание заявила, что готова заменять процессоры по требованию пользователей, которые смогли бы доказать, что пострадали в результате этой ошибки.
По прогнозам Intel, вероятность её возникновения была столь низкой, что подавляющее большинство пользователей даже не заметили бы её. Однако возмущённые клиенты потребовали заменить процессоры всем желающим. Финансовые потери Intel в результате составили около 475 миллионов долларов.
Ракета Ariane 5: ущерб в 8,5 млрд долларов
4 июня 1996 года случился неудачный запуск ракеты-носителя Ariane 5, которая была разработана Европейским космическим агентством. Ракета разрушилась на 39-й секунде полета из-за неверной работы бортового программного обеспечения. Эта история запомнилась, как одна из самых дорогостоящих компьютерных ошибок.
В системе управления полетом новой ракеты Ариан 5 использовались фрагменты программного обеспечения ракеты Ариан 4, в частности системы инерциальной навигации. Однако при переносе этой системы для использования на новой ракете, разработчиками не были учтены все особенности. Из-за другой траектории выведения ракеты на 30-й секунде после запуска значение горизонтальной скорости превысило установленные в программе ограничения и вызвало сбой в работе компьютера.
В результате ракета получила ложную команду на отклонение сопел ускорителей, а позже и основного двигателя. На 39-й секунде полета ракета стала разрушаться под действием аэродинамических сил и самоуничтожилась.
Программное обеспечение, установленное на борту Ariane 5, было разработано для более ранней модели – Ariane 4. Более мощный двигатель Ariane 5 спровоцировал баг, не встречавшийся в предыдущих версиях ПО.
В сущности, программа попыталась записать 64-разрядное число в 16-разрядное пространство. Возникло переполнение, в результате которого отказал и основной, и резервный компьютер (поскольку на обоих компьютерах выполнялись одни и те же программы).
На разработку Ariane 5 было потрачено около 8 миллиардов долларов. Общая стоимость спутников, которые должна была вывести на орбиту эта ракета, составляла 500 миллионов долларов.
Cпутник «Mars Climate Orbiter»: ущерб в 125 млн долларов
Аппарат летел к Марсу 9 месяцев. Mars Climate Orbiter 23 сентября 1999 года должен был выдать тормозной импульс и перейти на высокоэллиптическую орбиту с периодом 14 часов, а затем в течение двух месяцев с помощью ряда аэродинамических маневров в верхней атмосфере Марса довести орбиту до круговой. В расчетное время на высоте 193 км аппарат включил двигатели на торможение. Через 5 минут MCO запланировано ушел за Марс и больше никаких сигналов с него не поступало. Из анализа данных было предположено, что аппарат прошел над поверхностью Марса на высоте 57 км вместо расчетных 110 км и распался в атмосфере.
Субподрядчик, который работал над многими инженерными задачами, не выполнил простейшего преобразования английских единиц измерения в метрическую систему. Диспетчеры пришли к выводу, что спутник на большой скорости вошел в марсианскую атмосферу, где из-за возникших перегрузок его системы связи вышли из строя.
Бизнес-ошибки в ИТ
Часто возникают вопросы — отчего в мире информационных технологий некоторые крупнейшие сделки так и остаются нереализованными, а самые перспективные продукты не развиваются? Обычно причина в том, что их лидеры не могут предугадать будущее развитие событий.
А ведь события могли сложиться так, что не появились бы ни Microsoft, ни Apple. В альтернативном мире главным поисковым сервером был бы не Google, а Yahoo. Самым распространенным компьютером был бы Xerox, самой популярной социальной сетью – CompuServe. А музыку мы слушали бы через RealPod.
Спасение Apple
В конце 1990-х годов продажи компьютеров Apple Mac существенно снизились. Этому способствовали более дешевые конкуренты – Power Computing и Radius. Цена акций Apple упала до $5. Но неожиданно помощь пришла от Microsoft: помощь в размере $150 миллионов. Кроме того, Microsoft пообещала продолжить разработку своего пакета офисных программ для MacOS.
Из-за такого решения Microsoft лишила себя определенных перспектив. Вполне возможно, сегодня на рынке царили бы WinPhone, музыку на них мы бы качали через WinTunes. А все пользователи до сих пор с нетерпением ожидали бы выхода достойной альтернативы Windows.
Потерянный рынок
В середине 1990-х годов, еще до появления Google, самой продвинутой поисковой машиной была даже не Yahoo, не AltaVista, не Lycos или Hot Wired. Система Open Text, как и Google сегодня, работала максимально быстро, точно, охватывая весь объем информации. В 1995 году менеджеры компании Open Text небезосновательно утверждали, что их система смогла проиндексировать каждое слово из 5 миллионов документов, которые на тот момент и составляли Всемирную сеть.
Однако в 1997 году разработчики Open Text посчитали рынок поиска недостаточно перспективным и занялись системами управления корпоративными данными. Ну а через год появилась компания Google, которая показала, что они ошибались на счет перспектив этого рынка.
Ситуация могла сложиться иначе, а сам Google мог бы не занимать сейчас лидирующую позицию. Скорее всего, сервисы работы с информацией в Интернете были бы другими.
CompuServe и упущенное лидерство
Однако сервис все еще имел текстовый интерфейс и поминутную тарификацию. Именно это позволило AOL, которая предложила более интересное интерфейсное решение и возможность неограниченного по времени общения за небольшую месячную абонентскую плату, потеснить CompuServe.
Сервис не смог укрепиться на рынке по простой причине — компания не хотела вкладывать в свои преимущества деньги, чтобы потом монетизировать результаты.
Компьютеры Xerox
Alto от компании Xerox был первым в мире компьютером с пользовательским интерфейсом в виде окон. Он был создан за 10 лет до появления персональных компьютеров под управлением Windows и Maс, задолго до микрокомпьютеров MITS Altair.
Alto поставлялся с мышью, имел возможность подключаться к локальной сети. Кроме того, на нем был предустановлен текстовый редактор, работавший по принципу WYSIWYG («получаешь то, что видишь»).
К сожалению для компании Xerox, в 1973 году рынка персональных компьютеров просто не существовало. Компания создала несколько тысяч таких компьютеров, которые были размещены в университетах страны. Но дальше этого распространение этих машин не пошло, а Xerox никак не пыталась их продвигать.
Когда в компании поняли, что допустили серьезную ошибку, было уже поздно. Была начата работа по продвижению графической рабочей станции Xerox Star, но это уже не могло изменить ситуацию: в результате на рынке прочно закрепились персональные компьютеры с Windows и Mac OS.
Непроданный Facebook
Компания Yahoo предложила Марку Цукербергу $1 миллиард за его детище. В июне 2006 года Цукерберг подписал контракт о продаже Facebook.
Однако, на фоне резкого ухудшения финансового положения Yahoo, ее тогдашний гендиректор Терри Сэмел сбавил сумму до $800 миллионов. Цукерберг отказался продавать компанию за эти деньги. Через два месяца Yahoo вернулась к предыдущим условиям сделки, но было уже поздно. После этого дела этой компании шли все хуже. Теперь она продана холдингу Verizon. В начале 2000-х годов капитализация Yahoo превышала $125 миллиардов. Теперь Verizon купила компанию всего за $4,83 миллиарда.
Странная идея
Информация о том, что iPod придумал Стив Джобс, не совсем верна. Руководство компании Real Networks не оценило идею Тони Фэделла о создании совершенно нового типа музыкального плеера. К тому времени рынок был уже насыщен MP3 плеерами.
Но его плеер был тоньше и меньших размеров, а система доставки контента давала меломанам простые способы наполнить свой плеер новой музыкой. Так, в 2000-ом году Стив Джобс согласился сотрудничать с Тони Фэделлом. Джобс доработал дизайн плеера, а другие специалисты Apple доработали систему доставки контента, которая получила имя iTunes.
В результате около 80% рынка цифровой музыки сегодня принадлежит компании Apple. Сам Тони Фэделл проработал в отделении, разрабатывающем iTunes до ноября 2008 года. А компания Real Networks все так же производит обычные плееры. Однако ее доходы не идут ни в какое сравнение с тем, сколько iTunes приносит корпорации Apple.
В одной из частей курса рассматривается вопрос безопасности, и речь, кроме всего прочего, идет о безопасности программного обеспечения. Проф. Хофман приводит интересные примеры проблем с ПО для авиации и космонавтики. В данной статье я чуть-чуть подробнее рассмотрю космические примеры из лекций Хофмана.
Mars Polar Lander
Mars Polar Lander (MPL) 290 килограммовый космический аппарат, запущенный NASA 3 Января 1999 г. для изучения почвы и климата в районе южного полюса Марса. 3 Декабря 1999 г. во время посадки центр управления не смог возобновить с аппаратом связь.
MPL в лаборатории NASA
С раскрытыми посадочными опорами и солнечными панелями MPL был 1.06 м в высоту и имел поперечный размер 3.6 м. Корпус выполнен на основе сотовой алюминиевой конструкции, скреплённой графито-эпоксидными панелями. При посадке три алюминиевые опоры раскрываются из транспортного положения и гасят энергию посадки с помощью разрушаемых алюминиевых вставок, сделанных в виде сот.
Запланированный ход посадки
MPL входит в атмосферу Марса на высоте более 100 км при скорости ~7 км/с. За 3 мин аппарат спускается до высоты 8.8 км и замедляется до скорости 0.5 км/с, после этого он дает сигнал для раскрытия парашюта, которое следует сразу после отделения теплового экрана (heat shield). Когда с помощью парашюта скорость аппарата снижается до 85 м/с, начинает работать радар, который отслеживает особенности поверхности для определения возможного места посадки.
Схема полетной ступени MPL
Через 1 мин после раскрытия парашюта на высоте 1.3 км, когда скорость снижения составляет 80 м/с, спускаемый аппарат отделяется от внешнего кожуха с парашютом (backshell) и начинает посадку на тормозных двигателях. Ожидаемое время снижения, с работающими двигателями, приблизительно 1 мин, за это время аппарат снижается до высоты в 12 м. Затем двигатели выключаются, и аппарат совершает запланированное падение на поверхность. Через 5 мин после касания поверхности аппарат начинает развертывание солнечных панелей и ориентировку антенны, что позволит установить связь с Землей. Затем начинается сеанс передачи данных, сигнализируя о том, что посадка прошла успешно.
Ход развития событий
3 Декабря спускаемый аппарат отстыковался от перелетной ступени (cruise stage) и до момента завершения посадки перешел в запланированный режим радиомолчания. В 20:04:00 UTC, за 6 мин до входа в атмосферу, запрограммированная работа двигателей скорректировала положение аппарата, сориентировав тепловой экран. MPL вошел в атмосферу Марса на скорости 6.9 км/с в 20:10:00 UTC. Возобновление связи ожидалось в 20:39:00 UTC после посадки. Но связь так и не была установлена, и аппарат был объявлен потерянным.
Точная причина потери связи неизвестна, но в отчете по расследованию аварии содержится заключение о том, что наиболее вероятная причина аварии — ошибка в ПО, которое некорректно посчитало вибрации во время раскрытия опор как вибрации от посадки. В результате чего аппарат выключил тормозные двигатели на высоте 40 м, несмотря на то, что было известно, что раскрытие опор может привести к ложным срабатываниям. Техническое задание на ПО не предусматривало этого случая.
Цитата из отчета:
«Магнитные сенсоры, установленные на каждой из трех посадочных опор, служат для определения момента касания с землей и выключения посадочных двигателей. Данные, полученные в ходе нескольких тестов, показали, что в датчиках посадки (датчики Холла) возникают ложные срабатывания во время раскрытия опор (в этот момент аппарат спускается на парашюте). Логика программы принимает данные от датчиков как сигнал посадки, если срабатывания возникают в двух последовательных считываниях. Тесты показали, что, возникающие при раскрытии опор, кратковременные сигналы на самом деле достаточно продолжительны, чтобы вызвать ложное срабатывание. Почти всегда одна из трех опор генерировала ложный сигнал, принимаемый программой за сигнал посадки.
ПО, которое должно было игнорировать срабатывания датчиков до момента включения алгоритма определения касания земли, было организованно неправильно, и ложные срабатывания сохранялись в системе. Как только алгоритм определения касания земли включался на высоте 40 м, программа сразу выдавала команду на выключение посадочных двигателей.
На высоте 40 м скорость снижения аппарата составляла приблизительно 13 м/с (47 км/ч), которая без тяги тормозных двигателей, под действием гравитации Марса увеличивалась до 22 м/с (80 км/ч) у поверхности, расчетная скорость снижения 2.4 м/с (9 км/ч). При такой скорости столкновения с поверхностью аппарат не мог уцелеть».
Если посмотреть на алгоритм работы программы, можно заметить, что одна строчка обнуления состояния переменной IndicatorState на первоначальное FALSE могла спасти аппарат, который обошелся NASA в 328 млн долларов.
Ariane 5
4 июня 1996 г. был произведен первый запуск новой ракеты-носителя Ariane 5, разработанной Европейским космическим агентством (ESA). Запуск окончился неудачей — ракета разрушилась на 39-й секунде полёта из-за неверной работы бортового программного обеспечения.
Старт первой Ariane 5
Ariane 5 — европейская ракета-носитель семейства Ariane. Запуски происходят с космодрома Куру во Французской Гвиане. Разработка Ariane 5 заняла 10 лет, стоила 7 млрд долларов и предназначалась для замены ракеты-носителя Ariane 4.
Запущенная в 1996 г. ракета-носитель массой 720 т должна была вывести на орбиту четыре спутника массой 1.2 т каждый. Вращаясь каждый по своей орбите, эти спутники формируют тетраэдр, и работают в группе, это был европейский проект Cluster для исследования магнитного поля Земли (позже в 2000 г. четыре новых спутника для программы Cluster-II успешно выведены на орбиту двумя РН «Союз»).
Ход развития событий
Перед описанием инцидента следует заметить, что конструкция навигационной системы (Inertial Reference System — SRI) для Ariane 5 практически идентична конструкции для Ariane 4, в частности в том, что касается программного обеспечения.
Момент старта обозначим H0. Предшествующие старту операции происходили в нормальном режиме вплоть до момента H0 — 7 минут, когда было зафиксировано нарушение «критерия видимости». Поэтому старт был перенесен на час.
В H0 = 12:33:59 UTC был осуществлен запуск, который и происходил штатно вплоть до момента H0 + 37 сек. В последующие секунды произошло резкое отклонение ракеты от заданной траектории, а затем последовал взрыв.
Момент взрыва Ariane 5 во время первого запуска
Итак: в момент H0 + 39 сек. после старта из-за высокой аэродинамической нагрузки вследствие превышения «углом атаки» критической величины произошло отделение стартовых ускорителей ракеты от основной ее ступени, что и послужило основанием для включения системы автоподрыва ракеты.
Изменение угла атаки произошло по причине нештатного вращения сопел твердотопливных ускорителей, такое отклонение сопел ускорителей вызвала команда, выданная бортовым компьютером на основе информации от навигационной системы SRI 2. Часть этой информации на тот момент была некорректной: то, что интерпретировалось как полетные данные, на самом деле, являлось диагностической информацией встроенного компьютера системы SRI 2. Встроенный компьютер SRI 2 передал некорректные данные, потому что диагностировал нештатную ситуацию, «поймав» исключение (exception), выброшенное одним из модулей программного обеспечения. При этом бортовой компьютер не мог переключиться на резервную систему SRI 1, так как она уже прекратила функционировать в течение предшествующего цикла (период в 72 мсек.) по той же причине, что и SRI 2.
Исключение, «выброшенное» одним из модулей ПО SRI, явилось следствием выполнения преобразования данных из 64-разрядного формата с плавающей точкой в 16-разрядное целое со знаком, что привело к «Operand Error». Ошибка произошла в компоненте ПО, предназначенном исключительно для выполнения «регулировки» бортовой инерциальной платформы. Причем — что звучит парадоксально, но этот программный модуль выдает значимые результаты только до момента отрыва ракеты со стартовой площадки. После того, как ракета взлетела, никакого влияния на полет данный модуль не оказывает. Но функция регулировки, в соответствии с установленными для нее требованиями, должна действовать еще 50 сек. после инициации «полетного режима». Такая последовательность основана на требованиях для Ariane 4, но в ней нет необходимости для Ariane 5.
Ошибка «Operand Error» произошла из-за неожиданно большой величины горизонтального наклона BH (Horizontal Bias). Величина BH оказалась много больше, чем ожидалось, потому что траектория полета Ariane 5 существенно отличалась от траектории полета Ariane 4. Финальным же действием, имевшим фатальные последствия, стало прекращение работы встроенного компьютера SPI — соответственно, вся навигационная система перестала функционировать. Возобновить же ее действия оказалось технически невозможно. Всю эту цепь событий удалось полностью воспроизвести с помощью компьютерного моделирования. Результаты моделирования, а так же материалы других исследований и экспериментов позволили экспертам дать заключение, что причины и обстоятельства катастрофы полностью выявлены.
Ariane 5 на стартовом столе перед успешным запуском, Французская Гвиана 2002 г.
Можно найти несколько вариантов устранения досадного бага в ПО Ariane 5 (эти варианты отражены в результатах расследования), но, так или иначе, эта строчка кода обошлась ESA в 500 млн. долларов (стоимость ракеты с грузом).
Хочу так же отметить, что нигде в отчетах не ставится ударение на беспомощность дублирующей системы в Ariane 5 в данном инциденте, хотя в лекциях проф. Хоффмана эта авария упоминается как раз в этом контексте. Имея две идентичные дублирующие друг друга системы SRI 1 и SRI 2, возможно мы сможем обезопасить себя от проблемы с физическим оборудованием в одной из систем, но когда дело доходит до программной ошибки, такое дублирование просто бесполезно. Далее Хоффман говорит о следующем шаге: продублировать ПО, сделав его различным (разные фирмы, разные программисты). Казалось бы, при такой структуре мы обезопасили себя от ошибок, но такие меры усложняют общую систему и создают еще больше мест, где ошибки могут возникнуть, и для примера приводится третий случай.
Space Shuttle
12 апреля 1981 г. с космодрома на мысе Канаверал совершил свой первый испытательный полет многоразовый космический корабль «Колумбия» по программе Space Shuttle.
Подготовка к миссии STS-1 — первому космическому полету шаттла
Ход развития событий
10 апреля 1981 г., примерно за 20 мин до запланированного старта, космонавты и обслуживающий персонал шаттла пытались запустить резервную систему управления полетом, которая дублировала основную четырех-компьютерную систему, но не смогли. Старт был отменён за 16 минут до расчётного времени и был перенесён на двое суток.
Случилось так, что резервная система управления полетом BFS (Backup Flight Control System) на пятом бортовом компьютере не могла синхронизироваться с основной системой управления полетом PASS (Primary Avionics Software System), которая уже была запущена на четырех других бортовых компьютерах. В ПО был баг — очень маленькая, почти невероятная, очень замысловатая и очень старая ошибка в инициализации PASS.
Чтобы сделать шаттл надежным в нем дублируется всё: сенсоры, электроника, система управления, компьютеры, ПО, шины передачи данных, источники питания. По факту, чтобы удовлетворять концепции «отказ — работоспособен, отказ — безопасен» «FO/FS» (Fail – Operational, Fail – Safe) многие компоненты дублировались по 4 раза: или буквально (по 4 комплекта аппаратуры), или эквивалентно (чередующиеся схемы, заменяющие один или более блоков из необходимых четырех).
Цифра четыре выбрана по логичной и интуитивно понятной причине: принцип FO/FS требует, чтобы после первого отказа оборудование сохраняло полную работоспособность, а после второго отказа обеспечивало безопасное возвращение. Для минимального голосования требуется три голоса, таким образом в начальной стадии нужно иметь 4 голоса, чтобы можно было голосовать после одного отказа. На шаттле было 5 бортовых компьютеров, четыре из них имели одинаковое ПО, и работали на всех критически важных стадиях полета. Такой подход идеален при возникновении проблем с компьютерами или с другой аппаратурой (по расчетам, ошибки в системе из трех компьютеров вызывали потерю аппарата в трех случаях из миллиона, а система из четырех компьютеров снижала этот шанс до четырех из миллиарда), но он не годится, если учесть возможность возникновения критического, фатального бага в ПО. Таким образом появилась идея альтернативного ПО на пятом компьютере, которое выполняло бы минимальный функционал ПО на первых четырех.
Разработка ПО для BFS включала в себя те же спецификации, тот же самый язык программирования, тот же самый компилятор и то же самое железо, куда это ПО устанавливалось. Но разрабатывалось оно совершенно другой организацией (Rockwell International для BFS и IBM, Federal Systems Division для PASS) и устанавливалось на разные операционные системы. ОС для PASS была асинхронной и управляемой приоритетом (asynchronous and priority driven – таким образом, наиболее важной задаче всегда моментально дается контроль над компьютером). BFS же, напротив, похож больше на полностью синхронную систему «временных интервалов», где каждому процессу отдается отведенное время для выполнения своего цикла.
К сожалению, синхронная и асинхронная системы плохо объединимы. Чтобы BFS могла синхронизироваться с PASS, PASS должна стать синхронной или эмулировать это для синхронизируемых процессов. Процесс эмуляции был обеспечен с минимальными потерями при разработке. Как только включался самый первый компьютер и запускалась PASS, она пыталась синхронизировать начало всех процессов с данными телеметрии корабля. Эта синхронизация выполнялась путем считывания значения времени с данных телеметрии и расчета фаз телеметрии в соответствии с центральным временем.
В пятницу утром, 10 апреля, стало ясно, что некоторые процессы в PASS обрабатываются не в своей фазе: на один цикл раньше чем остальные процессы PASS и BFS. Предполагая получение «загрязненных» данных, BFS, как и требовалось, полностью перестала «слушать» информацию от PASS, и поэтому не могла синхронизироваться с PASS. Для BFS данные приходящие на цикл раньше были просто нерасчетными «помехами».
Но этот подход не работает для полностью заправленного и готового к старту космического корабля — бортовые компьютеры играют критически важную роль в обработке информации, идущей «от» и «к» системе подготовки запуска космодрома.
Сведения, собранные экспертами, и факт того, что перезапуск бортовых компьютеров в пятницу ночью устранил проблему, дали руководству NASA достаточно информации, чтобы назначить запуск на утро воскресенья. Но истинные причины ошибки были выявлены вечером воскресенья, спустя 8 часов с момента запуска.
Бортовые компьютеры используют очередь таймера (timer queue) операционной системы как часы, первая запись — это желаемое время старта (start time) следующего процесса, при выполнении сотен процессов в любую секунду, первая запись показывает всегда довольно точное настоящее время (current time) (всегда немного спешит, но всегда достаточно точно). Полученное время всегда абсолютно одинаково для всех резервных бортовых компьютеров. Когда запускается самый первый компьютер — нет активных вычислений, это единственный момент когда очередь пуста. И т. к. нет других рабочих компьютеров, первому разрешалось использовать свои часы для определения времени.
Тестирование могло обнаружить эту ошибку, но вероятность ошибки появлялась только на поздних этапах тестирования, когда система проверялась целиком, но даже тогда, большинство тестов не требовало инициализации с нуля. И даже в тестах, где это требовалось, нужна была лаборатория с довольно точными моделями PASS, BFS и телеметрии. И даже при соблюдении всех выше перечисленных условий, при возникновении ошибки, возникало искушение, все перезапустить и… никогда не повторить ошибку, и никогда не быть уверенным, не была ли это проблема в лабораторной установке. Вероятно именно это и произошло в одной из лабораторий NASA примерно за 4 месяца до полета.
И все же, в день, когда первый бортовой компьютер был включен, за 30 часов до запланированного запуска, проблема дала о себе знать.
Вся информация о баге на шаттле взята из статьи Джона Гармана (зам начальника департамента космического ПО в NASA). В ней он так же пишет: «Идеальная надежность не обеспечивается, потому что в проектах всегда приходится торговаться за время и стоимость. Обслуживание систем программного обеспечения непосредственно на месте, накопление больших изменений и добавлений на стадиях разработки, и переконфигурация ПО, чтобы оно подходило на аппараты или миссии, которые никогда полностью не идентичны — это проблемы, которые стоят перед нами сегодня. Легко сказать: «Не нарушай правила». Это невозможно без инвертирования относительной позиции ПО во встроенных системах — а это неправильно! ПО может быть и «душа» самых сложных систем, но все равно это всего лишь часть поддерживающей оболочки, … очень гибкая часть».
Посадка шаттла на поверхность высохшего озера Роджерс
Стоимость данной ошибки в ПО 0 долларов (безусловно, затраты на перенос запуска были и возможно немалые, но в свете предыдущих рассмотренных аварий, когда происходила полная потеря космического аппарата до завершения им запланированной миссии, затратами на переподготовку старта я пренебрегу, тем более, что мне не удалось найти подходящих данных).
Но хотелось бы заметить, что данная ошибка отодвинула время старта на два дня: с 10 апреля на 12 апреля, и, по-моему, нельзя было выбрать более удачную дату для первого запуска шаттла, ведь в этот же самый день, ровно 20 лет назад Юрий Гагарин совершил свой полет в космос. Как тут не вспомнить слова одной черепахи о том, что «случайности не случайны».
Причина аварии ракеты-носителя “Протон-М”, стартовавшей с космодрома Байконур 2 июля с тремя ступниками «Глонасс-М», окончательно установлена. Как сообщил источник, близкий к расследованию, авария произошла из-за «человеческого фактора». За этим красивым термином, как выясняется, прячется банальное разгильдяйство: при сборке ракеты оказались неправильно подключены датчики угловой скорости – в момент их подсоединения были перепутаны полюса.
Из-за этого, по словам источника, система управления ракеты-носителя “Протон-М” сразу после старта начала получать некорректные данные от своих датчиков, в результате ракета потеряла устойчивую ориентацию. А поскольку неправильные данные от датчиков продолжали поступать, то ситуация только усугублялась. Эту версию подтверждают качания ракеты из стороны в сторону сразу после старта. “По логике вещей, - рассуждает источник, - неправильное подключение датчиков должны были обнаружить при комплексной проверке ракеты-носителя на заводе и на Байконуре”. Однако, по информации другого информированного источника «МК» в космической отрасли, «должного контроля и проверки перед запуском ракеты не было. Есть информация, что госкомиссия, которая традиционно проводится накануне старта, либо вообще не проводилась, либо была сведена к чистой формальности».
Сегодня любят повторять, что нашу космическую отрасль преследуют неудачи: то двигатель откажет, то разгонный блок. В результате спутники, стоимостью в миллиарды, не могут выйти на расчетную орбиту и превращаются в космический мусор. И все чаще за этими провалами стоит пресловутый «человеческий фактор». Особенно с этим фактором не везет спутникам «Глонасс». В декабре 2010 года в Тихий океан упали сразу три (так же как и сейчас) спутника "Глонасс-М". Тогда комиссия выяснила, что в разгонный блок по ошибке залили 1,5 тонны лишнего топлива. А год назад при подготовке к старту такой же ракеты-носителя «Протон-М», в пустой бак окислителя уронили то ли гайку, то ли пассатижи и запуск пришлось отложить больше, чем на сутки.
Вот и на сей раз, пока компетентная комиссия разбиралась в причинах аварии «Протона-М», версия о датчиках угловой скорости, где перепутали плюс с минусом, вовсю гуляла на форумах специалистов космической отрасли и была там основной. Но главный вопрос, который волновал всех: как Россия — еще недавно ведущая космическая держава, могла докатиться до такого непрофессионализма?
- Насчет возможности или невозможности такого в отрасли - напомню, что один из Глонассов-М до сих пор летает с перепутанными датчиками угловых скоростей. Просто там было время посмотреть, понять, что не управляется в начальном режиме и отключить режим, чтобы не выдуть всё рабочее тело. Дальше повезло с положением Солнца и устойчивая энергетика позволила закладкой модифицированного ПО обеспечить работоспособность аппарата. Так же на Молнии-3К – один из солнечных датчиков был перевёрнут на 120 градусов при установке. Причем, военый представитель НПО Прикладной механики увидел на полигоне, что что-то не так, но постеснялся спросить/доложить, боясь, видимо, что дураком обзовут. Это не по слухам, это с чем сам сталкивался. Еще из более давнего: по рассказам, со старой “Молнией” был случай, когда на полигоне подали команду на раскрытие солнечных панелей при проверках, то панелями чуть не убило солдата. Во избежании несчастных случаев, командир приказал обмотать спутник верёвкой на время дальнейших испытаний. Так с верёвкой его и запустили. В результате - нераскрытие всех панелей. Еще на «Радуге» было, когда солдат пытался неправильно стыковать разъемы, и не лезло, то он примотал их изолентой. Но это, к счастью, обнаружили при проверках, так как ни одна команда не проходила. А еще спутники роняли и не раз. А уж установку, подключение прибора, или знаки перепутать – запросто. Очень опасная и какая-то неуловимая вещь.
Очевидец из МЧС снял на видео упавший "Протон"
Смотрите видео по теме
Справка «МК»: аварии последних лет в российской космической отрасли
- Падение ракеты-носителя "Протон-М" с тремя спутниками "Глонасс-М" - третья нештатная ситуация в российской ракетно-космической отрасли в 2013 году.
В 2013 году произошла авария ракеты-носителя "Зенит" по программе "Морской старт" и нештатное выведение на орбиту аппаратов Минобороны".
15 января 2013 года с космодрома Плесецк был выполнен пуск ракеты-носителя "Рокот" с разгонным блоком "Бриз-КМ" и блоком космических аппаратов в интересах Минобороны РФ. Пуск завершился выводом космических аппаратов на орбиту, близкую к расчетной. Как сообщали российские СМИ, только с двумя из трех аппаратов удалось установить связь. Комиссия Роскосмоса должна была разобраться с нештатной работой разгонного блока к маю, но продолжает работу. Возобновление пусков ракет "Рокот" может произойти в сентябре.
1 февраля 2013 года при запуске ракеты "Зенит-3SL" со спутником Intelsat-27 по программе Sea Launch (контрольный пакет принадлежит "дочке" российской РКК "Энергия") произошла авария, ракета упала в Тихий океан в 2,5 км от стартовой платформы. Причиной прекращения полета ракеты стал отказ бортового источника мощности, обеспечивающего работу системы управления вектором тяги двигателей первой ступени.
Кроме того, 5 декабря 2010 года в результате неудачного запуска в Тихий океан упали сразу три спутника "Глонасс-М". Ущерб достиг 2,5 млрд рублей. Как выяснила специальная комиссия, спутники были потеряны из-за того, что в разгонный блок из-за ошибки в конструкторской документации залили 1,5 тонны лишнего топлива.
В феврале 2011 года при выведении на орбиту геодезического аппарата военного назначения "Гео-ИК-2". ракета-носитель "Рокот" отработала штатно, но на участке работы разгонного блока "Бриз-КМ" разработки и производства Космического центра имени Хруничева произошла нештатная ситуация, в результате которой спутник "Гео-ИК-2" был выведен на нерасчетную орбиту. В июне было неофициально объявлено о полной потере аппарата.
18 августа 2011 года ракета-носитель "Протон-М" с разгонным блоком "Бриз-М" и спутником "Экспресс-АМ4" стартовала с космодрома Байконур. На участке работы разгонного блока между четвертым и пятым включениями его маршевого двигателя прекратилась передача на Землю телеметрической информации. В расчетное время аппарат не вышел на связь.
24 августа 2011 года, когда ракета-носитель "Союз-У" с грузовым кораблем "Прогресс М-12М" стартовала с Байконура. Из-за аварии двигательной установки третьей ступени ракеты-носителя корабль не был выведен на орбиту. Обломки упали на Алтае.
9 ноября 2011 года с Байконура была запущена российская межпланетная станция "Фобос-Грунт". После отделения от ракеты-носителя "Зенит" на аппарате не включились двигатели, которые должны были вывести его на отлетную траекторию к Марсу.
В декабре 2011 года, когда вскоре после старта с космодрома Плесецк на Землю упал космический аппарат связи "Меридиан". Телекоммуникационные спутники нового поколения "Меридиан" выводятся на высокоэллиптическую орбиту с помощью модернизированной ракеты-носителя "Союз-2" и разгонного блока "Фрегат". Причиной аварии ракеты-носителя "Союз-2.1б" с военным аппаратом "Меридиан" стали неполадки в двигателе.
6 августа 2012 года ракета-носитель "Протон-М" с разгонным блоком "Бриз-М" и двумя спутниками связи - российским "Экспресс-МД2" и индонезийским Telkom 3 стартовала с космодрома Байконур. ракета-носитель отработала штатно. Дальнейшее выведение спутников должно было производиться за счет четырех включений маршевой двигательной установки разгонного блока. Третье включение продолжалось меньше положенного, а четвертого не произошло. Аппараты не вышли на целевую орбиту и были потеряны.
Очередная нештатная ситуация произошла со спутником "Ямал-402". Он был запущен с космодрома Байконур ракетой-носителем "Протон-М" с разгонным блоком "Бриз-М" 8 декабря 2012 года. Разгонный блок должен был вывести аппарат на геопереходную орбиту. Однако вследствие того, что двигатель "Бриза-М" во время четвертого включения отработал на четыре минуты меньше положенного, "Ямал-402" был доставлен на нерасчетную орбиту. Позже спутник был довыведен на целевую орбиту при помощи собственного двигателя.
Читайте также: