Simplest possible simulation on stock KSP

Материал из SpaceProgram Wiki
Версия от 22:16, 4 марта 2019; Greywind (обсуждение | вклад) (Новая страница: «The full Simulation mod pack is relatively reousrce demanding (RSS with medium textures require 12+ GB RAM). But you can try Simulation experience using Stock KSP…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

The full Simulation mod pack is relatively reousrce demanding (RSS with medium textures require 12+ GB RAM). But you can try Simulation experience using Stock KSP with minimal number of mods.

You'll need

Software

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

Mods

kOS scripts

Initial save for KSP

saves/initial_save.sfs from archive

Mission Architect scenarios

ma/duna-depature.mat from archive ma/duna-correction-burn.mat from archive


Installation

Install KSP

Buy KSP on Steam, GOG or developer site and install on your PC. Remember KSP installation folder path (will be referenced next as $KSP_PATH).

Install KSP inital save

  1. Launch KSP
    1. In main menu select "Start new"
    2. Click "New game"
    3. Select game type "Sandbox" and enter name "Simulation"
    4. Click "Start!"
  2. Copy file initial_save.sfs from saves folder from archive to $KSP_PATH/saves/Simulation folder

Install KSPTOT

  • Download latest release archive compatible with your KSP version. Unzip to any folder.
  • This archive also contains KSPTOTConnect plgin (you'll need it on next step).
  • Copy scenarios duna-depature.mat and ma/duna-correction-burn.mat from ma folder from archive to KSPTOT folder.

Install mods

Download archive with kOS release compatible with your KSP version. Unzip into $KSP_PATH folder.
Copy GameData folder from KSPTOT folder to $KSP_PATH folder.

Install kOS scripts

Copy files warpup and res from kos folder from archive to $KSP_PATH/Ships/Script folder.

Setup voice commlink

Install Zello app to your smartphone or use real ptp radio.

Run Simulation

  1. Load initial save in KSP:
    1. Run KSP.
    2. Click "Start game".
    3. Click "Resume saved.
    4. Select "Simulation" and click "Load".
    5. Press Alt+F9 and select initial_save from the list.
  2. Launch kOS server
    Launch kOS server
  3. Run Putty (putty.exe)
  4. Connect to kOS server
    Connect to kOS server
  5. Launch KSPTOT (KSPTrajectoryOptimizationTool.exe)
  6. Connect KSPTOT to KSPTOTConnect
    Connect KSPTOT to KSP
  7. Launch Mission Architect in KSPTOT
  8. Make sure that you have voice commlink up and running (through Zello or radio).

How it works

Only scheme en.png

Data exchange channels are shown on the schema:

  • Mission control uses putty terminal to run kOS commands on the simulation computer:
    • _warput_ command is used to start time warp to the given date mark. Command accepts single argument: the target date mark in the timestamp foramt (number of seconds passed from the epoch). Date timestamps are calculated in KSPTOT.
    • _res_ command prints out ship resouses into terminal.
  • Mission control uses KSPTOT to:
    • Calculate maneuvers data and control their excution by Crew with the help of Mission Architec
    • Get engine startup time with the help of Maneuver Execution Assistant.
    • Convert date from calendar format to timestamp for the warput command (any date field in KSPTOT).
    • Upload maneuver data to KSP.
    • Get telemetry from KSP with MCC Real Time System.
  • Communication between Mission Control and Crew is run through single voice channel over Zello or PTT radio.

Lets start

We have:

  • Space flight simulation (in KSP) up and running on the simulation computer.
  • kOS server is up and runing in KSP.
  • We have putty terminal connected to kOS server and we can use it to control simulation.
  • KSPTOT connected to KSP through KSPTOTConnect and Mission architect opened and ready to use.
  • Voice commchannel ready to use..

We need to assign roles next. We need minimum two participants:

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

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

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

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

  • ЦУП связывается с Экипажем и сообщает что начинает расчет маневра
  • Для для расчета маневра нужно:
    • Загрузить в 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 км и небольшим наклонением.