Viaje en tren en un tiempo mínimo

El tren parte de la estación E0 y llega a la estación En+1. En el trayecto hay n estaciones intermedias separadas, s1, s2,...si,...sn+1.

El tren parte de la estación Ei-1, incrementa su velocidad con aceleración ai durante un tiempo ti alcanzando una velocidad vi. Se mantiene con velocidad constante durante un tiempo τi. Finalmente, disminuye su velocidad con aceleración a'i hasta que se detiene en la proxima estación Ei empleando para ello un tiempo t'i. El tren recorre un trayecto de longitud si empleando un tiempo Ti=tii+t'i

{ v i = a i t i v i =cte 0= v i a i ' t i ' s i = 1 2 a i t i 2 + v i τ i + 1 2 a i ' t i '2 T i = t i + τ i + t i '

La distancia si la expresamos, alternativamente

s i = v i 2 2 ( 1 a i + 1 a i ' )+ v i τ i = v i 2 2 f i + v i τ i

Donde hemos definido una nueva magnitud, fi=1/ai+1/a'i

Conocido si y τi, tenemos una ecuación de segundo grado en la que despejamos la incógnita vi

v i = 1 f i ( τ i + τ i 2 +2 f i s i )

El tiempo Ti que emplea el tren en viajar entre dos estaciones consecutivas es

T i = v i a i + τ i + v i a i ' = v i f i + τ i = τ i 2 +2 f i s i

Tiempo mínimo

El tiempo total de viaje es

T= i=1 n+1 τ i 2 +2 f i s i

En este tiempo se excluyen los tiempos de parada en cada una de las estaciones para la subida y bajada de viajeros y mercancías

Queremos que el tiempo total T sea mínimo para una distancia total S entre las estaciones terminales

S= i=1 n+1 s i

El método de los multiplicadores de Lagrange nos proporcionan la solución del problema

Tenemos una función T(si) y una condición complementaria, la suma de las distancias si entre estaciones es el recorrido total S.

Consideramos una nueva función

F( s i )=T+λ( S i=1 n+1 s i ) F( s i )= i=1 n+1 τ i 2 +2 f i s i +λ( S i=1 n+1 s i )

Formamos el sistema de ecuaciones

F s i =0,i=1,2,3...n+1 f i τ i 2 +2 f i s i λ=0 2 s i = f i λ 2 τ i 2 f i

que junto con la condición complementaria determina el parámetro λ

2S= i=1 n+1 f i λ 2 τ i 2 f i = 1 λ 2 ( i=1 n+1 f i ) i=1 n+1 τ i 2 f i 1 λ 2 = 2S+ i=1 n+1 τ i 2 f i i=1 n+1 f i

y los valores si de los posibles extremos (máximos o mínimos) condicionados de la función T(si)

s i = f i 2 2S+ i=1 n+1 τ i 2 f i i=1 n+1 f i τ i 2 2 f i

La suma de las distancias si entre estaciones consecutivas nos deberá dar la distancia entre las dos estaciones terminales S

i=1 n+1 s i = S i=1 n+1 f i i=1 n+1 f i + ( i=1 n+1 f i )( i=1 n+1 τ i 2 f i ) 2 i=1 n+1 f i 1 2 ( i=1 n+1 τ i 2 f i )=S

El tiempo Ti que se emplea en recorrrer la distancia si entre dos estaciones consecutivas es

T i = τ i 2 +2 f i s i = f i 2S+ i=1 n+1 τ i 2 f i i=1 n+1 f i

y el tiempo total T (mínimo) es

T = i=1 n+1 f i 2S+ i=1 n+1 τ i 2 f i i=1 n+1 f i = ( i=1 n+1 f i )( 2S+ i=1 n+1 τ i 2 f i )

La velocidad constante vi que alcanza el tren entre ambas estaciones es

T i = v i f i + τ i v i = T i τ i f i = 2S+ i=1 n+1 τ i 2 f i i=1 n+1 f i τ i f i

Ejemplo

Consideremos un tres que viaja entre dos ciudades distantes S=250 km, con n=3 estaciones intermedias o bien cuatro tramos de longitud s1, s2, s3 y s4

Los datos son los siguientes:

TramoAceleración, a (km/h2)Deceleración, a' (km/h2)Tiempo τ (h)
1804004/60
21204806/60
31606008/60
420064010/60

Creamos un script para calcular

tau=[4,6,8,10]/60; %horas
a=[80,120,160,200]; %aceleraciones
ap=[400,480,600,640]; %deceleraciones
f=zeros(1,length(tau));
for i=1:length(f)
    f(i)=1/a(i)+1/ap(i);
end
S=250; %distancia entre las estaciones terminales
cte=(2*S+sum((tau.^2)./f))/sum(f);
T=zeros(1,length(f));
x=zeros(1,length(f));
v=zeros(1,length(f));
for i=1:length(f)
    T(i)=f(i)*sqrt(cte);
    x(i)=f(i)*cte/2-tau(i)^2/(2*f(i));
    v(i)=sqrt(cte)-tau(i)/f(i);
end
disp(T) %tiempos
disp(x) %distancias
disp(v) %velocidad constante

Los resultados son los siguientes

   1.6922    1.1751    0.8931    0.7403
  95.3007   65.8039   49.2530   39.6425
 108.3674  103.2118   95.9697   87.4150

>> sum(x)
ans =   250
>> sum(T)
ans =    4.5007
TramoTiempo T (h)Distancia s (km)Velocidad cte v (km/h)
11.69295.3108.4
21.17565.8103.2
30.89349.296.0
40.74039.687.4

El tiempo total es T=4.5 h empleado en recorrer S=250 km

Añadimos al script este código para representar la velocidad v del tren en función del tiempo t

....
s=zeros(1,length(f)+1);
tt=zeros(1,length(f)+1);
s(1)=0;
tt(1)=0;
for i=2:length(f)+1
    s(i)=s(i-1)+x(i-1);
    tt(i)=tt(i-1)+T(i-1);
end    
%gráfica de la velocidad en función del tiempo
for i=1:length(f)
    line([tt(i), tt(i)+v(i)/a(i)],[0,v(i)],'color','b')
    line([tt(i)+v(i)/a(i),tt(i)+v(i)/a(i)+tau(i)],[v(i),v(i)],'color','b')
    line([tt(i)+v(i)/a(i)+tau(i),tt(i+1)],[v(i),0],'color','b')
end
grid on
xlabel('t (h)')
ylabel('v (km/h)')
title('Velocidad - tiempo')

Añadimos al script este código para representar la velocidad v del tren en función del desplazamiento x

....
figure
hold on
for i=1:length(f)
    fplot(@(x) sqrt(2*a(i)*(x-s(i))), [s(i), s(i)+v(i)^2/(2*a(i))],'color','r')
    line([s(i)+v(i)^2/(2*a(i)), s(i)+v(i)^2/(2*a(i))+v(i)*tau(i)],
[v(i),v(i)],'color','r')
    fplot(@(x) sqrt(v(i)^2-2*ap(i)*(x-s(i)-v(i)^2/(2*a(i))-v(i)*tau(i))), 
[s(i)+v(i)^2/(2*a(i))+v(i)*tau(i), s(i+1)],'color','r')
end
hold off
grid on
xlabel('x (km)')
ylabel('v (km/h)')
title('Velocidad - desplazamiento')

Actividades

En este programa interactivo, se observa el movimiento del tren entre las dos estaciones terminales (puntos de color rojo) separadas 250 km. Las estaciones intermedias se se representan por puntos de color azul.

Se traza la gráfica de la velocidad v del tren en función de su desplazamento x a lo largo de la vía, tomando como origen la estación de partida

En la parte superior derecha, se proporcionan los datos de

Referencias

S N Maitra. A Train Journey between Two Terminating Stations. Resonance – Journal of Science Education, Volume 17, Issue 4, April 2012. https://www.ias.ac.in/listing/articles/reso/017/04