28 ноября 2016

Модуль Schiaparelli упал на Марс из-за грубой программной ошибки

Официальное расследование Европейского космического агентства (ЕКА) показало, что марсианский лендер Schiaparelli упал из-за грубой ошибки в программном обеспечении. Некорректная обработка неверных показаний датчика вращения заставила аппарат считать, что он находится под поверхностью Марса, сообщил сайт космического агентства.

В среду, 19 октября, совместная российско-европейская миссия «ЭкзоМарс-TGO» прибыла к красной планете и попыталась решить две критически важных задачи – выход зонда TGO на стабильную орбиту у Марса и посадка демонстрационного посадочного модуля «Скиапарелли» на плато Меридиан у экватора красной планеты.

Посадка лендера прошла неудачно – его ПО решило, что модуль уже приземлился. Это заставило «Скиапарелли» отключить двигатели всего через 3-4 секунды после их включения. В результате он рухнул с высоты в 3-4 км ровно в ту точку, где он должен был сесть на Марс. Предположительной причиной был назван сбой в радаре-высотомере.

Инженеры ЕКА проанализировали часть данных телеметрии и выяснили, что история была несколько сложнее.

Приземление, установили ученые, проходило нормально на первых стадиях - «Скиапарелли» корректно провел аэродинамическое торможение и затем выбросил тормозные парашюты. На высоте в 7,8 км был корректно сброшен тепловой экран. Через некоторое время после этого произошло то, что погубило зонд.

Оказалось, что фатальная ошибка в работе ПО «Скиапарелли» произошла не из-за сбоя высотометра, а из-за проблем в работе другого навигационного прибора – так называемого «измерителя инерции» (IMU), устройства, измеряющего скорость вращения модуля вокруг своей оси.

Данные с этого прибора, как объясняют инженеры, учитывались при обработке данных о высоте полета, поступающих с радаров «Скиапарелли». В один момент в работе IMU произошел сбой, в результате чего он «измерил» аномально высокую скорость вращения лендера, которая выходила за пределы допустимых значений. Подобные сбои являются нормой в работе инерциальных датчиков, и обычно для их подавления ученые «сглаживают» сигнал и сравнивают данные за текущий момент с результатами, полученными в прошлые моменты времени.

Но в данном случае IMU передавал данные на главный компьютер «Скиапарелли» неожиданно долго, на протяжении секунды, что «обмануло» ПО модуля и заставило его считать эти измерения реальными данными, а не аномалией. Неправильные значения были учтены при расчете высоты модуля, в результате чего бортовой компьютер «Скиапарелли» получил отрицательные значения высоты.

Модуль посчитал, что он находится даже не на поверхности Марса, а под ней, что заставило его на высоте 3,7 км инициировать финальную стадию процедуры посадки, отделить парашюты и выключить двигатели.

Эта ошибка, как отмечают ученые, носит чисто программный характер и легко воспроизводится в компьютерных симуляциях приземления «Скиапарелли». Как отметил Дэвид Паркер, руководитель отдела пилотируемых полетов и роботизированного изучения космоса в ЕКА, эти данные и ошибка будут учтены при проектировании ПО для посадочной платформы марсохода «Пастер», которая разрабатывается в НПО Лавочкина.


Источник: Ведомости-2