Простейшая симуляция на стоковом KSP — различия между версиями

Материал из SpaceProgram Wiki
Перейти к: навигация, поиск
(Как работает симуляция)
 
(не показано 11 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
Полная сборка симуляции довольно требовательная к ресурсам компьютера - в основном в плане оперативной памяти (минимум нужно 12 гигабайт ОЗУ).
 
Полная сборка симуляции довольно требовательная к ресурсам компьютера - в основном в плане оперативной памяти (минимум нужно 12 гигабайт ОЗУ).
Поэтому попробовать процесс симуляции можно на стоковом KSP минимальным набором нужных модов.
+
Поэтому попробовать процесс симуляции можно на стоковом KSP с минимальным набором нужных модов.
  
 
= Что понадобится =
 
= Что понадобится =
 
== Необходимое ПО ==
 
== Необходимое ПО ==
*Kerbal Space Program 1.6.0+ [https://store.steampowered.com/app/220200/Kerbal_Space_Program/]
+
*Kerbal Space Program 1.6.0+ [https://store.steampowered.com/app/220200/Kerbal_Space_Program/].
*KSPTOT 1.6.0+ [https://github.com/Arrowstar/ksptot/releases]
+
*KSPTOT 1.6.0+ [https://github.com/Arrowstar/ksptot/releases].
*Putty [https://www.putty.org/]
+
*Putty [https://www.putty.org/].
 +
*Zello - mobile push-to-talk рация (или настоящая рация).
  
 
== Необходимые моды ==
 
== Необходимые моды ==
*kOS [https://github.com/KSP-KOS/KOS/releases]
+
*kOS [https://github.com/KSP-KOS/KOS/releases].
*KSPTOTConnect [https://github.com/Arrowstar/ksptot/releases]
+
*KSPTOTConnect [https://github.com/Arrowstar/ksptot/releases].
  
 
== kOS скрипты ==
 
== kOS скрипты ==
*kos/warpup из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.1.zip архива]
+
*kos/warput из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива].
*kos/res из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.1.zip архива]
+
*kos/res из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива].
  
 
== Стартовый сейв для KSP ==
 
== Стартовый сейв для KSP ==
saves/initial_save.sfs из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.1.zip архива]
+
saves/initial_save.sfs из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива].
  
 
== Шаблоны для Mission Architect ==
 
== Шаблоны для Mission Architect ==
ma/duna-depature.mat из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.1.zip архива]
+
ma/duna-depature.mat из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива].
 +
ma/duna-correction-burn.mat из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива].
 +
 
  
 
= Установка =
 
= Установка =
 
== Установка КСП ==
 
== Установка КСП ==
Купите KSP в одном из магазинов (Стим, ГоГ, Сайт разработчи) и установите на ваш компьютер.
+
Купите KSP в одном из магазинов (Steam, GOG, cайт разработчиков) и установите на ваш компьютер.
 
Запомните путь к папке, куда была установлена игра (далее он будет указываться как $KSP_PATH).
 
Запомните путь к папке, куда была установлена игра (далее он будет указываться как $KSP_PATH).
  
Строка 33: Строка 36:
 
## Выберите тип игры "Песочница", название "Симуляция"
 
## Выберите тип игры "Песочница", название "Симуляция"
 
## Нажмите "Пуск!"
 
## Нажмите "Пуск!"
# Скопируйте файл initial_save.sfs из папки saves из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.1.zip архива] в папку $KSP_PATH/saves/Симуляция
+
# Скопируйте файл initial_save.sfs из папки saves из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива] в папку $KSP_PATH/saves/Симуляция
  
 
== Установка KSP TOT ==
 
== Установка KSP TOT ==
Скачайте архив с релизом KSP TOT под вашу версию KSP. Распакуйте архив в удобную вам папку.
+
*Скачайте архив с релизом KSP TOT под вашу версию KSP. Распакуйте архив в удобную вам папку.
Кроме программы KSP TOT в этом же архиве лежит плагин KSPTOTConnect.
+
*Кроме программы KSP TOT в этом же архиве лежит плагин KSPTOTConnect.
 +
*Скопируйте сценарии duna-depature.mat и ma/duna-correction-burn.mat из папки ma [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива] в папку KSPTOT.
  
 
== Установка модов ==
 
== Установка модов ==
Строка 44: Строка 48:
  
 
== Установка скриптов kOS ==
 
== Установка скриптов kOS ==
Скопируйте файлы warpup и res из папки kos из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.1.zip архива] в папку $KSP_PATH/Ships/Script
+
Скопируйте файлы warpup и res из папки kos из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива] в папку $KSP_PATH/Ships/Script.
 +
 
 +
