Ich machte eine Pause von Stack Exchange, sprang in mein Raumauto und flog den folgenden Kringel:
ab xyz = [-0.01, 0, -0.05]
und v_xyz = [0, -0.2, 0]
mit einer Gesamtflugzeit von
.
Als ich nach Hause kam, wurde mir gesagt: "Oh, das war ein hübsches Lissajous-Schnörkel, aber wie viel Delta-V hast du in das Auto getan? "
Ich sagte „Oh, nicht viel“ und ging schnurstracks zu meinem Computer, um wieder auf Stack Exchange zuzugreifen.
Frage: Wie viel Delta-V habe ich verwendet?
"Bonuspunkte" für die Aufnahme eines Python-Skripts in Ihre Antwort
3D-Plot der Position (Rückkehr zum Ursprung) und Plots der Geschwindigkeitskomponenten
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()
Als nur eine Geschwindigkeitsänderung ist, können wir einfach die Norm der Beschleunigungsfunktion über die Zeit integrieren:
Sie haben jedoch Pech, eine geschlossene Form dieses Integrals zu erhalten.
Was analytische Lösungen betrifft, können wir das bei feststellen , alle , Und ausgereizt sind, und daher .
In ähnlicher Weise wird die Beschleunigung zu jeder Zeit größer oder gleich einer der Komponenten sein, und da es sich um trigonometrische Funktionen handelt, sind ihre Integrale trivial.
Ich kann nicht sehen, dass von hier aus viel mehr dahinter steckt, als nur die Beschleunigungsfunktion in einen numerischen Integrator zu stecken. Es ist eine sanfte Kurve, also sind sie gut darin.
Integral(sqrt(cos(10*x)^2 + sin(5*x)^2 + cos(2*x)^2),0,2*pi)
-> 7.5279
Oder, nach der Definition der Beschleunigung, wenn Sie Geschwindigkeitsdaten haben:
Wenn Sie tabellarische Daten haben und sich nicht um Interpolation kümmern, ist das einfach:
Das summiert nur alle Geschwindigkeitsunterschiede zwischen den diskreten Datenpunkten.
J...
äh
J...
äh
äh
äh
J...
äh