Содержание
Введение
Читать много, очень.
В данном руководстве я хочу показать вам и поделиться своим опытом в сфере самонаведения для ракет. Сам я специализируюсь на создании ПТУРов, ракет самонаведения (земля-воздух, воздух-воздух), наземной техники (танки, ЗРК) и немного авиации. Немного примеров моих работ вы можете увидеть в Steam: iHid27, однако публикую я мало, в основном пощу примеры в сообществах.
Я знаю, что здесь есть гайд на самонаведение, однако, я думаю, что он довольно поверхностный и не показывает более продвинутых фишек.
Основываться я буду на своих работах, а именно AAM — F128 Rex Coeli M, AAM — X56M AGaTS и AAM — X112C IAGaTS.
Буду рад обратной связи, ведь она поможет улучшению систем самонаведения.
Что потребуется для хорошего самонаведения?
Если вы хотите сделать хорошую ГСН, то вам потребуются:
- Хорошие знания в постройках и физике People Playground.
- Умение пользоваться модом Object Editor.
- Сами моды: Object Editor и Better Circuits V2.
Сами моды вы можете загрузить в Steam:
- https://steamcommunity.com/sharedfiles/filedetails/?id=3316656363
- https://steamcommunity.com/sharedfiles/filedetails/?id=2590195142
- Better Circuits V2 — позволит отключить задержку передачи сигнала (0.1 секунды) на большинстве предметов. Без этого ни одна более-менее продвинутая система не сможет работать, поскольку время реакции будет очень запоздалым.
- Object Editor — позволяет менять большинство характеристик предметов. Никакой тонкой настройки самонаведения без этого мода не получится.
При использовании данные моды не включаются в список нужных для постройки, так что можете пользоваться ими спокойно (за исключением предметов из Better Circuits V2, однако ими мы в гайде пользоваться не будем).
Приступим 🙂
1. Классическая схема наведения
Все мы прекрасно знаем эту схему, два детектора, стабилизатор и векторы тяги.

Классическая схема ГСН
И даже тут, есть что рассказать.
Во-первых, в контекстом меню каждого объекта, через который проходит сигнал, вы должны нажать "Enable 0-delay", что, логично, отключит задержку у проводов. Это нужно делать всегда и везде.

"Enable 0-delay"
Во-вторых, всегда используйте детекторы на металл, чтобы ракета не навелась на землю.
Далее мы углубимся в теорию. Как вы могли заметить, детекторы наклонены под определённым углом. Этот угол мы назовём угол к горизонту, то есть угол между детектором и горизонтом. Далее его обозначение будет — αᵣ.



Как вы могли заметить, углы к горизонту бывают положительные и отрицательные, поэтому далее мы будем обозначать его по модулю — |αᵣ|, к примеру |αᵣ| = 45 град. (то есть угол к горизонту равен = 45; -45, сразу для первого и второго детекторов (пары)).
С помощью этого знания мы можем классифицировать углы, на большие (|αᵣ| > 35 град.) и малые (|αᵣ| < 35 град.). Это нужно для того, чтобы лучше настроить вашу ракету.
- Малые углы позволяют увеличить дальность захвата, но при этом уменьшают "ширину" сектора захвата. Хороши на малых скоростях.
- Большие углы позволяют увеличить "ширину" сектора захвата, но при этом уменьшают дальность захвата. Кратно лучше работают на высоких скоростях.

|αᵣ| < 35 град.

|αᵣ| > 35 град.
Данная классификация как минимум даёт понятие, когда какие углы нужно использовать. Если ракета медленная — используйте малые углы, если быстрая — используйте большие углы
Также сильно влияет угловая скорость, или скорость поворота ракеты. Её можно скорректировать с помощью изменения силы боковых векторов тяги, в нашем случае — пропеллеров. Поможет нам в этом Object Editor.
Для этого выбираем пропеллер, жмем кнопку Edit [1], находим FanBehaviour [2] и корректируем значение в пункте Set Strength [3] (по умолчанию стоит 3).



Проделываем это со всеми боковыми векторами тяги одинаково.
Для чего это нужно? Если ракета быстрая, её угловая скорость тоже должна быть быстрой, если медленная, то угловую скорость порой и вовсе нужно замедлить. По аналогии с |αᵣ| для детекторов (эти настройки должны работать сообща. Большая скорость ракеты = большой |αᵣ|, большая угловая скорость; маленькая скорость ракеты = маленький |αᵣ|, маленькая угловая скорость)
Как определить, большая или маленькая угловая скорость у моей ракеты? На самом деле это индивидуально для каждой ракеты и настраивается чуть ли не в самом конце создания ракеты (на этапе тестирования).
- Маленькая угловая скорость — ракета немного отклонится в сторону цели. При полёте это будет ощущаться как равномерный поворот к цели.

