Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Баллистика. Влияние гравитации на пулю.
Доброго времени суток.
Пытаюсь смоделировать полет пули в 3D пространстве.

Принцип следующий:
[*]-точка, (*)-вектор.
- имеется точка вылета пули [P0], вектор (S) направления полета, длинна которого равна скорости вылета (м/с).
- через каждые t секунд находится ускорение сопротивления воздуха на основе плотности и температуры воздуха и скорости пули - F (м/с2) и определяется новая позиция пули по формуле
[Pn] = [P(n-1)] + ((S) - ((S).Normal * F * t)) * t
- в коде это выглядит так:
Используется синтаксис C#
        Vector3 Windage = -b.direction.normalized * F * t;
        b.direction = b.direction + Windage;
        Vector3 r = b.position + b.direction * t;


Для тестов беру характеристики реальных оружий и сверяю с баллистическими таблицами. Расхождение моих итоговых данных и реальных (полное время полёта пули, окончательная скорость пули) почти не ощутимое (+-0,1с, +- 15м/с)

Однако камнем преткновения стала гравитация. Из школы мало что помню, так что освежил память кучей статей. Т.к. позиция пули всегда пересчитывается, то просто к вектору (S) прибавляю вектор направленный вниз с длинной -9.80665 * t
- в итоге выглядит так
Используется синтаксис C#
        Vector3 Windage = -b.direction.normalized * F * t;
        b.direction = b.direction + Windage + new Vector3(0, -9.80665f * t);
        Vector3 r = b.position + b.direction * t;


И тут уже использовать баллистическую таблицу невозможно, требуется слишком сильно задирать ствол.
Например, для стрельбы c СВД на 500м требуется угол вылета пули 0,3градуса. А для моей формулы 0,9градуса.

Что я не учел? Подскажите, пожалуйста)

 Re: Баллистика. Влияние гравитации на пулю.
Схема первого порядка, вначале меняется скорость, потом координата. Поэтому влияние гравитации преувеличено. Можно взять схему порядка повыше (хотя бы второго).
Для теста я бы посоветовал сопротивление воздуха выключить, тогда дальность полета вычисляется по школьной формуле, и можно с ней сравнивать (максимальная высота тож).
Ну и классический тест: уменьшаете шаг по времени вдвое и смотрите, как меняются результаты. Если заметно, уменьшаете еще вдвое.

 Re: Баллистика. Влияние гравитации на пулю.
Аватара пользователя
Glooger
Не проще ли взять готовый решатель дифуров?
Появившееся время можно потратить на поиск всех аэродинамических характеристик пули и составление наиболее полной системы дифф уравнений, учитывающей все силы и моменты.

 Re: Баллистика. Влияние гравитации на пулю.
Странный случай. Я уже пару дней упорно изучаю баллистику и насчет гравитации уже волосы дергал. В итоге неправильно переписал свою формулу сюда, а она оказалась правильной.
До этого вектор гравитации добавлял к новой позиции, а не к направлению пули, как это нечаянно написал выше. Получается вектор ускорения был всегда направлен вверх... Во идее она дальше должна была пролетать :?

Извиняюсь за свою глупость. Сейчас траектория пули очень реалистичная.

DimaM,
У пуль имеется одна переменная - баллистический коэффициент, его достаточно для нахождения ускорения сопротивления воздуха в любой момент времени.
http://handguns.g00net.org/ballistic/uskor.htm

 Re: Баллистика. Влияние гравитации на пулю.
Аватара пользователя
Glooger
Читайте серьезную литературу.

 Re: Баллистика. Влияние гравитации на пулю.
Glooger в сообщении #947842 писал(а):
У пуль имеется одна переменная - баллистический коэффициент, его достаточно для нахождения ускорения сопротивления воздуха в любой момент времени.

Жуть какая :(. И оформление, и содержание.
Сила сопротивления, в отличие от написанного по ссылке, зависит от скорости, примерно квадратично.

 Re: Баллистика. Влияние гравитации на пулю.
Спорить с вами не могу)
Однако баллистический коэффициент не я придумал. Он работает и достаточно хорошо.

 Re: Баллистика. Влияние гравитации на пулю.
Аватара пользователя
DimaM в сообщении #947872 писал(а):
Glooger в сообщении #947842 писал(а):
У пуль имеется одна переменная - баллистический коэффициент, его достаточно для нахождения ускорения сопротивления воздуха в любой момент времени.

Жуть какая :(. И оформление, и содержание.
Сила сопротивления, в отличие от написанного по ссылке, зависит от скорости, примерно квадратично.


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

 Re: Баллистика. Влияние гравитации на пулю.
Евгений Машеров в сообщении #948154 писал(а):
По ссылке всё правильно. Квадратичная зависимость вводится чуть ранее, и указываются границы применимости.

Действительно, на предыдущую страницу я не заглянул. Спасибо за уточнение.

 Re: Баллистика. Влияние гравитации на пулю.
Аватара пользователя
Материал на сайте, похоже, достаточно старый. Сужу по тому, что пулю характеризуют весом, который потом делят на g, вместо использования массы. Но принципиально не поменялось.
Сильное упрощение в этой модели - неучёт вращения пули, её прецессии и, как следствие, деривации.

 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group