¿Altitud del satélite en función del tiempo?

Para obtener una estimación de radiación más precisa en esta pregunta , estoy tratando de aproximar y/o determinar la altitud de un satélite en función del tiempo. El satélite tiene un apogeo de 32190 km sobre la tierra y un perigeo de 320 km sobre la tierra.

Asumo las siguientes propiedades por simplicidad:

  • Sin inclinación de la órbita, por lo que en el plano ecuatorial,
  • Sin efectos J2.
  • Sin arrastre atmosférico/otras fuerzas de arrastre.

Si ves algún error por favor házmelo saber :)

Enfoques:

  1. Encuentre una solución analítica de forma cerrada
  2. Encontrar una solución analítica iterativa
  3. Encuentre software de simulación de órbita para recuperar la altitud de la órbita
  4. Encuentre un conjunto de datos de altitudes de órbita en función del tiempo de satélites equivalentes.

Resumen de los resultados del intento:

  1. Según este intento no existe una forma cerrada (simple). Intentaba ser eficaz, no reinventar la rueda, así que cambiaré a un método numérico para obtener una función de la altitud de la órbita.

2. Resuelto en las respuestas: La clase Orbital Dynamics Part 18 -- Formula for True Anomaly explica cómo se puede encontrar la anomalía excéntrica mediante un intento iterativo. Tenía curiosidad por saber cómo se relaciona esto con la naturaleza diferencial de la ecuación.

Esta solución se resuelve en las respuestas.

  1. Lo intenté:

https://www.thanassis.space/gravity.html

http://en.homasim.com/orbitsimulation.php

https://nl.mathworks.com/matlabcentral/fileexchange/57132-satellite-orbit-transfer-simulation

Las 2 primeras páginas de estos modelos:

http://www.winsite.com/satellite/satellite+simulator+orbit/

https://github.com/pytroll/pyorbital

Y muy prometedor pero incapaz de descargar:

https://nl.mathworks.com/matlabcentral/fileexchange/57132-satellite-orbit-transfer-simulation

4. Resuelto en las respuestas: Funcionó, aunque la medianoche resultó en un error, así que lo reinicié y esperé una media órbita (desde el apogeo hasta el perigeo o al revés), ya que la simetría produce la órbita completa. La solución se encuentra en las respuestas.

No estoy seguro de si esto es apropiado, ¡pero gracias a todos por los comentarios críticos y de apoyo! :)

¿Inclinación de la órbita? ¿Necesita la perturbación J2?
Gracias @Prakhar, adapté la pregunta para abordar sus comentarios.
¿Podría proporcionar un enlace a la otra pregunta? En este momento solo dice [1]sin enlace.
@barrycarter sí, por supuesto, gracias por señalarlo. No me di cuenta de que la referencia se rompería después de separar la respuesta y la pregunta, ahora lo sé.
Voto para cerrar esta pregunta como fuera de tema porque es una forma extremadamente larga de descubrir que no hay una solución de forma cerrada para la anomalía media M (... ¿es esa anomalía media? Lo olvidé) que tampoco entiende que no puede simplemente sustituir E (t) en lo que quiera.
@ErinAnne Gracias por señalar la confusión entre la anomalía media M y la anomalía excéntrica E. Me adapté en el enfoque de solución analítica. En cuanto al fuera de tema, creo que en el "espacio" la determinación de la altitud del satélite es bastante relevante, me sorprendió la poca documentación de los enfoques de baja precisión y su facilidad de uso, por lo que creo que un intento exhaustivo beneficia a quienes buscan hacer lo mismo. comenzar en el mismo punto.
@at ¡Puedo ver que está poniendo una cantidad considerable de trabajo e investigación previa en esta pregunta! Está creciendo bastante ahora y se está volviendo cada vez más difícil de leer. Te propongo que lo simplifiques. Para obtener la dosis total por órbita con un perfil dado de dosis 1D vs altitud, todo lo que necesita es la distribución del tiempo pasado en cada altitud, en otras palabras d t / d r . Eso podría ser un poco más simple, y creo que las matemáticas son interesantes.

Respuestas (2)

Enfoque 4 (Enfoque exitoso)

En este momento, no puedo continuar con el enfoque analítico, así que encontré un satélite (escombros) a través de http://stuffin.space/?intldes=2012-008N que tenía una órbita similar a la que yo estoy tratando de determinar, escribí un pequeño script de Excel que rastrea los datos de http://www.satview.org/forec.php?sat_id=43273U una vez cada minuto, para que mañana pueda ordenar los datos y obtener la altitud aproximada como una función del tiempo.

El guion es:

