7 votos

Cálculo de vectores orbitales en el futuro

Para el simulador espacial 2D que estoy escribiendo (por favor, ten en cuenta que no son deberes), necesito fórmulas que me den la ubicación y la velocidad de una nave espacial, en relación con el cuerpo celeste de origen, en un momento específico en el futuro.

Sólo hay una masa planetaria que ejerce una atracción gravitatoria sobre la nave espacial, y la masa de ésta es despreciable. A partir de la $\vec{r}$ y $\vec{v}$ relativa al planeta, ya sé cómo calcular muchas cosas, como:

  • parámetro estándar de gravitación $\mu = G M$
  • excentricidad $e$
  • momento angular específico $h$
  • semieje mayor $a = \frac{h^2}{\mu(1 - e^2)}$ (¿es esto correcto?)
  • longitud de la periapsis $\varpi$
  • anomalía excéntrica $E$ de la verdadera anomalía $\theta$ (un ángulo que describe un desplazamiento desde $\varpi$ ), y viceversa

Entonces, utilizando todos estos valores, o posiblemente más (o menos), ¿qué fórmulas puedo utilizar para calcular el posición y velocidad en $t$ segundos ? Ya he probado a utilizar las siguientes fórmulas para calcular la posición en el futuro:

  • anomalía media $M(E) = E - e sin E$
  • anomalía media en periapsis $M_0 = M(E = \theta = 0)$
  • anomalía media en un momento determinado $M(t) = M_0 + t \sqrt{\frac{\mu}{a^3}}$

Sin embargo, esas fórmulas no funcionan para determinadas órbitas (como las órbitas hiperbólicas, en las que $a < 0$ ). Además, puede que sólo haya programado mal las fórmulas, pero utilizando la anomalía media, mi simulador no determina correctamente la posición en el futuro.

Ya he probado varios métodos para calcular la posición y la velocidad en el futuro, y no han funcionado. ¿Cuáles son las fórmulas correctas?

Gracias.

3voto

lionelbrits Puntos 7026

No hay solución de forma cerrada para la anomalía excéntrica en función del tiempo. Pero hay soluciones en serie que convergen bastante bien. Por eso se descubrieron las funciones de Bessel. Véase aquí ou aquí . Tendrás que resolver la relación entre la anomalía excéntrica y la anomalía media, es decir, $M = E - e \cdot \sin E$ numéricamente, por ejemplo, mediante el método de Newton o similar.

Si observa el siguiente gráfico de $E$ vs $M$ (a la izquierda),

enter image description here

se puede ver que la inversión de esta función se puede hacer muy rápidamente (y de forma muy estable) utilizando el método de Newton o la bisección, ya que es monótona y de un solo valor.

Así que una vez que tenga $E$ en términos de $M(t) = M_0 - \omega t$ numéricamente, se puede encontrar $r$ y $\theta$ ,

$r = a(1-e \cos E)$ , y $\theta$ que usted dijo que ya tiene.

Si sólo le interesa la velocidad, utilice la función Ecuación Vis-Viva $v^2 = GM \left({{ 2 \over{r}} - {1 \over{a}}}\right)$ Sin embargo, con la posición de la partícula conocida en coordenadas polares, es sólo una cuestión de diferenciación para obtener su vector de velocidad, y sustituir la anomalía excéntrica de nuevo. El meollo está en la última página de este enlace aunque es fácil de encontrar en la mayoría de los textos sobre mecánica clásica. No lo repetiré aquí porque probablemente cometeré una errata y habrá que repetirlo de todos modos.

Para quien siga interesado, aquí hay otro tratamiento del problema en detalle:

Convertir elementos Kepler en coordenadas cartesianas

Esta es prácticamente la forma canónica de abordar este problema, y lo ha sido durante cientos de años.

Este método también puede utilizarse en el caso hiperbólico ( ecuación hiperbólica de Kepler ) o en el caso parabólico ( Ecuación de Baker ), aunque las ecuaciones son algo diferentes.

Si estás simulando cosas, deberías considerar el uso de una librería numérica porque entonces puedes empezar a tratar con problemas multicuerpo como transferencias orbitales y, por supuesto, empuje :)

3voto

fibonatic Puntos 4018

En primer lugar, la ecuación de su semieje mayor me parece correcta.

En segundo lugar, no existe una ecuación explícita de su posición en función del tiempo. Sin embargo, hay una a la inversa, por lo que una ecuación para tiempo en función de su posición :

$$ t(\theta_0,\theta_1)=\sqrt{\frac{a^3}{\mu}}\left[2\tan^{-1}\left(\frac{\sqrt{1-e^2}\tan{\frac{\theta}{2}}}{1+e}\right)-\frac{e\sqrt{1-e^2}\sin{\theta}}{1+e\cos{\theta}}\right]^{\theta_1}_{\theta_0} $$

