Сегодня ESA объявило о завершении расследования крушения космического зонда «Скиапарелли». Из отчета комиссии наконец стало совершенно ясно, почему аппарат решил отбросить парашют раньше времени и отключить посадочные двигатели всего через три секунды после начала их работы. Как оказалось, все дело в тригонометрии, бортовом компьютере и слегка сбоившем датчике. Но обо всем по порядку.
Самая интересная часть отчета — последовательность событий, произошедших при спуске аппарата. Главными действующими лицами этого крушения станут:
Посадка «Скиапарелли» началась 16 октября, когда аппарат отсоединился от Trace Gas Orbiter, доставившего его в рамках миссии «Экзомарс». После трех дней полета в состоянии гибернации спускаемый модуль включил и откалибровал все свои системы — в частности, приборы для определения положения в пространстве.
13:29:48 Пробуждение «Скиапарелли». Начиная примерно с этого момента мы вели онлайн-трансляцию посадки.
14:42:22 Акселерометры обнаруживают, что аппарат вошел в атмосферу. Инженеры отмечают непредвиденные изменения в скорости вращения аппарата.
14:45:23 Запускается раскрытие парашюта. Угол атаки оценивается в 6,5 градуса, скорость вращения аппарата около трех градусов в секунду
14:45:24 Парашют раскрылся, «Скиапарелли» начинает покачиваться (2,5 покачивания в секунду).
14:45:24.2 Инерциальные датчики IMU измеряют скорость «тангажа» «Скиапарелли» — скорость, с которой аппарат заваливается относительно горизонта. Она оказывается больше, чем ожидалось и датчики показывают «зашкаливание» — некую константу.
14:45:24.2 В этот момент система ориентационной навигации и контроля пытается определить положение «Скиапарелли» в пространстве — итоговый угол заваливания относительно горизонта. Для этого ей нужно, в частности, проинтегрировать скорость тангажа по времени (сложить все углы, на которые аппарат заваливался).
Так как датчики IMU показывают постоянную величину, все углы, которые суммирует GNC, положительны. В реальности же аппарат покачивается (то есть скорость тангажа становится то положительной, то отрицательной). Поэтому GNC допускает серьезную ошибку в положении — на целых 165 градусов. Системы аппарата «думают», что он перевернулся и теперь его тепловой щит обращен к небу, а не к Марсу.
Купол парашюта тем временем полностью наполняется, и покачивание «Скиапарелли» останавливается. Теперь снижение идет как и ожидалось, а амплитуда колебаний аппарата составляет около трех градусов.
14:46:03 Отстреливается передний (тепловой) щит аппарата.
14:46:19 Как и ожидалось, включается доплеровский радар — в его показаниях нет ни следа аномалий. Система сверяет данные радара и данные инерциальных датчиков — изменения скорости и изменения высоты.
Высота в системе определяется как проекция показаний радара на вертикальную ось: если аппарат расположен под углом к горизонту, то радар будет «смотреть» не прямо под собой, а под углом, и сообщать завышенные значения. Как известно из школьного курса геометрии, чтобы узнать катет в прямоугольном треугольнике, образованном линией радара и ее проекцией на вертикальную ось, надо гипотенузу (показания радара) умножить на косинус угла между вертикалью и направлением, куда «смотрит» радар.
Напомним, что GNC «думает», будто аппарат перевернулся на 165 градусов. В отчете комиссии следующая фраза подчеркнута: «Косинус углов больше 90 градусов отрицателен». В результате «Скиапарелли» считает, что его высота относительно поверхности Марса меньше нуля. В системе возникает несоответствие, программа не подвергает сомнению данные о положении аппарата относительно горизонта.
14:46:46 Примерно в этот момент GNC включает заключительную стадию снижения.
14:46:49 Отбрасывается задняя крышка аппарата.
14:46:51 Включение двигателей для торможения — маневр уклонения от задней крышки игнорируется системой.
14:46:54 Отключение двигателей для торможения на высоте около 3,7 километра над поверхностью Марса.
14:47:28 После 34 секунд свободного падения «Скиапарелли» набирает скорость примерно 540 километров в час и врезается в поверхность Красной планеты на 37 секунд раньше, чем ожидалось.
Случившееся потом хорошо известно. Через два дня на Землю пришли первые снимки места крушения аппарата, а через неделю те же фотографии с деталями следов взрыва баков с неотработанным топливом можно было наблюдать в цвете. Надеемся, что рекомендации (которым посвящена треть отчета) помогут Европейскому космическому агентству все-таки посадить второй спускаемый модуль программы «Экзомарс», который может направиться к планете уже в 2020 году. А пока Марс ведет в матче против человеческих попыток посадить на него очередной аппарат со счетом 9:8.
Это отнюдь не первый пример, когда ошибка в обработке данных приводит к печальным последствиям. Еще больше драмы вы найдете в нашем материале «#titanic {float: none;}» — он посвящен случаям, когда программные ошибки в буквальном смысле убивали людей и угрожали человечеству.