== Настройка голосового канала ==
 +
Установите приложение Zello на смартфон или используйте настоящую рацию.
  
 
= Запуск симуляции =
 
= Запуск симуляции =
Строка 53: Строка 60:
 
## Выберите "Симуляция" и нажмите "Загрузить".
 
## Выберите "Симуляция" и нажмите "Загрузить".
 
## Нажмите Alt+F9 и выберите initial_save из списка.
 
## Нажмите Alt+F9 и выберите initial_save из списка.
# Включите kOS сервер<br>[[Файл:Start kos server.gif|thumb|caption]]
+
# Включите kOS сервер [[Файл:Start kos server.gif|none|thumb|Запуск kOS сервера]]
 
# Запустите Putty (putty.exe)
 
# Запустите Putty (putty.exe)
# Подключитесь к kOS серверу<br>[[Файл:Connect to kos server.gif|thumb|caption]]
+
# Подключитесь к kOS серверу [[Файл:Connect to kos server.gif|none|thumb|Подключение к kOS серверу]]
 
# Запустите KSP TOT (KSPTrajectoryOptimizationTool.exe)
 
# Запустите KSP TOT (KSPTrajectoryOptimizationTool.exe)
# Подключитесь к KSPTOTConnect<br>[[Файл:Connect to ksptot.gif|thumb|caption]]
+
# Подключитесь к KSPTOTConnect [[Файл:Connect to ksptot.gif|none|thumb|Подключение KSPTOT к KSP]]
# Запустите Архитектор Миссий в KSPTOT
+
# Запустите Mission Architect в KSPTOT
 +
# Убедитесь что работает голосовая связь через Zello или рацию.
  
 
= Как работает симуляция =
 
= Как работает симуляция =
*Итак в KSP идет симуляция полета.
+
[[Файл:Only scheme..png|right|512px]]
 +
На схеме показаны каналы обмена информацией внутри симуляции:
 +
* Через putty терминал ЦУП запускает kOS команды на компьютере симуляции:
 +
** Команда warput используется для ускорения времени до нужного момента. Команда принимает один аргумент - дату до которой нужно ускорить время в формате количества секунд с начала эпохи. Даты в этом формате получаются из KSPTOT.
 +
** Команда res выдает в терминал информацию о запасах ресурсов на борту.
 +
* С помощью KSPTOT ЦУП делает следующее:
 +
** Утилита Mission Architector (MA) используется для расчета маневров и контроля их выполнения экипажем.
 +
** Утилита Maneuver Execution Assistant используется для получения времени включения двигателей.
 +
** Любое поле для ввода даты используется для получения даты в формате "количество секунд с начала эпохи" для команды warput.
 +
** Загружает данные маневра в KSP
 +
** MCC Real Time System может использоваться для получения телеметрии из KSP
 +
* Связь между ЦУПом и Экипажем идет через голосовой канал связи (Zello или рацию).
 +
 
 +
= Приступаем к симуляции полета =
 +
Итак:
 +
KSP идет симуляция полета.
 
*Запущен kOS сервер.
 
*Запущен kOS сервер.
 
*У нас есть kOS терминал, с помощью которого мы можем контролировать симуляцию.
 
*У нас есть kOS терминал, с помощью которого мы можем контролировать симуляцию.
*KSPTOT подключен к KSP через KSPTOTConnect и запущен Архитектор Миссий.
+
*KSPTOT подключен к KSP через KSPTOTConnect и запущен Mission Architect.
[[Файл:Only scheme..png|800px]]
+
*Голосовой канал связи готов к использованию.
 +
 
 +
Далее назначаем роли. Минимум вам понадобится два человека:
 +
*Один (далее ЦУП) будет совмещать роли Руководителя Полета, Главного оператора, Менеджера ресурсов и Баллистика
 +
*Другой (далее Экипаж) будет выполнять все роли в экипаже: Командира и пилота.
 +
 
 +
