Sistemas de coordenadas para vectores de estado

Actualmente estoy trabajando en un proyecto de este libro . En el apéndice D, proporcionan algunos proyectos que se pueden codificar como una revisión de todo el material del libro. Terminé el primer proyecto, Site/Track y mi resultado está razonablemente cerca (gracias a la imprecisión numérica de Python) de la solución. Traté de usar la biblioteca de Python Orbital para trazar mi solución y agregar un acento visual agradable al proyecto.

Ingresé los vectores de estado, convirtiéndolos de Unidades de distancia y Unidades de tiempo definidas en el libro a donde mu = 1, a metros y metros por segundo (como lo requiere la función de conversión de función orbital. La salida fue un valor de excentricidad de .98, y un semieje mayor aproximadamente igual al radio de la tierra. Obviamente, esto no es correcto, así que continué con el siguiente punto de datos: el mismo resultado. ¿Está bien, tal vez sea mi código? Así que busqué el vector de estado para la ISS, que se encuentra aquí, lo ingresé en mi código y sale un hermoso gráfico de la órbita. Así que tal vez son solo los datos en el libro. Entro en un ejemplo diferente del libro del capítulo que seguí para crear el programa, donde convierten los vectores de estado en elementos orbitales. obtiene ese cálculo perfecto también. Luego pruebo una fuente más aquí, y estos vectores no funcionan en mi programa. También puse los 3 vectores en esta calculadora, la ISS y uno de mi libro funcionaron, pero los otros no. Estoy tratando de encontrar la inconsistencia que obviamente me estoy perdiendo...

Entonces mi pregunta es. ¿Hay diferentes marcos de referencia para estos vectores que podrían estar causando estos errores? ¿Qué otros errores podría estar introduciendo sin darme cuenta?

Aquí están mis datos de entrada del libro (que no funcionan) definidos en el libro como el marco de referencia IJK (inercial)

r = [ 1779987.13023855 -4944211.65294755  4065801.40507205] 
v = [ 2082.84303416 -1179.76617351   410.70269708]

Producción:

KeplerianElements:
    Semimajor axis (a)                           =   3493.823 km
    Eccentricity (e)                             =      0.950399
    Inclination (i)                              =     45.1 deg
    Right ascension of the ascending node (raan) =    160.3 deg
    Argument of perigee (arg_pe)                 =    303.1 deg
    Mean anomaly at reference epoch (M0)         =    144.4 deg
    Period (T)                                   = 0:34:15.239378
    Reference epoch (ref_epoch)                  = J1970.000
        Mean anomaly (M)                         =    144.4 deg
        Time (t)                                 = 0:00:00
        Epoch (epoch)                            = J1970.000

Los datos de la ISS que utilicé (se muestra el gráfico adecuado) se definen en el sitio web como m50 cartesiano.

r = [4607312.46, -1531324.39, 4749270.39]
v = [4597.800926, 5516.878978, -2671.990580]

Producción:

KeplerianElements:
    Semimajor axis (a)                           =   6794.798 km
    Eccentricity (e)                             =      0.000980
    Inclination (i)                              =     51.4 deg
    Right ascension of the ascending node (raan) =    212.9 deg
    Argument of perigee (arg_pe)                 =     53.7 deg
    Mean anomaly at reference epoch (M0)         =     62.7 deg
    Period (T)                                   = 1:32:54.113176
    Reference epoch (ref_epoch)                  = J1970.000
        Mean anomaly (M)                         =     62.7 deg
        Time (t)                                 = 0:00:00
        Epoch (epoch)                            = J1970.000
No estoy calificado para responder a esta pregunta, pero si lo estuviera, me gustaría ver sus datos de entrada y las salidas de su programa para cada uno de los casos que menciona, no solo palabras sobre ellos.
"La salida fue un valor de excentricidad de .98" ¿Por qué no puedo encontrar este número en sus tablas?
Y lo más importante, ¿dónde está el código?
Obviamente, hay algo mal con su primer ejemplo, porque no es posible un semieje menor que el radio de la Tierra. Bate, Mueller y White contienen mucho material sobre trayectorias de misiles balísticos, por lo que siempre es bueno verificar si los datos que te han dado corresponden a una "órbita" que solo dura 20 minutos entre el lanzamiento y el impacto, pero un < 3500 km está en lo profundo de la tierra en todo momento.
@RyanC es un buen punto; He planteado la hipótesis de que es una primera etapa reutilizable.
SE Ajustado. Gracias, no hay código porque no creo que mi código sea el problema, ya que todas las salidas coinciden. Estoy de acuerdo con @uhoh y creo que la velocidad es el problema, por lo que busqué este conjunto de datos myreaders.info/05_Satellites_Orbit_Elements.pdf . Estos todavía tienen órbitas terribles, casi hiperbólicas, pero lo conectaré a la ecuación vis-viva para verificar si los datos son malos para un satélite. Suponiendo que los datos son "malos", asumiré que el único vector de estado que produce una órbita "buena" es la ISS. Tal vez verifique SPICE para obtener más conjuntos de datos para probar.

Respuestas (1)

Aquí hay una respuesta parcial hasta que agregue más información según lo solicitado en los comentarios.

gracias a la imprecisión numérica de Python

No creo que estés cerca del límite de los flotadores de Python. En cambio, recordemos que las órbitas keplerianas son solo aproximaciones teóricas. Las mayores desviaciones provienen del achatamiento ecuatorial de la Tierra expresado por j 2 que es aproximadamente un efecto de 1 parte por mil. Si solo usas el central GRAMO METRO / r 2 fuerza vas a estar apagado por orden del 0,1%. Luego están los términos multipolares de orden superior, la gravedad del Sol y la Luna, etc.

Aquí están los vectores de estado inicial que informa. (¿Creo que ha convertido números sin unidades en su fuente? Sería bueno verlos también)

r = [1779987.13023855, -4944211.65294755, 4065801.40507205]  
v = [2082.84303416, -1179.76617351, 410.70269708]  

La ecuación vis-viva es increíblemente útil. Para órbitas de fuerza central (Keplerian), relaciona los valores escalares a , r y v independientemente de la dirección a la que apunten esos dos últimos vectores, ¡así que es muy útil!

v 2 = GRAMO METRO ( 2 r 1 a )

o

1 a = 2 r v 2 GRAMO METRO

El parámetro gravitatorio estándar de la Tierra (el producto GRAMO METRO ) es aproximadamente 3.986E+14 m^3/2^2.

Tienes r = 6644.12 kilometros y v = 2,42874 km/s. El radio ecuatorial de la Tierra (6378,137 km) se suele utilizar para asignar un valor de altitud, por lo que el objeto está a una altitud de 266 km moviéndose solo el 31 % de los 7,746 km/s necesarios para una órbita circular a esa distancia, por lo que es Voy a sumergirme con fuerza en la Tierra.

La ecuación vis-viva anterior da a = 3493,823 km exactamente como se muestra en la salida, lo que no sorprende, por lo que no confirmaré los otros elementos.

Podría ser un problema mal pensado enviar la nave espacial a una inmersión profunda, o dado que es tan lenta que incluso podría sobrevivir al reingreso si tiene motores, ¡un poco como una primera etapa reutilizable en la parte superior de su arco!

Gracias. Sabía que los valores de velocidad se veían mal, solo estaba tratando de hacer algunas presentaciones gráficas bonitas de los datos :)