Skip to content

Commit a5df286

Browse files
committed
Add additional default brakeshoe CoF
1 parent 7f7dd99 commit a5df286

File tree

2 files changed

+90
-5
lines changed

2 files changed

+90
-5
lines changed

Source/Documentation/Manual/physics.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2753,7 +2753,8 @@ Brake Shoe Force - This is the current change being implemented. The following c
27532753

27542754
``ORTSBrakeShoeType`` - this defines a number of different brake shoe types and curves. To provide a more realistic representation of the braking force the default CoF curves are 2D, ie
27552755
they are impacted by both the speed and Brake Shoe Force. Typically ``ORTSBrakeShoeType`` will have one of the following keywords included -
2756-
``Cast_Iron`` - cast iron brake shoe, 2D as above, ``Hi_Friction_Composite`` - high friction composite shoe, 2D as above, ``User_Defined`` - is a user defined curve
2756+
``Cast_Iron`` - older cast iron brake shoes, 2D as above, ``Cast_Iron_P10`` - newer cast iron brake shoes with increased phosphorous, 2D as above, ``Hi_Friction_Composite``
2757+
- high friction composite shoe, 2D as above, ``Disc_Pads`` - brakes with disc pads, 2D as above, ``User_Defined`` - is a user defined curve
27572758
using the ORTSBrakeShoeFriction parameter, 1D (ie, speed only, see above section for the parameter format).
27582759

27592760
``ORTSNumberCarBrakeShoes`` - to facilitate the operation of the default 2D curves above it is necessary to configure the number of brake shoes for each car.

Source/Orts.Simulation/Simulation/RollingStocks/TrainCar.cs

Lines changed: 88 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,8 @@ public enum BrakeShoeTypes
685685
{
686686
Unknown,
687687
Cast_Iron,
688+
Cast_Iron_P10,
689+
Disc_Pads,
688690
High_Friction_Composite,
689691
User_Defined,
690692
}
@@ -3236,17 +3238,58 @@ public virtual float GetBrakeShoeFrictionFactor()
32363238
// Formula 9 and 10 from the paper "Study of the influence of the brake shoe temperature and wheel tread on braking effectiveness" by P Ivanov1, A Khudonogov1,
32373239
// E Dulskiy1, N Manuilov1, A Khamnaeva1, A Korsun1, S Treskin is used for the Cast Iron and Hi Friction Composite brake shoe friction curves.
32383240
// https://iopscience.iop.org/article/10.1088/1742-6596/1614/1/012086/pdf
3241+
//
3242+
// These formulas are based upon the work of Karwatzki, which is described further in "Fahrdynamik des Schienenverkehrs" by Dietrich Wende 2003.
3243+
// Karwatzki developed a formula for brakeshoe friction that used 5 constant values k1, ..... , k5.
3244+
// Wende present a number of different brake shoes k values, two sets of which line up with the UIC values above.
32393245

32403246
float NewtonsTokNewtons = 0.001f;
32413247
float brakeShoeForcekN = (NewtonsTokNewtons * BrakeShoeForceN) / NumberCarBrakeShoes;
3248+
float k1 = 0;
3249+
float k2 = 0;
3250+
float k3 = 0;
3251+
float k4 = 0;
3252+
float k5 = 0;
32423253

