Баллистическое движение формулы и уравнения

Движение тела, брошенного горизонтально или под углом к горизонту.

Так как мы пренебрегаем сопротивлением воздуха, то ускорение направлено только к поверхности Земли ( g ) – вдоль вертикальной оси ( y ), вдоль оси х движение равномерное и прямолинейное.

Движение тела, брошенного горизонтально.

Выразим проекции скорости и координаты через модули векторов.


Для того чтобы получить уравнение траектории, выразим время tиз уравнения координаты x и подставим в уравнение для y:

Движение тела, брошенного под углом к горизонту.

Порядок решения задачи аналогичен предыдущей.

Докажем, что траекторией движения и в этом случае будет парабола. Для этого выразим координату Y через X (получим уравнение траектории):

.

Мы получили квадратичную зависимость между координатами. Значит траектория — парабола.

Найдем время полета тела от начальной точки до точки падения. В точке падения координата по вертикальной оси у=0.

Используя то, что парабола – это симметричная кривая, найдем максимальную высоту, которой может достичь тело .
Время, за которое тело долетит до середины, равно:

Тогда:

Максимальная высота:

Скорость тела в любой момент времени направлена по касательной к траектории движения (параболе) и равна

Угол, под которым направлен вектор скорости в любой момент времени:

Баллистическое движение — характеристика, основные формулы и уравнения

Как упадет брошенный предмет, по какой траектории полетит пуля и как рассчитать правильное направление для попадания в цель – всё это объясняется таким понятием как баллистическое движение и изучается соответствующей наукой.

Наверное каждый при просмотре фильмов о работе экспертов-криминалистов слышал выражение «аэробаллистическая экспертиза», и удивлялся тому, как лихо они определяют местоположение стрелка, и тип, а иногда и модель оружия, из которого был произведен, зачастую, фатальный выстрел.

Понятие баллистики

Определение баллистики звучит следующим образом – наука о движении тел, двигающихся в пространстве. Она изучает в первую очередь принципы движения всевозможных объектов, в частности пуль и снарядов, а также законы природы, влияющие на это движение и способность тела преодолевать возникшие на его пути преграды.

Физика и математика — вот основы, на которых базируется эта наука, они позволяют при должных знаниях рассчитывать траекторию полёта пули, исходя из воздействия на неё внешних сил, и её проникающую способность.

Сама же наука о законах полета снарядов делится на 4 направления:

Исследование движения пули или снаряда в канале ствола орудия изучает направление, которое называется внутренняя баллистика.

Поведение снаряда на выходе из канала ствола и в районе дульного среза исследуется промежуточной баллистикой и используется в разработке пламегасящих устройств и глушителей.

Вопросы движения снаряда в атмосфере и при воздействии внешних факторов изучаются внешней баллистикой. Основная область её применения – установление поправок на упреждение и влияние скорости ветра на траекторию.

Изучение проникающей способности снаряда – цель исследований баллистики под названием преградная (терминальная), которую изучают специалисты по вопросам бронезащиты.

История возникновения баллистики

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

Так или иначе баллистика изучалась по мере развития человечества, параллельно с развитием механизмов для поражения противника на расстоянии.

Метательные камни, ножи и дротики, ручные пращи, луки, арбалеты, а впоследствии – баллисты, катапульты, требушеты, толлеоны и, в конце концов, огнестрельное оружие и артиллерийские орудия — все эти средства толкали науку баллистики на протяжении всей своей истории.

Начало изучения траектории полета снаряда, как науки, было положено Николло Тарталья в 1537 году, начавшим исследование кривой движения этого тела. Продолжил изучение Галилей, сформулировав параболическую теорию.

Развивал данную тему и Ньютон, благодаря изучению законов воздушного сопротивления которого стало возможным доказать невозможность параболической кривой полета снаряда. Его дело продолжил Бенджамин Робинс, основное исследование которого — расчет начальной скорости ядра.

Он даже изобрел актуальный по сей день баллистический маятник. Прибор, с помощью которого определяют эффективность взрывчатых веществ, фиксируя при их подрыве угол отклонения маятника.

Далее баллистика развивалась семимильными шагами. Вошедшее в обиход в начале XIX века нарезное оружие, а также использование адаптированных под него снарядов и нового образца патрона, с пулей продолговатой формы, а точнее – необходимость изучения их эффективности и дальнейшей оптимизации, стали серьезным толчком в изучении данной науки, поскольку характеристики нового оружия были весьма высоки, что обуславливало широкую его популярность, и как следствие – высокий спрос.

Одним из ключевых витков истории баллистики стала разработка численного метода интегрирования дифференциальных уравнений, созданного Карлом Рунге и Мартином Кутта. Определенные элементы их метода позволяли с максимальной точностью вести расчеты траектории тел в пространстве.

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

