AU Корабли

Автовисение: как это делают настоящие сборщики

ПИД-регуляторы, антинакопление и поправка на гравитацию — по системам висения, которые сообщество реально качает.

По описаниям авторов кораблей в Мастерской Steam

Держать высоту руками — значит вечно играть тягой и всё равно уплывать. Все серьёзные корабли в этой библиотеке решают задачу одинаково: ПИД-регулятором, подключённым к подъёмным двигателям. Гайд собран по авторам, которые эти системы опубликовали, с их же формулировками там, где точнее не скажешь.

Что делают три буквы

ПИД — пропорциональная, интегральная и дифференциальная составляющие. Регулятору подают команду (нужную вертикальную скорость) и измерение (фактическую), а он выдаёт тягу, которая сводит разницу к нулю.

  • П реагирует на текущее отклонение. Делает основную работу.
  • Д реагирует на скорость изменения ошибки. Гасит раскачку.
  • И накапливает ошибку со временем. Убирает последний упрямый сдвиг.

Настраивать по порядку, а не всё сразу

Порядок важен, и все опубликованные системы в нём сходятся. Обнулите KI и KD и начните с одного KP:

  1. KP. Поднимайте, пока корабль не начнёт вытаскивать себя из свободного падения при команде на нуле. «Слишком большое значение вызовет сильные колебания».
  2. KD. Поднимайте, чтобы «уменьшить размах колебаний, пока не получится плавно выйти на нулевую вертикальную скорость» в том же тесте с падением.
  3. KI. Добавляйте по чуть-чуть в последнюю очередь, чтобы «повысить точность соответствия команды фактической скорости».

Как читать раскачку. Частые мелкие колебания — KP завышен, снижайте. Медленный увод, который никак не сходится, — это как раз работа KI.

Антинакопление: почему И-составляющая мешает

Вот на чём спотыкаются. Пока корабль ещё выправляется, интегратор продолжает накапливать — «накручивается», — а потом мешает вам управлять, когда вы уже дошли до цели. Автор самого скачиваемого ПИДа пишет, что интегратор «начнёт бороться с вашим управлением, как только вы достигли CMD = MEAS».

Лечение простое и его стоит перенять: следить за модулем ошибки и сбрасывать накопитель при превышении порога. В той системе «когда значение переваливает за 100, накопитель сбрасывается» — так И-составляющая по-прежнему помогает довести до цели, но без перелёта.

Поправка на гравитацию — самая полезная настройка

Висящему кораблю нужна постоянная тяга просто чтобы не падать. Заставлять ПИД каждый раз заново это нащупывать — пустая работа. Измерьте один раз и отдайте готовым:

«Измерьте выход CMD по индикатору в режиме висения и подставьте это значение как grav bias — управление вертикальной скоростью в гравитации станет быстрее и стабильнее».

Значение зависит от массы корабля и гравитации планеты, то есть оно своё для каждой пары. Поэтому система, настроенная на Земле, на Луне работать не будет, пока её не перенастроят.

Расположение двигателей меняет настройку

  • Тяга в обе стороны — хороший случай. Авторы советуют «ставить двигатели в обоих направлениях, в идеале равной тяги, чтобы использовать возможности полностью».
  • Только подъём, а вниз за счёт гравитации? Тогда «рекомендуется выставить Ki в ноль» — вниз у интегратора власти нет, и он только навредит.
  • Разреженная атмосфера? В одной из систем есть ограничитель 1–100, который срезает максимальный выход двигателей, — полезно «на планетах с низкой атмосферой».

Задержка — часть схемы

Каждая деталь в цепочке сигнала добавляет такт, а регулятор, реагирующий с опозданием, раскачивается при любой настройке. Совет автора адаптивного висения — держать контур коротким: «подключайте двигатели, измеритель скорости и дальномер/высотомер напрямую к беспроводным передатчикам, добивайтесь минимальной задержки».

С чего начать

Собирать с нуля не обязательно. Эти системы выложены готовыми блоками: вставьте башню в свой корабль, подключите к подъёмным двигателям и высотомеру, потом настройте четыре константы. Один из авторов описывает порядок прямо: «вставьте башню ПИДа в корабль, подключите по примерам, остальное удалите или отправьте в переработку».

Системы, на которые опирается гайд, по распространённости:

Если что-то пригодилось — поставьте автору палец вверх в Мастерской. За этим стоят чьи-то выходные.