¿Cómo determinar una órbita de un satélite para una detección de colisión?

Estoy tratando de validar un detector de colisiones, y para eso estoy comenzando con un par de condiciones iniciales para un satélite. Después de eso, usaré un método RK para integrar. ¿Cómo puedo determinar un par de condiciones iniciales para un segundo satélite que conduciría a una colisión? Digamos en un intervalo de un día (86400 seg).

x=742453.224
y=-6345418.953 
z=-3394102.502  
vx=-5142.381  
vy=-4487.449 
vz=-7264.009
Para que dos satélites colisionen sus posiciones (xyz) deben coincidir al mismo tiempo t. A menos que restrinjas la velocidad de alguna manera, hay un número infinito de órbitas que pasan por una posición (xyz) en el tiempo t. Su problema es demasiado general para una respuesta.
@cms OP pide "un par" no "el par". Tienes razón en que hay un número infinito, pero eso no impide que el OP elija solo unos pocos.

Respuestas (1)

¿Cómo puedo determinar un par de condiciones iniciales para un segundo satélite que conduciría a una colisión?

Propagar una órbita es resolver un conjunto de ecuaciones diferenciales integrando numéricamente en el tiempo. Los principales efectos son la gravedad y la resistencia. Siempre que la nave espacial tenga un coeficiente de arrastre constante (no esté dando vueltas), estas ecuaciones se pueden ejecutar hacia atrás en el tiempo con la misma facilidad con la que se pueden ejecutar hacia adelante. Como se indica nuevamente a continuación, cuando retroceda en el tiempo , no olvide cambiar el signo de la fuerza de arrastre y si está utilizando armónicos esféricos distintos de los armónicos zonales (J2, J3, J4, ...), no lo haga . ¡ Olvídate de rotar la Tierra hacia atrás también!

El procedimiento sería integrar el movimiento de la primera nave espacial desde su estado inicial v 0 , X 0 por un día. Llame a la posición final y la velocidad X 1 , v 1 .

Vuelva a verificar su integración iniciando la nave espacial en X 1 , v 1 (la posición final, pero con la velocidad opuesta) y propagándose durante un día para asegurarse de que llega a X 0 , v 0 .

Ahora inicie una segunda nave espacial en el punto de colisión. X 1 pero elija una velocidad diferente a v 1 , y propagarlo por un día. llama al resultado X 2 , v 2 (Observe el signo negativo delante de la velocidad).

Cuando elijas una velocidad diferente, no olvides asegurarte de que no intersecte también la atmósfera terrestre. Una vez que fije su órbita inicial (vea a continuación), una buena manera de hacerlo es mantener la velocidad radial igual y simplemente rotar la velocidad tangencial alrededor del vector de radio. Eso dará como resultado una órbita de forma casi idéntica pero con una inclinación diferente.

¡Estás listo!

Si inicias la primera nave espacial en v 0 , X 0 y la segunda nave espacial en X 2 , v 2 e integrar ambos por un día, ambos deben llegar a X 1 , v 1 dentro de los límites de precisión de su integrador de métodos RK y otros artefactos numéricos.

Esto debería funcionar para una fuerza gravitacional central con armónicos esféricos (J2, etc.) pero sin Sol ni Luna, además de un término de arrastre que depende de la velocidad al cuadrado y de la altitud utilizando algún modelo atmosférico. (Consulte Efecto de arrastre atmosférico para obtener algunas ideas). Sin embargo, si usa el arrastre, debe cambiar el signo de su fuerza de arrastre cuando se propaga hacia atrás en el tiempo. Recordatorio de que esto solo funciona para un coeficiente de arrastre constante y sin problemas patológicos como el reingreso atmosférico.

Además, si está utilizando armónicos esféricos para la gravedad además de los armónicos zonales (J2, J3, J4, ...), también deberá girar la Tierra hacia atrás.

También debe prestar atención a dónde va cada órbita. ¡Sus condiciones iniciales parecen tener un periápside de unos 3660 km, que es una altitud de unos -2710 km! que está debajo de la superficie de la Tierra.