Sub absorb_data_from_vdb()
Application.Wait (Now + TimeValue("0:00:10")) 'H:MM:SS
'source: https://plus.google.com/105053415343007690451/posts/1pjy2PFVwN5
Dim ie As Object
Dim objelement As Object
Dim c As Integer
Dim i
Dim strCaptcha As String
Dim strImageSource As String
Dim img As HTMLhtmlElement 'tools =>reference Microsoft Html Object Library
Set ie = CreateObject("InternetExplorer.Application")

Dim click_changed_additions  As Integer
Dim electric_bullet_count As Integer
Dim gas_bullet_count As Integer


With ie
    .Visible = True
    .navigate "http://www.satview.org/forec.php?sat_id=43273U"
    'wait until first page loads
    Do Until .readyState = 4
        DoEvents
    Loop
    Application.Wait (Now + TimeValue("0:00:02")) 'H:MM:SS
    whole_day = 2
    Do While whole_day < 10
        .Refresh
        Do Until .readyState = 4
            DoEvents
        Loop
        Application.Wait (Now + TimeValue("0:00:02")) 'H:MM:SS

        Set elements0e = ie.document.getElementsByClassName("link_mudar") 'Get innertext to get value
        If elements0e.Length <> 0 Then
            'MsgBox (elements0e.item(2).innerText)
            elements0e.item(2).Focus
            elements0e.item(2).Click
            'MsgBox ("clicked link")
        End If

        If ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 < 2 Then
            ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = 2
        End If
        For Iteration = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 To ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 + 100
            Set elements0e = ie.document.getElementsByClassName("texto_track2") 'Get innertext to get value
            If elements0e.Length <> 0 Then
                ThisWorkbook.Worksheets("Sheet1").Range("A" & 2 + Iteration).Value = elements0e.item(0).innerHTML
                ThisWorkbook.Worksheets("Sheet1").Range("F" & 2 + Iteration).Value = Now()
                'MsgBox ("found from")
            End If
        Next Iteration
        For Iteration = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 To ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 + 100
            Set elements0e = ie.document.getElementsByClassName("texto_track2") 'Get innertext to get value
            If elements0e.Length <> 0 Then
                ThisWorkbook.Worksheets("Sheet1").Range("G" & 2 + Iteration).Value = elements0e.item(1).innerHTML
                'MsgBox ("found from")
            End If
            If ThisWorkbook.Worksheets("Sheet1").Range("A1").Value < Iteration + 2 Then
                ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Iteration + 2
            End If

        Next Iteration

        proceed_boolean = False
        Do While proceed_boolean = False
        If Left(Right(Now(), 5), 2) <> Left(Right(ThisWorkbook.Worksheets("Sheet1").Range("F" & 2 + Iteration - 1).Value, 5), 2) Then
            'MsgBox ("A minute has passed")
            'MsgBox (Left(Right(Now(), 5), 2))
            'MsgBox (Left(Right(ThisWorkbook.Worksheets("Sheet1").Range("F" & 2 + Iteration - 1).Value, 5), 2))
            proceed_boolean = True
            Application.Wait Now + #12:00:02 AM# 'This waits for 5 seconds
        End If
        Loop


    Loop
End With
MsgBox ("Done")

End Sub

Después de dos ejecuciones, se traza el siguiente gráfico para la órbita equivalente:

Altitud del satélite vs tiempo Velocidad del satélite vs tiempo

La inspección visual produce una función de órbita clara, después de eliminar los valores atípicos. Se realizan las siguientes comprobaciones de sanidad:

  1. la velocidad en el perigeo (la altitud más baja), que debería ser la más alta, lo que significa que el gradiente de la función de altitud de la órbita debería ser el más alto.
  2. La velocidad en el apogeo (altitud más alta) debe ser la más baja, lo que significa que el gradiente de la altitud de la órbita debe ser más bajo cerca del perigeo.
  3. El gradiente de la altitud de la órbita debe ser igual a 0 (una línea horizontal en el apogeo).
  4. El perfil de velocidad se traza por separado y se comprueba la continuidad.
  5. El perfil de velocidad se traza por separado y se comprueba visualmente al coincidir con el gradiente de altitud de la órbita.

Las 5 verificaciones se completaron y fueron exitosas, lo que significa que no se encontraron errores en este enfoque.

Dado que la órbita tiene un eje de simetría, solo se necesita la mitad del perfil de velocidad. Como se puede ver, se realizaron dos registros, el registro de la derecha contiene una media órbita simétrica completa, por lo que produce la función de altitud de órbita completa después de una breve manipulación de datos. Estos son los datos de la órbita que representarán la altitud de la órbita en función del tiempo, para fines de estimación de la radiación.