Наш план полета:
 +
* Мы начинаем на орбите Кербина в период, удобный для отлета к Дюне.
 +
* Наша задача:
 +
** Рассчитать маневр отлета к Дюне.
 +
** Выполнить его.
 +
** Проверить параметры орбиты после выполнения маневра.
 +
** Если нужно, рассчитать коррекцию.
 +
 
 +
Как выполнить план полета:
 +
* ЦУП связывается с Экипажем и сообщает что начинает расчет маневра
 +
* Для для расчета маневра нужно:
 +
** Загрузить в MA сценарий расчет отлета к Дюне (duna-depature.mat)
 +
** Импортировать параметры начальной орбиты из KSP
 +
** Запустить оптимизацию
 +
* После завершения оптимизации ЦУП связывается с Экипажем и сообщает что маневр готов
 +
* Экипаж подтверждает готовность принять маневр.
 +
* ЦУП загружает маневр в KSP и сообщает Экипажу что маневр загружен
 +
* Экипаж подтверждает, что видит маневр и для проверки называет величину маневра
 +
* ЦУП теперь должен рассчитать время включения двигателя
 +
** Для этого в утилиту Maneuver Execution Assistant импортируются параметры текущей орбиты
 +
** Импортируются параметры маневра.
 +
** В терминале запускается команда "run res.", которая выводит текущую массу корабля
 +
** Масса корабля и параметры двигательной установки (Isp=350s, Thrust=250kN) вводятся в Maneuver Execution Assistant.
 +
** Нажимается кнопка "Compute Burn Timing Information"
 +
* ЦУП вызывает экипаж и сообщает ему время включения двигателя относительно времени выполнения маневра (Burn Start Time = T-100 sec -> Время включения двигателя 100 секунд до времени маневра).
 +
* Экипаж подтверждает получение времени включения двигателя.
 +
* ЦУП запрашивает у экипажа, сколько времени ему нужно на подготовку к маневру
 +
* Экипаж оценивает время на построение ориентации корабля для выполнения маневра (в минутах, например 1 минута) и сообщает ЦУПу.
 +
* ЦУП рассчитывает дату для ускорения времени по формуле: T = Время маневра - Время включения двигателя - Время на подготовку. Допустим время маневра - 40210 секунд, время включения двигателя - 100 секунд до маневра и экипаж просит 1 минуту (60 секунд) на подготовку. Дата для перемотки времени = 40050.
 +
* ЦУП запрашивает у Экипажа готовность к ускорению времени.
 +
* Экипаж подтверждает
 +
* ЦУП вводит в терминале команду "run warput(40050)." - начинается ускорение времени в игре.
 +
* ЦУП запрашивает у Экипажа, видит ли тот ускорение времени.
 +
* Экипаж подтверждает.
 +
* Когда ускорение времени заканчивается, Экипаж сообщает об этом ЦУПу.
 +
* Экипаж выполняет маневр:
 +
** Строит ориентацию для маневра.
 +
** В установленный момент времени запускает двигатель.
 +
** ЦУП наблюдает за выполнением маневра с помощью телеметрии KSPTOT.
 +
** Ждет когда индикатор dV маневра дойдет до нуля.
 +
* Экипаж сообщает ЦУПу о успешном выполнении маневра.
 +
* ЦУП проверяет результат выполнения маневра:
 +
** Загружает в MA сценарий duna-correction-burn.mat
 +
** Смотрит на параметры орбиты в боксе Final Spacecarft State: если там Orbiting about = Duna и в попапе при наведении Periapsis Alt. = 100-200 км, то коррекция не нужна. Если нет, то:
 +
** Запускается оптимизация
 +
** Если в результате оптимизации получается орбита, удовлетворяющая граничным условиям (Periapsis Alt. = 100 km, Inclanation = 0-10 degree), то маневр передается экипажу для исполнения как и было сделано ранее. Если нет, то:
 +
** Надо попробовать увеличить диапазоны переменных оптимизации или время маневра
 +
* План полета считается выполненным, если после коррекции корабль оказывается на курсе, ведущем к Дюне с перицентром орбиты ~100 км и небольшим наклонением.

Текущая версия на 08:22, 5 марта 2019

