Я сделал перерыв в Stack Exchange, прыгнул в свою космическую машину и написал следующую закорючку:
начиная с xyz = [-0.01, 0, -0.05]
и v_xyz = [0, -0.2, 0]
с общим временем полета
.
Когда я вернулся домой, мне сказали: «О, это была прекрасная закорючка Лиссажу, но сколько дельта-V вы нанесли на машину? »
Я сказал: «О, не так уж много» и направился к своему компьютеру, чтобы вернуться на Stack Exchange.
Вопрос: Сколько delta-v я использовал?
«бонусные баллы» за включение скрипта Python в ваш ответ
Трехмерный график положения (возврат в исходное положение) и графики компонентов скорости
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.integrate import odeint as ODEint
def deriv(X, t):
x, v = X.reshape(2, -1)
ax = np.cos(10*t)
ay = np.sin(5*t)
az = np.cos(2* t)
return np.hstack((v, [ax, ay, az]))
times = np.linspace(0, 2*np.pi, 1001)
X0 = np.hstack(([-0.01, 0, -0.05], [0, -0.2, 0]))
answer, info = ODEint(deriv, X0, times, full_output=True)
xyz, vxyz = answer.T.reshape(2, 3, -1)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d', proj_type = 'ortho')
x, y, z = xyz
ax.plot(x, y, z)
ax.plot(x[:1], y[:1], z[:1], 'ok')
ax.plot(x[-1:], y[-1:], z[-1:], 'or')
plt.show()
for thing in vxyz:
plt.plot(thing)
plt.show()
Как это просто изменение скорости, мы можем просто проинтегрировать норму функции ускорения по времени:
Однако вам не повезло получить закрытую форму этого интеграла.
Что касается аналитических решений, то можно отметить, что при , все , и исчерпаны, и, следовательно, .
Точно так же ускорение всегда будет больше или равно одному из компонентов, и, поскольку они являются тригонометрическими функциями, их интегралы тривиальны.
Я не вижу, что здесь есть что-то большее, чем просто помещение функции ускорения в числовой интегратор. Это плавная кривая, так что они хороши в этом.
Integral(sqrt(cos(10*x)^2 + sin(5*x)^2 + cos(2*x)^2),0,2*pi)
-> 7.5279
Или, по определению ускорения, если у вас есть данные о скорости:
Что, если у вас есть табличные данные и вы не беспокоитесь об интерполяции, просто:
Что просто суммирует все различия скоростей между дискретными точками данных.
Дж...
ооо
Дж...
ооо
ооо
ооо
Дж...
ооо