¿Cómo determinar un algoritmo para la propagación de la órbita terrestre baja, considerando la perturbación de la luna, el sol, etc.?

Estoy tratando de determinar un algoritmo para la propagación de la órbita de un satélite LEOcon alta precisión en un six monthintervalo de tiempo. La propagación debe considerar el Sol y la Luna, y cualquier otro efecto que valga la pena tener en cuenta.

Voy a integrar la órbita numéricamente. Ahora estoy usando la ecuación que describe un movimiento Kepleriano perturbado por los efectos principales de una Tierra achatada.Ecuación

Sin embargo, tengo que considerar también otros efectos para lograr resultados realistas.

¿Alguien podría sugerir literatura o proporcionar algunos enlaces y referencias? Estoy tratando de implementar los métodos y algoritmos yo mismo, por favor, no sugiera SW para este propósito.

Consulte esta respuesta space.stackexchange.com/a/23409/12102 y también intente buscar en este sitio etiquetas o términos como jpl-horizons, spice , pyephem y skyfield para empezar.
Básicamente estás pidiendo una solución al problema de los n cuerpos. No se ha solucionado. Todo lo que puedes hacer es simular.
@LorenPechtel Voy a integrar numéricamente.

Respuestas (5)

Gravedad newtoniana:

Su mayor efecto después del término del monopolo y j 2 serán todos los demás términos multipolares que representan el campo gravitacional realista de la Tierra expresado en armónicos esféricos . j 2 es el más grande de ellos con diferencia (orden 1E-03), pero ciertamente no el único. Creo que los siguientes tres en línea incluyen j 22 que representa/incluye el término azimutal (longitudinal) más bajo. Véase, por ejemplo, la subsección de Wikipedia Las desviaciones del campo gravitatorio de la Tierra respecto al de una esfera homogénea donde verá dónde j 2 encaja. Encontrará los coeficientes de los términos multipolares para el campo de potencial escalar expresados ​​en varios lugares, en diferentes órdenes. Luego tendrá que hacer los cálculos para encontrar el gradiente vectorial del campo que le dará los términos de aceleración como ha mostrado para j 2 . O bien, puede encontrar tablas con las expresiones y coeficientes ya evaluados para usted.

Algunos valores aproximados solo para darte una idea (copiados de 1 , 2 y 3 ):

J2  =  1.1E-03
J3  = -2.5E-06
J4  = -1.6E-06
J22 = -1.8E-06

He escrito más sobre el uso de los coeficientes de geopotencial en la pregunta aún sin respuesta Para la relación matemática entre J2 (km ^ 5 / s ^ 2) y J2 adimensional, ¿cuál se deriva del otro? .

Relatividad general:

He extraído este fragmento sobre una expresión de uso común para las correcciones debidas a la Relatividad General de esta respuesta , que incluye varias fuentes/referencias donde puede leer más sobre este tipo de cálculo.

Recuerde que sus coordenadas para el achatamiento son para la Tierra, y la eclíptica (donde se encuentra el Sol y Júpiter, por ejemplo) está inclinada aproximadamente 23 grados, y la órbita de la Luna tiene su propio plano y un movimiento orbital complejo.

Debe tratar al menos el Sol (¡que también se mueve !), la Tierra y la Luna (los siguientes en la línea serían Júpiter y Venus) como cuerpos adicionales cuyo movimiento debe integrarse numéricamente (puede hacerlo primero, almacenarlo y luego interpolar a partir de él) o puede interpolar sus posiciones a partir de una efeméride existente. Puede buscar en este sitio referencias spiceo Skyfieldinterpoladores de las Efemérides de desarrollo del JPL de la NASA, por ejemplo.

Aunque no estoy tan familiarizado con GR, voy a recomendar una ecuación que parece funcionar bien y parece estar respaldada por varios enlaces. Es una corrección relativista aproximada a la gravedad newtoniana que se utiliza en simulaciones de mecánica orbital. Verá varios formularios en los siguientes enlaces, la mayoría con términos adicionales que no se muestran aquí:

La siguiente aproximación debe agregarse a sus términos de gravedad newtoniana, donde r y v represente los vectores de distancia y velocidad entre cada objeto cuya aceleración está evaluando y cada objeto para el cual el término GR cree que tiene un campo gravitatorio lo suficientemente fuerte como para considerarlo. O puede hacerlo para todas las parejas si no quiere preocuparse por la limpieza.

a GRAMO R = GRAMO METRO 1 C 2 | r | 3 ( 4 GRAMO METRO r | r | ( v v ) r + 4 ( r v ) v ) .

