Внешняя баллистика: продолжение анализа задач

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

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

Четвёртый случай. начало.
Четвертый случай: постановка задачи.
Пятый случай. Начало.
Пятый случай: исходные параметры.
Пятый случай. Окончание решения.
Пятый случай: завершение математического описания.

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

Для реализации этой задачи был разработан специализированный алгоритм численного моделирования.

Приведем пример программной реализации на языке Python для симуляции траектории снаряда (масса — 50 кг, начальная скорость — 600 м/с, угол бросания — 55°):

import numpy as np
import matplotlib.pyplot as plt

Физические константы

g = 9.81 # Ускорение свободного падения, м/с² m = 50.0 # Масса объекта, кг S = 0.01 # Площадь миделевого сечения, м² rho0 = 1.225 # Плотность воздуха у поверхности, кг/м³ H = 8000 # Масштабная высота атмосферы, м a = 343 # Скорость звука, м/с v0 = 600 # Начальная скорость вылета, м/с theta = np.radians(55) # Угол возвышения, рад dt = 0.01 # Шаг интегрирования по времени, с t_end = 98.4 # Длительность моделирования, с

Инициализация начальных условий

x, y = 0, 0 vx, vy = v0 np.cos(theta), v0 np.sin(theta)

Резервирование массивов под данные

t = np.arange(0, t_end, dt) X, Y = np.zeros_like(t), np.zeros_like(t) VX, VY = np.zeros_like(t), np.zeros_like(t)

Аппроксимация коэффициента сопротивления cx(M)

def cx(M): if M <= 0.73: return 0.157 elif M < 0.82: return 0.033 M + 0.133 elif M < 0.91: return 0.161 + 3.9 (M - 0.823) 2 elif M < 1.00: return 1.5 M - 1.176 else: return 0.384 - 1.6 (M - 1.176) 2

Модель изменения плотности воздуха

def rho(h): return rho0 * np.exp(-h / H)

Система обыкновенных дифференциальных уравнений

def f(state, t): x, y, vx, vy = state v = np.sqrt(vx 2 + vy 2) M = v / a rho_h = rho(y) cx_val = cx(M)

Fx = 0.5 * rho_h * v ** 2 * S * cx_val * vx / v
Fy = 0.5 * rho_h * v ** 2 * S * cx_val * vy / v

dxdt = vx
dydt = vy
dvxdt = -Fx / m
dvydt = -g - Fy / m

return np.array([dxdt, dydt, dvxdt, dvydt])

Численное интегрирование методом Рунге-Кутты 4-го порядка

def rk4_step(state, t, dt):
k1 = dt f(state, t)
k2 = dt
f(state + 0.5 k1, t + 0.5 dt)
k3 = dt f(state + 0.5 k2, t + 0.5 dt)
k4 = dt
f(state + k3, t + dt)
return state + (k1 + 2 k2 + 2 k3 + k4) / 6

Исполнение расчетного цикла

state = np.array([x, y, vx, vy])
for i, t_val in enumerate(t):
X[i], Y[i], VX[i], VY[i] = state
state = rk4_step(state, t_val, dt)

Построение графиков

plt.figure(figsize=(10, 6))
plt.plot(X, Y, label="Траектория полета")
plt.xlabel('Дальность X, м')
plt.ylabel('Высота Y, м')
plt.title('Моделирование баллистической траектории')
plt.grid(True)
plt.legend()
plt.show()

Вывод итоговых метрик

print(f"Полная дальность: {X[-1]:.2f} м")
print(f"Пиковая высота: {np.max(Y):.2f} м")

Графическая визуализация результатов расчета представлена ниже:

Баллистическая траектория
Результаты моделирования траектории

Анализ полученных данных показывает, что при заданных параметрах дальность полета достигает 29 км, а максимальная высота подъема составляет 11,5 км.

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

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

Дальнейшее развитие темы будет представлено в последующих материалах цикла.

Список использованной литературы:

  1. Окунев Б. Н. «Решение основной задачи внешней баллистики при квадратичном законе сопротивления воздуха» (1932).

  2. Окунев Б. Н. «Основная задача внешней баллистики и аналитические методы её решения» (1934).

  3. Дмитриевский А. А., Лысенко Л. Н. «Внешняя баллистика» (2005).

  4. Лысенко А. Н. «Внешняя баллистика» (2024).

  5. Шапиро Я. М. «Внешняя баллистика» (1946).

  6. Беляева С. Д. «Внешняя баллистика с примерами и задачами» (2023).

7. Электронный ресурс КузГТУ: Методические материалы по баллистике

8. Мандрыка А. П. «Баллистические исследования Леонарда Эйлера» (2017)

9. Projectile motion with air resistance — Wikipedia

 

Источник

Читайте также