23 Мая 2018

Программное обеспечение для авионики и полетов

Опубликовал Н.А. Рыков

     Космические аппараты собирают научные данные для дальнейшего понимания Земли, Солнечной системы и Вселенной.  Бортовая электроника берет данные с приборов, хранит их, обрабатывает и укомплектовывает их для передачи обратно на Землю.  Космический аппарат часто работает вдали от Земли и редко общается с наземными контроллерами.  Всё программное обеспечение и автономия, позволяющие этим космическим аппаратам функционировать и реализовывать команды с Земли, размещаются электроникой космических аппаратов - авионикой. 

      Для многих космических аппаратов, работающих на больших расстояниях от Земли, большинство (если не все) краткосрочных принятий решений на космическом корабле должно выполняться автономно на борту самого космического корабля из-за легкой задержки при управлении с Земли.  Для космических аппаратов на Марсе эта легкая задержка означает, что связь с наземными контроллерами занимает от 4 до 21 минуты;  для космических аппаратов во внешней Солнечной системе это может занять несколько часов в каждом направлении.  Самолет должен быть умным и независимым, зная, как выполнять свою основную работу, а также более совершенную научную обработку, такую ​​как оценка и анализ научных данных.  Поскольку на этих расстояниях физический ремонт невозможен, космическому аппарату необходимо автономное обнаружение и разрешение проблем, если они должны продолжать миссию даже после отказа компонентов.  Надежная идентификация и толерантность неисправностей имеют первостепенное значение.

      Авионика - и программное обеспечение полета, размещаемое внутри авионики - образуют центральную нервную систему и мозг космического корабля, постоянно контролируя здоровье системы, сохраняя ее работу и принимая решения о том, что делать дальше.  В будущем космический аппарат будет иметь более умные мозги, что позволит увеличить автономность (космический аппарат потребует все меньше и меньше участия от наземных операторов) и улучшенных возможностей (космический аппарат будет выполнять все более сложные научные исследования).  Чтобы сделать будущий космический корабль более способным и более надежным, продвигается авионика и программное обеспечение для полетов в самых разных областях научных исследований:

  • Космические полеты и многоядерная обработка
  • Вычислительные возможности.
  • Моделирование программного обеспечения
  • Автоматизация операций с миссиями
  • Надежность программного обеспечения и отказоустойчивые архитектуры программного обеспечения полета

Избранные темы исследований

Космические вычисления и многоядерная обработка

      Ультрасовременные космические аппараты имеют один главный процессор управления в центре их авионики, и это ограничивает доступность вычислительной мощности, устойчивость системы к ошибкам, а также своевременность ответов на ошибки в процессоре.  Можно добавить избыточный блок обработки с дополнительной копией процессора, чтобы покрыть эти ошибки и повысить надежность, но это добавляет потребление мощности и делает своевременную реакцию на неисправности основного процессора более сложными. Исследуется, как уменьшить массу и энергопотребление авионики, повысить надежность и гибкость электрооборудования. 

      Одной из областей активных исследований является использование одновременной многоядерной обработки.  Мало того, что многоядерность обеспечивает дополнительную вычислительную мощность, когда это необходимо, она также может позволить более разумное управление питанием за счет сокращения числа активных ядер и, следовательно, энергопотребления, когда условия миссии требуют этого.  В сочетании с временным и пространственно-функциональным разделением, многоядерная обработка может повысить надежность системы путем автономной и динамической маршрутизации вокруг отказоустойчивых ядер.  Это может привести к активному восстановлению при наличии аппаратных и программных сбоев в сценариях, таких как вход, спуск и посадка на планетарных поверхностях, что сейчас невозможно из-за чрезвычайно низких требований к отключению управления. Также имеют место быть успехи в фундаментальных архитектурах космических полетов, которые могут позволить использовать возможности и проекты для разных миссий с совершенно разными масштабами и задачами.  Эти масштабируемые и настраиваемые вычислительные архитектуры могут обеспечить увеличение вычислительных возможностей и общей архитектурной инфраструктуры для всех миссий, от CubeSats и SmallSats до флагманских миссий внешней планеты.  Поскольку эти архитектуры по своей природе очень низки, миссии могут также извлечь выгоду из того, что для научных исследований доступно больше ресурсов (масса, мощность, объем) космических аппаратов.  Эти вычислительные архитектуры могут обеспечить масштабируемость и надежность для размещения сложных, возможно критически важных, автономных программ, которые будут способствовать дальнейшей научной отдаче.

Вычислительные возможности

      Роботизированные космические аппараты продолжают становиться более продвинутыми и более автономными, чтобы увеличить отдачу миссии и дать возможность новым научным исследованиям.  Планирование маршрута, принятие решений и комплексный анализ научных данных на борту – это всего лишь несколько автономных возможностей, которые в настоящее время исследуются, а учёные изучают космические, высоконадежные и высокопроизводительные вычислительные ресурсы для поддержки этих возможностей. Более высокая автономия и научная отдача  могут быть достигнуты путём предоставления космическим аппаратам возможности выполнять высокопроизводительные и сложные программные коды удаленно.  Например, высокоскоростное сжатие данных, сложный комплексный гиперспектральный анализ и слияние нескольких датчиков могут позволить вернуть данные ученым на Земле.  Высокопроизводительные вычислительные возможности позволили бы космическим аппаратам выполнять действия, которые ранее были невозможны, например автономная относительная навигационная система.  Эта вычислительная мощность может также позволить космическому аппарату выполнять комплексный выбор и оценку научных целей, не дожидаясь инструкций от наземного управления.