correcciones, mejoras, ediciones bienvenidas!
¡Gracias por la respuesta! ¿Qué pasa con el arrastre atmosférico, la radiación solar, etc.?
@TarlanMammadzada Dejé ambos porque dependen en gran medida de la forma y la construcción de cada nave espacial individual. Puede obtener simplificaciones de los artículos de Wikipedia sobre esos temas en particular, pero los cálculos detallados son bastante complicados. En algunas altitudes, la resistencia también depende en gran medida del clima espacial, lo que conduce a grandes cambios en el perfil de la atmósfera superior. ¿Por qué no prueba modelos simples para esos primero, y una vez que su cálculo esté funcionando, compare con los datos reales de la nave espacial?
@TarlanMammadzada Oh, hay una lista de recursos realmente útil en la sección meta de este sitio, eche un vistazo: space.meta.stackexchange.com/questions/249/…
Entonces, ¿quieres decir que tengo que simular las órbitas y hacer correcciones con respecto a la aceleración? La pregunta es, ¿cómo simular la órbita de, digamos, Júpiter? La ecuación que describí en la descripción del problema está relacionada con la Tierra.
@TarlanMammadzada La gravedad es una fuerza de largo alcance, y todo siempre siente la influencia de todo lo demás. Sin embargo, dado que ninguna solución numérica es perfecta, puede ignorar todos esos pares que no tendrán un efecto significativo, por lo que el problema sigue siendo finito. Eche un vistazo a lo que he escrito sobre esto en esta respuesta y lo resumí nuevamente en esta pregunta .
@TarlanMammadzada Para una nave espacial, puede precalcular numéricamente N cuerpos grandes (por ejemplo, el Sol, la Tierra, la Luna, etc.) usando un vector de estado de tamaño 6N, guardar el resultado y luego calcular la trayectoria de la nave espacial interpolando las posiciones de todos de esos cuerpos en los pasos de tiempo de la nave espacial. Este no es un problema fácil de hacer bien. Lo mejor es obtener primero resultados razonables con un problema "pequeño" (realista, campo de gravedad terrestre giratorio, fijo en el origen), luego aprender a agregar cada influencia adicional una a la vez, reescribiendo su código o algoritmo a medida que avanza. ¡No lo intentes todo de una vez!
La gravedad de la Tierra se describe mediante la ecuación escrita en la pregunta. Ahora tengo que simular la luna. Entonces, ¿cómo propagar la órbita lunar? ¿Qué ecuación se debe integrar?
@TarlanMammadzada lo que dices es una simplificación excesiva. No hay una sola ecuación. Las ecuaciones en su pregunta son solo una aproximación de la gravedad de la Tierra (como expliqué en la respuesta). No voy a responder más preguntas en los comentarios. Parece que no estás leyendo los enlaces que ya he proporcionado. Esto no es simple, no hay un conjunto pequeño de ecuaciones que hagan lo que estás diciendo.
@TarlanMammadzada ¡gracias por la generosidad! En realidad, soy un dador de recompensas bastante activo; con suerte, publicará una respuesta, por lo que alguna pregunta pronto. Por cierto, no hay límites para la cantidad de preguntas que puede hacer, así que si necesita más sugerencias o aclaraciones, ¡pregunte temprano y con frecuencia! ;-)
@TarlanMammadzada ¡ay! Ha estado tan ocupado aquí con la actividad del Roadster que me los he perdido. ¡Gracias!

Puedes usar mi simulador y agregar tu código J2. Comience aquí: http://orbitsimulator.com/gravitySimulatorCloud/simulations/1517709441154_tarlan.html

Esto muestra la Tierra con la ISS en órbita. A medida que se propaga la ISS, se tienen en cuenta las perturbaciones de la Luna, el Sol y todos los planetas. Pero la Tierra es tratada como una esfera. Como resultado, las órbitas bajas son razonablemente precisas durante uno o dos días antes de que el abultamiento de la Tierra preceda notablemente a la órbita de la ISS. Las órbitas altas siguen siendo precisas durante años o décadas.

Tus ecuaciones muestran las aceleraciones x, y, z debidas al abultamiento. En el menú, abra Piloto automático > Por iteración. Puede agregar código aquí que se ejecutará con cada iteración.

Como un ejemplo bastante inútil, ingrese este código y presione "Actualizar". Esto hace que la ISS acelere a 1 m/s/s a lo largo de cada componente.

// reemplaza las siguientes 3 líneas con tu código J2 xDotDot = 1; // m/s^2

yPuntoPunto = 1;

zPuntoPunto = 1;

// La ISS es el objeto 12. Actualiza su velocidad usando la aceleración. (delta v = en)

