[enhancement] Замедлить приводы ПВО, добавить разгон/торможение и запретить огонь до завершения наведения #33

Closed
opened 2026-10-29 12:35:45 +00:00 by chexit · 1 comment
Owner

Запрос владельца проекта: текущий разворот слишком быстрый; уменьшить максимальную скорость примерно в 2–3 раза, добавить плавный разгон и торможение, убрать разрешение на огонь при заметном недовороте.

Основание: опубликованный 90379f6, sim/mod.rs::step_sams и sim/units.rs. Симуляция 20 Гц, скорость сейчас задана в радианах на тик; slew сразу применяет максимум, без угловой скорости/ускорения как состояния.

Текущие здоровые комплексы, неподвижное направление, время полного yaw-разворота на 180° с округлением до тика:

  • Гепард: 0.22 рад/тик, ~252°/с, 0.75 с.
  • Панцирь: 0.25 рад/тик, ~286°/с, 0.65 с.
  • Patriot / NASAMS / P1-SUN: 0.12 рад/тик, ~138°/с, 1.35 с.
  • Бук: 0.05 рад/тик, ~57°/с, 3.15 с.
  • Тор: визуальный поворот башни 0.15 рад/тик (~172°/с, 1.05 с); старт вертикальный, см. ограничение области ниже.

Сейчас missile aligned допускает yaw error <0.45 рад (~25.8°) у Trainable и aim_error <0.2 (~11.5°) у Turret; gun fire допускает суммарную ошибку <0.1 (~5.7°). У Turret без пушки aim_error сейчас вообще не включает pitch. Само состояние Lock/Slew не является надёжной блокировкой огня.

Что изменить:

  1. Вынести в SamSpec предельные yaw/pitch скорости и ускорения (понятные единицы: град/с и град/с² либо явно документированные рад/тик). Начальные максимумы уменьшить в 2–3 раза относительно текущих: например, коэффициент 0.4 как отправная точка; итог подобрать в игре. Это игровые настройки, не заявка на реальные ТТХ.
  2. Хранить yaw/pitch angular velocity в Sam. Разгонять до предела и тормозить заранее по оставшейся ошибке; без резкой остановки, дрожания, перескоков через цель и разрыва на ±π. Повреждения должны согласованно влиять на динамику. Плавность нужна также при смене цели, отмене сопровождения и возврате в походное/поисковое положение.
  3. Для установок с обязательным механическим наведением (Гепард, Панцирь, Patriot/NASAMS/P1-SUN, Бук) блокировать пуск/очередь, пока механизм не доведён до фактического решения наведения. Убрать широкие боевые допуски 0.45/0.2/0.1 рад. «Полный доворот» реализовать как малый технический epsilon (ориентир ~0.5–1°, проверяемый в игре), а не строгое равенство float. При необходимости короткое подтверждение устойчивого сопровождения.
  4. Проверять именно те оси и то направление/упреждение, которыми управляется соответствующий привод. Для trainable launchers с конструктивно фиксированным пусковым углом не требовать наводить трубу непосредственно по высоте цели — проверять правильную геометрию пуска. Для пушек и регулируемого подъёма — yaw и pitch. Не требовать нулевой абсолютной angular velocity при сопровождении движущейся цели: важна малая ошибка относительно требуемого направления.
  5. Тестировать готовность по состоянию привода/решению наведения, а не только по надписи HUD. При смене цели старый Lock не должен разрешать выстрел по новой цели. Согласовать missile и gun aim на комбинированной установке.

Область: С-400 / С-500 / IRIS-T с вертикальным стартом не заставлять разворачиваться на азимут цели. Тор тоже имеет вертикальные ячейки: поворот его башни не считать автоматически обязательным наведением пусковой. Если замедляется его визуальный привод, не добавлять случайную блокировку вертикального старта без отдельного решения по игровой модели.

Проверки:

  • 180°, 90° и малая коррекция: время/скорость/ускорение, исправная и повреждённая техника.
  • До завершения требуемого наведения fired/ammo не меняются; после завершения огонь начинается при остальных выполненных условиях.
  • Движущаяся цель, смена цели в противоположную сторону, переход через ±180°, возврат к heading, марш/ремонт.
  • Пуск вертикальных систем сохраняется независимо от yaw; проверки существующей координации одной ракеты на цель проходят.
  • Измерить в игре, а не считать итоговое время новым пределом без учёта добавленного разгона/торможения.

Код:

let (yaw_rate, pitch_rate) = spec.gun.as_ref().map_or((0.05, 0.05), |g| g.slew);
и #L1877; спецификации приводов — airdef-mod/src/sim/units.rs.

