Elvas Tower: Steam Locomotive Additional Features - Elvas Tower

Jump to content

Posting Rules

All new threads will be started by members of the Open Rails team, Staff, and/or Admins. Existing threads started in other forums may get moved here when it makes sense to do so.

Once a thread is started any member may post replies to it.
  • 10 Pages +
  • « First
  • 6
  • 7
  • 8
  • 9
  • 10
  • You cannot start a new topic
  • You cannot reply to this topic

Steam Locomotive Additional Features Rate Topic: -----

#71 User is offline   darwins 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,249
  • Joined: 25-September 17
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 08 July 2023 - 12:39 PM

He is saying that we need driven and non-driven wheels, different diameters and different weights, braked or not braked for diesel and electric locos as well as for steam locos. (As in the example I have given above!)

#72 User is offline   cesarbl 

  • Conductor
  • Group: Status: Active Member
  • Posts: 395
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 08 July 2023 - 12:49 PM

Ah, implementing this for diesel engines is straightforward once we do it for steam engines. For electric motors additional steps may be needed.

#73 User is offline   Traindude 

  • Engineer
  • Group: Status: Contributing Member
  • Posts: 664
  • Joined: 17-November 13
  • Gender:Male
  • Location:Seattle, WA
  • Simulator:Open Rails
  • Country:

Posted 08 July 2023 - 06:15 PM

I think it would be a better time than ever for me to share my ideas for implementing articulation into the "multiple steam engines on one locomotive" functionality. Please let me know what you guys think!

Attached File(s)



#74 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin
  • Posts: 6,993
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 08 July 2023 - 06:51 PM

First reaction: wow!
I have to read it.
Like Your approach.

#75 User is offline   steamer_ctn 

  • Open Rails Developer
  • Group: Status: Elite Member
  • Posts: 1,889
  • Joined: 24-June 11
  • Gender:Male
  • Country:

Posted 08 July 2023 - 10:05 PM

View PostTraindude, on 07 July 2023 - 11:48 PM, said:

Thank you for reinstating the duplex and booster functionality. One odd side effect that I'm noticing is the lack of exhaust chuffs when the booster isn't engaged. I viewed thw sound debug window (ALT+S) while operating the T1, and sure enough, the "Variable2" readout (throttle percentage) only increases and decreases as the booster is engaged with CTRL+W and disengaged with SHIFT+W. Opening or closing the main throttle while the booster is off causes the Variable2 readout to stay at zero.
I am not sure how it was re-instated, and I will need to look at if it is still working ok.

View PostTraindude, on 07 July 2023 - 11:48 PM, said:

On a side note, when the PR for the duplex/booster functionality was temporarily unavailable, it seemed the constant low superheat bug was gone, and the "Current Superheat" value increased or decreased with throttle opening as it should, but when the duplex/booster function was restored, the constant low superheat bug reappeared.

This is related to the changes to code to get multiple engines working. I had a patch to fix the superheat bug, but that has now been upset by the PR clash.

I will need to play with it.

#76 User is offline   steamer_ctn 

  • Open Rails Developer
  • Group: Status: Elite Member
  • Posts: 1,889
  • Joined: 24-June 11
  • Gender:Male
  • Country:

Posted 08 July 2023 - 10:32 PM

View Postcesarbl, on 08 July 2023 - 05:37 AM, said:

I suggest using BrakeFraction ( % of total brake force ) instead of WheelsBraked ( 1 ). Some wheels may have more powerful brakes than others.
How were more powerful brakes configured? Did they have higher friction brake shoes, or was the brake force on the brake shoes "amplified" by different mechanical levers?

Either way, rather then using a % value, I would prefer to see a more prototypical figure that relates to a design specification, etc.

#77 User is offline   darwins 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,249
  • Joined: 25-September 17
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 08 July 2023 - 11:40 PM

If % of the total available brake force then it must add up to 100% of total brake force. If numbers are going to be used then still the total must not exceed the MaxBrakeForce or MaxBrakeShoeForce for the locomotive - in this case we would need two parameters where % would work for both of them. I don't think that dividing brake force other than according to the mass on the wheels was common. The only example I can find of wheels being braked differently was more by accident than by design. The bogie brakes on some steam locomotives were found to be less effective than they should be due to the length of the steam pipes to them and leaks in the joints. For this reason bogie brakes were removed from many locos in UK as their effectiveness was limited compared to the relatively high maintenance costs.

The original thought of braked or not braked was simply about animation, should the wheels rotate freely at all times or be locked if the loco starts to skid.


#78 User is offline   cesarbl 

  • Conductor
  • Group: Status: Active Member
  • Posts: 395
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 09 July 2023 - 12:17 AM

Quote

How were more powerful brakes configured? Did they have higher friction brake shoes, or was the brake force on the brake shoes "amplified" by different mechanical levers?

Either way, rather then using a % value, I would prefer to see a more prototypical figure that relates to a design specification, etc.

