¿Cómo debo acelerar mi cohete para alcanzar la mayor altitud? [cerrado]

Problema del "mundo real".

Supongamos que queremos lanzar un cohete equipado con un motor que podemos estrangular como prefiramos. Suponga también que la cantidad de combustible quemado por tiempo es directamente proporcional a la fuerza hacia arriba que ejerce el motor. ¿Cómo deberíamos acelerar el motor para alcanzar la mayor altitud, teniendo en cuenta la resistencia atmosférica?


formulación física.

Dejar metro ( t ) = metro d + metro F ( t ) Sea la masa total del cohete, donde metro d es su masa seca y metro F ( t ) la masa del combustible restante en el tiempo t . Nuestro motor proporciona una fuerza directamente proporcional a la cantidad de combustible quemado; por lo que la fuerza ejercida en el momento t será

F = η d metro F d t ,
dónde η es una constante positiva que depende de la eficiencia del motor.

Para la fuerza de arrastre usamos la formulación de dinámica de fluidos:

F d = k ( X ) X ˙ ( t ) 2 ,
dónde X es nuestra altura y k un coeficiente que tiene en cuenta el cambio de densidad del aire con la altitud.

Entonces por la ley de Newton tenemos

X ¨ = F F d metro gramo metro = η metro F ˙ k ( X ) X ˙ 2 metro d + metro F gramo .

Por lo tanto, el problema se ha convertido en el siguiente:

Encuentre una función no negativa θ ( t ) (el acelerador, es decir θ = metro F ˙ ) tal que

0 θ = metro F ( 0 ) , (quemamos todo el combustible, ni más ni menos)
y tal que la trayectoria X ( t ) resolviendo la ecuacion diferencial
X ¨ ( t ) = η θ ( t ) k ( X ( t ) ) X ˙ ( t ) 2 metro d + metro F ( 0 ) 0 t θ gramo
alcanza en algún lugar el valor máximo, es decir, para cualquier otro θ ~ cumpliendo los requisitos anteriores, su trayectoria X ~ es tal que sorber t [ 0 , ) X ~ ( t ) sorber t [ 0 , ) X ( t ) .


Formulación matemática y recapitulación.

Dado gramo , η , C > C ( 0 , ) , k : [ 0 , ) [ 0 , ) una función decreciente, sea

S C , C := { F L 1 ( [ 0 , ) )  calle  0 F = C , F 0  ae , X F ( t )  calle  X ¨ F ( t ) = η F ( t ) k ( X F ( t ) ) X ˙ F ( t ) 2 C 0 t F gramo } .
Encontrar θ S C , C calle
θ ~ S C , sorber t [ 0 , ) X θ ~ ( t ) sorber t [ 0 , ) X θ ( t ) .

