Вы находитесь на странице: 1из 13

Содержание

1.Элементы управления полетом космического аппарата .................................. 2


2.Предметно-ориентированные языки в управлении космическими
аппаратами ............................................................................................................... 6
3.Структура предметно-ориентированного языка на примере Диполь-6 ......... 7
4.Языковой инструментарий ................................................................................ 10
5.Проблемы использования предметно-ориентированных языков ................. 12
Список литературы ............................................................................................... 13

1
Цель: подготовка обзора литературы по теме Языки управления
космическими аппаратами

Задачи: изучить существующие материалы по формированию


программы полета космического аппарата и использованию предметно-
ориентированных языков программировании в управлении полетом.

1. Элементы управления полетом космического аппарата

Управление полетом космического аппарата (КА) осуществляется за


счет подачи на его бортовые системы управляющих воздействий от наземного
комплекса управления (НКУ), бортового комплекса автоматического
управления (БКАУ) и экипажа.

Формирование в ЦУП и передачу на борт КА команд и программ


управления бортовыми системами принято называть командно-программным
управлением (КПУ).

Отложенное, или программно-временное, управление (ПВУ)


обеспечивает выдачу команд в бортовые системы КА вне зон
радиовидимости без участия экипажа или НКУ. Бортовое программно-
временное устройство позволяет управлять КА в отсутствие радиовидимости
между сеансами связи с Землей.

Под командно-программной информацией (КПИ) понимают команды


прямого управления бортовыми системами и массивы цифровой
информации (МЦИ) для БКАУ. Массив цифровой информации
представляет собой организованную по определенным правилам
совокупность 16-разрядных слов, начинающуюся с управляющего слова
записи (УСЗ) и заканчивающуюся контрольной суммой (КС). МЦИ может
состоять из нескольких подмассивов, имеющих разное назначение. В
соответствии с заложенным МЦИ БКАУ в определенном порядке и в
необходимое время выдает на бортовые системы КА требуемые команды.

2
Командно-программное управление КА как составная часть процесса
управления полетом заключается в поэтапном решении следующих
основных задач:

• формирование КПИ;
• контроль достоверности сформированной КПИ с использованием
моделей НКУ и БКАУ;
• передача КПИ в БКАУ;
• анализ результатов передачи КПИ в БКАУ.

В состав КПИ, разрабатываемой для управления орбитальной станцией,


входят:

• МЦИ, предназначенные для управления бортовыми системами и


научной аппаратурой с использованием БВК;
• разовые (прямые) радиокоманды, применяемые для управления
бортовыми системами и научной аппаратурой через директивный
контур управления;
• служебная информация, передаваемая только в адрес командно-
измерительного пункта (КИП) для управления размещенной на них
аппаратурой наземного радиотехнического комплекса (НРТК).

Основным видом управляющей информации для бортового


цифрового вычислительного комплекса (БЦВК) системы управления
движением (СУД) служат суточные программы (СП) - логико-временные
программы функционирования бортовых систем, записываемые в терминах,
применяемых в процессе управления полетом. Они представляют собой
программы работы СУД станции, программы работы бортовых систем и
научной аппаратуры, управляемых через БЦВК СУД. Суточные программы
СУД транслируются в циклограммы ПВУ БЦВК СУД.

Помимо суточных программ для ввода данных в оперативное


запоминающее устройство (ОЗУ) БЦВК используют дополнительные МЦИ.
3
Дополнительные МЦИ представляют собой набор управляющих команд,
предназначенных для прямого управления бортовыми системами.

Программа работы БЦВК СУД формируется в виде МЦИ. Для


формирования МЦИ используют следующие исходные данные (ИД):

• постоянные, хранящиеся в базе данных командного


информационного вычислительного комплекса (ИВК) в виде каталогов
элементов СП;
• переменные, хранящиеся в базе данных командного ИВК в виде
баллистической информации;
• оперативные, в виде информации, вводимой оператором с экрана
дисплея для задания конкретных СП СУД и физических параметров
соответствующих режимов систем.

На основании детального плана полета подготавливается суточная


программа - совокупность управляющих воздействий с временными и
логическими условиями начала и окончания. Суточная программа
преобразуется (транслируется) в МЦИ с учетом свободного ресурса памяти
БЦВК.

Формирование программы сеансов связи (ПСС) заключается в


определении состава, последовательности и временнóй циклограммы
выдачи управляющей информации с Земли в систему управления ОС с целью
выполнения программы полета.

В процессе разработки ПСС формируется КПИ – массивы,


представляющих собой совокупность разовых команд и МЦИ. Массив КПИ
составляется в соответствии со структурой данных, принятой в системе
передачи КПИ. Вся совокупность цифровой информации, входящей в
состав массива КПИ, может быть разделена на два вида:

4
– информация, передаваемая на борт орбитальной станции
(информационная часть КПИ);

– информация, используемая КИП для автоматического выбора


нужного режима функционирования командной радиолинии (КРЛ).

Формирование массивов КПИ проводится оператором посредством


специального программного обеспечения КИВК ЦУП в два этапа:

