Computing Train Travel Time and Thrust

Consider a frictionless train that uses a constant propulsion force to accelerate but relies solely on the gravitational pull of the Earth and aerodynamic drag for deceleration.  Using the simplifying assumption shown in Table 1, we compute the required propulsion force and the travel time for the train between two cities 1000km  apart through a straight tunnel.

Table 1
Train mass m = 100,000 kg
Distance travelled d = 1000,000 m
Earth RadiusRe = 6371,000 m
Gravitational constantg = 10 m2/s
Drag force F(v) = 0.5 v2 N
Propulsion forceFp N
Gravitational force Fg = mt g cos(θ) N

Problem Formulation

Figure 1 shows the forces  acting on the train during its trip from City A to City B along the earth circular path.

Figure 1

The motion for the train is governed by the 2nd order equation:

mx¨=Fp-Fdx˙+Fgθx

where θ(x), can be approximated by the following function based on the fact that d/r << 1

θx=tan-1Rd2-x,x<d2π2,x=d2tan-1Rd2-x+π,x>d2

The train starts from rest so the initial values are:

x0=0 x˙0=0

Upon arrival to city B, the train would have travelled distance d and come to a stop so the final conditions can be stated as:

xtf=d x˙tf=0

The unknown variables for this problem are Fp and tf which we need to solve for.

Solution

We treat the final conditions as constraints on the equation of motion then solve for the unknown variables Fp and tf to satisfy them. We accomplish our task following a simple three-step dynamical optimization procedure.

Step 1: siumlate the initial value problem using guess values for the unknowns

The first step is to convert the 2nd order equation into two first order equations as follows:

dxdt=v dvdt=1mFp-Fdx˙+Fgθx

Next, we define the model formulas using the named variables as shown in Table 2. The green, B2:B4, and yellow, B11:B12, ranges represent the system variables (t,x,v), and the differential equations which are input arguments to the initial value problem solver function, IVSOLVE. The blue, D10:D11 range represents the design parameters Fp and tf which have been assigned initial guess values of 1000 and 2000 respectively. The other named variables and formulas in Table 2 are auxiliary variables to simplify the definition the model equations.

Table 2
ABCD
1Variables with initial valuesParameters
2tm100000
3x0d1000000
4v0g10
5Re6371000
6Forces
7Fg=m*g*COS(theta)theta=IF(x<d/2,ATAN(Re/(d/2-x)),IF(x>d/2,ATAN(Re/(d/2-x))+PI(),PI()/2))
8Fd=0.5*v^2
9Unknowns with initial guess
10Equationstf2000
11dx/dt=vFp1000
12dv/dt=(Fp+Fd+Fg)/m

We simulate the system with the guess value for a sufficient long time of 4500 seconds by executing the array formula =IVSOLVE(B11:B12, (t,x,v), {0,4500}) in array J3:L40 shown in Table 3 and plotted in Figure 2.

Note. ExceLab 365 users pass system variables by range reference B2:B4 or as "(t,x,v)" . Google Sheets users pass by range reference or as {t,x,v}

Table 3
JKL
3txv
4000
51256115.46396.66716
625023618.42180.3757
737550345.74243.5815
850083614.12285.3167
9625120912.9308.8178
10750160244.8318.6075
11875200165.6318.7776
121000239672.8312.4788
131125278105.9301.8894
141250315027.7288.4672
151375350145.5273.1784
161500383269.8256.6382
171625414271.2239.2515
181750443058.6221.296
191875469577.2202.9315
202000493781.3184.2855
212125515639.8165.4439
222250535135146.4526
232375552249.8127.3546
242500566971.2108.1826
252625579292.288.95507
262750589207.669.68509
272875596712.850.38592
283000601804.631.06775
293125604479.311.73845
303250604737.5-7.59494
313375602579.9-26.9254
323500598007-46.2459
333625591021.5-65.5461
343750581622.5-84.8244
353875569814.4-104.068
364000555605.5-123.255
374125539004.1-142.368
384250520019.3-161.382
394375498664.3-180.264
404500474961-198.956
Figure 2

Step 2: define constraints on the initial solution.

In Table 4, we define two constraints corresponding to the final conditions xtf=d and x˙tf=0 based on the solution obtained in Step 1. Constraint C10 computes the difference between the interpolated value for x(tf) and the distance d, while constraint C11 computes the interpolated value for v(tf).

Table 4
C
10 =INTERPXY(J4:J40, DYNVAL(K4:K40), tf) - d
11 =INTERPXY(J4:J40, DYNVAL(L4:L40), tf)

Here we are simply computing values x(tf) and v(tf) using INTERPXY based on the result in Table 3. Note that we use DYNVAL to select the displacement and velocity columns from the solution array because we want to use their dynamic values during the optimization. The time column values are static, therefore, we can select its values directly.

Please note. DYNVAL is a new function available in ExceLab 7.0 and later versions only. It replaces deprecated Criterion Functions used in earlier versions.

Step 3: solve for the unknowns

Using the solver NLSOLVE, we solve for the unknowns tf and Fp by evaluating the array formula =NLSOLVE(C10:C11, (tf, Fp)) in array A10:B14. The computed results are shown in Table 5. NLSOLVE finds the best values for the variables which drive the constraint formulas values simultaneously to zero.

Note. ExceLab 365 users pass tf and Fp variables by range reference D10:D11. Google Sheets users pass by range reference or as {tf,Fp}

Table 5
AB
10tf3863.575
11Fp62648.94
12SSERROR1E-16
13ITRN6
14TIME (s)0.459
Question or Comment? Email us:
support @ excel-works.com

ExceLab: Transforming Excel into a Calculus Power House

ExceLab functions and methods are protected by USA Patents 10628634, 10114812, 9892108 and 9286286.

© 2015-2024, ExcelWorks LLC
Boston, USA