Запрос владельца проекта: текущий разворот слишком быстрый; уменьшить максимальную скорость примерно в 2–3 раза, добавить плавный разгон и торможение, убрать разрешение на огонь при заметном недовороте. Основание: опубликованный 90379f6, sim/mod.rs::step_sams и sim/units.rs. Симуляция 20 Гц, скорость сейчас задана в радианах на тик; slew сразу применяет максимум, без угловой скорости/ускорения как состояния. Текущие здоровые комплексы, неподвижное направление, время полного yaw-разворота на 180° с округлением до тика: - Гепард: 0.22 рад/тик, ~252°/с, 0.75 с. - Панцирь: 0.25 рад/тик, ~286°/с, 0.65 с. - Patriot / NASAMS / P1-SUN: 0.12 рад/тик, ~138°/с, 1.35 с. - Бук: 0.05 рад/тик, ~57°/с, 3.15 с. - Тор: визуальный поворот башни 0.15 рад/тик (~172°/с, 1.05 с); старт вертикальный, см. ограничение области ниже. Сейчас missile aligned допускает yaw error <0.45 рад (~25.8°) у Trainable и aim_error <0.2 (~11.5°) у Turret; gun fire допускает суммарную ошибку <0.1 (~5.7°). У Turret без пушки aim_error сейчас вообще не включает pitch. Само состояние Lock/Slew не является надёжной блокировкой огня. Что изменить: 1. Вынести в SamSpec предельные yaw/pitch скорости и ускорения (понятные единицы: град/с и град/с² либо явно документированные рад/тик). Начальные максимумы уменьшить в 2–3 раза относительно текущих: например, коэффициент 0.4 как отправная точка; итог подобрать в игре. Это игровые настройки, не заявка на реальные ТТХ. 2. Хранить yaw/pitch angular velocity в Sam. Разгонять до предела и тормозить заранее по оставшейся ошибке; без резкой остановки, дрожания, перескоков через цель и разрыва на ±π. Повреждения должны согласованно влиять на динамику. Плавность нужна также при смене цели, отмене сопровождения и возврате в походное/поисковое положение. 3. Для установок с обязательным механическим наведением (Гепард, Панцирь, Patriot/NASAMS/P1-SUN, Бук) блокировать пуск/очередь, пока механизм не доведён до фактического решения наведения. Убрать широкие боевые допуски 0.45/0.2/0.1 рад. «Полный доворот» реализовать как малый технический epsilon (ориентир ~0.5–1°, проверяемый в игре), а не строгое равенство float. При необходимости короткое подтверждение устойчивого сопровождения. 4. Проверять именно те оси и то направление/упреждение, которыми управляется соответствующий привод. Для trainable launchers с конструктивно фиксированным пусковым углом не требовать наводить трубу непосредственно по высоте цели — проверять правильную геометрию пуска. Для пушек и регулируемого подъёма — yaw и pitch. Не требовать нулевой абсолютной angular velocity при сопровождении движущейся цели: важна малая ошибка относительно требуемого направления. 5. Тестировать готовность по состоянию привода/решению наведения, а не только по надписи HUD. При смене цели старый Lock не должен разрешать выстрел по новой цели. Согласовать missile и gun aim на комбинированной установке. Область: С-400 / С-500 / IRIS-T с вертикальным стартом не заставлять разворачиваться на азимут цели. Тор тоже имеет вертикальные ячейки: поворот его башни не считать автоматически обязательным наведением пусковой. Если замедляется его визуальный привод, не добавлять случайную блокировку вертикального старта без отдельного решения по игровой модели. Проверки: - 180°, 90° и малая коррекция: время/скорость/ускорение, исправная и повреждённая техника. - До завершения требуемого наведения fired/ammo не меняются; после завершения огонь начинается при остальных выполненных условиях. - Движущаяся цель, смена цели в противоположную сторону, переход через ±180°, возврат к heading, марш/ремонт. - Пуск вертикальных систем сохраняется независимо от yaw; проверки существующей координации одной ракеты на цель проходят. - Измерить в игре, а не считать итоговое время новым пределом без учёта добавленного разгона/торможения. Код: https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/airdef-mod/src/sim/mod.rs#L1801 и #L1877; спецификации приводов — airdef-mod/src/sim/units.rs.
chexit added the area:simulationpriority:P2type:enhancement labels 2026-10-29 13:11:27 +00:00
Author
Owner

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/67a2a52 (запушено в main).

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/67a2a52 (запушено в main).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#33