Компания SpaceX, система управления ракет Falcon 9 и Dragon. Разработчики применили технологию Блокчейн?
Приветствую, друзья! Сегодняшняя статья не касается инвестиций или криптовалют, но если вы интересуетесь новыми технологиями, если также являетесь большими поклонниками Илона Маска, его деятельности и, особенно, его компании SpaceX, то сегодняшнее чтиво вам понравится. Сегодня мы простыми словами расскажем вам о программном и аппаратном обеспечение таких ракет как: Falcon 9 и Dragon.
Честно говоря, первое что пришло в голову, когда я узнал как устроена система управления кораблем, так это то, что блокчейн технологии и здесь не прошли мимо. Да, полноценного блокчейна там нет, но идея и механизм весьма и весьма схожи. Чтобы вам было легче понять, к чему я веду и что вообще такое БЛОКЧЕЙН – советую прочитать статью ЧТО ТАКОЕ БЛОКЧЕЙН? Ну а мы приступаем к разбору полетов: три, два, один, взлет!
Какие проблемы нужно решить в космосе?
Давайте для начала рассмотрим, какие проблемы с оборудованием и программным обеспечением космического корабля имеются при его запуске в космос. Прежде всего очень сложно вывести ракету на орбиту вокруг Земли. Запуск ракеты вызывает много вибраций, а это значит, что сам корабль и электроника должны уметь это выдерживать. Как только вы выходите на орбиту вас приветствуют еще большие проблемы. Dragon, к примеру, должен уметь справляться с сильным жаром, когда он находится под прямыми лучами солнца, и выдерживать сильный холод, когда солнечный свет блокируется землей. Эти температуры колеблются от – 150 °C до +120 °C.
Но самой большой проблемой для электроники является радиация. Это излучения происходящие от частиц высокой энергии, которые выбрасывает наше Солнце. Эти частицы находятся как в магнитном поле Земли, так и в космических лучах и даже за пределами нашей солнечной системы. Эти частицы могут иметь довольно серьезные последствия для систем внутри космического корабля.
Одна из самых больших проблем – это Bit Flip. Данная проблема происходит, когда частицы с высокой энергией попадают в память или процессор космического корабля. Если частица попадает в память, это может привести к тому, что 0 станет 1, по сути, “переворачивая” часть памяти. Программное обеспечение на борту космических аппаратов SpaceX может легко обнаружить и и исправить эту ошибку при помощи бита чётности.
Однако, когда процессор поражен радиацией, это может привести к тому, что результаты вычислений будут в корне неправильными. Чтобы продемонстрировать это давайте попросим процессор вычислить простой пример 10+10.
1010 (10)
+1010 (10)
————–
10100 (20)
В двоичном формате это будет выглядеть так, и результат очевидно, равен 20.
Но давайте теперь посмотрим, что произойдет, если процессор заражен радиацией. мы по прежнему просим рассчитать пример 10 + 10, но из за того, что бит “перевернул” процессор, вычисляется нечто совершенно другое.
1010 (10)
+1110 (10)
————–
11000 (24)
Мы получаем расчет, что 10 + 10 = 24, потому что один из битов “перевернулся” во время вычислений.
Неправильные вычисления могут иметь очень серьезные последствия для космического корабля. Мы можем наглядно увидеть данную ошибку во время полета ракеты Ariane 5 в 1996 году. Она не подверглась заражению Bit Flip. Но за 40 секунд до взлета программное обеспечение ракеты попыталось поместить 64-битное число в 16-разрядный адрес, в результате чего число было усечено. Затем авионика ракеты продолжила выполнять свои расчеты с этой ошибкой. В результате чего ракета совершила резкую коррекцию курса. В конечном итоге ракета распалась на части на глазах у миллионов людей, потому что аэродинамический стресс был слишком велик.
Вернемся к SpaceX. Как они справляются с проблемой радиации?
SpaceX справедливо предполагает, что невозможно полностью защитить электронику от радиации, и разработали свою систему, с учетом этого. Вместо использования дорогостоящих радиационно-стойких деталей, SpaceX использует готовые компоненты. Рассмотрим на примере ракеты Dragon.
По словам Джона Мураторе, одного из ведущих инженеров SpaceX, каждая ракета Dragon оснащена тремя компьютерами. Каждый из этих компьютеров оснащен двухядерным процессором х86. Однако Dragon не используют многоядерные возможности. Вместо этого компьютеры выполняют расчеты, на своих двух ядрах, индивидуально и постоянно сравнивают результаты друг с другом.Таким образом, три компьютера, каждый с двухядерным процессором, можно рассматривать как 6 независимых компьютеров, которые постоянно проверяют вычисления друг друга. Если один компьютер попал под действие радиации и произвел неверный расчет, другие это заметят. В этом случае неисправный компьютер будет перезагружен автоматически, чтобы предотвратить дальнейшие ошибки. После перезагрузки компьютер должен выполнить так называемую повторную синхронизацию. Он должен начать расчеты с нужного места, поэтому он копирует память двух других компьютеров и запускает те же программы.
Dragon может справится и с ситуацией, когда все три его компьютера попадают под действие радиации, хотя это вряд ли произойдет. Помимо 3-х главных компьютеров, у ракеты есть еще 18 систем на борту, которые также используют связку из трех процессоров. Это увеличивает общее число процессоров до 54! И это только для одной капсулы Dragon.
По такому же принципу устроена и знаменитая ракета – Falcon 9. Она имеет по 3 компьютера для каждого двигателя, которых у этой ракеты 9. И главный трехполосный компьютер. Таким образом, ракета содержит 30 процессоров. Возможно, что последнии версии имеют еще больше процессоров, для обработки расчетов посадки, но SpaceX пока не раскрывает этих подробностей.
NASA не против?
Вы можете задаться вопросом, неужели NASA позволяет SpaceX использовать обычные аппаратные компоненты вместо специальных, устойчивых к радиации? Ведь эти компоненты каждый из нас может купить на Амазон? Да! NASA не требует использования радиационно-упрочненных компонентов. Да и сами они, на своей космической станции, используют обычные ноутбуки для некоторых элементов управления.
Вернемся к SpaceX. Программное обеспечение.
Я думаю пришло время поговорить о программном обеспечении, в пользу каких программ SpaceX сделала свой выбор? Операционная система SpaceX – это Linux. Она установлена на рабочих компьютерах всех инженеров и, конечно, непосредственно управляет полетом ракет. Использование Linux во всем мире позволяет SpaceX оптимизировать процесс разработки и использовать надежные и проверенные инструменты.
Выбор языка программирования пал на С++, они используют его по двум причинам. Во первых, это позволяет SpaceX нанимать большое количество блестящих специалистов, потому что язык популярный. Во вторых, они выигрывают от большой экосистемы С++. Нет нужды создавать настраиваемое программное обеспечение, когда вы можете просто использовать инструменты, которые разработчики уже знают, как GCC и GDB.
Но Linux это не единственная платформа, которая используется. Они также используют LabVIEW, графический инструмент программирования, который работает на Windows. Он используется для визуализации телеметрии, которую они получают от Falcon 9 или Dragon во время полета. Наземные команды используют его, чтобы следить за важными показателями.
Интересный факт: разработчики игр, очень востребованы для написания кода летательных аппаратов SpaceX. Все потому, что они используются для написания кода, который выполняется в среде, где память и обработка сильно ограничены. В этих условиях им нет равных.
Последнее что мы рассмотрим – это то, как SpaceX контролирует свое программное обеспечение и ракеты в целом. Инженерам предлагается добавлять метрику везде, где это представляется возможным. Когда космический корабль используется, все эти журналы собираются и анализируются программами, которые дадут сигнал тревоги, если что-то находится за пределами безопасности. Все эти показатели хранятся вместе с исходным кодом, который был запущен. Если что-то пойдет не так, SpaceX может воссоздать точную среду чтобы воспроизвести проблему и исправить её.И, наконец, они используют непрерывную интеграцию для автоматического тестирования всего кода, который написали их инженеры. У них даже есть испытательные стенды со всеми компонентами Falcon 9, прикрепленными болтами и т.д. чтобы они могли имитировать полноценный полет и обнаружить потенциальные ошибки и проблемы.
Более подробная информация о используемом аппаратном и программном обеспечении, недоступна, и это потому, что правительство США считает эту информацию классифицированной. В неправильных руках, технологии, которые использует SpaceX, могут причинить вред нашей планете. Но даже с ограниченной информацией, мы получили довольно хорошее представление о том, какое программное и аппаратное обеспечение используется в SpaceX и с какими проблемами сталкиваются команды, учитывая суровые условия в космосе.