Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

План работ: Задача №4 "Полет вокруг Луны"

I. Математическая модель и подготовка

На этом этапе осуществляется перевод физической задачи в форму, пригодную для численного интегрирования.

1. Сбор и стандартизация констант

1.1. Определение основных физических констант ($G, m_1, m_2$) и начальных радиусов ($R_{Земли}, R_{Орбиты Луны}$). 1.2. Определение угловой скорости Луны ($\omega_{Луны}$) на основе ее физического орбитального периода ($\approx 27.32$ суток) для корректной подстановки в формулу $\mathbf{r}_2(t)$.

2. Сведение к системе ОДУ первого порядка

2.1. Определение вектора состояния $\mathbf{Y}$ с четырьмя компонентами (2D-положение и 2D-скорость ЛА): $$\mathbf{Y} = (x_3, y_3, \dot{x}_3, \dot{y}_3)^T$$ 2.2. Создание функции правой части $f(t, \mathbf{Y})$ (функция ускорения), которая вычисляет производную вектора состояния $\frac{d\mathbf{Y}}{dt}$ согласно дифференциальному уравнению движения: $$\frac{d\mathbf{Y}}{dt} = \begin{pmatrix} \mathbf{v}_3 \ \mathbf{a}_3 \end{pmatrix}$$


II. Численные методы и интегрирование

На этом этапе реализуются и запускаются методы решения задачи Коши.

1. Реализация численных методов

1.1.1 Метод Рунге-Кутты 4-го порядка (РК-4)

Мы решаем систему первого порядка $\frac{d\mathbf{Y}}{dt} = \mathbf{f}(t, \mathbf{Y})$, где $\mathbf{Y}$ — это вектор состояния с четырьмя компонентами:

$$\mathbf{Y} = \begin{pmatrix} x_3 \ y_3 \ \dot{x}_3 \ \dot{y}_3 \end{pmatrix}$$

Формулы для шага от $t_n$ к $t_{n+1} = t_n + h$:

  1. Первый наклон ($\mathbf{k}_1$): Наклон в начале интервала. $$\mathbf{k}_1 = h \cdot \mathbf{f}(t_n, \mathbf{Y}_n)$$
  2. Второй наклон ($\mathbf{k}_2$): Наклон в средней точке (1). $$\mathbf{k}_2 = h \cdot \mathbf{f}\left(t_n + \frac{h}{2}, \mathbf{Y}_n + \frac{\mathbf{k}_1}{2}\right)$$
  3. Третий наклон ($\mathbf{k}_3$): Наклон в средней точке (2). $$\mathbf{k}_3 = h \cdot \mathbf{f}\left(t_n + \frac{h}{2}, \mathbf{Y}_n + \frac{\mathbf{k}_2}{2}\right)$$
  4. Четвертый наклон ($\mathbf{k}_4$): Наклон в конце интервала. $$\mathbf{k}_4 = h \cdot \mathbf{f}(t_n + h, \mathbf{Y}_n + \mathbf{k}_3)$$

Обновление вектора состояния $\mathbf{Y}_{n+1}$: $$\mathbf{Y}_{n+1} = \mathbf{Y}_n + \frac{1}{6}(\mathbf{k}_1 + 2\mathbf{k}_2 + 2\mathbf{k}_3 + \mathbf{k}_4)$$

(Все операции выполняются векторно (покомпонентно) над массивами NumPy).


1.2.1 Начальные условия ($\mathbf{Y}_0$)

Для запуска метода РК-4 требуется только один начальный вектор состояния $\mathbf{Y}0$ в момент времени $t_0=0$. Этот вектор формируется на основе заданных параметров **$V{start}$** (величина начальной скорости) и $\alpha$ (угол старта).

Компонента Формула Описание
$x_3(0)$ $R_{Земли} \cdot \cos \alpha$ Начальное положение X (Старт с поверхности Земли)
$y_3(0)$ $R_{Земли} \cdot \sin \alpha$ Начальное положение Y
$\dot{x}_3(0)$ $V_{start} \cdot \cos \alpha$ Начальная скорость X ($V_{start} \ge 11200 \text{ м/с}$)
$\dot{y}_3(0)$ $V_{start} \cdot \sin \alpha$ Начальная скорость Y

Таким образом, начальный вектор состояния: $$\mathbf{Y}0 = \begin{pmatrix} R{Земли} \cos \alpha \ R_{Земли} \sin \alpha \ V_{start} \cos \alpha \ V_{start} \sin \alpha \end{pmatrix}$$


1.1.3 Процесс вычисления первых 4-х точек

Для многошагового метода Адамса-Башфорта 4-го порядка требуется $\mathbf{Y}_0, \mathbf{Y}_1, \mathbf{Y}_2, \mathbf{Y}_3$. Мы используем РК-4 для выполнения 3 последовательных шагов интегрирования с шагом $h$.

Шаг Входные данные Выходные данные Время
0 Заданы $\mathbf{Y}_0$ $t_0$
1 $\mathbf{Y}_0, t_0, h$ $\mathbf{Y}_1$ (по формуле РК-4) $t_1 = t_0 + h$
2 $\mathbf{Y}_1, t_1, h$ $\mathbf{Y}_2$ (по формуле РК-4) $t_2 = t_0 + 2h$
3 $\mathbf{Y}_2, t_2, h$ $\mathbf{Y}_3$ (по формуле РК-4) $t_3 = t_0 + 3h$