Баллистическая траектория

Итак, что же в итоге представляет собой баллистическая траектория? Современная энциклопедия гласит: «Это траектория движения свободно брошенного тела под действием только силы тяжести».

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

Здесь же – расчет ведения огня по настильной траектории, проще говоря – плавно опускающейся линии по ходу полета снаряда, и расчет возможности преодолевать возвышения по пути к конечной точке.

Фактически, таковым является движение любого тела в пространстве, при отсутствии какой-либо дополнительной тяги.

Основные формулы баллистического движения

При расчетах и изучении баллистического движения любого тела, стоит обратить внимание на огромное количество факторов – массу, скорость и обтекаемость тела, атмосферные условия и многое-многое другое. Но даже при учете этого, в баллистике есть свои основные формулы, применяемые в исследованиях.

На брошенное под углом к горизонту тело в полете действует по меньшей мере – сила тяжести и сопротивление воздуха. Если исключить из этого силу сопротивления, то, согласно 2-го закону Ньютона, тело движется с ускорением, равным ускорению свободного падения; проекции ускорения на координатные оси равны ах = 0, ау = -g.

Проекции скорости тела, следовательно, изменяются со временем следующим образом:

Vx = Vx0 = V0 * cos α;

Vy = Vy0 – g * t = V0
* sin α – g * t,

где V0 — начальная скорость, α – угол бросания.

Координаты тела, следовательно, изменяются так:

x = x0 + V0 * t * cos α;

y = y0 + V0 * t * sin α – 0,5 * g * t 2 .

Если за точку отсчета берутся координаты х = у = 0, то:

x = V0 * t * cos α;

y = V0 * t * sin α – 0,5 * g * t 2 .

Дальнейшие расчеты производятся при введении таких переменных как дальность полета и время, в итоге же получается финальное уравнение траектории движения. Выглядит оно следующим образом:

y = x * tg α – g * x 2 / 2 * V0 2 * cos 2 α.

Вычисляем баллистические траектории в играх

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

Когда возникала эта проблема, я обычно брал ручку с блокнотом и решал её с нуля. Мне это надоело. Чтобы сэкономить себе из будущего немного времени, я выложу это решение в Интернет. Кроме того, я расскажу о необычной «фишке», которую предпочитаю использовать из соображений эстетики.

Уравнения движения

Задача всегда начинается одинаково. У нас есть стреляющий и цель: под каким углом нужно стрелять снарядом, чтобы он поразил цель?

Существует четыре основных уравнения движения. В статье мы воспользуемся только одним.

Если объяснять на словах, то конечная позиция РАВНА исходной позиции ПЛЮС скорость, умноженная на время ПЛЮС половина ускорения, умноженная на время в квадрате. Это простое уравнение, для его решения необходимо немного алгебры и несколько тригонометрических тождеств.

Освежим знания

Прежде чем начать, давайте вкратце освежим память.

Если дан снаряд с постоянной скоростью S и углом выстрела θ (theta), то мы можем вычислить компоненты скорости x и y. Или если есть S и мы каким-то образом найдём y, то можем вычислить θ и x.

Мы используем алгебру.

Мы часто будем пользоваться формулой корней квадратного уравнения.

Дальность

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

Существует очень простое уравнение максимальной дальности на плоской поверхности. Мы сразу же ринемся в омут с головой и начнём с обобщённого вида.

Если дан снаряд с постоянной скоростью (S) и гравитацией (G), то какой будет его максимальная дальность полёта?

Для тестирования и визуализации я создал демо на Unity. В нём используются чайники, стреляющие чайниками. Пиф-паф!

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

Угол стрельбы для попадания по неподвижной мишени

Теперь начинается интересное.

Если снаряд имеет постоянную скорость (S), а гравитация равна (G), то под каким углом его нужно выстреливать, чтобы попасть в неподвижную мишень?

Бах. Теперь у нас есть два уравнения и два неизвестных. Давайте их проанализируем.

  1. Первое уравнение, два неизвестных (t, θ)
  2. Второе уравнение, два неизвестных (t, θ)
  3. Вычислить t из (1)
  4. Подставить (3) в (2)
  5. Тригонометрическая подстановка: sin θ/cosθ = tanθ
  6. Тригонометрическая подстановка: 1/(cos θ)^2 = 1 + (tan θ)^2
  7. Развернём и преобразуем
  8. Формула корней квадратного уравнения
  9. Умножим верхнюю/нижнюю часть на -S^2/x. Перенесём S^4/x^2 под корень
  10. Применим к каждой части арктангенс

