Первый опыт использования собственного автопилота в Kerbal Space Program
Kerbal Space Program изначально не накладывал ограничений на создание каких-либо дополнений, и потому существует множество модификаций добавляющих новые возможности или упрощающих игру. Сегодня речь пойдет о модификации которая позволяет автоматизировать процесс полета космического корабля, и реализовать Ваш сценарий полета. Возможно люди знакомые с игрой уже подумали о модификации MechJeb, однако – нет, сегодня речь пойдет о другом бриллианте в мире модификаций - kOS: Kerbal Operating System.
Данная модификация реализует машину для выполнения скриптов написанных на собственном же языке, описание и синтаксис которого можно найти по ссылке: https://ksp-kos.github.io/KOS/language.html. Также на данном сайте можно найти описание математических операций, команд и прочего. Подключение к управляющему компьютеру, написание и выполнение скриптов возможно как через графический интерфейс, так и через терминальную программу типа Putty (что несомненно добавляет хардкорности моду).
Ну уж перейдем к делу. Для пробного использования была поставлена задача суборбитального полета.
«Суборбитальный космический полёт — космический полёт летательного аппарата по баллистической траектории со скоростью, меньшей первой космической, то есть недостаточной для вывода на орбиту искусственного спутника Земли.»[wiki].
В моей реализации полет состоит из пяти стадий:
1. Набор вертикальной скорости необходимой для достижения высоты 120 000 м.
UNTIL (ORBIT:APOAPSIS) > 120000
{
LOCK THROTTLE TO (1 - (ORBIT:APOAPSIS / 120000)^3)+0.2.
}
Из этой части скрипта видно использование пропорционального регулятора (хотя некоторые и советовали PID, но я не вижу в этом смысла в данной задаче).
К слову, график регулятора выглядит так:
2. Установка курса 90 градусов:
LOCK STEERING TO HEADING(90,0).
3. Ожидание достижения точки апогея:
UNTIL SHIP:VERTICALSPEED < 50{}
4. Набор вертикальной скорости:
UNTIL SHIP:GROUNDSPEED > 400{}
5. Торможение и активация парашютной системы:
PRINT "Включение двигателя торможения.".
LOCK THROTTLE TO 1.
WAIT 10.
PRINT "Отделение ядра космического корабля.".
PRINT "Отключение системы стабилизации.".
STAGE.
SAS OFF.
WAIT 1.
PRINT "Активация парашютной системы.".
PRINT "Давление частичного раскрытия: 0.04 Па.".
PRINT "Высота полного раскрытия: 1000 м.".
STAGE.
Для наблюдения параметров полета была написана программа мониторинга, запущенная на отдельном компьютере космического корабля. В общем, результат выполнения скрипта Вы можете наблюдать на видео представленном ниже.
P.S. : если кого то заинтересует данная тема то могу скинуть полные тексты скриптов.

