Estoy diseñando una misión espacial interplanetaria (Diseño de trayectorias de baja energía a Objetos Cercanos a la Tierra) usando Fortran.
Básicamente, estoy trabajando con el Problema circular restringido de 3 cuerpos (CR3BP), Puntos de Lagrange, Múltiple invariante, por lo que estoy tratando con el Marco de referencia inercial heliocéntrico (eclíptica heliocéntrica IAU76/J2000, de las efemérides de cuerpos pequeños del JPL de la NASA) y la referencia baricéntrica sinodal marco con dos cuerpos primarios, el Sol y el sistema Tierra-Luna.
Una vez que obtenga los datos, almacenados como matrices en archivos .txt o .csv, supongo, me gustaría visualizarlos usando un software de simulación espacial 3D (al hacer una investigación en Internet, encontré candidatos potenciales: GMAT, FreeFlyer, STK , Celestia, Motor espacial).
Me gustaría explotar cuerpos 3D y su dinámica ya presente en el software (Sol, Tierra, asteroides y cometas) y tener la posibilidad de importar objetos 3D como CAD de naves espaciales (o tal vez usar modelos de naves espaciales integrados en el software). Por supuesto, con Fortran solo encontraré la dinámica (trayectoria) de la nave espacial, por lo que el software debe haber incorporado la dinámica de los objetos celestes naturales. Comento que utilizaré el software principalmente como postprocesador y no para la propagación numérica (que realizaré en Fortran).
¿Puede decirme cuáles son los software más útiles para mi alcance?
PD ¡Más respuestas son bienvenidas!
Una opción es Cosmographia mejorada con SPICE. Puede convertir sus archivos de texto de salida a núcleos SPICE SPK (extensión .bsp) o, más simplemente, a un archivo de texto con datos estructurados (consulte la sección InterpolatedStates de esta página para obtener más detalles: https://cosmoguide.org/trajectory-types/ ) que puede ser leído por Cosmographia. También puede importar modelos CAD de naves espaciales (.3ds funciona mejor). Cosmographia ya tiene todos los planetas y muchos cuerpos pequeños cargados (a través de los núcleos SPICE). Siempre puede agregar más si lo desea mediante el mismo proceso de agregar trayectorias de naves espaciales. También puede ingresar cuaterniones de actitud de la nave espacial (núcleos SPICE) para mostrar el control de actitud
También puede definir marcos de referencia no inerciales personalizados mediante núcleos SPICE, como el marco de referencia giratorio CR3BP (la trayectoria de Lucy en el marco giratorio Sol-Júpiter):
Aquí hay algunos ejemplos más de cómo se ve:
SPICE se escribió originalmente en Fortran. Nunca he usado la versión de Fortran, pero OP tiene experiencia en el idioma, así que creo que OP podría resolverlo fácilmente: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/Tutorials/pdf/individual_docs/41_program_fortran. pdf
Para aquellos que tienen experiencia con Python, hay un contenedor SPICE de terceros para CSPICE llamado SpiceyPy ( https://spiceypy.readthedocs.io/en/master/documentation.html ) que se puede usar para escribir núcleos SPK con cualquiera de sus funciones que comienzan con "SPKW". Aquí está uno de ellos: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkw09_c.html
En general, hay una pequeña curva de aprendizaje (conceptos básicos de SPICE, Python, JSON), pero una vez que aprende a usarlo, es súper poderoso. Hice una serie de videos en mi trabajo YouTube que repasa todo en detalle:
+n!
votando n-factorial como siempre! Probablemente la mayoría de las personas no puedan convertir archivos de texto a kernels SPICE SPK (extensión .bsp) adecuados sin alguna ayuda u orientación, por lo que la opción .csv parece mucho más fácil. ¿Hay restricciones? ¿Pueden estar espaciados de manera desigual en el tiempo? ¿Cómo interpola el programa? ¿Lineal? ¿Ranura? ¿El sabor favorito de la NASA del polinomio de Chebyshev?Recomendaría consultar FreeFlyer (aunque GMAT y STK pueden ser intercambiables en su caso de uso). El Centro Espacial Johnson de la NASA utiliza FreeFlyer para el diseño y las operaciones de misiones espaciales, ya que contiene un conjunto muy completo de capacidades y características. Estos incluyen el modelado de cuerpos celestes y la visualización de objetos en 3D que está buscando.
FreeFlyer contiene un objeto SolarSystem incorporado que proporciona control sobre cómo el software modela el entorno físico del sistema solar. Para cualquier cosa más allá del conjunto estándar de cuerpos celestes incluidos (ocho planetas, la luna de la Tierra, el Sol, Plutón), hay capacidad para CelestialObjects definidos por el usuario que se pueden propagar usando un propagador de dos cuerpos o un propagador de efemérides de especias.
FreeFlyer también proporciona herramientas para visualizar modelos 3D personalizados de naves espaciales. Los tipos de archivos de importación compatibles incluyen .3ds, .prj, .lwo, .lxo, .obj, .stl.
Vínculos útiles del archivo de ayuda:
Fred