2022-04-28 17:29:24 +02:00
|
|
|
#!/usr/bin/env julia
|
|
|
|
# -*- coding: UTF-8 -*-
|
2022-05-12 16:32:15 +02:00
|
|
|
# __author__ = "Martin Scheidt, Max Kannenberg"
|
2022-04-28 17:29:24 +02:00
|
|
|
# __copyright__ = "2022"
|
|
|
|
# __license__ = "ISC"
|
|
|
|
|
|
|
|
struct Settings
|
|
|
|
|
|
|
|
massModel::Symbol # model type of train mass ":mass_point" or ":homogeneous_strip".
|
|
|
|
stepVariable::Symbol # variable of the linear multistep method: ":distance", ":time" or ":velocity".
|
|
|
|
stepSize::Real # step size, unit depends on stepVariable - :distance in meter, time in seconds and velocity in meter/second.
|
2022-05-19 21:45:10 +02:00
|
|
|
approxLevel::Int # value for approximation; used when rounding or iterating.
|
2022-06-22 13:04:54 +02:00
|
|
|
outputDetail::Symbol # single Float() ":running_time", Vector() of ":points_of_interest", Vector() of ":data_points"
|
2022-06-02 12:32:00 +02:00
|
|
|
# or complete Vector() ":driving_course"
|
|
|
|
outputFormat::Symbol # output as ":dataframe" or as ":vector".
|
2022-04-28 17:29:24 +02:00
|
|
|
|
|
|
|
end #struct Settings
|
|
|
|
|
2022-05-04 16:34:17 +02:00
|
|
|
struct Path
|
|
|
|
|
|
|
|
name::String # a name or description of the path
|
|
|
|
id::String # a short string as identifier
|
|
|
|
uuid::UUID # a unique identifier
|
|
|
|
poi::Vector # a vector of triples with points along the path
|
|
|
|
sections::Vector # a vector of the characteristic sections
|
|
|
|
|
|
|
|
end #struct Path
|
|
|
|
|
2022-05-12 16:32:15 +02:00
|
|
|
struct Train
|
|
|
|
|
|
|
|
name::String # a name or description of the train
|
|
|
|
id::String # a short string as identifier
|
|
|
|
uuid::UUID # a unique identifier
|
|
|
|
length::Real # train length in meter
|
|
|
|
m_train_full::Real # mass of the full loaded train in kilogram
|
|
|
|
m_td::Real # mass on driving axles of the traction unit in kilogram
|
|
|
|
m_tc::Real # mass on the traction unit's carrying axles in kilogram
|
|
|
|
m_w::Real # mass of the set of wagons/cars/consist in kilogram
|
|
|
|
ξ_train::Real # rotation mass factor
|
|
|
|
ξ_loco::Real # rotation mass factor
|
|
|
|
ξ_cars::Real # rotation mass factor
|
|
|
|
transportType::Symbol # ":freight" or ":passenger" for resistance calculation
|
|
|
|
v_limit::Real # in m/s
|
|
|
|
a_braking::Real # in m/s^2
|
|
|
|
|
|
|
|
# coefficients for the vehicle resistance
|
2022-05-30 20:10:45 +02:00
|
|
|
# for the traction unit (F_Rt=f_Rtd0*m_td*g+f_Rtc0*m_tc*g+f_Rt2*m_loco*g*((v+Δv_air)/v00)^2)
|
2022-05-12 16:32:15 +02:00
|
|
|
f_Rtd0::Real # coefficient for basic resistance due to the traction units driving axles (in ‰)
|
|
|
|
f_Rtc0::Real # coefficient for basic resistance due to the traction units carring axles (in ‰)
|
2022-05-30 20:10:45 +02:00
|
|
|
f_Rt2::Real # coefficient for air resistance of the traction units (in ‰)
|
2022-05-12 16:32:15 +02:00
|
|
|
|
|
|
|
# for the consist (set of wagons) (F_Rw=m_w*g*(f_Rw0+f_Rw1*v/v00+f_Rw2*((v+Δv_air)/v00)^2))
|
|
|
|
f_Rw0::Real # coefficient for the consists basic resistance (in ‰)
|
|
|
|
f_Rw1::Real # coefficient for the consists resistance to rolling (in ‰)
|
|
|
|
f_Rw2::Real # coefficient fo the consistsr air resistance (in ‰)
|
|
|
|
|
|
|
|
# tractive effort as pairs of speed and tractive effort
|
|
|
|
tractiveEffort::Vector{Tuple{Real, Real}} # [v in m/s, F_T in N]
|
|
|
|
|
|
|
|
end #struct Train
|