Cálculo del vector de estado de velocidad con elementos orbitales en 2D

Estoy escribiendo un pequeño proyecto que simula una órbita mediante la conversión de vectores de estado inicial r y v a elementos keplerianos, luego volviéndolos a convertir r y v de esos elementos keplerianos, pero dio un paso adelante. Estoy teniendo algunos problemas con la última parte.

He estado usando mucho la guía de conversión de René Schwarz , pero las transformaciones y rotaciones al final, sinceramente, me confunden, así que terminé usando True Anomaly y | r | para calcular el nuevo r , que parece funcionar, pero no sé cómo calcular v , tengo la ecuación para la velocidad en cualquier punto de una órbita con

v 2 = m ( 2 | r | 1 a )

Donde simplemente enchufo el nuevo | r | y obtengo | v | , pero tratando de usar esta ecuación para el vector tangente a cualquier punto en una elipse dado el ángulo,

a porque θ i + b porque θ j

Donde a es el semieje mayor, b es el semieje menor, y θ es el ángulo alrededor de la elipse (he estado usando True Anomaly como entrada para ese ángulo, ¿es correcto?) no parece funcionar para encontrar el vector tangente a la elipse. Entonces mis preguntas son:

  • ¿Cómo encuentro el vector tangente a una elipse orbital 2D dada? mi y a , así como también | r | , | v | , y la anomalía verdadera, excéntrica y media en ese punto? (También tengo algunos elementos adicionales que aún no he usado, como el argumento del periapsis, si es útil).

  • ¿Cómo determino en qué dirección debe mirar ese vector (para que no apunte hacia atrás cuando debería apuntar hacia progrado) dados los mismos valores que arriba?

+1para una gran reescritura! :) En este caso, podría haber una respuesta existente aquí que responda a su pregunta. Sé que ha habido al menos algunas preguntas algo similares. Si su pregunta termina siendo marcada como duplicada al señalar una respuesta existente, no lo considere algo malo. Es solo la forma en que stackexchange se asegura de que los futuros lectores reciban menos respuestas, pero de mayor calidad. Si no ayuda, por favor dígalo, y recuerde que puede hacer tantas preguntas de seguimiento (de calidad) así como preguntas totalmente nuevas que desee.
Hay (al menos) una respuesta más en algún lugar que aún no puedo encontrar que también puede ser útil. Además, uno de los dos documentos vinculados en esta respuesta también puede ser útil.
He encontrado la mayoría de esos antes, pero el número 4 parece útil, gracias.
No estoy seguro si estoy implementando algo mal o no; usar las transformaciones en el n. ° 4 no produce resultados coherentes, estoy usando el argumento de periapsis como ω = arcán 2 ( mi y , mi X ) y establecer la inclinación y la longitud del nodo ascendente en 0 (Wikipedia dice que esa es la convención en su argumento de la página periapsis).

Respuestas (2)

Suponiendo que la dirección del periapsis es la dirección positiva del eje x, entonces el vector a pecado mi i + b porque mi j es tangente a la órbita en el punto con la anomalía excéntrica mi . La velocidad es codireccional con este vector si la órbita va en sentido antihorario y contradireccional si la órbita va en el sentido de las agujas del reloj.

Si el ángulo entre la dirección positiva del eje x y la dirección del periapsis es ω (medido en sentido antihorario), entonces necesita rotar el vector en este ángulo, y el resultado es ( a pecado mi porque ω b porque mi pecado ω ) i + ( b porque mi porque ω a pecado mi pecado ω ) j .

Para el componente y de esa última ecuación que me estás dando, la salida va entre -a y a, ¿eso significa que estoy calculando mal el argumento del periapsis? Usé esta ecuación de wikipedia: ω = arcán 2 ( mi y , mi X ) . El valor de x también varía de un valor realmente bajo a otro.
Están mi X y mi y las coordenadas del periapsis en relación con el foco principal? Entonces es correcto. Pero no sé por qué el y -componente de la última expresión cambiaría entre a y a . si arreglas ω y variar mi , entonces debería cambiar entre ( a pecado ω ) 2 + ( b porque ω ) 2 y ( a pecado ω ) 2 + ( b porque ω ) 2 .
Se corrigieron esos problemas, solo errores aleatorios que aparecían debido a mis ajustes constantes. El resultado todavía no se ve bien. Comienzo con un vector de estado de (0,-350) (m/s) y (0,~200) (km) de mi masa principal, por lo que la velocidad no debería tener una magnitud superior a 350 (el periapsis es donde empiezo), pero usando v = | v | porque ( t ) i + | v | pecado ( t ) j donde t es el encabezado del vector que diste tiene una magnitud que va de 0 a 700. Mirando los números, hace v X oscilar en sentido contrario a v y , como uno está en apoapsis mientras que el otro está en periapsis.
Además, mi biblioteca de codificación tiene una función de rotación de vectores, usándola en a pecado mi i + b porque mi j debería funcionar, ¿correcto? Por lo que puedo decir de la fuente, gira convirtiendo el vector en un ángulo, agregando el ángulo de entrada y luego volviendo a convertirlo en un vector, ¿es una rotación equivalente?
"Estoy comenzando con un vector de estado de (0,-350) (m/s) y (0,~200) (km) de mi masa principal": ¿la velocidad inicial apunta hacia la masa principal? Entonces no es un periapsis. Acerca de la rotación: sí, la forma en que lo describe debería funcionar.
Oh, vaya, quise decir (200, 0) para r. De todos modos, el problema sigue ocurriendo. Sin embargo, podría ser un error en mi código, aún no puedo decirlo, solo lo estoy rehaciendo.

Para calcular el vector de velocidad en un problema de dos cuerpos, puede usar el ángulo de trayectoria de vuelo ϕ F pag a (de Fundamentos de Astrodinámica y Aplicaciones, D. Vallado). ϕ F pag a es el ángulo medido desde el horizonte local hasta el vector velocidad. Para ello, calcule el momento angular, que es constante:

h = r 0 × v 0

La norma del vector de posición | | r | | es:

| | r | | = a 1 mi 2 1 + mi porque F
donde F es la verdadera anomalía. Como mostraste anteriormente, la norma de velocidad como una función de r es
v 2 = m ( 2 | | r | | 1 a )

Asi que, ϕ F pag a se calcula es como tal:

porque ϕ F pag a = | | h | | | | r | | | | v | |
pecado ϕ F pag a = | | h | | | | r | | | | v | | × mi pecado F 1 + mi porque F
ϕ F pag a = atan2 ( pecado ϕ F pag a , porque ϕ F pag a )

Antes de mostrarle la expresión del vector de velocidad, necesitamos definir los siguientes vectores de dirección:

Direcciones

Donde r ^ es la direccion de r , t ^ está en la dirección de la velocidad y norte ^ es normal a la órbita y a t ^ . Además, las direcciones r ^ y s ^ son perpendiculares. Por lo tanto, el vector de velocidad v se puede expresar como:

v = | | v | | t ^ = | | v | | ( s ^ porque ϕ F pag a + r ^ pecado ϕ F pag a )

el calculo de r y s ^ en función de alguna dirección inercial es una tarea fácil, utilizando el ángulo de anomalía real F .

Probaré este mañana, pero parece que tienes un pequeño error tipográfico a primera vista, cuando muestras v = v t ^ Quieres decir que v = | v | porque ( t ^ ) i + | v | pecado ( t ^ ) k ?
No. t ^ es un vector unitario, no un escalar. Entonces, calcular su seno o coseno no tiene sentido. v = | | v | | es la norma de v y t ^ es un vector unitario en v dirección.