Та-да! В результате мы получили два угла. Один высокий и один низкий. Вот как это выглядит на практике.

Визуальное несовершенство

Взгляните на показанный выше gif. Когда чайник начинает стрелять, всё выглядит довольно неплохо. Высокая дуга красива и радует глаз. Низкая дуга кажется чёткой и эффективной.

Однако при увеличении дальности всё становится не таким красивым. Низкая дуга почти плоская. Высокая дуга чрезмерно высока. В этом и заключается проблема снаряда с постоянной скоростью. Он выглядит красиво, только когда цель находится на границах его радиуса дальности.

Существует ли способ получше?

Скорость горизонтального перемещения

Я часто предпочитаю задавать горизонтальную скорость снаряда, только в плоскости земли. Тогда я могу явным образом задать высоту дуги. То есть переменной становится скорость и гравитация.

Такой подход имеет множество преимуществ. Во-первых, он всегда выглядит красиво!

Во-вторых, его дизайн более интуитивен. Дизайнеров не волнует абсолютная скорость. Им важно, что турель имеет дальность 20 метров и что для перемещения на это расстояние снарядам требуется 1 секунда. Они не обязаны пользоваться строящим графики калькулятором, чтобы менять значения баланса. А художественные изменения не должны влиять на геймплейные механики.

В-третьих, так проще попадать по движущейся мишени. Чуть позже я раскрою это подробнее.

Вот как это выглядит:

Вычисление скорости горизонтального перемещения

Если дан снаряд с горизонтальной скоростью (S) и пиковой высотой (y_peak), то какими должны быть скорость и гравитация для поражения неподвижной мишени?

  1. Основное уравнение движения
  2. Решаем (1), подставив 2
  3. Зададим, что y_peak (пользовательская константа) снаряд достигает во время (1/2)t
  4. Зададим, что y_end (высота цели) снаряд достигает во время t
  5. Магия!
  6. Ещё магия!
  7. Вектор стрельбы равен (S, v.y) с гравитационным ускорением g

Вуаля! Хотя постойте-ка. Магия? Это жульничество! Да, но вполне оправданное.

Пункты (3) и (4) — это ещё два уравнения с двумя неизвестными. Я ленивый и не хочу их записывать. Плюс я запутаюсь и перепутаю знак, поэтому позволю компьютеру решить их за меня.

Точнее, я воспользовался Wolfram Alpha. Рекомендую каждому иметь Wolfram в своём инструментарии, он довольно полезен.

Если a+c == 2b , то y0 , y_peak и y_end лежат на одной прямой. То есть мы стреляем по прямой.

Скорость горизонтального перемещения при подвижной мишени

Итак, у нас есть два разных вычисления траектории. Однако враги обычно не стоят на месте, они перемещаются. Нам нужно вычислять траекторию, чтобы поражать подвижную мишень.

Именно здесь проявляются все достоинства скорости горизонтального перемещения. Задав скорость в плоскости земли, очень просто выполнить вычисления для подвижной мишени.

  1. Где X — позиция мишени, а V — её скорость
  2. Возводим обе части в квадрат.
  3. Преобразуем в квадратное уравнение
  4. Применяем формулу корней квадратного уравнения

Пункты с 5 по 9 см. в предыдущем разделе.

Меня это очень радует. Пиу-пиу-пиу!

Постоянная скорость с подвижной мишенью

А что если нам нужно поразить подвижную мишень снарядом с постоянной скоростью? Ой-ёй. Это очень запутанная задача! Даже не знаю, как к ней подступиться.

За всю мою карьеру мне не доводилось её решать. Обычно в играх не нужна точная артиллерия. Это просто неинтересно! Вместо этого мы приблизительно вычисляем будущую позицию и целимся в случайную точку рядом с ней. Игроки воспринимают артиллерийский огонь как дождь из глупых снарядов, а не как гарантированную смерть с лазерным наведением.

В процессе написания этого поста я нашёл решение задачи снаряда с постоянной скоростью и движущейся мишени, которого не было в Интернете в готовом виде. Стоит заметить, что вам, вероятно, не понадобится реализовывать его в своей игре. Но я потратил на него много времени, поэтому не хочу, чтобы оно было потеряно впустую!

Уравнения четвёртой степени

Скорее всего, вы не захотите использовать его в своей игре именно из-за уравнений четвёртой степени. По сути, для решения требуется одно из таких уравнений.

Квадратные уравнения имеют простое и изящное решение в виде формулы корней квадратного уравнения. Кубические уравнения решаемы несколькими разными способами. Однако уравнения четвёртой степени — это настоящая головная боль.