32433254
if (BrakeShoeType == BrakeShoeTypes.Cast_Iron)
32443255
{
3245-
frictionfraction = 0.6f * ((1.6f * brakeShoeForcekN + 100.0f) / (8.0f * brakeShoeForcekN + 100.0f)) * ((MpS.ToKpH(AbsSpeedMpS) + 100.0f) / (5.0f * MpS.ToKpH(AbsSpeedMpS) + 100.0f));
3256+
k1 = 0.024f;
3257+
k2 = 62.5f;
3258+
k3 = 12.5f;
3259+
k4 = 100f;
3260+
k5 = 20f;
3261+
3262+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
3263+
}
3264+
else if (BrakeShoeType == BrakeShoeTypes.Cast_Iron_P10)
3265+
{
3266+
k1 = 0.05f;
3267+
k2 = 62.5f;
3268+
k3 = 31.25f;
3269+
k4 = 100f;
3270+
k5 = 20f;
3271+
3272+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
32463273
}
32473274
else if (BrakeShoeType == BrakeShoeTypes.High_Friction_Composite)
32483275
{
3249-
frictionfraction = 0.44f * ((0.1f * brakeShoeForcekN + 20.0f) / (0.4f * brakeShoeForcekN + 20.0f)) * ((MpS.ToKpH(AbsSpeedMpS) + 150.0f) / (2.0f * MpS.ToKpH(AbsSpeedMpS) + 150.0f));
3276+
k1 = 0.055f;
3277+
k2 = 200f;
3278+
k3 = 50f;
3279+
k4 = 150f;
3280+
k5 = 75f;
3281+
3282+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
3283+
}
3284+
else if (BrakeShoeType == BrakeShoeTypes.Disc_Pads)
3285+
{
3286+
k1 = 0.385f;
3287+
k2 = -24.5f;
3288+
k3 = -27.2f;
3289+
k4 = 39.5f;
3290+
k5 = 33f;
3291+
3292+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
32503293
}
32513294
else if (BrakeShoeType == BrakeShoeTypes.User_Defined)
32523295
{
@@ -3303,17 +3346,58 @@ public virtual float GetBrakeShoeFrictionCoefficientHuD()
33033346
// Formula 9 and 10 from the paper "Study of the influence of the brake shoe temperature and wheel tread on braking effectiveness" by P Ivanov1, A Khudonogov1,
33043347
// E Dulskiy1, N Manuilov1, A Khamnaeva1, A Korsun1, S Treskin is used for the Cast Iron and Hi Friction Composite brake shoe friction curves.
33053348
// https://iopscience.iop.org/article/10.1088/1742-6596/1614/1/012086/pdf
3349+
//
3350+
// These formulas are based upon the work of Karwatzki, which is described further in "Fahrdynamik des Schienenverkehrs" by Dietrich Wende 2003.
3351+
// Karwatzki developed a formula for brakeshoe friction that used 5 constant values k1, ..... , k5.
3352+
// Wende present a number of different brake shoes k values, two sets of which line up with the UIC values above.
33063353

33073354
float NewtonsTokNewtons = 0.001f;
33083355
float brakeShoeForcekN = NewtonsTokNewtons * BrakeShoeForceN / NumberCarBrakeShoes;
3356+
float k1 = 0;
3357+
float k2 = 0;
3358+
float k3 = 0;
3359+
float k4 = 0;
3360+
float k5 = 0;
33093361

33103362
if (BrakeShoeType == BrakeShoeTypes.Cast_Iron)
33113363
{
3312-
frictionfraction = 0.6f * ((1.6f * brakeShoeForcekN + 100.0f) / (8.0f * brakeShoeForcekN + 100.0f)) * ((MpS.ToKpH(AbsSpeedMpS) + 100.0f) / (5.0f * MpS.ToKpH(AbsSpeedMpS) + 100.0f));
3364+
k1 = 0.024f;
3365+
k2 = 62.5f;
3366+
k3 = 12.5f;
3367+
k4 = 100f;
3368+
k5 = 20f;
3369+
3370+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
3371+
}
3372+
else if (BrakeShoeType == BrakeShoeTypes.Cast_Iron_P10)
3373+
{
3374+
k1 = 0.05f;
3375+
k2 = 62.5f;
3376+
k3 = 31.25f;
3377+
k4 = 100f;
3378+
k5 = 20f;
3379+
3380+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
33133381
}
33143382
else if (BrakeShoeType == BrakeShoeTypes.High_Friction_Composite)
33153383
{
3316-
frictionfraction = 0.44f * ((0.1f * brakeShoeForcekN + 20.0f) / (0.4f * brakeShoeForcekN + 20.0f)) * ((MpS.ToKpH(AbsSpeedMpS) + 150.0f) / (2.0f * MpS.ToKpH(AbsSpeedMpS) + 150.0f));
3384+
k1 = 0.055f;
3385+
k2 = 200f;
3386+
k3 = 50f;
3387+
k4 = 150f;
3388+
k5 = 75f;
3389+
3390+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
3391+
}
3392+
else if (BrakeShoeType == BrakeShoeTypes.Disc_Pads)
3393+
{
3394+
k1 = 0.385f;
3395+
k2 = -24.5f;
3396+
k3 = -27.2f;
3397+
k4 = 39.5f;
3398+
k5 = 33f;
3399+
3400+
frictionfraction = k1 * ((brakeShoeForcekN + k2) / (brakeShoeForcekN + k3)) * ((MpS.ToKpH(AbsSpeedMpS) + k4) / (MpS.ToKpH(AbsSpeedMpS) + k5));
33173401
}
33183402
else if (BrakeShoeType == BrakeShoeTypes.User_Defined)
33193403
{

0 commit comments

Comments
 (0)