TrainRun.jl/src/types.jl

61 lines
2.9 KiB
Julia

#!/usr/bin/env julia
# -*- coding: UTF-8 -*-
# __author__ = "Martin Scheidt, Max Kannenberg"
# __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.
approxLevel::Int # value for approximation; used when rounding or iterating.
outputDetail::Symbol # single Float() ":running_time", Vector() of ":points_of_interest", Vector() of ":data_points"
# or complete Vector() ":driving_course"
outputFormat::Symbol # output as ":dataframe" or as ":vector".
end #struct Settings
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
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
# 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)
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 ‰)
f_Rt2::Real # coefficient for air resistance of the traction units (in ‰)
# 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