Полная сборка симуляции довольно требовательная к ресурсам компьютера - в основном в плане оперативной памяти (минимум нужно 12 гигабайт ОЗУ). Поэтому попробовать процесс симуляции можно на стоковом KSP с минимальным набором нужных модов.

Что понадобится

Необходимое ПО

  • Kerbal Space Program 1.6.0+ [1].
  • KSPTOT 1.6.0+ [2].
  • Putty [3].
  • Zello - mobile push-to-talk рация (или настоящая рация).

Необходимые моды

kOS скрипты

Стартовый сейв для KSP

saves/initial_save.sfs из архива.

Шаблоны для Mission Architect

ma/duna-depature.mat из архива. ma/duna-correction-burn.mat из архива.


Установка

Установка КСП

Купите KSP в одном из магазинов (Steam, GOG, cайт разработчиков) и установите на ваш компьютер. Запомните путь к папке, куда была установлена игра (далее он будет указываться как $KSP_PATH).

Установка начального сейва симуляции

  1. Запустите KSP
    1. В главном меню выберите "Начать игру"
    2. Далее выберите "Новая игра"
    3. Выберите тип игры "Песочница", название "Симуляция"
    4. Нажмите "Пуск!"
  2. Скопируйте файл initial_save.sfs из папки saves из архива в папку $KSP_PATH/saves/Симуляция

Установка KSP TOT

  • Скачайте архив с релизом KSP TOT под вашу версию KSP. Распакуйте архив в удобную вам папку.
  • Кроме программы KSP TOT в этом же архиве лежит плагин KSPTOTConnect.
  • Скопируйте сценарии duna-depature.mat и ma/duna-correction-burn.mat из папки ma архива в папку KSPTOT.

Установка модов

Скачайте архив с релизом kOS под вашу версию KSP. Распакуйте архив в папку $KSP_PATH.
Скопируйте папку GameData из папки куда разархивировали KSP TOT в папку $KSP_PATH.

Установка скриптов kOS

Скопируйте файлы warpup и res из папки kos из архива в папку $KSP_PATH/Ships/Script.

Настройка голосового канала

Установите приложение Zello на смартфон или используйте настоящую рацию.

Запуск симуляции

  1. Запустите начальный сейв в KSP:
    1. Запустите KSP.
    2. Нажмите "Начать игру".
    3. Нажмите "Сохраненная игра".
    4. Выберите "Симуляция" и нажмите "Загрузить".
    5. Нажмите Alt+F9 и выберите initial_save из списка.
  2. Включите kOS сервер
    Запуск kOS сервера
  3. Запустите Putty (putty.exe)
  4. Подключитесь к kOS серверу
    Подключение к kOS серверу
  5. Запустите KSP TOT (KSPTrajectoryOptimizationTool.exe)
  6. Подключитесь к KSPTOTConnect
    Подключение KSPTOT к KSP
  7. Запустите Mission Architect в KSPTOT
  8. Убедитесь что работает голосовая связь через Zello или рацию.

Как работает симуляция

Only scheme..png

На схеме показаны каналы обмена информацией внутри симуляции:

  • Через putty терминал ЦУП запускает kOS команды на компьютере симуляции:
    • Команда warput используется для ускорения времени до нужного момента. Команда принимает один аргумент - дату до которой нужно ускорить время в формате количества секунд с начала эпохи. Даты в этом формате получаются из KSPTOT.
    • Команда res выдает в терминал информацию о запасах ресурсов на борту.
  • С помощью KSPTOT ЦУП делает следующее:
    • Утилита Mission Architector (MA) используется для расчета маневров и контроля их выполнения экипажем.
    • Утилита Maneuver Execution Assistant используется для получения времени включения двигателей.
    • Любое поле для ввода даты используется для получения даты в формате "количество секунд с начала эпохи" для команды warput.
    • Загружает данные маневра в KSP
    • MCC Real Time System может использоваться для получения телеметрии из KSP
  • Связь между ЦУПом и Экипажем идет через голосовой канал связи (Zello или рацию).

Приступаем к симуляции полета

Итак:

  • В KSP идет симуляция полета.
  • Запущен kOS сервер.
  • У нас есть kOS терминал, с помощью которого мы можем контролировать симуляцию.
  • KSPTOT подключен к KSP через KSPTOTConnect и запущен Mission Architect.
  • Голосовой канал связи готов к использованию.