Отклонение ракеты минимально, мелкими шагами. Стартовали из позиции αᵣ = 0 град.
- Большая угловая скорость — ракета может отклониться вплоть до положения, при котором она визуально центрируется к цели.

Отклонение ракеты максимально, резкими рывками. Стартовали из позиции αᵣ = 0 град.
Чем это полезно? Ну во-первых для ракет с высокой скоростью. Если угловая скорость будет слишком мала, а цель будет медленной, ракета просто начнёт бесконечно кружить вокруг цели и/или пролетит мимо. Если скорость ракеты маленькая, а угловая скорость большая, то ракета будет биться в конвульсиях и может из-за багов улететь мимо.
К слову, по тому же принципу багуются и ракеты с высокой скоростью. Так что выкручиваем итерации на максимум и ставим замедление времени < 40%.
Улучшаем классическую схему
Первое, что я бы сделал, так это увеличил дальность детекторов с помощью Object Editor.
Для этого вызываем контекстное меню детектора, кликаем Edit [1], ищем DetectorBehaviour [2], меняем значение в Set Range [3].



- Для пары детекторов с |αᵣ| > 35 град — ставим не более 350, поскольку в основном захват начинает сильно расти в ширину, что не есть хорошо.
- Для пары детекторов с |αᵣ| < 35 град. — можете ставить хоть 500, хоть 1000, хоть 10000. Зависит от класса ракеты и специфики её применения.
Вторым делом, опционально, можно сделать детектор с αᵣ = 0 град., который будет ускорять основной вектор тяги ракеты [1] или включать дополнительный пропеллер [2]

1

2
В основном это помогает на ракетах малых-средних скоростей, с парой детекторов с |αᵣ| < 35 град. и средней угловой скоростью, особенно если ракета идёт вдогонку, так как если она успешно центрируется на цель, то сможет ускорится к ней.
В целом, модернизация классической схемы на этом заканчивается. Моя самая лучшая ракета классической схемы с этими доработками — AAM — F128 Rex Coeli M. Ракета малой дальности и средне-высокой скорости.
2. Продвинутая схема — AGaTS.
AGaTS — Аdaptive Guidance and Tracking System (рус. Адаптивная Система Захвата и Наведения). Аббревиатура выдумана, в прочем как и мои ракеты (в реальности их не существует).
Абсолютно все рекомендации из прошлых пунктов используются и здесь.
Рассматривать систему будем на основе ракеты AAM — X56M AGaTS.

AAM — X56M AGaTS без обшивки
Как это работает? Первая пара детекторов с высокой дальностью (Range = 2000) установлена под |αᵣ| = 2 град. Сразу после пуска они захватывают высоколетяющую цель и наводят ракету поближе к ней. На расстоянии ~300 метров такая же пара детекторов с |αᵣ| = 2 град., только с Range = 300, выключают детекторы высокой дальности и включают детекторы близкой дальности с высоким |αᵣ| = 47 град. После чего они корректируют ракету и цель успешно поражается.
Такая система эффективно поражает цели на больших расстояниях.
Классическая схема AGaTS подразумевает 8 боковых векторов тяги, 2 стабилизатора, 1 пару детекторов высокой дальности с |αᵣ| = 2 град. (Range > 1000), 1 пару детекторов с |αᵣ| = 2 град. (Range = 200-350), 1 пару детекторов с |αᵣ| > 45 град. (Range > 230) и 2 Heating Element.
По сути это две классические схемы наведения совмещённые в одной. Однако, поскольку нет надежного и быстрого способа переключиться между парами детекторов, всю первичную систему приходится буквально выжигать.
Разберём схему.

AGaTS без логики
Для начала настроим детекторы высокой дальности и детекторы, которые при активации выжгут эту систему. Сначала настроим наведение для детекторов высокой дальности по классической схеме.

1
Угловая скорость у пропеллеров этой системы — малая-средняя.
В схему также добавляем конвертер сигнала (опционально, но лучше сделать). Делаем логику, при которой при получении сигнала хотя бы от одного "выжигающего" детектора вся первичная система отключалась, и включалась вторичная система. (для удобства все провода из предыдущего пункта скрыты, по аналогии будет и дальше)