1. Формирование ПСС для отдельных пунктов; моделирование


распределение информации в ОЗУ системы передачи КПИ всех КИП,
используемых в данном сеансе связи (СС); документирование
результатов моделирования.

2. Передача ПСС из комплекса планирования КИВК в комплекс


реализации, где проводится автоматическое пословное кодирование массивов
КПИ, расчет их контрольных сумм для каждого КИП и запись в архив.

Передача КПИ на КИП проводится по наземным и спутниковым


каналам связи, а также с помощью следующих технических средств:

• рабочей станции на базе персонального компьютера;


• аппаратуры передачи данных, размещенной в ЦУП (АПД-Ц);
• аппаратуры передачи данных в составе КИП (АПД-Н).

Обмен между КИВК ЦУП и КИП проводится пословно. Переданное


слово КПИ записывается в ОЗУ КИП, считывается и передается в ЦУП в
АПД-Ц и там сравнивается. При несовпадении процесс передачи данного
слова повторяется. При совпадении передается следующее слово КПИ. В
конце передачи массива КПИ на средствах ЦУП проводится сравнение
контрольной суммы, рассчитанной в ЦУП, с контрольной суммой, принятой
с КИП [1].

5
2. Предметно-ориентированные языки в управлении
космическими аппаратами

Применение БЦВК в составе бортового комплекса управления


обеспечивает возможность введения по КРЛ циклограммы программно-
временно́ го управления из НКУ в БКУ в виде МЦИ. Формирование МЦИ для
бортового комплекса управления основано на использовании искусственных
формальных языков описания планируемых управляющих воздействий,
функций и режимов функционирования бортовых систем [2].

В узкоспециализированных направлениях, таких как управление КА,


распространен языково-ориентированный подход к программированию -
подход к программированию, основанный на создании специальных языков
программирования – предметно-ориентированных языков (domain-specific
language, DSL) для решения задач в конкретной предметной области.

Для автоматизации процесса управления широко применяются


проблемно-ориентированные языки. Стандарт ECSS-E-ST-70-32C: Test and
Operations Procedure Language (PLUTO) определяет, какие элементы должны
содержать любые языки разработки процедур управления и испытания КА:

• условное ветвление;
• циклы;
• ожидание достижения некоторого времени и истечения
определенного интервала времени;
• ожидание выполнения условия или наступления события;
• использование локальных переменных, значение которых можно
изменять;
• математические, временные, строковые функции;
• комментарии к тексту;
• возможность выдавать сообщения с подтверждением пользователя, а
также запрашивать у него ввод;
6
• поддержка единиц измерения и пр. [3]

Процесс создания языка с собственным синтаксисом, т. е. внешнего


DSL, заключается в следующих этапах:

1. Определение семантической модели;

2. Определение синтаксической модели (абстрактный и конкретный


синтаксис);

3. Определение правил трансформации (правила, по которым


абстрактное представление транслируется в исполнимое).

3. Структура предметно-ориентированного языка на


примере Диполь-6
Диполь-6 – предметно-ориентированный язык, созданный для
автоматического проведения испытаний посредством разработок
специальных алгоритмов – циклограмм.

Целью данных испытаний является контроль функционирования как


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

При разработке данного языка были выдвинуты следующие требования:

• простота разработки и анализа циклограмм;


• использование русскоязычной лексики, близкой к терминологии
данной области;
• использование конструкций, учитывающих специфику объекта
контроля;
• наличие структур следования, ветвления и повторения;

7
• язык должен быть универсален для возможности проведения
испытаний на различных аппаратно-программных комплексах;
• идентификаторы и назначение основных операций должны быть
аналогичны существующем в уже используемом языке.

На рисунке 1 изображена структура языка, верхний уровень которой


образует выполняемая циклограмма, а нижний – операции, состоящие из
данных и действий.

Рисунок 1 – Структура конструкций языка

Конструкции нижнего уровня записываются с помощью таких лексем


как идентификаторы и ключевые слова.

Базовыми типами данных являются целый тип, вещественный тип и


литерный. На их основе можно создавать производные типы.

Окружением языка является система дежурного контроля, которая


проверяет нахождение значений требуемых параметров в указанных допусках
и в случае выхода значений какого-либо параметра из допуска выполняет
предусмотренную реакцию.

Область действия переменных характеризуется четким разграничением


по модулям (рисунок 2), вместе с программными единицами образуется
иерархическая структура (циклограмма → заявка → процесс управления).

8
Процесс управления – отдельный логический процесс, организующий
интерпретацию циклограмм в соответствии с их приоритетом.

Заявка – отдельная циклограмма являющаяся головной для


запущенных из нее циклограмм, или стек циклограмм времени выполнения.

Рисунок 2 – Области действия переменных

Из рисунка 2 видно, что в языке выделены следующие области:

• глобальная, соответствующая всему контексту выполнения всех


циклограмм;
• процессная, соответствующая контексту выполнения отдельного
процесса управления (объекты, определенные в этой области
доступны из всех циклограмм этого процесса управления);
• локальная, соответствует контексту выполнения отдельной
циклограммы.