Программное моделирование

      В настоящее время проводятся различные базовые исследования для совершенствования процесса разработки программного обеспечения с целью создания более надежных полетов.  Разработка системы на основе моделей (MBSE) получила признание и применяется в качестве стандартной методологии для определения требований к системе для различных проектов полета.  Она имеет преимущество в том, чтобы быть более точной при определении поведения системы, чем неформальные текстовые требования, которые могут быть предметом двусмысленности в интерпретации во время проектирования и реализации.  Для облегчения перехода от традиционных методов системных спецификаций к более точным методам MBSE, таким как нотации SysML, для проекта Europa разрабатывается язык текстового моделирования K (язык ядра).  Цель состоит в том, чтобы предоставить достаточно богатую семантику, чтобы все системные модели могли быть представлены этим языком.  Этот язык похож на известные языки официальных спецификаций и вдохновлен SysML в представлении реляционного представления моделей.  Подъязык выражения K можно использовать для указания ограничений в моделях, даже в графическом контексте (например, текстовые выражения на блок-диаграммах).  Системный инженер с базовыми знаниями в области программирования может легко изучить и применить этот метод для спецификации системы, тем самым облегчая процесс принятия MBSE.  В настоящее время проводятся исследования по разработке возможностей анализа на языке К.  Грамматика (синтаксический анализатор) и контролер типов уже завершены, и в настоящее время ведутся работы над переводчиком для автоматического проверщика теоремы.

Автоматизация операций с миссиями

      Операции миссии основаны на телеметрии нисходящей линии связи, чтобы информировать операторов об успешном выполнении команд восходящей линии связи и состоянии здоровья системы полета.  Проанализированы две основные категории данных телеметрии в поддержку операций: отчет о событиях (EVR) и данные о каналовом состоянии (EHA).  Для таких миссий, как Научная Лаборатория Марса (MSL), существует около 4000 каналов данных и 26 000 типов сообщений EVR.  Постоянный мониторинг и оценка значений EVR и EHA является важным мероприятием для операторов миссий.  Существует много сценариев, когда несколько данных EVR и EHA из разных временных точек необходимо анализировать и сопоставлять для оценки состояния здоровья. Чтобы облегчить работу человека, был разработан инструмент мониторинга DASHBOARD для автоматизации мониторинга и анализа функций.  Ключевой технологией DASHBOARD является основанный на правилах движок LogFire, который был разработан собственными силами и связан с инструментом поиска телеметрии.  Методы анализа данных телеметрии выражаются в виде правил с использованием языка специфики домена LogFire и запуска механизма, основанного на правилах, для анализа.  Этот инструмент способен быстро обрабатывать большие объемы данных и автоматически выполнять анализ более полно для многих сложных сценариев.  Он чрезвычайно помог команде операций MSL в ежедневной работе.  В дополнение к вспомогательным операциям инструмент может применяться к проверке последовательности до восходящей линии связи, а также к валидации во время разработки.  С его продемонстрированной эффективностью этот инструмент был включен в качестве стандартной функции для будущих наземных систем, и будет иметь длительные преимущества для научных операций. Предшественник LogFire, инструмент под названием TraceContract (инструмент анализа журналов на основе государственных машин), использовался миссиями в Исследовательском центре NASA Ames во время всей миссии LADEE (Исследователь лунной атмосферы и пылевого окружения) для проверки командных последовательностей против правил полета перед их отправкой на космический корабль LADEE.

Надежность программного обеспечения и отказоустойчивость

      Поскольку космические аппараты становятся всё более способными, и им поручается выполнять всё более сложные задачи, объем программного кода, который им требуется, существенно возрастает.  В то же время улучшена надежность аппаратных средств и созданы зрелые процессы для снижения вероятности сбоев оборудования.  Обеспечение надежности программного обеспечения становится задачей сложнее и сложнее с каждым днём.  Это имеет первостепенное значение для космических полетов, поскольку роботизированные космические аппараты часто работают вне рамок наземных контроллеров и имеют значительную временную задержку по отношению к Земле.  На протяжении большей части такой миссии успех космического корабля полностью контролируется бортовым программным обеспечением полета.  В случае неисправности на борту космического корабля, именно полётное программное обеспечение должно восстановить контроль над космическим кораблем, убедиться, что он находится в безопасном состоянии (мощность, тепло и связь), а затем восстановить контакт с Землей. Но ещё сложнее то, что это также включает в себя нужду в восстановлении после сбоев или аномалий в самом программном обеспечении. 

     Многочисленные группы учёных из разных университетов работают над созданием еще более надежных архитектур программного обеспечения для полетов, чтобы обеспечить непрерывную безопасную работу в случае неожиданных сбоев оборудования или программного обеспечения.  Эти архитектуры включают программное обеспечение полета, которое разделено как на время выполнения, так и на ресурсы, чтобы содержать потенциальные сбои в определенных функциональных областях.  Затем эти области можно быстро восстановить, не затрагивая другие части исполняемого программного обеспечения полета.  В дополнение к разделению программного обеспечения полетов, исследователи также работают над размещением программного обеспечения для полетов через несколько разрозненных процессорных ядер и хостов.  Используя несколько ядер и распределенных архитектур, может быть достигнута дополнительная избыточность, и ПО, которое не предназначено для поддержания здоровья и безопасности космического корабля, может быть изолировано от критически важных для кондиции корабля задач. Также, взяв пример с природы в качестве вдохновения, биоиндустриальные методы могут позволить космическому аппарату иметь иерархию возможностей, которые могут быть выполнены в зависимости от доступных ресурсов.