Решение таких уравнений находится далеко за рамками этой статьи. Честно говоря, и за пределами моих математических способностей. К счастью для нас, в книге 1990 года Graphics Gems I есть код для решения уравнений четвёртого порядка. Я использовал этот код для своего демо. Не могу гарантировать его точности и численной устойчивости, используйте его крайне осмотрительно.

Способ первый

Итак, давайте его решим. Каким должен быть угол выстрела снарядом с постоянной скоростью по движущейся мишени? Этот способ взят из поста 2007 года Джеймса Макнейлла и дополнен информацией Райана Джакетта.

  1. Где P — позиция мишени, а V — скорость мишени
  2. Возводим обе части в квадрат
  3. Преобразуем
  4. Вычисляем коэффициенты уравнения четвёртого порядка и вставляем в SolveQuartic
  5. Используем t для вычисления позиции мишени при вычислении траектории до неподвижной точки.

Способ работает. Все сложные задачи выполняет SolveQuartic. Затем мы используем решение для неподвижной мишени, изложенное выше.

Способ второй

Прежде чем я нашёл первый способ, я вывел решение другим способом. Оно состоит из гораздо большего количества шагов. Однако я нахожу конечный результат более изящным. Плюс я потратил примерно восемь листов бумаги и не хочу, чтобы эти деревья пожертвовали собой зазря.

Чёрт возьми. 32 шага!? Это хуже, чем кажется.

1–7 — объявляем переменные.

8–11 — объявляем систему уравнений. Четыре уравнения, четыре неизвестных — d, e, f, t.

12–15 — вычисляем по (8) величину d. Перемножаем d^2 на будущее.

16–19 — вычисляем по (10) величину f. Перемножаем f^2 на будущее.

20–24 — вычисляем по (9) величину e. Перемножаем e^2 на будущее.

25–27 — вычисляем по (11) величину e^2. Подставляем d^2 и f^2.

28–30 — приравниваем (27) к (24). Умножаем на t^2 и преобразуем в уравнение четвёртой степени.

31 — подставляем коэффициенты в SolveQuartic.

32 — подставляем положительные вещественные корни в (14), (18), (23) для d, e, f.

Код довольно короткий. Объявлению переменных отведено больше строк, чем самим вычислениям! Разумеется, кроме SolveQuartic.

Предупреждение

Код, написанный для этого теста, не проверен в бою, а пост никем не рецензировался. Вероятно, в нём есть несколько опечаток, ошибок и неучтённых пограничных случаев. Если найдёте подобные ошибки, пожалуйста, сообщите мне. Втайне, чтобы никто не узнал о моём позоре.

Рассматривайте этот код не как готовое решение, а как опорную точку.

Инструменты

При создании этого поста я использовал несколько инструментов. Многие из них были для меня новыми.

  • Unity для создания демо.
  • Paper, Affinity Designer и MSPaint для создания изображений.
  • Arachnid Latex + MathJax для формул LaTeX.
  • FFmpeg для преобразования последовательности скриншотов в анимацию.
  • Gfycat для встраивания анимаций.
  • Чайник из Юты. Пиу-пиу!

Синтаксис LaTeX ужасен, его сложно учить. Все формулы LaTeX можно найти здесь. Вот пример:

Заключение

Вот и всё. Я потратил на этот пост гораздо больше времени, чем ожидал. Я решил задачу, которую никогда не решал прежде и изучил несколько новых инструментов. И это того стоило.

В этом посте нет ничего нового или оригинального. Я пытался объяснять подробно, но чтобы не быть при этом слишком многословным. Мне очень нравится, что теперь полные описания можно найти в одном месте. Надеюсь, они окажутся полезными для людей.


источники:

http://sprint-olympic.ru/uroki/fizika/97147-ballisticheskoe-dvijenie-harakteristika-osnovnye-formyly-i-yravneniia.html

http://habr.com/ru/post/538952/

Движение тела, брошенного горизонтально или под углом к горизонту.
  1. Это движение в плоскости, поэтому для описания движения необходимо 2 координаты.
  2. Считаем, что движение происходит вблизи поверхности Земли, поэтому ускорение тела – ускорение свободного падения (a = g).
— между координатами квадратичная зависимость, траектория – парабола!
Следовательно, для решения этой задачи необходимо решить уравнение

Оно будет иметь решение при t=0 (начало движения) и

Зная время полета, найдем максимальное расстояние, которое пролетит тело:

Дальность полета:

Из этой формулы следует, что:

— максимальная дальность полета будет наблюдаться при бросании тела (при стрельбе, например) под углом 45 0 ;

— на одно и то же расстояние можно бросить тело (с одинаковой начальной скоростью) двумя способами – т.н. навесная и настильная баллистические траектории.