A continuación, los datos se filtraron manualmente (marcando con colores la magnitud de las diferencias entre los puntos de datos de altitud y eliminando las diferencias más grandes hasta que estuve satisfecho con las diferencias), dando como resultado:Mediciones de altitud satelital filtradas

Después de filtrar, utilicé el siguiente software/hoja de Excel para hacer un ajuste de mínimos cuadrados: http://www.jkp-ads.com/articles/leastsquares.asp

Se utilizó la siguiente función polinomial para aproximar la función**:

y = a X 4 + b X 3 + C ( X F ) 2 + d X + mi

donde x representaba el tiempo en minutos e y se calculó y comparó con y a C t tu a yo . La diferencia entre las dos y se elevó al cuadrado y se sumó para todos los puntos de datos (tiempos y altitudes) raspados por el primer excel). Las condiciones de contorno (bc) se determinaron inicialmente para el algoritmo evolutivo, seleccionando el valor máximo para el cual se podía obtener la altitud más alta simplemente multiplicando ese coeficiente 1 por su x, y luego multiplicando ese valor por 10. Esto se hizo para garantizar la solución se podía obtener, pero limitaba el espacio de opciones.

La descripción general de la regresión de la órbita excel

Produjo la siguiente función**:

C o norte s t a = 4.52765 mi 06 C o norte s t b = 0.002389915 C o norte s t C = 0.074298946 C o norte s t d = 252.5709003 C o norte s t mi = 260.8620904 C o norte s t F = 108.1781644

h ( t ) se calcula en k metro

h = C o norte s t a X V a yo tu mi s 4 + C o norte s t b X V a yo tu mi s 3 + C o norte s t C ( X V a yo tu mi s C o norte s t F ) 2 + C o norte s t d X V a yo tu mi s + C o norte s t mi

La secuencia de comandos de Excel se puede mejorar aún más agregando un controlador de errores cerrando el ienavegador y reiniciando la secuencia de comandos para garantizar un mayor nivel de automatización, con el riesgo de mayores errores de datos.

