Разработка симулятора Союз-ТМА часть 1

В закладки

Публикую основную информацию о том, что у нас имеется по симулятору, и как мы собираемся его реализовывать. Проект очень сложный и с каждым днем мы понимаем это все больше. Наша задача — разработать программу, которая будет работать на одном компьютере, не будет требовать специального оборудования и будет позволять симулировать вычислительную систему (компьютерные модели блоков систем корабля, объединенные в одну компьютерную модель), имитировать внешнюю визуальную обстановку (звездное небо, космический корабль, Земля, МКС), имитировать акустическую обстановку (звуки работы систем, двигателей и т.д.). Сердцем симулятора является математическая модель движения, которая состоит из уравнений движения, которые описывают движение космического аппарата по заданным начальным условиям, которые пользователь задает перед началом режима. Мы решили писать модель движения на языке программирования С++. Этот выбор был сделан не случайно, мы изучили многие симуляторы и тренажеры космических кораблей, а так же вели переговоры с разработчиками ПО для ЦПК им. Гагарина(Центр Треанжеростроения в г. Новочеркасск) и выяснили, что самыми часто используемыми и удобными ЯП являются именно Си и С++. Математическая Модель Движения (ММД) будет находится в главной программе управления – «МиУ» и будет в виде динамической библиотеки DLL.

Моделирование и Управление (МиУ) — главная программа, которая позволяет ввести начальные условия, контролировать состояние всех параметров корабля и предоставляет пользователю возможность полного контроля за состоянием КА и всех моделей, как перед началом режима (выставка НУ), так и во время полета (к примеру ввод нештатных ситуаций(НшС)). Пользовательский интерфейс МиУ написан на ЯП C# .NET, т.к. он больше всего подходит для данной задачи. МиУ позволяет вводить начальные условия, отрабатывать их, управлять запуском и остановкой режима, выводить в виде графических форматов параметры текущего положения КА в пространстве (здесь и далее положение КА определяется координатами XYZ в эпохе J2000.0), выводить состояние систем КА, вводить НшС по заданным условиям и многое другое.

ИнПУ — Интегрированный Пульт Управления — входит в состав пульта космонавтов «Нептун-МЭ» и является основным инструментом отображения параметров корабля, с которым взаимодействует пользователь во время симуляции (вариант 3D «от первого лица» пока не рассматриваем). Модель ИнПУ полностью идентична штатному ИнПУ, используемому на ТПК «Союз ТМА» как графически, так и программно. В состав пульта «Нептун-МЭ» входит два таких пульта: ИнПУ-1 и ИнПУ-2 соответственно. На первом этапе ИнПУ будут реализованы в виде двух виртуальных машин для VirtualBOX. Это решение обусловлено тем, что у нас имеется штатная модель ИнПУ для корабля 200й серии (Союз ТМА) в виде исходных кодов написанных на ЯП Pascal. Она работает только в ОС MsDOS и имеет разрядность 16 bit, что не позволяет ее запускать в ОС выше Windows XP, поэтому, что бы не вынуждать пользователя переустанавливать ОС, мы решили использовать несколько ВМ, объединённых в одну сеть виртуальным адаптером. Обмен между моделями ИнПУ реализован в протоколе TCP\IP. Пока есть определенные сложности с обменом, о которых я расскажу в отдельном посте, но всё работает, и два пульта видят друг друга и позволяют производить взаимное управление. Временная задержка между двумя пультами (Δtime) составляет в среднем 50-70 мс в статичном состоянии (когда пользователь не совершает никаких действий с ИнПУ) и 120-200 мс при динамике.

ВС — модель Вычислительной Системы, является комплексом компьютерных моделей всех систем корабля (БЦВМ «Аргон-16», КС-020, КДУ, СИОС, СЖО и т.д.), который состоит из отдельных программных модулей, описывающих алгоритмы бортовых вычислителей и систем корабля. Начальные параметры модель ВС получает от модели движения и от МиУ.

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

Пульт космонавтов «Нептун-МЭ»

Soyuz Developer Team

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

11
Войдите, чтобы видеть ещё 11 комментариев, участвовать в обсуждении и не видеть рекламу.
Показать скрытые комментарии

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Отправить Отмена
[X]
Если не получается зайти отсюда, попробуйте по ссылке.