objvx[12] += xPuntoPunto * PasoTiempo;

objvy[12] += yDotDot * timeStep;

objvz[12] += zDotDot * timeStep;

Gracias, pero estoy tratando de implementar el código yo mismo. Si desarrolló el simulador, ¿podría explicar cómo lidiar con las perturbaciones?
Usé Runge-Kutta 4. El estado del sistema solar en una fecha determinada se obtiene de JPL Horizons. Cárguelo en matrices objx, objy, objz, objvx, objvy, objvz y establezca un paso de tiempo. Cada vez que llama a RK4(), propaga el sistema hacia adelante o hacia atrás en el tiempo según el paso de tiempo.
Ok, puedo propagar las órbitas de los planetas, la luna y el satélite si conozco los efectos de las perturbaciones. ¿Qué ecuaciones resuelves por RK4?
deltaV = aceleración * tiempo, posición = v * tiempo. Si haces esto para cada planeta en cada otro planeta, obtendrás las perturbaciones automáticamente. Incluso si no conoce las perturbaciones, esto las revelará.
@uhoh ¿Qué piensas de esto?

Si está propagando la órbita de un objeto en una órbita terrestre baja y lo integrará numéricamente, entonces debe usar un modelo de gravedad muy preciso. AFAIK, esto agregará más efectos a la solución que la gravedad de otros planetas. Mi sugerencia es que use EGM2008 (o EGM96) para calcular la aceleración de la Tierra.

Para la propagación numérica, básicamente tendrás que sumar todas las aceleraciones y usar una solución de ecuación diferencial muy precisa. Si desea ver un ejemplo de un propagador de órbita de alta precisión, puede buscar esta solución en MATLAB:

https://www.mathworks.com/matlabcentral/fileexchange/55167-high-precision-orbit-propagator

Como han mencionado otros, estás hablando de un problema de n-cuerpos. Como también han mencionado, es un problema sin resolver. Lo mejor que hemos encontrado es integrar el sistema numéricamente. Existen herramientas para este propósito, pero generalmente tendrá que saber un poco de programación para que funcionen. Por ejemplo, puedes probar Rebound . Personalmente, nunca he trabajado con esta biblioteca, pero parece una muy buena apuesta. Comenzaría con este ejemplo que modela el sistema solar y le agregaría su nave espacial hipotética.

Sí, voy a integrar numéricamente. Sin embargo, estoy tratando de entender los principios, no usar SW ya desarrollado.
Para integrar numéricamente:
Para integrar numéricamente, configure un bucle doble para que cada objeto pueda atraer a todos los demás objetos. Dentro del segundo bucle, calcule la aceleración debida a la gravedad en el objeto interior desde el objeto exterior: a=GM/d^2. Descomponga esta aceleración en componentes x, y, z. Actualice la velocidad del objeto interno, componente por componente por deltaV = un * paso de tiempo. Luego actualice la posición del objeto interno, componente por componente, y actualice su posición: deltaR = v * paso de tiempo.
Esto se llama método de Euler-Cromer y es lo suficientemente bueno para muchos propósitos si el paso de tiempo no es demasiado alto. Los métodos de orden superior, como RK4, funcionan básicamente de la misma manera, pero utilizan medios pasos y cuartos de paso para mejorar la precisión.
Lo que describiste parece simple, sin embargo, ¿qué pasa con la ecuación que mencioné en la descripción del problema?

Si sustituye sus EOM por el primer término aquí, creo que obtendrá los EOM de N-cuerpo que está buscando:

De Ocampo, Elementos de un sistema de software para la optimización de la trayectoria de la nave espacial en Conway, Optimización de la trayectoria de la nave espacial, página 85:

Una expresión de ejemplo para gramo es la aceleración que actúa sobre una nave espacial debido a un cuerpo gravitatorio principal C b y posiblemente incluyendo la aceleración gravitatoria debida a norte b cuerpos celestes adicionales cuyas posiciones dependientes del tiempo r j ( t ) con respecto a C b se obtienen a partir de unas efemérides precalculadas

(4.13) gramo ( r , t ) = GRAMO metro C b r 3 r GRAMO j = 1 norte b metro j ( r r j ( t ) | r r j ( t ) | 3 + r j ( t ) r j 3 ( t ) )

donde GRAMO es la constante universal de gravitación, metro C b es la masa del cuerpo celeste principal, y metro j es la masa del cuerpo celeste j . Según el problema, es necesario agregar a la función vectorial términos adicionales que representen otras aceleraciones comunes, como el arrastre atmosférico, la presión de la radiación solar y los cuerpos celestes no esféricos. gramo .