Простейшая симуляция на стоковом KSP — различия между версиями
м (→Приступаем к симуляции полета:  название Архитектор Миссии заменено на его иностранный аналог)  | 
				Greywind (обсуждение | вклад)   (→Как работает симуляция)  | 
				||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 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 рация (или настоящая рация).  | *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/warput из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.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.2.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.2.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.2.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 архива]  | + | ma/duna-correction-burn.mat из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива].  | 
| Строка 48: | Строка 48: | ||
== Установка скриптов kOS ==  | == Установка скриптов kOS ==  | ||
| − | Скопируйте файлы warpup и res из папки kos из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива] в папку $KSP_PATH/Ships/Script  | + | Скопируйте файлы warpup и res из папки kos из [https://github.com/1greywind/simplest-possible-simulation/archive/v0.2.zip архива] в папку $KSP_PATH/Ships/Script.  | 
== Настройка голосового канала ==  | == Настройка голосового канала ==  | ||
| Строка 76: | Строка 76: | ||
* С помощью KSPTOT ЦУП делает следующее:  | * С помощью KSPTOT ЦУП делает следующее:  | ||
** Утилита Mission Architector (MA) используется для расчета маневров и контроля их выполнения экипажем.  | ** Утилита Mission Architector (MA) используется для расчета маневров и контроля их выполнения экипажем.  | ||
| − | ** Утилита Maneuver Execution   | + | ** Утилита Maneuver Execution Assistant используется для получения времени включения двигателей.  | 
** Любое поле для ввода даты используется для получения даты в формате "количество секунд с начала эпохи" для команды warput.  | ** Любое поле для ввода даты используется для получения даты в формате "количество секунд с начала эпохи" для команды warput.  | ||
** Загружает данные маневра в KSP  | ** Загружает данные маневра в KSP  | ||
Текущая версия на 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).
Установка начального сейва симуляции
-  Запустите KSP
- В главном меню выберите "Начать игру"
 - Далее выберите "Новая игра"
 - Выберите тип игры "Песочница", название "Симуляция"
 - Нажмите "Пуск!"
 
 - Скопируйте файл 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 на смартфон или используйте настоящую рацию.
Запуск симуляции
-  Запустите начальный сейв в KSP:
- Запустите KSP.
 - Нажмите "Начать игру".
 - Нажмите "Сохраненная игра".
 - Выберите "Симуляция" и нажмите "Загрузить".
 - Нажмите Alt+F9 и выберите initial_save из списка.
 
 - Включите kOS сервер
 - Запустите Putty (putty.exe)
 - Подключитесь к kOS серверу
 - Запустите KSP TOT (KSPTrajectoryOptimizationTool.exe)
 - Подключитесь к KSPTOTConnect
 - Запустите Mission Architect в KSPTOT
 - Убедитесь что работает голосовая связь через Zello или рацию.
 
Как работает симуляция
На схеме показаны каналы обмена информацией внутри симуляции:
-  Через 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 км и небольшим наклонением.