19 октября 2016 года европейско-российский посадочный модуль Schiaparelli разбился о поверхность Марса на скорости 150 метров в секунду. Он не взорвался на старте, не потерял связь в космосе и не промахнулся мимо планеты. Он вошёл в атмосферу точно по расчёту, раскрыл парашют, включил радар — и через пять минут решил, что уже приземлился, хотя до поверхности оставалось 3,7 километра.
Schiaparelli никогда не собирался искать жизнь или бурить марсианский грунт. Это был технологический демонстратор — пробный шар перед настоящей миссией ExoMars 2020, которая должна была доставить на Марс ровер. Европейское космическое агентство и Роскосмос договорились о двухэтапной программе: сначала отправить орбитальный аппарат Trace Gas Orbiter для поиска метана в атмосфере, а вместе с ним — небольшой посадочный модуль, чтобы отработать спуск и посадку.
Trace Gas Orbiter вышел на орбиту Марса без проблем и работает до сих пор. Schiaparelli же получил одну задачу: продемонстрировать, что европейские инженеры умеют сажать аппараты на Марс мягко. Внутри было минимум научных приборов — метеостанция, несколько датчиков, камера. Основная ценность заключалась в самом процессе спуска: теплозащитном экране, сверхзвуковом парашюте, радарной системе определения высоты и тормозных двигателях, которые должны были погасить последние метры падения.
Масса модуля — 577 килограммов. Энергия — батареи на несколько дней работы. Связь — только через орбитальный аппарат, который уже улетел к моменту посадки. Никакой возможности передать команду «стоп, ошибка» не было. Всё управление спуском лежало на автономной системе, которая должна была за шесть минут пройти путь от 21 000 километров в час до нуля.
19 октября 2016 года в 14:42:07 UTC Schiaparelli врезался в верхние слои марсианской атмосферы. Теплозащитный экран разогрелся до полутора тысяч градусов, аэродинамическое торможение сбросило скорость до 470 метров в секунду — это Mach 2.05, чуть больше двух скоростей звука. На высоте около 11 километров раскрылся парашют диаметром 12 метров.
И тут началось то, чего инженеры не предусмотрели в расчётах.
Парашют раскрылся нормально, но модуль под ним начало болтать — и куда сильнее, чем показывали расчёты. Аппарат раскачивался на стропах, накреняясь и выравниваясь с угловой скоростью, которой в симуляциях просто не было. Это называется «динамика раскрытия парашюта», и она всегда непредсказуема: турбулентность в разреженной марсианской атмосфере, колебания строп, угол наклона строп относительно купола — всё это складывается в хаотичное движение.
Внутри Schiaparelli работал инерциальный измерительный блок (IMU) — связка гироскопов и акселерометров, которая отслеживает угловую скорость и ускорение аппарата. Гироскоп измеряет, как быстро модуль вращается вокруг каждой из трёх осей. У любого датчика есть предел: если скорость вращения превышает максимальное значение, которое может зафиксировать прибор, наступает насыщение — датчик выдаёт константу и поднимает специальный флаг: «я больше не могу».
Гироскоп Schiaparelli достиг предела. Модуль раскачивался слишком быстро.
Система управления спуском — это алгоритм, который интегрирует показания датчиков и строит картину мира: где я нахожусь, куда смотрю, какая у меня скорость, на какой высоте. Инерциальные датчики — основа этой картины. Акселерометр говорит, как меняется скорость. Гироскоп говорит, как меняется ориентация. Бортовой компьютер берёт эти приращения и складывает их во времени, шаг за шагом вычисляя текущее положение.
Когда гироскоп насыщается, он перестаёт давать корректные значения угловой скорости. Вместо этого он выдаёт максимальное значение своего диапазона и флаг: «данные недостоверны».
Правильная реакция на флаг насыщения — перестать доверять показаниям этого датчика до восстановления. Можно перейти на резервный IMU, можно использовать альтернативные источники (звёздный датчик, магнитометр, солнечный сенсор), можно просто «заморозить» ориентацию до момента, когда вращение замедлится и флаг спадёт.
Программное обеспечение Schiaparelli поступило иначе. Оно продолжило интегрировать значение скорости насыщения в своё представление об ориентации. Гироскоп кричал: «я вижу максимум, но на самом деле не знаю!» — а алгоритм отвечал: «понял, записываю».
Насыщение продолжалось дольше, чем инженеры ожидали при наземном моделировании. Динамика реального раскрытия парашюта оказалась более агрессивной, чем в симуляциях. Каждую секунду к ошибке ориентации добавлялись новые градусы. К тому моменту, как модуль наконец стабилизировался и флаг насыщения спал, бортовой компьютер считал, что аппарат развёрнут на 165 градусов относительно реального положения.
Для системы навигации это катастрофа: она проецирует измерения радара и акселерометров на перевёрнутую систему координат.
На высоте около 7 километров Schiaparelli сбросил теплозащитный экран и включил радарный высотомер RDA (Radar Doppler Altimeter). Это доплеровский радар, который измеряет расстояние до поверхности и скорость сближения с ней, посылая сигнал вниз и анализируя отражённый сигнал.
Радар сам по себе работал исправно и выдавал корректные дальности до поверхности. Ошибка случилась дальше по цепочке.
Проблема в том, что система GNC (Guidance, Navigation and Control) использует ориентацию, вычисленную по данным IMU, чтобы понять, куда направлен луч радара. Если модуль смотрит вниз, радар показывает высоту. Если модуль накренился — показания нужно скорректировать с учётом угла.
Но в данных GNC модуль был развёрнут на 165 градусов — почти вверх ногами. Алгоритм взял корректное измерение радара, применил к нему ошибочную матрицу поворота и вычислил отрицательную высоту. Грубо говоря, система решила, что если радар показывает 3,7 километра в направлении, которое она считает «вверх», то модуль уже находится на 3,7 километра ниже поверхности Марса.
С точки зрения логики посадки это означало одно: посадка завершена.
Система управления Schiaparelli следовала жёсткой последовательности: раскрытие парашюта → сброс теплозащиты → включение радара → сброс парашюта и заднего конуса → включение тормозных двигателей RCS → мягкая посадка. Каждый этап запускался по достижении определённых условий: скорость, высота, время.
Когда GNC вычислила отрицательную высоту, она решила, что пора переходить к финальному этапу. Модуль сбросил парашют и защитный экран. Тормозные двигатели включились.
Но система также проверяла критерий завершения работы двигателей: если высота меньше заданного порога (то есть аппарат «уже на земле»), отключить тягу. Поскольку расчётная высота была отрицательной, этот критерий сработал почти мгновенно. Двигатели проработали около 3 секунд и выключились.
Реальная высота в этот момент составляла 3,7 километра.
Schiaparelli остался без парашюта, без двигателей, в режиме свободного падения. На Марсе атмосфера разреженная — около 1% от земной, так что аэродинамическое торможение минимально. Модуль просто падал, набирая скорость.
В 14:47:28 UTC он ударился о поверхность со скоростью около 150 метров в секунду — это 540 километров в час. Никакой мягкой посадки. Полное разрушение конструкции.
Первые несколько часов после посадки в Европейском космическом агентстве царила неопределённость. Телеметрию спуска писал Trace Gas Orbiter — но ровно в эти минуты он выполнял свой главный тормозной манёвр и вышел на орбиту Марса. Записанные данные он сбросил на Землю только под утро, спустя часы. Наземные станции — Mars Express и радиотелескоп GMRT в Индии — успели записать только несущий сигнал, без начинки.
Когда инженеры восстановили записанные данные спуска, стало ясно, что что-то пошло не так. Сигнал прервался слишком рано. Двигатели отключились за секунды до расчётного времени. Алгоритм записал в телеметрию финальный статус: «посадка завершена».
Через несколько дней орбитальный аппарат Mars Reconnaissance Orbiter NASA сфотографировал место предполагаемой посадки. На снимках видны два объекта: парашют с задним конусом, лежащий отдельно, и тёмное пятно в километре от него — место удара. Никаких признаков целого модуля. Пятно занимает примерно 15 на 40 метров, вокруг него расходится радиальный выброс грунта: след жёсткого удара, а не посадки.
Schiaparelli превратился в облако металлических осколков на поверхности Meridiani Planum — равнины, где когда-то работал марсоход Opportunity.
Комиссия по расследованию аварии выпустила отчёт в мае 2017 года. В нём перечислены технические и системные причины катастрофы, но в центре — один фундаментальный просчёт: отсутствие проверки на разумность.
Бортовое ПО Schiaparelli не включало механизмов защиты от ошибок типа FDIR (Failure Detection, Isolation and Recovery) на критических этапах спуска. Алгоритм GNC не задавал себе вопрос: «Могу ли я вообще находиться на минус трёх километрах под поверхностью планеты?» Не было простой проверки: если радар показывает положительную высоту, а интегрированная оценка — отрицательную, одно из значений неверно.
Не было резервной логики на случай насыщения IMU. Флаг насыщения поднимался, фиксировался в телеметрии, но не влиял на работу алгоритма навигации. Система продолжала интегрировать ошибочные данные, как если бы они были достоверными.
Моделирование динамики раскрытия парашюта оказалось недостаточно консервативным. Инженеры проверяли систему на расчётных сценариях, но реальное поведение модуля в марсианской атмосфере вышло за границы этих сценариев. Испытания на Земле не воспроизвели условия, при которых IMU мог бы насытиться так надолго.
Приёмочные испытания не выявили уязвимость. Возможно, потому что тестировались отдельные подсистемы, а не их взаимодействие в экстремальных режимах. Возможно, потому что сценарий «длительное насыщение IMU плюс ошибочная проекция радара» казался слишком маловероятным, чтобы его специально закладывать в тесты.
В прессе часто встречается цифра в 1,3 миллиарда евро как «стоимость провала ExoMars». Это неточность. 1,3 миллиарда — бюджет всей программы ExoMars в ценах 2008 года, и он включал обе миссии: Trace Gas Orbiter, Schiaparelli и планируемую вторую миссию с ровером. Отдельный контракт ESA с Thales Alenia Space по миссии 2016 года тянул около 230 миллионов евро — причём 146 из них шли на орбитальный аппарат и посадочный модуль, а остаток на работы по роверу.
Trace Gas Orbiter, напомню, работает и выполняет научную программу по изучению метана и других газов в атмосфере Марса. Потеря Schiaparelli обесценила не всю миссию, а конкретно финальный этап спуска: инженеры остались без данных о нём и без подтверждения, что отработанная технология работает.
Вторая часть программы — марсоход Rosalind Franklin — была отложена. Сначала на 2020-й, потом на 2022-й, затем на 2024-й. После начала войны России против Украины в 2022 году ESA разорвала кооперацию с Роскосмосом. Посадочная платформа, которую разрабатывала Россия, осталась без миссии — её пришлось строить заново. В 2024 году ESA договорилась с NASA о носителе, а в апреле 2026-го американцы назвали конкретную ракету: Falcon Heavy. Запуск теперь намечен на конец 2028 года.
Катастрофа Schiaparelli не выглядит как история про «опечатку в одной переменной» или «забытый минус». Это история про системную уязвимость: аппарат может иметь исправные двигатели, работающий радар и надёжный парашют, но погибнуть, если алгоритм слишком уверенно поверит единственному источнику данных.
Отказоустойчивость в космической инженерии — это не только дублирование железа. Это система, которая постоянно спрашивает саму себя: «имеет ли смысл то, что я вижу?» Радар и инерциальные датчики должны подтверждать друг друга. Если их показания расходятся — нужен третий арбитр или хотя бы пауза перед принятием решения.
На Земле можно перезапустить программу, отправить патч, вызвать инженера. На Марсе — нет. 19 октября 2016 года сигнал шёл от Марса до Земли почти десять минут, а вся посадка заняла меньше шести. Автономная система должна быть параноидально недоверчивой к собственным вычислениям.
Schiaparelli упал не из-за того, что сломалось железо. Он упал, потому что программа не усомнилась в невозможном.