Приветствую Вас, уважаемые Читатели! Сегодня я хочу рассказать Вам историю, которая стоила французскому аналогу Роскосмоса - CNES - огромных репутационных и финансовых издержек. Речь пойдет о знаменитой ракете Ariane 5 и её неудачной истории.
4 Июня 1996 года ракета Ariane 5 стартовала с побережья французской Гвианы. 37 секунд спустя ракета повернула на 90 градусов в неправильном направлении, а менее чем через две секунды аэродинамические силы оторвали ускорители от основной ступени на высоте 4 км. Это привело к срабатыванию механизма самоуничтожения, и космический корабль сгорел в своём же топливе.
Неудачный запуск обошелся примерно в 370 миллионов долларов, привел к общественному расследованию и из-за уничтожения полезной нагрузки ракеты задержал научные исследования в области магнитосферы Земли почти на 4 года. Запуск Ariane 5 признан одним из самых "дорогостоящих" программных сбоев в истории.
Что пошло не так?
Ошибка была быстро идентифицирована как ошибка программного обеспечения в системе ориентации ракеты, а именно в блоке, отвечающем за горизонтальное смещение, где за его величину отвечала 64-разрядная переменная BH.
Ariane 5 в отличие от предшественника Ariane 4 обладал гораздо более высокими значениями горизонтальной скорости на начальном этапе траектории, но (!!!) использовал во многом всё то же программное обеспечение. Система ориентации адекватно работала в течение приблизительно 40 секунд полета - стандартного времени для стартовой динамики Ariane 4.
Однако затем, значение BH стало неожиданно высоким.
По мере увеличения скорости ракеты в 64-разрядную переменную записалось значение, большее, чем 65536, а алгоритм не смог перевести его в 16-битный вид, заполнив переменную BH диагностическим значением.
Это можно рассматривать как попытку "впихнуть невпихуемое".
Процессор Ariane 5 ошибочно истолковано значение BH как фактические полетные данные и подал команду двигателям. Угол атаки более 20 градусов привел к отделению ускорителей от основной ступени и срабатыванию системы самоуничтожения
Во-первых, самое поразительное, что переменная BH вообще не использовалась в фазе старта, а просто была оставлена от предшественника четвертого поколения!
Во-вторых, код, который мог бы перехватить и обработать эти ошибки преобразования, был отключен для переменной BH из-за ограничений производительности на оборудовании Ariane 4, которые не применялись к Ariane 5.
- Спасибо за внимание!