He estado estudiando por mi cuenta Mecánica Orbital, y al resolver el Problema de Lambert, es común usar el enfoque de variable universal. Entiendo el algoritmo, pero no he encontrado ningún libro que explique bien el significado físico de la anomalía universal. y la variable adimensional .
¿Cuál sería el significado físico de estas dos variables?
de la Torre Sangra & Fantino's Review of Lambert's Problem así como Izzo's Revisiting Lambert's problem (también ArXiv ) citan Bate 1971 como Fundamentals of Astrodynamics por Roger R. Bate, Donald D. Mueller, Jerry E. White (Dover, 1971) (en google books , pdfs por ahí también) que presenta y :
y después:
Siguiente página de 204 de Fundamentos de astrodinámica :
Estas son solo variables de conveniencia que dependen del cambio de anomalía excéntrica desde el punto de movimiento inicial al final analizado (o previsto).
Para órbita elíptica:
o, para negativo (órbita hiperbólica),
Para órbita parabólica,
Para órbita elíptica:
Para órbita hiperbólica:
Para órbita parabólica, (también, cuando no hay cambios en la anomalía excéntrica).
donde es la anomalía excéntrica (página 183):
es "anomalía excéntrica parabólica" y - "anomalía excéntrica hiperbólica" (siempre un valor imaginario) - contrapartes de para trayectorias parabólicas e hiperbólicas. Las páginas siguientes explican la derivación de estos.
Como nota al margen, creo que Eccentric Anomaly merece una mejor justificación y explicación de lo que obtiene, con la extensión de líneas arbitrarias a círculos elegidos al azar para propósitos desconocidos.
Como la ecuación estándar de la elipse es (eso es una coordenada cartesiana , no la variable universal ) la parametrización típica es:
¡La respuesta de @ SF. se comprueba muy bien! xSF=xOP y zSF = zOP.
Usé algunas ecuaciones de esta respuesta .
No estoy seguro de si responde completamente a la pregunta del OP, pero dado que se verifica matemáticamente, otorgaré esta recompensa en particular.
Como dice Meatloaf, todo funciona si lo dejas.
def deriv(X, t):
x, v = X.reshape(2, -1)
acc = -x * mu * ((x**2).sum())**-1.5
return np.hstack((v, acc))
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
from scipy.integrate import cumtrapz as CTrapz
# https://space.stackexchange.com/questions/31032/what-exactly-means-universal-variable-x-and-z
halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]
mu = 1.0
a = 1.0
peri = 0.5
apo = 2.*a - peri
vperi = np.sqrt(mu*(2./peri - 1./a))
vapo = np.sqrt(mu*(2./apo - 1./a))
X0 = np.array([peri, 0, 0, vperi])
time = np.linspace(0, twopi, 201)
answer, info = ODEint(deriv, X0, time, full_output=True)
x, y, vx, vy = answer.T
theta = np.arctan2(y, x)
half_theta = 0.5 * theta
r = np.sqrt(x**2 + y**2)
xdot = np.sqrt(mu)/r
xOP = CTrapz(xdot, time, initial=0)
zOP = xOP**2/a
# https://space.stackexchange.com/questions/27602/what-is-hyperbolic-eccentric-anomaly-f/27604#27604
ecc = (apo-peri)/(apo+peri)
term = np.sqrt((1. - ecc)/(1. + ecc))
tanEover2 = term * np.tan(half_theta)
E = 2. * np.arctan(tanEover2)
E0 = E[0]
E[E<0] += twopi # keep it positive
xSF = np.sqrt(a)*(E - E0)
zSF = (E - E0)**2
things = ( r, theta, xOP, zOP, xdot, E, xSF, zSF )
names = ('r', 'theta', 'xOP', 'zOP', 'xdot', 'E', 'xSF', 'zSF')
if True:
plt.figure()
for i, (thing, name) in enumerate(zip(things, names)):
plt.subplot(2, 4, i+1)
plt.plot(time, thing)
plt.title(name, fontsize=16)
plt.show()
if True:
plt.figure()
plt.subplot(1, 2, 1)
plt.title('x and xSF versus time')
plt.plot(time, xOP, '-r', linewidth=4)
plt.plot(time, xSF, '--k', linewidth=2)
plt.subplot(1, 2, 2)
plt.title('z and zSF versus time')
plt.plot(time, zOP, '-r', linewidth=4)
plt.plot(time, zSF, '--k', linewidth=2)
plt.show()
if True:
x, y, vx, vy = answer.T
plt.subplot(1, 2, 1)
plt.title('y versus x')
plt.plot(x, y)
plt.plot([0], [0], 'ok')
plt.subplot(2, 2, 2)
plt.title('x and y versus time')
plt.plot(time, x)
plt.plot(time, y)
plt.subplot(2, 2, 4)
plt.title('vx and vy versus time')
plt.plot(time, vx)
plt.plot(time, vy)
plt.show()
UH oh
Pablo
Alberto De Celis Romero
Alberto De Celis Romero
UH oh
UH oh
polignomo