Далее назначаем роли. Минимум вам понадобится два человека:

  • Один (далее ЦУП) будет совмещать роли Руководителя Полета, Главного оператора, Менеджера ресурсов и Баллистика
  • Другой (далее Экипаж) будет выполнять все роли в экипаже: Командира и пилота.

Наш план полета:

  • Мы начинаем на орбите Кербина в период, удобный для отлета к Дюне.
  • Наша задача:
    • Рассчитать маневр отлета к Дюне.
    • Выполнить его.
    • Проверить параметры орбиты после выполнения маневра.
    • Если нужно, рассчитать коррекцию.

Как выполнить план полета:

  • ЦУП связывается с Экипажем и сообщает что начинает расчет маневра
  • Для для расчета маневра нужно:
    • Загрузить в MA сценарий расчет отлета к Дюне (duna-depature.mat)
    • Импортировать параметры начальной орбиты из KSP
    • Запустить оптимизацию
  • После завершения оптимизации ЦУП связывается с Экипажем и сообщает что маневр готов
  • Экипаж подтверждает готовность принять маневр.
  • ЦУП загружает маневр в KSP и сообщает Экипажу что маневр загружен
  • Экипаж подтверждает, что видит маневр и для проверки называет величину маневра
  • ЦУП теперь должен рассчитать время включения двигателя
    • Для этого в утилиту Maneuver Execution Assistant импортируются параметры текущей орбиты
    • Импортируются параметры маневра.
    • В терминале запускается команда "run res.", которая выводит текущую массу корабля
    • Масса корабля и параметры двигательной установки (Isp=350s, Thrust=250kN) вводятся в Maneuver Execution Assistant.
    • Нажимается кнопка "Compute Burn Timing Information"
  • ЦУП вызывает экипаж и сообщает ему время включения двигателя относительно времени выполнения маневра (Burn Start Time = T-100 sec -> Время включения двигателя 100 секунд до времени маневра).
  • Экипаж подтверждает получение времени включения двигателя.
  • ЦУП запрашивает у экипажа, сколько времени ему нужно на подготовку к маневру
  • Экипаж оценивает время на построение ориентации корабля для выполнения маневра (в минутах, например 1 минута) и сообщает ЦУПу.
  • ЦУП рассчитывает дату для ускорения времени по формуле: T = Время маневра - Время включения двигателя - Время на подготовку. Допустим время маневра - 40210 секунд, время включения двигателя - 100 секунд до маневра и экипаж просит 1 минуту (60 секунд) на подготовку. Дата для перемотки времени = 40050.
  • ЦУП запрашивает у Экипажа готовность к ускорению времени.
  • Экипаж подтверждает
  • ЦУП вводит в терминале команду "run warput(40050)." - начинается ускорение времени в игре.
  • ЦУП запрашивает у Экипажа, видит ли тот ускорение времени.
  • Экипаж подтверждает.
  • Когда ускорение времени заканчивается, Экипаж сообщает об этом ЦУПу.
  • Экипаж выполняет маневр:
    • Строит ориентацию для маневра.
    • В установленный момент времени запускает двигатель.
    • ЦУП наблюдает за выполнением маневра с помощью телеметрии KSPTOT.
    • Ждет когда индикатор dV маневра дойдет до нуля.
  • Экипаж сообщает ЦУПу о успешном выполнении маневра.
  • ЦУП проверяет результат выполнения маневра:
    • Загружает в MA сценарий duna-correction-burn.mat
    • Смотрит на параметры орбиты в боксе Final Spacecarft State: если там Orbiting about = Duna и в попапе при наведении Periapsis Alt. = 100-200 км, то коррекция не нужна. Если нет, то:
    • Запускается оптимизация
    • Если в результате оптимизации получается орбита, удовлетворяющая граничным условиям (Periapsis Alt. = 100 km, Inclanation = 0-10 degree), то маневр передается экипажу для исполнения как и было сделано ранее. Если нет, то:
    • Надо попробовать увеличить диапазоны переменных оптимизации или время маневра
  • План полета считается выполненным, если после коррекции корабль оказывается на курсе, ведущем к Дюне с перицентром орбиты ~100 км и небольшим наклонением.