Aquí solo veo escalares. El empuje tiene tanto magnitud como dirección, y do tiene posición, velocidad y aceleración. Además, no puedes simplemente usar g para la gravedad, eso derrota todo el punto de la órbita. El sistema es mucho más complicado de lo que crees.
Sospecho que la pregunta es sobre un cohete de juguete que se lanza verticalmente en lugar de un cohete más sofisticado que sale de la atmósfera y entra en órbita o sigue una trayectoria balística para entregar su carga útil al otro lado del mundo.
@AlanSE Creo que está preguntando sobre un ascenso puramente vertical. Sin embargo estoy de acuerdo contigo en que gramo debe ser reemplazado con GRAMO METRO r 2 .
Personalmente, encuentro el problema bastante complejo con estos supuestos simplificados; sin embargo, si lo desea, puede (formular y) resolver un caso más general. (por ejemplo, sustituir gramo con GRAMO METRO X 2 , considere un coeficiente de arrastre que no dependa solo de la altitud, etc.)
Necesita levantar unos 32 kilómetros para obtener un cambio del 1% en gramo , por lo que, dependiendo de la escala de las cosas, puede ser completamente razonable utilizar un enfoque de gravitación constante.
Tienes dos presiones en conflicto. Desea quemar rápidamente para reducir las pérdidas por gravedad y desea ir lentamente para reducir las pérdidas por arrastre. Sin información sobre el arrastre, no creo que puedas hacer la compensación. Es probable que esto sea una optimización numérica.
No aceleres. Cualquier tiempo adicional dedicado a "flotar" está usando valiosos F Δ t para luchar contra la gravedad cuando podría estar enviando tu cohete hacia arriba.
Retiro mis comentarios anteriores, y siento que el problema ahora encaja mejor en el ámbito de este sitio. La distinción física crítica es el punto sobre el que discute @Floris, pero creo que está equivocado. Con una atmósfera lo suficientemente densa, aceptará más arrastre de gravedad en lugar de menos arrastre de aire. Dada una densidad exponencial decreciente, puede acelerar lentamente hasta despejar la atmósfera y luego liberar el resto rápidamente. Los casos límite discernibles también son posibles con ciertas combinaciones de parámetros. Está algo cargado, quizás una pregunta más pequeña más específica sería mejor.
FWIW, el transbordador tendría un empuje de aproximadamente el 65% en los motores principales inmediatamente después del lanzamiento hasta que la atmósfera se diluyera a aproximadamente 35000 pies y 1600 millas por hora.
Hola lluvia de ideas. Bienvenido a Phys.SE. Si aún no lo ha hecho, tómese un minuto para leer la definición de cuándo usar la etiqueta de tarea y la política de Phys.SE para problemas similares a la tarea.
Sospecho que no hay una buena solución analítica para este problema. Esto tiene información útil.

Respuestas (2)

Este es un problema de control óptimo , así que usaré las reglas de control óptimo. Primero, representamos las ecuaciones del espacio de estado. También tomamos la masa total como estado y la cantidad de combustible quemado como control de entrada. Entonces tenemos:

