¿Alguien sabe cómo el sitio web de Flight Club puede proporcionar simulaciones de lanzamiento de Falcon 9? Dado el peso estimado, la masa de combustible, el empuje, etc., ¿cómo pueden proporcionar un gráfico de cómo podría funcionar?
Creador de Flight Club aquí. Gracias por el ping @uhoh ;)
@RussellBorogove consiguió la implementación del código y en realidad es casi exactamente lo que hago. Los únicos puntos que creo que vale la pena mencionar son que utilizo un integrador Leapfrog en lugar de RK4, porque conserva energía con el tiempo y es reversible. Esto significa que la órbita número 100 se verá idéntica a la primera (suponiendo que la gravedad sea la única fuerza externa). También puedo implementar periodos de inercia entre separaciones de etapas e igniciones.
Creo que lo único que podría mejorar un poco más es hablar sobre los algoritmos de guía. En el caso de Flight Club, 'algoritmo' es una palabra extremadamente generosa, ya que el perfil de guía está completamente definido por el usuario. El usuario define el perfil de elevación, azimut y acelerador de cada etapa con el tiempo. Estos se pueden validar comparando la trayectoria resultante con los datos de transmisión web, y también con algunos conocimientos de dominio de los lanzamientos orbitales que acabo de obtener a través de la experiencia; por ejemplo, un lanzamiento de SpaceX GTO tendrá una órbita de estacionamiento de aproximadamente 170x450 km, más o menos. y la etapa superior generalmente pierde un poco de altitud hacia el final de su primera quema.
Estoy trabajando en la automatización de las definiciones del perfil de guía en segundo plano para facilitarme la vida en el futuro (actualmente, estoy creando manualmente perfiles de vuelo para cada lanzamiento que mis Patrons fotografiarán ; por lo general, puedo reutilizar un perfil de vuelo anterior, pero es más complicado cuando estoy modelando un vehículo por primera vez, como D4H para Parker Solar Probe, o el último vuelo de Delta II).
En este momento, lo único que está automatizado es el perfil de acelerador de quemado de aterrizaje, pero es un recálculo muy simple del perfil de acelerador durante el descenso para garantizar velocidad cero a altitud cero. No hay nada que garantice que las coordenadas de aterrizaje sean correctas; esto también debe ser validado y ajustado por el usuario una vez que se haya completado la simulación.
Todas estas tareas manuales se automatizan con facilidad, pero la mayor parte de mi trabajo de desarrollo en este momento se dedica a desarrollar más el front-end y migrar el back-end a tecnologías más escalables. Cuando estoy contento con esas cosas, puedo volver a mejorar las cosas de GNC
No sé exactamente cómo lo hace Flight Club, pero he creado una simulación basada en el simulador de lanzamiento de Joan Creus-Costa y creo que probablemente no sea muy diferente de lo que hace Flight Club. También obtuve mucha información de la página de simulación de Saturno V de Braeunig .
El enfoque básico es la simulación en tiempo discreto: comience con condiciones iniciales conocidas y simule el paso del tiempo en fragmentos cortos, actualizando el estado de la simulación de acuerdo con la ley física en cada paso. Yo uso un paso de tiempo de 1/100 de segundo; incluso a ese ritmo, mi computadora portátil es lo suficientemente rápida como para simular un lanzamiento unas 50 veces más rápido que en tiempo real (es decir, el ascenso a la órbita terrestre para la mayoría de los lanzadores en alrededor de 12 segundos).
Dada la masa conocida del cohete (recalculada en cada paso de tiempo a medida que se consume combustible) y el empuje de los motores de la etapa actualmente activa, se aplica la aceleración del empuje, junto con la aceleración de la gravedad y la fuerza de retardo del arrastre. Uso RK4 cuando aplico la física, pero con un paso de tiempo lo suficientemente pequeño no importa mucho.
Para fines de arrastre, solo rastreo la sección transversal y un coeficiente de arrastre fijado arbitrariamente: variar Cd con la velocidad está en mi lista de tareas pendientes. (Ver discusión aquí y aquí .)
Simulo la variación de la densidad del aire con la altitud de acuerdo con un modelo fijo basado en esta página de la NASA . No hago nada por el clima, el viento cruzado, etc. Actualmente, nada en mi sim es aleatorio.
Dadas las cifras del impulso específico del nivel del mar y del vacío para un motor, interpolo linealmente el impulso específico a medida que la presión del aire va de 1 a 0 atmósferas. Esta es una muy buena combinación con el rendimiento real de los motores F-1 del Saturn V; No he encontrado curvas Isp versus presión para otros motores, pero los F-1 son tan lineales que sospecho que hay una ley física fundamental que los controla.
Se simula un sistema de guía para determinar en qué dirección aplicar el empuje: no simulo el ángulo real del cardán y la autoridad de control, solo asumo que se puede lograr el ángulo de empuje deseado. Tengo una variedad de algoritmos de orientación con los que aún no estoy satisfecho.
Cuando se acaba el combustible en una etapa, simplemente desconecto la masa y los motores asociados con la etapa y activo la siguiente al instante; sería más realista agregar algún tiempo de retardo entre etapas.
Los lanzadores se definen como una lista de etapas. Las etapas tienen masa seca, masa de combustible, área de sección transversal y una lista de motores. Los motores tienen una tasa de flujo de combustible, una función de impulso específico por altitud, configuraciones mínimas y máximas de aceleración, etc. En el código de definición de mi lanzador, puedo agregar eventos programados, como aceleración o eliminación de sistemas LES (y, por lo tanto, reducir la masa del cohete restante) en un punto dado del vuelo. Todavía no estoy modelando la caída de Isp con la desaceleración. En principio, puedes definir cualquier cohete que quieras, real o ficticio; solo necesita las masas del escenario y las especificaciones del motor.
La Tierra (o cualquier cuerpo desde el que se lance) se modela como una esfera que gira uniformemente; mi sistema de coordenadas admite la latitud del sitio de lanzamiento, pero siempre gira el mundo para que el sitio de lanzamiento esté en la coordenada X cero del sistema de coordenadas. Se incluye la velocidad inicial de la rotación planetaria. Se modela la caída gravitacional con la altitud.
Aquí hay una captura de pantalla de mi IU vergonzosamente mala:
Esto está modelando el ascenso de un Apollo LM desde la luna (al servicio de responder una pregunta anterior en el sitio). El Gráfico 1 a la izquierda es altitud versus tiempo; el gráfico 2 es la aceleración frente al tiempo. Estamos en pausa a los 25 segundos simulados después de la inserción en una órbita de 18 km x 87 km.
Flight Club hace cosas como rastrear la primera etapa separada por separado; mi sim solo funciona con un vehículo a la vez, pero no sería demasiado difícil cambiar eso.
russell borogove
Nombre de usuario indefinido
Saiboogu
Nombre de usuario indefinido
UH oh