With more powerful I mean that they are proportional to the wheel weight. My proposal was that, for each axle, total brake force is distributed according to a %. For example, if you have a 4-axle locomotive with MaxBrakeForce=200kN and each axle contributes with a 25%, then MaxBrakeRetardForce=50kN for each axle.

An alternative would be to have different several MaxBrakeShoeForce, CoF and WSP devices for each axle. This is a more complete approach but it requires quite much more code. The % solution is much more simpler, so maybe we can use it for now and then implement the advanced configuration in the future.

Quote

If % of the total available brake force then it must add up to 100% of total brake force.

Yes, it's the distribution of total brake force, and must add up to 100%.

Quote

The original thought of braked or not braked was simply about animation, should the wheels rotate freely at all times or be locked if the loco starts to skid.

Whether a wheel skids or not depends on the brake force applied to that axle, so physics have to be changed too.

Here's a suggested patch. As you can see, it is really simple, only 10 lines:
diff --git a/Source/Orts.Simulation/Simulation/RollingStocks/MSTSLocomotive.cs b/Source/Orts.Simulation/Simulation/RollingStocks/MSTSLocomotive.cs
index acf5c2d56..ff5509750 100644
--- a/Source/Orts.Simulation/Simulation/RollingStocks/MSTSLocomotive.cs
+++ b/Source/Orts.Simulation/Simulation/RollingStocks/MSTSLocomotive.cs
@@ -2787,7 +2787,7 @@ public virtual void AdvancedAdhesion(float elapsedClockSeconds)
 
             foreach (var axle in LocomotiveAxles)
             {
-                axle.BrakeRetardForceN = BrakeRetardForceN/LocomotiveAxles.Count;
+                axle.BrakeRetardForceN = BrakeRetardForceN * axle.BrakeFraction;
                 axle.TrainSpeedMpS = SpeedMpS;                //Set the train speed of the axle mod
                 axle.WheelRadiusM = DriverWheelRadiusM;
             }
diff --git a/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerTransmissions/Axle.cs b/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerTransmissions/Axle.cs
index 93d62af32..78a614e1b 100644
--- a/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerTransmissions/Axle.cs
+++ b/Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerTransmissions/Axle.cs
@@ -233,6 +233,7 @@ public void Initialize()
                     if (axle.DampingNs <= 0) axle.DampingNs = locomotive.MassKG / 1000.0f / AxleList.Count;
                     if (axle.FrictionN <= 0) axle.FrictionN = locomotive.MassKG / 1000.0f / AxleList.Count;
                     if (axle.NumberWheelAxles <= 0) axle.NumberWheelAxles = 1;
+                    if (axle.BrakeFraction < 0) axle.BrakeFraction = 1.0f / AxleList.Count;
                 }
                 axle.Initialize();
             }
@@ -477,6 +478,10 @@ public float TransmissionEfficiency
         /// Wheel number
         /// </summary>
         public int NumberWheelAxles;
+        /// <summary>
+        /// Fraction of total brake force applied
+        /// </summary>
+        public float BrakeFraction = -1;
 
         /// <summary>
         /// Static adhesion coefficient, as given by Curtius-Kniffler formula
@@ -672,6 +677,9 @@ public void Parse(STFReader stf)
                     case "numberwheelaxles":
                         NumberWheelAxles = stf.ReadIntBlock(null);
                         break;
+                    case "brakefraction":
+                        BrakeFraction = stf.ReadFloatBlock(STFReader.UNITS.None, null);
+                        break;
                     case "(":
                         stf.SkipRestOfBlock();
                         break;
@@ -685,6 +693,7 @@ public void Copy(Axle other)
             WheelWeightKg = other.WheelWeightKg;
             AxleWeightN = other.AxleWeightN;
             NumberWheelAxles = other.NumberWheelAxles;
+            BrakeFraction = other.BrakeFraction;
         }
 
         /// <summary>



#79 User is offline   steamer_ctn 

  • Open Rails Developer
  • Group: Status: Elite Member
  • Posts: 1,889
  • Joined: 24-June 11
  • Gender:Male
  • Country:

Posted 09 July 2023 - 02:08 AM

View Postcesarbl, on 09 July 2023 - 12:17 AM, said:

The % solution is much more simpler, so maybe we can use it for now and then implement the advanced configuration in the future.

If the % implementation and the advanced implementation need different inputs, then I disagree with "using it for now", as we would be creating a "legacy" feature that needs to be managed into the future. Ideally we should only implement the "final" solution.

#80 User is offline   cesarbl 

  • Conductor
  • Group: Status: Active Member
  • Posts: 395
  • Joined: 30-March 20
  • Gender:Male
  • Simulator:Open Rails
  • Country:

Posted 09 July 2023 - 02:15 AM

Agreed, let's keep axles with even brake distribution for now.

  • 10 Pages +
  • « First
  • 6
  • 7
  • 8
  • 9
  • 10
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users