2
Однако, зачастую этого недостаточно (система часто может отлететь от одного просчета в тике), поэтому мы "выжигаем" всю первичную систему. Для этого мы настроим, при каком значении температуры будет ломаться объект. Ломать мы будем 4 пропеллера (боковые векторы тяги), используемых в первичной системе [1], и стабилизатор.
Изменение покажу на примере стабилизатора. Вызываем контекстное меню, жмем Edit [3.1], затем ищем DamagableMachineryBehaviour [3.2], затем меняем значение в Set Temperature Threshold на 140 [3.3]. Больше-меньше — не рекомендую. Так же делаем с пропеллерами первичной системы.



Затем следует само выжигание. В обоих Heating Element ставим высокое значение температуры, к примеру 999 [4.1].

4.1
Затем настраиваем активацию и с помощью Heat Pipe подключаем нагревательные элементы к стабилизатору и 4 пропеллерам.

4.2
Готово! Теперь при активации управляющие блоки первичной системы просто сгорят и не дадут ракете забаговаться))
Распинаться как настроить вторичную систему не буду, думаю тут и так всё понятно — классическая схема. Угловая скорость на пропеллерах — средняя-большая. [5]

5
На этом по сути система AGaTS — заканчивается, вам остается только настроить угловую скорость и прочие элементы ракеты. Как видите — всё предельно просто.
3. Улучшенная продвинутая система — IAGaTS
IAGaTS — Improved Аdaptive Guidance and Tracking System, (рус. Улучшенная Адаптивная Система Захвата и Наведения).
Рассматриваем на примере моей самой последней и совершенной ракеты высокой дальности — AAM — X112C IAGaTS, используемой в ЗРК "SPAA Hornet (XM500)".
По сути она почти не отличается от AGaTS до момента вторичной системы.
Здесь, вторичная система выглядит вот так:

1
Как она работает? В начальном положении активированы два детектора (первые детекторы/первая пара детекторов) с |αᵣ| = 60-80 град., при их срабатывании ракета сильно доворачивает к цели и запускается вторая пара детекторов с |αᵣ| = 35-45 град., также активируется метроном, который передает сигнал на счетчик, если счетчик достигает определённого значения, то система возвращается в исходное состояние [1]. Если активируется любой из детекторов второй пары (с меньшим углом), то происходит поворот ракеты и сбрасываются накопленные сигналы от метронома в счетчике.
Для чего это нужно? Основная задача — противостояние манёврам цели, с чем система отлично справляется. Если цель сманеврировала так, что вторая пара детекторов не может её засечь, то спустя время активируется первая пара детекторов, которая вновь доведёт ракету в нужном направлении.
Касаемо времени, в течении которого могут работать вторая пара детекторов — лучше не более 1.5 секунды. Для высокой точности рекомендую в метрономе поставить значение 4, больше — не стоит. В счётчике значение должно быть в 1.5 раза больше, то есть 6. Это значит, что вторая пара детекторов проработает 1.5 секунды, при этом метроном будет срабатывать 4 раза в секунду. Чтобы поставить своё время, вам нужно умножить поставленное значение в метрономе на желаемое время работы второй пары и поставить это значение в счётчик.
Подключение детекторов к векторам тяги выглядит вот так:

2
Легко здесь запутаться, поэтому лучше объясню логику. При срабатывании одного из детекторов первой пары будут активированы:
- Логика IAGaTS [1], если вы подключили как указано на первом фото, там ничего редактировать не надо.
- Векторы тяги в направлении куда нужно повернуть (собственные векторы тяги).
- Источник заряда (поскольку нам нужен сильный доворот, то нужно временно ускорить векторы тяги). Источник заряда подключаем ко всем векторам тяги.
- Собственный Лагбокс со значением 0.1 секунды, который в свою очередь спустя время деактивирует батарею и векторы тяги. Причем собственный лагбокс нужно подключить к собственным векторам тяги этого детектора [2]. Заряд лагбокса можно изменить с помощью Object Editor [3.1] — [3.3]. (Edit -> GeneratorBehaviour -> Set target charge)



Включение в саму ракету будет выглядеть следующим образом (не забудьте отключить детекторы, потому что на примерах [1]-[2] они включены для показа исходного состояния):

4
Далее вам предстоит настройка основных параметров, чтобы ракета лучше захватывала и наводилась на цель, из них можно выделить:
- Частота метронома
- Значение срабатывания счетчика
- Время в лагбоксах [2]
- Дальность всех детекторов
- Угловая скорость (как минимум средняя)
Заключение
Теперь вы лучше знакомы с системой наведения в People Playground. Надеюсь вам поможет данный гайд!
Меня можно найти в:
- Steam: iHid27
- На Академии Строителей в Discord
- TikTok: @hid27_
Спасибо за внимание!
Источник: www.playground.ru