Para pequeños pasos en el tiempo se podría utilizar un polinomio, ya que se puede encontrar cualquier orden de derivada temporal de la anomalía verdadera $\theta$ : $$ \omega(\theta)=\frac{\delta}{\delta t}\theta=\frac{\delta \theta / \delta \theta}{\delta t / \delta \theta}=\frac{1}{\delta t / \delta \theta}=\sqrt{\frac{\mu}{a^3\left(1-e^2\right)^3}}\left(1+e\cos{\theta}\right)^2, $$ $$ \alpha(\theta)=\frac{\delta^2}{\delta t^2}\theta=\frac{\delta}{\delta t}\omega=\frac{\delta \omega / \delta \theta}{\delta t / \delta \theta}=\frac{-2e\mu\sin{\theta}}{a^3(1-e^2)^3}(1+e\cos{\theta})^3, $$ $$ ect. $$ Así que..: $$ \theta(t_0+\Delta t)=\theta_{t_0}+\Delta t\omega(\theta_{t_0})+\frac{1}{2}\Delta t^2\alpha(\theta_{t_0})+O(\Delta t^3) $$

Sin embargo, para grandes pasos en el tiempo este no será un método preciso, pero se podría utilizar para construir un método numérico iterativo calculando el tiempo a partir de $\theta(t_0+\Delta t)$ para determinar el nuevo $\Delta t$ : $$ \theta_{n+1}=\theta_n+\Delta t_n\omega(\theta_n)+\frac{1}{2}\Delta t_n^2\alpha(\theta_n) $$ $$ \Delta t_{n+1}=\Delta t_n-t(\theta_n, \theta_{n+1}) $$ En determinados casos, este método podría ser inestable (cuando $|\Delta t_{n+1}|>|\Delta t_n|$ ), en ese caso podrías dividir tu paso temporal en múltiples pasos, o aumentar el orden del polinomio. Probablemente hay un montón de otros métodos numéricos que son mejores / más rápido, pero yo no soy un experto en esta área, y esto debería funcionar y darle una idea de cómo resolver esto.

En el caso de las órbitas cerradas, también se puede reducir el tamaño del paso temporal mediante una operación modulo modificada: $\Delta t_{new}=\Delta t-round\left[\frac{\Delta t}{T}\right]T$ donde $T$ es igual al periodo de la órbita.

Editar I
Yo mismo estuve trasteando con esto en MATLAB y me di cuenta de que a menudo me encontraba con un problema. Creo que la mayoría de las veces porque el tiempo calculado era complejo porque $\theta_{n+1}$ superado el alcance máximo, por ejemplo una órbita hiperbólica nunca podrá alcanzar $\theta=\pi$ . Este intervalo viene determinado por el $\tan^{-1}$ Así que cuando $e\ge 1$ que $\theta_{max}=2\tan^{-1}\left(\frac{1+e}{\sqrt{e^2-1}}\right)$ . Ahora parece funcionar de forma fiable, a menos que intente calcular algo que se acerque a la precisión de la máquina. Por cierto, no sé en qué lenguaje informático estás programando este simulador, pero es muy probable que no sea capaz de manejar números complejos. Así que tendrías que tener esto en cuenta al realizar los cálculos, ya que cada cálculo debería devolver números reales, pero ciertos sub-resultados serán imaginarios.

Edición II
También busqué otros métodos para resolver esto, como Runge-Kutta, sin embargo no pude evitar el comportamiento inestable (cuando el paso de tiempo es demasiado grande). Sin embargo, un método que siempre sería estable es una especie de algoritmo de búsqueda binaria, en la que comprobar si un ángulo $\theta_{n+1}=\theta_n + \Delta\theta$ daría un paso en el tiempo menor que el paso deseado y, si es así, guarde ese valor. Y después de cada iteración el paso $\Delta\theta$ se dividirá por dos. Para ello tiene que elegir la inicial $\Delta\theta$ correctamente, a saber $\Delta\theta_0=\tan^{-1}\left(\frac{1+e}{e^2-1}\right)$ cuando $e\ge 1$ y $\Delta\theta_0=\pi$ cuando $e<1$ . La tasa de convergencia no es tan buena como la de los métodos anteriores, especialmente cuando $e$ es grande y el paso de tiempo deseado dará lugar a un radio muy alto. Por lo tanto, es posible que desee cambiar los métodos allí, pero no sé cuando el otro método será estable. Otra opción podría ser utilizar el primer método, pero realizar los cálculos relativos al radio, $r$ En cambio $\theta$ : $$ t(r)=\sqrt{\frac{a^3}{\mu}}\left(2\tan^{-1}{\sqrt{\frac{r-a(1-e)}{a(1+e)-r}}}-\sqrt{e^2-\left(\frac{r}{a}-1\right)^2}\right) $$ $$ \dot{r}=\sqrt{\frac{\mu}{a}}\frac{\sqrt{e^2a^2-(r-a)^2}}{r} $$ $$ \ddot{r}=\mu\left(\frac{a(1-e^2)}{r^3}-\frac{1}{r^2}\right) $$ $$ \dddot{r}=\sqrt{\frac{\mu^3}{a}}\frac{\sqrt{e^2a^2-(r-a)^2}}{r^5}(2r-3a(1-e^2)) $$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X