He estado tratando de crear una simulación orbital utilizando la aproximación de cónicas parcheadas como el Programa espacial Kerbal. Inicialmente intenté resolver la ecuación de Kepler usando el método de Newton, sin embargo, esto dejaba mucho que desear, ya que requiere que se proporcionen muchas variables iniciales, como el semieje mayor y la excentricidad, mientras que solo tengo un vector de radio y un vector de velocidad. Además, este enfoque parece desmoronarse con órbitas que son parabólicas o hiperbólicas (o rectilíneas), sin mencionar que es bastante computacionalmente intensivo. Esto me lleva al método Goodyear de la respuesta de lamont a esta pregunta.
Determinación de la posición orbital en un punto futuro en el tiempo
Sin embargo, no he podido conseguir que produzca resultados válidos. Todos los vectores de radio que obtengo forman líneas rectas. Por lo que entiendo, todo lo que se requiere es el vector de radio inicial, el vector de velocidad, el parámetro gravitatorio y el intervalo de tiempo. He estado dando estos valores en unidades SI, metros y segundos. ¿Espera unidades diferentes?
Si todo lo anterior falla, ¿existen otras soluciones generales para el problema de los dos cuerpos que solo requieran el vector de radio y el vector de velocidad iniciales, y que puedan devolver un vector de radio y un vector de velocidad en algún momento 't' en el futuro? ¿Y cuál de estos se presta mejor a una aproximación cónica parcheada?
Probablemente ya encontraste una respuesta cuando publicaste esta pregunta, pero todavía doy una respuesta en caso de que te ayude.
Usar los elementos orbitales es la "manera correcta" de hacerlo. Hay 6 de ellos, descritos en este artículo de Wikipedia :
Los primeros cinco describen completamente la geometría de una órbita en 3D. La verdadera anomalía es un ángulo que se refiere a la posición del cuerpo/nave espacial en esa órbita. Puede calcular todos estos parámetros a partir de vectores de estado inicial (posición y velocidad), conociendo el parámetro gravitatorio estándar del cuerpo atractor. René Schwarz describe las matemáticas en este PDF sobre cómo convertir vectores de estado orbitales cartesianos en elementos orbitales.
Una vez que tenga los elementos de una órbita, puede usarlos para calcular los vectores de estado (vector de posición/radio y vector de velocidad) en cualquier momento siguiendo este otro PDF sobre cómo convertir elementos orbitales en vectores de estado cartesianos. Sin embargo, algunas fórmulas descritas en el documento solo funcionan para órbitas elípticas. Para órbitas hiperbólicas (cuando ) tendrás que usar otras fórmulas para la anomalía excéntrica y verdadera (ver este artículo de Wikipedia y la segunda respuesta en esta publicación ), así como adaptar la fórmula para el vector de velocidad del documento (ver esta publicación ).
Las matrices de rotación de aspecto "complicado" que establecen la posición y la velocidad de la nave espacial/cuerpo en el espacio 3D se pueden desarrollar en estos pasos:
(Tenga en cuenta que en los documentos de René Schwarz, considera el eje z como el eje "arriba", en lugar del eje y)
El caso de una órbita parabólica ( ) puede ser, como dijo notovny en un comentario, cortésmente ignorado (aplicar el algoritmo de avestruz ).
Sin embargo, tenga en cuenta que es posible que deba tener en cuenta los casos extremos. es decir, cuando se trata de órbitas que son muy cercanas a las circulares o tienen una inclinación nula. En estos casos, las fórmulas para ángulos, como la anomalía verdadera en el primer documento, no funcionarán (darán valores de NaN debido a la precisión del punto flotante y los redondeos). Por lo tanto, para estos casos particulares, deberá establecer vectores predeterminados, por ejemplo, el vector excéntrico, y calcular los ángulos a partir de él.
En cuanto a las unidades, las fórmulas de hecho esperan unidades SI. (Sin embargo, puede usar cualquier múltiplo de estas unidades siempre que lo tenga en cuenta en las ecuaciones).
litografía
vacíoestrella240
notovni
lamont
lamont