Discusión del error: como se señaló en los comentarios, el ajuste polinomial de cuarto grado limitará la precisión del ajuste de la órbita. (Esto es visible si observa el inicio de la medición de la órbita real, se curva hacia/alrededor de -t cuando baja, mientras que el polinomio de ajuste solo parece tener 1 radio de curvatura (hacia/alrededor de +t). Esto hizo que el ajuste un poco desafiante, ya que se requirieron varias iteraciones antes de encontrar un ajuste decente. Sin embargo, este grado de precisión se consideró suficiente, por medio de una inspección visual. El procedimiento se puede mejorar mediante un cálculo del error real al cuadrado.

**Creo que un mejor enfoque sería aproximar la altitud de la órbita elíptica en función del tiempo con una sinusoidal.

"Como próximo intento de solución, calcularé la superficie de la elipse y la superficie de la órbita circular, y luego aplicaré una tasa de barrido de área angular constante a cada una de ellas por separado". ... pero eso no funcionará. La tasa de barrido angular no es absolutamente constante para la elipse. La constante, según la ley de áreas iguales de Kepler, es el área barrida por tiempo.
Gracias @ErinAnne. De hecho, no formulé eso claramente, tenía la intención de aplicar la segunda ley de Kepler. Ajusté el enfoque en consecuencia.
Esta no es una respuesta a la pregunta. Si bien parece útil usar las publicaciones de respuesta como blocs de notas para mostrar los intentos fallidos, en realidad no está permitido en Stack Exchange.
Gracias @uhoh, se ha publicado el resultado para que responda a la pregunta. Simplificaré/limpiaré los resultados después de mi fecha límite.
¡Guau! Bien, ¡es una gran noticia! Sí, deberías limpiar esto en algún momento; Si bien sería divertido si Stack Exchange tuviera publicaciones de bloc de notas, en realidad solo tiene preguntas y respuestas. Le daré una lectura mañana. Mientras tanto, puedo cambiar mi voto a arriba. ¡Gracias por tu mensaje!
Un polinomio realmente no es la solución correcta para este problema. La altitud de un satélite es una sinusoide. Me preocupa que esto sea engañoso para otros que lo encuentren; rechazó la solución iterativa estándar a favor de una que no parece dar el apogeo que seleccionó.
¡Gracias por tus comentarios críticos @ErinAnne! Desde una perspectiva teórica tienes toda la razón. Sin embargo, se trataba de un enfoque de ingeniería con limitaciones de tiempo, donde la precisión limitada era suficiente, lo que significaba que la precisión se consideraba aceptable. En cuanto a la parte engañosa, estoy de acuerdo, así que agregué un descargo de responsabilidad incorporando su comentario, y también discutí la diferencia/error que ocurre debido a la diferencia de enfoque entre el ajuste polinomial y el ajuste sinusoidal en este problema.

Enfoque 2 (Enfoque exitoso)

La órbita se describe en la siguiente figura:

Descripción de la órbita analítica

Después de una derivación larga, tediosa pero maravillosa, las siguientes 3 ecuaciones son aplicables a la órbita elíptica:

METRO = t T 2 π

METRO = mi ϵ s i norte mi

r = a ( 1 ϵ C o s mi )

υ = θ = 2 a r C t a norte ( 1 + ϵ 1 ϵ t a norte mi 2 )

T = 2 π a 3 m con m mi a r t h = 398600.4415 k metro 3 s 2

r = a ( 1 mi 2 ) 1 + mi C o s θ = a ( 1 ϵ C o s mi )

METRO ( t ) = Anomalía media (=Ángulo entre la línea verde, el centro de la elipse, la línea discontinua entre el centro de la elipse y el perigeo)

mi ( t ) = Anomalía excéntrica (=Ángulo entre línea roja, centro de elipse, línea entre centro de elipse y perigeo)

υ ( t ) = θ ( t ) = Anomalía verdadera (=Ángulo entre la línea negra, el centro de la elipse, la línea entre el centro de la elipse y el perigeo)

a = eje semi-mayor

r ( t ) = altitud del satélite

ϵ = excentricidad

Las anomalías se visualizan en la siguiente animación de órbita. Tenga en cuenta que, como se señaló en los comentarios, M(t) es constante y desigual a E(t):

Además, es necesario calcular el período orbital T , semieje mayor a y excentricidad de la órbita ϵ una vez.

Dado que la altura del perigeo = 320 km y la altura del apogeo 32190 km, el semieje mayor se encuentra usando r mi = 6371 k metro :

a = 320 + r mi + 32190 + r mi 2 = 25971.5 k metro

Ahora la excentricidad se encuentra usando θ = 0 r a d :

r = a ( 1 mi 2 ) 1 + mi C o s θ

r = a ( 1 mi 2 ) 1 + mi = a ( 1 mi )

mi = 1 r a = 1 r mi + 320 a = 1 6371 + 320 25971.5 = 0.74237144562308

El periodo orbital se encuentra con m mi a r t h = 398600.4415 k metro 3 s 2 :

T = 2 π a 3 m = 41685.4 s

Entonces, para determinar la órbita en un punto en el tiempo t (por ejemplo, 0.5 s ), se realizan los siguientes pasos de cálculo para cada punto t en el que se desea conocer la altitud del satélite:

Se calcula la anomalía media M(t). METRO = t T 2 π

METRO = 0.5 41685.4 2 π = 0.0000753643.. r a d

Entonces M se sustituye en:

METRO = mi ϵ s i norte mi

Esto deja 1 incógnita: la anomalía excéntrica mi . Esto se encuentra con un proceso iterativo (simplemente asuma una primera E, luego vea lo que calcula para METRO , compruebe si es igual al cálculo real METRO (probablemente no), entonces baje o aumente su estimación para mi , y mira si te alejas más de METRO , o acercarse a él, hasta que esté satisfecho con el grado de precisión de METRO , (Lo que implica el grado de precisión de mi ).

Una vez determinada E(t) con suficiente precisión, se sustituye en:

r = a ( 1 ϵ C o s mi ) encontrar r t .

Esa es la altitud de la órbita en el tiempo t = 0,5 s. El procedimiento se repite por otro tiempo t volviendo a calcular $M(t).

Además de la altitud, es posible que también desee conocer la ubicación del satélite, en relación con la Tierra, conociendo la verdadera anomalía. Para determinar la verdadera anomalía en el tiempo t, se sustituye la anomalía encontrada iterativamente mi ( t ) en la siguiente fórmula:

υ = θ = 2 a r C t a norte ( 1 + ϵ 1 ϵ t a norte mi 2 )

Esta es la documentación del procedimiento explicado en 28:55 a 30:16 de:

.

(No escribí un guión para este {bucle iterativo de determinar/adivinar mi } (todavía), por lo que no está semiautomatizado, a diferencia de la respuesta del enfoque 4).

¡Felicitaciones por tu progreso! Parece que has perdido tus imágenes. Además, en algún momento puede considerar aceptar esta respuesta en lugar de otra, si cree que esto responde mejor a su pregunta.
Sí, gracias, debo decir que fue genial encontrar/comprender la solución iterativa analítica después de todo. Si logro automatizar la adivinación de la anomalía excéntrica E(t), aceptaré esta respuesta, pero ahora mismo, el menor esfuerzo es usar la solución 4. Especialmente con la conversión de puntos de datos medidos para funcionar mediante mínimos cuadrados incluidos.