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.
  • 9 Pages +
  • « First
  • 4
  • 5
  • 6
  • 7
  • 8
  • Last »
  • 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: Posts: Elite Member
  • Posts: 1,544
  • 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 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 578
  • 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 

  • Foreman Of Engines
  • Group: Posts: Contributing Member
  • Posts: 814
  • 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!

#74 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin Group
  • Posts: 8,867
  • 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: Posts: Elite Member
  • Posts: 1,980
  • 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: Posts: Elite Member
  • Posts: 1,980
  • 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: Posts: Elite Member
  • Posts: 1,544
  • 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 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 578
  • 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: Posts: Elite Member
  • Posts: 1,980
  • 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 

  • Engineer
  • Group: Posts: Contributing Member
  • Posts: 578
  • 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.

#81 User is offline   steamer_ctn 

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

Posted 09 July 2023 - 06:49 PM

Unfortunately due to conflicts created by another PR I have withdrawn the Duplex Steam engine feature from the Unstable version.

I will attempt a rebuild of the PR and reintroduce it when I have some time.

#82 User is offline   darwins 

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

Posted 10 July 2023 - 09:34 PM

View PostTraindude, on 08 July 2023 - 06:15 PM, said:

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!


An excellent paper. The ideas for including lights, special effects and freight anims with the different sections are essential. (Some might also apply to some old time articulated diesel and electric locos!)
I hope the coders find a way to make these work.

Interestingly up until now we have only been allowed one ORTSFreightAnims ( ) block in one eng file - the possibility of more than one block might allow separation of things that belong to a loco (change in mass etc) from things that can change (removable lamps).


#83 User is offline   Traindude 

  • Foreman Of Engines
  • Group: Posts: Contributing Member
  • Posts: 814
  • Joined: 17-November 13
  • Gender:Male
  • Location:Seattle, WA
  • Simulator:Open Rails
  • Country:

Posted 12 July 2023 - 08:29 PM

View Postdarwins, on 10 July 2023 - 09:34 PM, said:

An excellent paper. The ideas for including lights, special effects and freight anims with the different sections are essential. (Some might also apply to some old time articulated diesel and electric locos!)
I hope the coders find a way to make these work.

Interestingly up until now we have only been allowed one ORTSFreightAnims ( ) block in one eng file - the possibility of more than one block might allow separation of things that belong to a loco (change in mass etc) from things that can change (removable lamps).


Thank you darwins! You're right, there are articulated diesel and electric locomotives that have a combination of driving and idler wheels (before "power trucks" became a thing--the Milwaukee Road's old Boxcab locomotives on the electrified sections of the Pacific Extension come to mind).

I think once we get it working for steam locomotives, then the articulation parameters can be easily adapted to diesel and electric locomotives as well. Cesarbl's recent discussion on grouping wheels for independent wheelslip (see page 7 of the thread) seems to be a step in the right direction. I'm still unsure as to whether the lights, FX, and freight animation information should stay where they currently are within an *.eng file or be included in the ORTSSteamEngines groupings. I'm hoping the coders can use my proposal as a jumping-off point, though...

#84 User is offline   Jonatan 

  • Vice President
  • Group: Posts: Elite Member
  • Posts: 2,770
  • Joined: 29-March 10
  • Gender:Male
  • Location:Somewhere.
  • Simulator:MSTS and Vehicle Simulator
  • Country:

Posted 13 July 2023 - 12:41 PM

I don't know what all this means but I'll recite the old saying: "they were too busy with the question wether they could, to ask the question wether they should".

It sounds nice, but every new feature or redesign of systems has to be implemented in such a way it won't require rewriting the thousands of existing .engs and .wags we have in our collections.

#85 User is offline   Traindude 

  • Foreman Of Engines
  • Group: Posts: Contributing Member
  • Posts: 814
  • Joined: 17-November 13
  • Gender:Male
  • Location:Seattle, WA
  • Simulator:Open Rails
  • Country:

Posted 13 July 2023 - 11:59 PM

View PostJonatan, on 13 July 2023 - 12:41 PM, said:

I don't know what all this means but I'll recite the old saying: "they were too busy with the question wether they could, to ask the question wether they should".

It sounds nice, but every new feature or redesign of systems has to be implemented in such a way it won't require rewriting the thousands of existing .engs and .wags we have in our collections.


FYI, darwins and I were talking about my proposal for adding new parameters to add articulation to the whole "multiple engines on one locomotive" concept--so no more two-plus-piece models for one locomotive! (See page 8 of this thread for a *.pdf download of my proposal.)

Believe me, I agree that the addition of new features does have the inconvenience of having to edit and re-edit all of our *.eng and *.wag files, but if we're moving toward more realism and doing away with the constraints of MSTS, it's well worth the effort in the long run!

  • 9 Pages +
  • « First
  • 4
  • 5
  • 6
  • 7
  • 8
  • Last »
  • 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