(1) { X ˙ 1 = X 2 X ˙ 2 = η θ k ( X 1 ) X 2 2 X 3 gramo X ˙ 3 = θ
con estas condiciones de contorno:
(2) { X 1 ( 0 ) = 0 X 2 ( 0 ) = 0 X 3 ( 0 ) = metro d + metro F ( 0 ) X 3 ( t F ) = metro d
Queremos encontrar la función. θ ( t ) que minimizan la siguiente función de costo:
(3) j ( θ ) = h ( X ( t F ) , t F ) + 0 t F gramo ( X , θ , t ) d t = 0 t F ( X 2 ) d t
En las ecuaciones anteriores el tiempo terminal t F es desconocido y debe ser determinado.

Para encontrar la solución, definimos el hamiltoniano de este sistema:

(4) H ( t , θ , X , pag ) = gramo + pag T a = X 2 + pag 1 X 2 + pag 2 ( η θ k ( X 1 ) X 2 2 X 3 gramo ) pag 3 θ
dónde a es el vector de ecuaciones diferenciales de estado y ( pag 1 , pag 2 , pag 3 ) son variables de costa.

Utilizando el cálculo de variaciones, se encontrarán las condiciones necesarias para la optimalidad:

(5) { X ˙ = H pag pag ˙ = H X 0 = H θ
y obtenemos esta condición de contorno:
(6) ( h X ( X ( t F ) , t F ) pag ( t F ) ) d X F + ( H ( X ( t F ) , pag ( t F ) , θ ( t F ) , t F ) + h t ( X ( t F ) , t F ) ) d t F = 0

Usando ecuaciones ( 5 ) podemos derivar ecuaciones diferenciales de estados y costas:

(7) { X ˙ 1 = X 2 X ˙ 2 = η θ k ( X 1 ) X 2 2 X 3 gramo X ˙ 3 = θ pag ˙ 1 = pag 2 X 2 2 X 3 k X 1 pag ˙ 2 = 1 pag 1 + 2 pag 2 k ( X 1 ) X 2 X 3 pag ˙ 3 = pag 2 X 3 2 ( η θ k ( X 1 ) X 2 2 )
y de 0 = H θ en ( 5 ) obtenemos:
(8) pag 2 pag 3 = X 3 η
También de la ecuación ( 6 ) estas condiciones finales serán:
(9) { pag 1 ( t F ) = 0 pag 2 ( t F ) = 0
y:
(10) H ( t F ) = 0

Ahora, tenemos siete funciones desconocidas. ( X 1 ( t ) , X 2 ( t ) , X 3 ( t ) , pag 1 ( t ) , pag 2 ( t ) , pag 3 ( t ) , θ ( t ) ) con seis ecuaciones diferenciales en ( 7 ) más una ecuación de restricción en ( 8 ) . Para resolver estas ecuaciones necesitamos suficientes condiciones de contorno. Usando cuatro condiciones de contorno en la ecuación ( 2 ) y dos condiciones finales en la ecuación ( 9 ) se conocerán todas las condiciones de contorno necesarias.

No usamos la ecuación ( 10 ) todavía. Esta ecuación se utilizará para encontrar el tiempo terminal t F .

Finalmente, para resolver el problema de valores en la frontera en ( 7 ) y debido a la no linealidad, debemos usar métodos numéricos como el método de disparo .

Pensé que esta pregunta era interesante y no quería hacer ningún trabajo adecuado esta tarde, así que hice un modelo simple para averiguar qué sucedería. Mi código de matlab está al final de la pregunta.

Hasta ahora, probé tres casos y consideré cambiar el empuje inicial y agregar un aumento lineal en el empuje para cada caso. El empuje se da como una fracción del combustible total quemado por segundo.

Obviamente, los números que he usado no son increíblemente realistas ni sensatos, pero dan una idea inicial de lo que está pasando. El color de los gráficos representa la altura obtenida con ese empuje.

Hasta ahora solo he considerado coeficientes de arrastre constantes. Primero probé k = 0 (sin arrastre)

k=0

Como era de esperar, esto da la mayor altura cuando quema combustible lo más rápido que puede. Esto es principalmente solo una prueba para comprobar que no he hecho nada demasiado malo.

Si elegimos k=1 obtenemos

k=1

Curiosamente aquí vemos el efecto contrario. Desea el empuje más bajo y más largo que lo hará despegar, ya que la resistencia del aire es la forma dominante de arrastre.

Finalmente un caso intermedio de k=0.1

k=0,1

Aquí hay un equilibrio entre la resistencia del aire y la gravedad y se favorece un valor intermedio de empuje.

Curiosamente (al menos para mí), no fue ventajoso acelerar después del lanzamiento. Sospecho que esto puede ocurrir si se considera la variable k.

Aquí está mi código de matlab. Debería funcionar en octava también.

function[x]=rocket_test(thrustparam)

g=9.81;

md=1000;
mf=1000;  
k=0.1;
nu=1000;

dt=0.001;

v=0;
x=0;
t=0;

c=thrustparam(1)*mf;
p_1=thrustparam(2)*mf;

count=1;

while v>=0                  %want to find max height keep going until you start descending.

    throttle=throttle_set(t, c, p_1);

    if mf-throttle*dt<0    %if you would burn more fuel than left burn all the fuel  left;
        throttle=mf/dt;
    end

m=md+mf;
Fd=k*v^2+m*g;
Ft=nu*throttle;

F=Ft-Fd;

a=F/m;

x=x+v*dt+0.5*a*dt^2;
v=v+a*dt;
mf=mf-throttle*dt;
t=t+dt;

%store(count, :)=[t, x, v, a, throttle, Fd, Ft, F, m];
%count=count+1;

end
end

function [throttle]=throttle_set(t, c, p_1)

throttle=c+p_1*t;

if throttle<0
    throttle=0;
end

end