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:
Si ves algún error por favor házmelo saber :)
Enfoques:
Resumen de los resultados del intento:
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.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! :)
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:
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:
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:
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**:
donde x representaba el tiempo en minutos e y se calculó y comparó con . 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.
Produjo la siguiente función**:
se calcula en
La secuencia de comandos de Excel se puede mejorar aún más agregando un controlador de errores cerrando el ie
navegador 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.
Enfoque 2 (Enfoque exitoso)
La órbita se describe en la siguiente figura:
Después de una derivación larga, tediosa pero maravillosa, las siguientes 3 ecuaciones son aplicables a la órbita elíptica:
con
= 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)
= Anomalía excéntrica (=Ángulo entre línea roja, centro de elipse, línea entre centro de elipse y perigeo)
= 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)
= eje semi-mayor
= 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 , semieje mayor 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 :
Ahora la excentricidad se encuentra usando :
El periodo orbital se encuentra con :
Entonces, para determinar la órbita en un punto en el tiempo t (por ejemplo, 0.5 ), 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).
Entonces M se sustituye en:
Esto deja 1 incógnita: la anomalía excéntrica . Esto se encuentra con un proceso iterativo (simplemente asuma una primera E, luego vea lo que calcula para , compruebe si es igual al cálculo real (probablemente no), entonces baje o aumente su estimación para , y mira si te alejas más de , o acercarse a él, hasta que esté satisfecho con el grado de precisión de , (Lo que implica el grado de precisión de ).
Una vez determinada E(t) con suficiente precisión, se sustituye en:
encontrar .
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 en la siguiente fórmula:
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 } (todavía), por lo que no está semiautomatizado, a diferencia de la respuesta del enfoque 4).
zephyr0110
a
usuario7073
[1]
sin enlace.a
erin ana
a
UH oh