A continuación, he integrado usando solo la fuerza central y sin arrastrar con un simple script de Python. Puedes ver que la nave espacial se sumerge debajo de la superficie de la Tierra. Puede agregar J2 y armónicos superiores y arrastrar después de que esto funcione. (Consulte esta respuesta para obtener algunas ideas sobre cómo agregar J2 y la corrección relativista, pero necesitará un sistema de coordenadas más formal para hacerlo correctamente).

Obtuve una energía específica de -5.42E+06 Joules/kg.

una órbita que golpea la Tierra

def deriv(X, t):

    x, v = X.reshape(2, -1)
    a    = -GMe * x * ((x**2).sum())**-1.5
    return np.hstack((v, a))

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint

# https://space.stackexchange.com/questions/30125/how-to-determine-an-orbit-of-a-satellite-for-a-collision-detection

GMe = 3.986E+14
X0  = np.array([742453.224, -6345418.953, -3394102.502,
                -5142.381, -4487.449, -7264.009])

r0 = np.sqrt((X0[:3]**2).sum())
v0 = np.sqrt((X0[3:]**2).sum())

KE, PE = 0.5 * v0**2,  -GMe/r0
E      = KE + PE
print "E (Joules/kg): ", E

minutes = np.arange(2000.)
time    = 60. * minutes

answer, info = ODEint(deriv, X0, time, full_output=True)

xx, vv = answer.T.reshape(2, 3, -1)
rr     = np.sqrt((xx**2).sum(axis=0))

if True:
    plt.figure()
    plt.subplot(2, 1, 1)
    for thing in xx:
        plt.plot(minutes,  thing/1000.)
    plt.title('x, y, z (km) vs. time (minutes)')
    plt.subplot(2, 1, 2)
    plt.title('radius (km) vs. time (minutes)')
    plt.plot(minutes, rr/1000.)
    plt.plot(minutes, 6378.137 * np.ones_like(rr), '-k')
    plt.show()
Si solo se usan los armónicos zonales (J2, J3, J4, ...) la aceleración gravitacional varía solo con la latitud, por lo que no es necesario girar la Tierra. Mientras que si también se utilizan los armónicos tesserales y/o sectoriales, se necesita rotar la Tierra.
Probablemente mi comentario no sea claro. Si escribe: "si está utilizando armónicos esféricos por encima de J2, ¡no olvide girar la Tierra hacia atrás también!" me parece que te refieres solo a los armónicos zonales (J2, J3, J4, ..., Jn). Si sus declaraciones "por encima de J2" y "más allá de J2" significan que también incluye tesseral (J2,1, J3,1, J3,2, ...) y sectorial (J2,2, J3,3, ...) entonces estoy de acuerdo con tus afirmaciones.
@Cristiano No podía dejar de pensar en esto, así que leí un poco más y decidí que ciertamente podría haber razones para seleccionar solo los armónicos zonales por encima de J2, un ejemplo podría ser verificar expresiones analíticas para perturbaciones contra una prueba numérica, pero estoy seguro de que hay otros. Así que me he tomado muy en serio tu comentario y lo he editado en dos lugares. ¿Cómo se ve ahora?
Me parece mucho mejor. Es una práctica común incluir solo los armónicos zonales de menor grado (J2+J3 o J2 a J5) en las simulaciones. Cuando no necesito usar un modelo gravitacional completo (armónicos zonales, teserales y sectoriales), también se obtienen buenos resultados solo con J2+J3 (que también es mucho más rápido).
@Cristiano, ¿podría revisar esta respuesta si tiene la oportunidad?
Borraste la respuesta?
@Cristiano oh, de hecho, vi mis explicaciones de por qué y los comentarios que quedan debajo de la pregunta. Lo siento por eso, había olvidado que había hecho ping. Parece que hemos solucionado esto y que la "aproximación orbital epicíclica" no está relacionada con la gestión de satélites GEO colocados.
Oh, entonces la interfaz de usuario lo está eliminando porque para ese comentario en particular, ya enviará una notificación a la otra persona, por lo que el "arroba" no tiene ningún propósito. Ver respuestas a ¿Cómo funcionan los comentarios? y especialmente ¿Cómo funcionan las @respuestas de comentarios?