Верхний уровень взаимодействия - между процессами управления -


осуществлен псевдопараллельно (после завершения шага в первом процессоре
управление передается второму, затем снова первому и т. д.).
9
Средний уровень взаимодействия – между процессом управления и
заявками – осуществлен по принципу приоритетов (каждой заявке
присваивается приоритет, в соответствии с которым определяется порядок их
выполнения).

Нижний уровень взаимодействия – между заявками и циклограммами –


осуществлен по принципу стека (в основании стека - заявка, она не
выполняется, пока не выполнятся дочерние циклограммы). [4]

4. Языковой инструментарий

Существуют два основных вида предметно-ориентированных языков:


внешние (external DSL) и внутренние (internal DSL или embedded DSL).
Внешние DSL имеют собственный синтаксис, отделенный от основного
языка приложения. Внутренние DSL используют в своей основе язык
программирования общего назначения.

Для определения конкретного синтаксиса языка и задания правил


трансформации путем построения транслятора языка есть готовые средства
различного рода. Для определения же семантической модели не существует
специальных программных средств, каждая команда разработчиков решает
проблему представления семантики DSL самостоятельно, обычно описывая
метамодель языка на одном из языков программирования (как правило,
языков программирования общего назначения).

Одной из важных проблем в создании и дальнейшем использовании


DSL является наличие языкового инструментария (language workbench).
Языковые инструментальные средства представляют собой
специализированные интегрированные среды разработки (integrated
development environment, IDE) для определения и создания DSL.

В простейшем случае при создании внутреннего DSL выбирается


один из языков программирования общего назначения в качестве базового

10
языка и на его основе разрабатывается библиотека, своего рода надстройка
над языком, которая затем используется в определенном стиле, как
правило, для управления отдельными аспектами разрабатываемой
программной системы.

Необходимо помнить, что в отличие от внешнего DSL при разработке


внутреннего DSL грамматика базового языка накладывает ограничения на
выразительные возможности языка. Чем менее гибкая грамматика базового
языка, тем менее удобен и эффективен будет DLS. Примерами таких языков
являются Ruby, Python, Scala, C#, F#, Haskell.

Преимуществом выбора языка общего назначения для создания


внутреннего DLS является уже готовый современный языковой
инструментарий. Недостатком – ограничения в виде грамматики базового
языка.

Иной подход к созданию DSL – «extensible programming»–


использование языков программирования с настраиваемым синтаксисом.
Такие языки позволяют расширять их грамматику, возможности трансляторов
и средств выполнения и разработки для конкретных целей. Такими языками
являются, например, Forth, Common Lisp, Nemerle, Racket, Helvetia.

Преимущество языков с настраиваемым синтаксисом – отсутствие


ограничений по грамматике. Недостаток - при попытке расширения
грамматики она может стать неоднозначной, т. е. возможно несколько
интерпретаций одной и той же строки исходного кода. Проблема
неоднозначности грамматик может быть решена путем отказа от
использования текстовой грамматики как таковой. [5]

11
5. Проблемы использования предметно-
ориентированных языков

Большое разнообразие существующих языков управления вызвало


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

а) трансляторы с одного языка управления на другой встраиваются


в уже созданные программные системы управления;

б) разработано ПО, позволяющее на основе анализа выбранной


процедуры, генерировать процедуру на любом другом известном
системе скриптовом языке управления КА.

В сфере языковых инструментариев существует проблема


совместимости расширений языка друг с другом. Частично данная проблема
решается в системе метапрограммирования JetBrains MPS. Данная система
работает с программой не как с текстом, а хранит ее как синтаксическое
дерево. Так как MPS не использует текстовое представление, то вместо
обычного текстового редактора для работы с кодом предлагается
использовать специальный проекционный редактор . Для каждого узла
синтаксического дерева редактор создает проекцию – часть экрана, с которой
можно взаимодействовать.

Кроме этого, пока еще не существует стандартов языковых


инструментариев, что приводит к невозможности переноса разрабатываемых
DSL между различными средами.

12
Список литературы
1. Соловьев В. А., Лысенко Л. Н., Любинский В. Е. Управление
космическими полетами. В 2 т. / Под общ. ред. Л. Н. Лысенко. М.:
Изд-во МГТУ им. Н. Э. Баумана, 2009. Т. 2. 426 с.
2. Брега А. Н., Коваленко А. А. Командно-программное управление
полетом Российского сегмента МКС // Космическая техника и
технологии. – 2016. №2(13). – С. 90-104.
3. Космынина Н. А. Языки управления космическими аппаратами. / Н.
А. Космынина // Труды МАИ. – 2015. – №81. – С. 28-42.
4. Барков А. В. Структура проблемно-ориентированного языка
испытаний космических аппаратов. / А. В. Барков // Вестник
СибГАУ. – 2006. – №5(12). – С. 15-18.
5. Ботов Д. С. Обзор современных средств создания и поддержки
предметно-ориентированных языков программирования. / Д. С.
Ботов // Вестник Южно-Уральского государственного университета.
2013. – Т. 13, №1. – С. 10-15.

13

Вам также может понравиться