После этого мы передаём эти 4 вектора $(\mathbf{Y}_0, \mathbf{Y}_1, \mathbf{Y}_2, \mathbf{Y}_3)$ и соответствующие времена $(t_0, t_1, t_2, t_3)$ в функцию Адамса-Башфорта для продолжения основного расчёта траектории.


1.2.1 Метод Адамса-Башфорта 4-го порядка (АБ-4)

Метод Адамса-Башфорта 4-го порядка — это явный, многошаговый метод, используемый для численного интегрирования системы ОДУ $\frac{d\mathbf{Y}}{dt} = \mathbf{f}(t, \mathbf{Y})$. Он является более быстрым для основного расчёта траектории, чем РК-4, но требует четырех предыдущих точек для предсказания следующей.

1.2.2 Фундаментальное требование (Начальная стадия)

Поскольку АБ-4 является многошаговым и требует знаний о четырёх предыдущих векторах состояния, он не может начать расчёт с одной начальной точки $\mathbf{Y}_0$.

Начальные условия: Четыре начальных вектора состояния ($\mathbf{Y}_0, \mathbf{Y}_1, \mathbf{Y}_2, \mathbf{Y}_3$) и соответствующие им значения правой части ($\mathbf{f}_0, \mathbf{f}_1, \mathbf{f}_2, \mathbf{f}_3$) обязательно вычисляются с помощью более точного одношагового метода, такого как Рунге-Кутта 4-го порядка (РК-4).

1.2.3 Формула Адамса-Башфорта 4-го порядка

После того как первые четыре точки получены, метод АБ-4 использует их для вычисления последующего вектора состояния $\mathbf{Y}_{n+1}$ по следующей явной формуле:

$$\mathbf{Y}_{n+1} = \mathbf{Y}_n + \frac{h}{24} \left(55 \mathbf{f}_n - 59 \mathbf{f}_{n-1} + 37 \mathbf{f}_{n-2} - 9 \mathbf{f}_{n-3}\right)$$

Где:

  • $\mathbf{Y}{n+1}$ — искомый вектор состояния в момент $t{n+1}$.
  • $\mathbf{Y}_n$ — вектор состояния на предыдущем шаге $t_n$.
  • $h$ — шаг интегрирования.
  • $\mathbf{f}_k = \mathbf{f}(t_k, \mathbf{Y}_k)$ — вектор производных (ускорений) в момент $t_k$.

Процесс вычисления

Для вычисления $\mathbf{Y}_{n+1}$ требуются четыре предыдущих вектора производных:

  1. $\mathbf{f}_n$: Производная на текущем шаге.
  2. $\mathbf{f}{n-1}, \mathbf{f}{n-2}, \mathbf{f}_{n-3}$: Производные на трёх предыдущих шагах.

После вычисления $\mathbf{Y}{n+1}$, его производная $\mathbf{f}{n+1} = \mathbf{f}(t_{n+1}, \mathbf{Y}{n+1})$ сразу же вычисляется и сохраняется. Она будет использована на следующем шаге, когда потребуется вычислить $\mathbf{Y}{n+2}$.

2. Установка тестовых начальных условий

2.1. Выбор цели: Задача 1 — "Сделать полный оборот вокруг Луны". 2.2. Определение начальной позиции ($\mathbf{r}3(0)$): Старт с поверхности Земли (например, $\mathbf{r}3(0)$ по углу $\alpha$ с радиусом $R{Земли} = 6,371,000 \text{ м}$). 2.3. Определение начальной скорости ($\mathbf{v}3(0)$): * Величина скорости $V{start}$ должна быть $\ge 11200 \text{ м/с}$ (вторая космическая скорость). Выбирается $V{start} = 11250 \text{ м/с}$. * Направление скорости $\alpha$ выбирается для перехвата Луны, исходя из ее положения в $t=0$. 2.4. Определение параметров интегрирования: Установка малого шага $h$ (например, $h=100.0 \text{ с}$) для обеспечения численной стабильности и общего времени симуляции ($T_{общ} \approx 4-5$ суток) для достижения Луны.

3. Запуск интегрирования

3.1. Расчет первых 4 точек с помощью РК-4. 3.2. Расчет полной траектории $Y_{sol}$ с помощью АБ-4 до $T_{общ}$.


III. Визуализация и проверка результата

На этом этапе создается финальный продукт — анимация, демонстрирующая физическую суть процесса.

1. Настройка анимации

1.1. Создание функции animate_solution с использованием matplotlib.animation.FuncAnimation. 1.2. Фиксация масштаба: Установка пределов осей $\text{xlim}$ и $\text{ylim}$ для ограничения видимой области (например, $\pm 1.5 \times R_{Орбиты Луны}$) с целью четкой визуализации орбиты Луны. 1.3. Реализация функции update(i) для динамического обновления положения Земли, Луны и ЛА на каждом кадре. Увеличение параметра interval для замедления воспроизведения.

About

Coursework for numeric methods

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages