Elvas Tower: Steam Cylinder Events and Performance - 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.
  • 3 Pages +
  • 1
  • 2
  • 3
  • You cannot start a new topic
  • You cannot reply to this topic

Steam Cylinder Events and Performance Enhancement of Steam Cylinder calculations Rate Topic: -----

#16 User is offline   steamer_ctn 

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

Posted 22 March 2026 - 10:07 PM

View PostP Escue, on 22 March 2026 - 12:48 PM, said:

On the poppet valve, the main user here in the U.S. was the Pennsylvania Railroad (PRR). There is a group looking to rebuild a PRR T-1 (which used a poppet valve), with one of its goals being to set the world record for the fastest steam locomotive. They can be found at PRR T-1 Trust. Anyway, I did some research on their past site and found a few references on descriptions and tests of the poppet valve when used on the PRR. Here are some of the articles (some of the information may be repeated in the articles):



View PostTraindude, on 22 March 2026 - 02:03 PM, said:

Also, in case anyone is interested, here is a guide to the Baker Valve Gear.

Thanks for the information. The challenge with all these different gears is to develop a mathematical model that can be used by OR to model it.

#17 User is offline   Traindude 

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

Posted 23 March 2026 - 10:34 PM

Another obscure variation in valve gear (not sure if it's worth modelling or should be added by End User scripts): Variable Lead Walschaerts.

Although the Walschaerts is a constant-lead gear by default, the Denver & Rio Grande Western's fleet of 4-8-4 locomotives were equipped with an extra linkage that reduced the amount of lead in full gear to zero, by essentially raising or lowering the radius rod within a slot in the upper end of the lap-and-lead lever.

In terms of *.eng file programming, would we treat such a loco as if it were equipped with Stephenson?

Another related note -- here is a rather obscure improvement to Walschaerts and Baker gear that was born too late to be of any use -- Barry Acellerator Valve Gear.

Here are a few more resources WRT Franklin's Poppet Valves (my apologies if they have already been presented in this thread):

Franklin Poppet Valve Patent
Drive System Patent for Franklin "Type A" (Oscillating Cam) Valve Gear
Power Reverse Gear Patent for Franklin "Type A" Valve Gear
Franklin ""Type B" (Rotary Cam) Poppet Valve Gear Patent
Franklin Rotary Cam Drive System Patent
Franklin Type C "Long Compression" Poppet Valve Patent
Franklin "Type B1" Poppet Valve Patent

I have also included the PRR maintenance instructions (sadly devoid of illustrations) for maintaining the Franklin Type A gear, which was used on virtually all the T1's.

Attached File(s)



#18 User is offline   steamer_ctn 

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

Posted 28 March 2026 - 11:24 PM

I have uploaded some initial code to implement improved steam cylinder indication diagram calculations (used for IHP, etc). Currently it is still in a test mode so it doesn't change the current operation.

To facilitate the changes to "make it live", I am hoping to get a few steam locomotive enthusiasts who will run some tests for me. This role will require the setup of some test locomotives (at the moment only locomotives which have detailed test results will be considered and at my descretion), running of tests against the test reports to determine the accuracy of the implementation. This testing may need to be carried out over a number of weeks as the code is modified.

If you are willing to undertake this role, then please respond to this thread.

#19 User is offline   Traindude 

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

Posted 30 March 2026 - 02:34 PM

View Poststeamer_ctn, on 28 March 2026 - 11:24 PM, said:

I have uploaded some initial code to implement improved steam cylinder indication diagram calculations (used for IHP, etc). Currently it is still in a test mode so it doesn't change the current operation.

To facilitate the changes to "make it live", I am hoping to get a few steam locomotive enthusiasts who will run some tests for me. This role will require the setup of some test locomotives (at the moment only locomotives which have detailed test results will be considered and at my descretion), running of tests against the test reports to determine the accuracy of the implementation. This testing may need to be carried out over a number of weeks as the code is modified.

If you are willing to undertake this role, then please respond to this thread.


I can certainly do some of the tests. I'll modify the PRR T1, the Decapod, the GS1 and the Niagara for these purposes. However, please clarify this for me -- in the case of the Niagara, have we decided to include Baker valve gear in this initial phase or hold off until later?

Is this part of the latest unstable version yet?

#20 User is offline   steamer_ctn 

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

Posted 30 March 2026 - 09:07 PM

View PostTraindude, on 30 March 2026 - 02:34 PM, said:

Is this part of the latest unstable version yet?
Some code is now in the Unstable version, but it is a WiP and subject to change based upon testing results.

View PostTraindude, on 30 March 2026 - 02:34 PM, said:

I can certainly do some of the tests. I'll modify the PRR T1, the Decapod, the GS1 and the Niagara for these purposes. However, please clarify this for me -- in the case of the Niagara, have we decided to include Baker valve gear in this initial phase or hold off until later?

Thanks for the offer to assist with testing.

Currently only Walschaert and Stephenson valve gears have been added (no firm plans on others at the moment), so my preference would be to select locomotives that used these types of valve gear. It would also be good to have a selection of saturated and superheated steam locomotives to test.

The relevant test report should be studied, and a number of test points mapped out. For example, it might be the MEP at % cutoff and speed. These points can then be used to look at the accuracy of the OR simulation as the locomotive is an empirical device there will be some variations to the results and the test report). These points maybe expanded later to included other useful information, such as steam consumption.

It might be best to start with one locomotive to set up a robust test process first, and then expand it to other locomotives later.

#21 User is offline   copperpen 

  • Executive Vice President
  • Group: Posts: Elite Member
  • Posts: 3,327
  • Joined: 08-August 05
  • Gender:Male
  • Simulator:MSTS & OR
  • Country:

Posted 31 March 2026 - 03:01 AM

I am available for this work. Do we all work on one locomotive, or each work with a different one?.

#22 User is offline   steamer_ctn 

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

Posted 31 March 2026 - 05:07 AM

View Postcopperpen, on 31 March 2026 - 03:01 AM, said:

I am available for this work. Do we all work on one locomotive, or each work with a different one?.

Thanks for that.

I would suggest that we work on a representative sample of locomotives, with each individual tester taking responsibility for an individual test model, rather then duplicating effort.

For testing we probably need to do at least one Walschaert gear, one Stephenson gear, one saturated steam and one superheated unit, perhaps some different countries as well. These types could be duplicated by different locomotive, but these should be the minimum test set.

So perhaps you can nominate which model(s) you are interested in working on, and then the ENG files and Test report points can be shared for others to trial the model as well.

#23 User is offline   Traindude 

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

Posted 01 April 2026 - 12:09 PM

Okay, here is the results of my first test, with the Southern Pacific GS1.

Here are the settings I am using, based on the specifications for the GS2 from the March 1937 issue of Railway Mechanical Engineer:
ORTSWheelCrankAngleDifference ( 0deg 90deg 0deg 0deg ) Comment ( <===***For Main Engine Only.  Based on starting positions of crankpins on animation frame 0, assuming 0 degrees corresponds to Forward Dead Center and cylinders are listed in the following order: Left Front, Right Front.*** )
    
  ORTSSteamEngines ( 2
        Steam (
            Comment ( Main Engine )
            NumCylinders ( 2 )
            CylinderStroke ( 30.0in )
            CylinderDiameter ( 27.0in )
            MaxIndicatedHorsepower ( 4400hp ) Comment ( Dyn 14 - Gr 8 Report )
            AttachedAxle ( 1 )
            
            Comment ( *** Walschaerts Valve Gear, Inside Admission, Piston Valves, Max Valve Travel 7-1/4 in, Steam Lap 1-3/4in, Exhaust Clearance 3/16 in, Lead 1/4 in*** )   
            ORTSSteamLocomotiveValveGearType ( "Walschaert_Inside" )
            ORTSCylinderPortWidth ( 2.05in ) Comment ( ** Based on Baldwin Standard Practice and Max Cutoff of 73.5% *** )
            ORTSCylinderLead ( 0.25in ) 
            ORTSCylinderExhaustLap ( -0.1875in ) Comment ( *** Assumes Negative Value = Exhaust Clearance *** )
            ORTSCylinderLap ( 1.75in )
            ORTSConnectingRodLength ( 114.0in ) Comment ( *** Main Rod = 9 ft 6 in *** )
            ORTSCrankRadius ( 8.5in ) Comment ( *** Est. Ecc. Crank Circle Diam = 17 inches *** )
            ORTSWireDrawLocomotiveConstant ( 135 )
            ORTSSteamChestEfficiencyFactor ( 2.5 )
            ORTSCylinderClearance ( 0.09 ) Comment ( *** Typical Value for Simple Locomotives According to Alco *** )
            )
            
        Steam (
            Comment ( Booster Engine  - Tractive Effort - 13750lbf )
            NumCylinders ( 2 )
            CylinderStroke ( 12.0in )
            CylinderDiameter ( 10.0in )
            AttachedAxle ( 3 )
            BoosterCutoff ( 0.75 ) Comment ( *** Long Cutoff Valve *** )
            BoosterGearRatio ( 2.571 )
            AuxiliarySteamEngineType ( Booster )
            )                   
    )


When running, I noticed some odd readings on the HUD:
  • Even when starting in full gear (73.5% max cutoff), the lap and lead don't seem to match what I've given in the *.eng file -- apparently no lap and only 0.1 inch lead.
  • When running with the throttle open at about 60% or wider, it appears that the cutoff pressure is almost twice as large as the incoming steam chest pressure, and considerably more than the current boiler pressure (illustrated below).
  • When closing the throttle and the locomotive "set and centered" after coming to a stop, all parameters in the New Cylinder Events section display "NaN."


Note: I did not test the booster on this run, but since the cutoff can't be changed in-game, it's no big deal.

Attached Image: orgs1vgtest1.jpg

Attached File(s)



#24 User is offline   copperpen 

  • Executive Vice President
  • Group: Posts: Elite Member
  • Posts: 3,327
  • Joined: 08-August 05
  • Gender:Male
  • Simulator:MSTS & OR
  • Country:

Posted 01 April 2026 - 01:17 PM

As Traindude is working with a superheat engine, I will start on a saturated, the Atlantic.

#25 User is offline   Traindude 

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

Posted 01 April 2026 - 11:49 PM

Okay, next test -- this time with the PRR Decapod.

Firstly, here are the specifications I am using, based on the PRR Altoona test lab data:
Comment (***************************** Cylinders *******************************************
                      Included in this section - Number, Stroke, Diameter, steam usage, etc
          **********************************************************************************)

	NumCylinders ( 2 )
	CylinderStroke ( 32in )
	CylinderDiameter ( 30.5in )
    ORTSWheelCrankAngleDifference ( 90.0deg 0.0deg 0.0deg 0.0deg ) 
    Comment ( ***Pennsy Steamers had their crankpins arranged with the left crankpin ahead of the right one--the exact opposite of most other railroads!*** )
    
    Comment ( *** Walschaerts Valve Gear, Inside Admission, Piston Valves, Max Valve Travel 6 in, Steam Lap 2in, Exhaust Lap 1/8 in, Lead 3/16 in*** )   
            ORTSSteamLocomotiveValveGearType ( "Walschaert_Inside" )
            ORTSCylinderPortWidth ( 2.625in ) Comment ( ** Based on PRR Test Report*** )
            ORTSCylinderLead ( 0.1875in ) 
            ORTSCylinderExhaustLap ( 0.125in )
            ORTSCylinderLap ( 2.0in )
            ORTSConnectingRodLength ( 133.5in ) Comment ( *** Main Rod = 11 ft 1-1/2 in -- From 1922 Locomotive Cyclopedia*** )
            ORTSCrankRadius ( 11.0in ) Comment ( *** Est. Ecc. Crank Circle Diam = 22 inches *** )
            ORTSWireDrawLocomotiveConstant ( 225 )
            ORTSSteamChestEfficiencyFactor ( 2.5 )
            ORTSCylinderClearance ( 0.09 ) Comment ( *** Typical Value for Simple Locomotives According to Alco *** )


Of special note is that unlike most other locomotives, the Decapod has a maximum cutoff of 50% instead of the usual 75% or 85%. Additionally, the test report mentions that the locomotive has a set of auxiliary steam ports, which provide some assistance in starting the locomotive. I don't believe this feature is available in ORTS at the moment.

Here's what the performance of the locomotive looked like in the game:
Attached Image: ordecvgtest1.jpg

As can be seen, the readouts for the valve events appear much more favorable than on the GS1, but most of the pressure readouts appear to be zero.

So, my thinking is that because I put the GS1's valve gear code within the ORTSSteamEngines grouping, but left the Decapod's outside, the placement of the code for the GS1 seems to confuse ORTS. This should be remedied in the future, so that ORTS understands that these valve gear parameters apply only to the main engine and not the booster (if so equipped). Additionally, there should also be provisions to allow the ORTSWheelCrankAngleDifference parameter to be placed within the ORTSSteamEngines grouping, which will become important later for when we implement one-piece articulated locomotives.

These are the only two locomotives that I am testing at the moment. I'm not testing the Niagara because the real Niagara used Baker instead of Walschaerts gear, and so it wouldn't be a fair "apples to apples" comparison. Likewise I am not going to test the T1 because Poppet valves are not yet supported.

Attached File(s)



#26 User is offline   steamer_ctn 

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

Posted 03 April 2026 - 05:02 AM

View PostTraindude, on 01 April 2026 - 11:49 PM, said:

As can be seen, the readouts for the valve events appear much more favorable than on the GS1, but most of the pressure readouts appear to be zero.

So, my thinking is that because I put the GS1's valve gear code within the ORTSSteamEngines grouping, but left the Decapod's outside, the placement of the code for the GS1 seems to confuse ORTS. This should be remedied in the future, so that ORTS understands that these valve gear parameters apply only to the main engine and not the booster (if so equipped). Additionally, there should also be provisions to allow the ORTSWheelCrankAngleDifference parameter to be placed within the ORTSSteamEngines grouping, which will become important later for when we implement one-piece articulated locomotives.

These are the only two locomotives that I am testing at the moment. I'm not testing the Niagara because the real Niagara used Baker instead of Walschaerts gear, and so it wouldn't be a fair "apples to apples" comparison. Likewise I am not going to test the T1 because Poppet valves are not yet supported.


Thanks for the feedback, I am still trying to get the model correct, so I will get back in more detail in the next few days.

#27 User is offline   Traindude 

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

Posted 03 April 2026 - 09:27 PM

View Poststeamer_ctn, on 03 April 2026 - 05:02 AM, said:

Thanks for the feedback, I am still trying to get the model correct, so I will get back in more detail in the next few days.


Thank you, Peter.

I know I said I wasn't going to test anymore of the CTN locomotives, but just for fun, I decided to equip my old one-piece Challenger with the new parameters -- mostly to confirm my suspicions about the ORTSSteamEngines groupings.

Although my crudely modeled locomotive is fictitious in design, I did base a lot of the physics for it on the Northern Pacific and Spokane, Portland & Seattle class Z8 locomotives. I used the specifications of the earlier Z6 class locomotives, from the April 1937 issue of Railway Mechanical Engineer, as the basis:


Comment ( ***************************** Cylinders *****************************

              Included in this section - Number, Stroke, Diameter, steam usage, etc
                   
         *********************************************************************** )

	ORTSCylinderEfficiencyRate ( 1.0 )  Comment ( == Set to other value if cylinder performance to be "degraded" == )
    ORTSWheelCrankAngleDifference ( 0deg 90deg 0deg 90deg ) Comment ( <===***Based on starting positions of crankpins on animation frame 0, assuming 0 degrees corresponds to Forward Dead Center and cylinders are listed as Left Front, Right Front, Left Rear, Right Rear.*** )
	
	ORTSSteamEngines ( 2
        Steam (
                Comment ( Front Steam Engine )
                NumCylinders ( 2 )
                CylinderStroke ( 32.0in )
                CylinderDiameter ( 23.0in )
                AttachedAxle( 1 )
                ExcessRodBalance ( 100lb )
                
                Comment ( *** Walschaerts Valve Gear, Inside Admission, Piston Valves, Max Valve Travel 7-1/2 in, Steam Lap 1-9/32in, Exhaust Clearance 3/8 in, Lead 5/16 in*** )   
                ORTSSteamLocomotiveValveGearType ( "Walschaert_Inside" )
                ORTSCylinderPortWidth ( 2.46875in ) Comment ( ** Based on Baldwin Standard Practice and Max Cutoff of 84.7% *** )
                ORTSCylinderLead ( 0.3125in ) 
                ORTSCylinderExhaustLap ( -0.375in ) Comment ( *** Assumes Negative Value = Exhaust Clearance *** )
                ORTSCylinderLap ( 1.28125in )
                ORTSConnectingRodLength ( 140.0in )
                ORTSCrankRadius ( 8.25in ) Comment ( *** Ecc. Crank Circle Diam = 16-1/2 inches *** )
                ORTSWireDrawLocomotiveConstant ( 117 )
                ORTSSteamChestEfficiencyFactor ( 1.35 )
                ORTSCylinderClearance ( 0.09 ) Comment ( *** Typical Value for Simple Locomotives According to Alco *** )
              )
        Steam (
                Comment ( Rear Steam Engine )
                NumCylinders ( 2 )
                CylinderStroke ( 32.0in )
                CylinderDiameter ( 23.0in )
                AttachedAxle( 2 )
                ExcessRodBalance ( 100lb )
                
                Comment ( *** Walschaerts Valve Gear, Inside Admission, Piston Valves, Max Valve Travel 7-1/2 in, Steam Lap 1-9/32in, Exhaust Clearance 3/8 in, Lead 5/16 in*** )   
                ORTSSteamLocomotiveValveGearType ( "Walschaert_Inside" )
                ORTSCylinderPortWidth ( 2.46875in ) Comment ( ** Based on Baldwin Standard Practice and Max Cutoff of 84.7% *** )
                ORTSCylinderLead ( 0.3125in ) 
                ORTSCylinderExhaustLap ( -0.375in ) Comment ( *** Assumes Negative Value = Exhaust Clearance *** )
                ORTSCylinderLap ( 1.28125in )
                ORTSConnectingRodLength ( 140.0in )
                ORTSCrankRadius ( 8.25in ) Comment ( *** Ecc. Crank Circle Diam = 16-1/2 inches *** )
                ORTSWireDrawLocomotiveConstant ( 117 )
                ORTSSteamChestEfficiencyFactor ( 1.35 )
                ORTSCylinderClearance ( 0.09 ) Comment ( *** Typical Value for Simple Locomotives According to Alco *** )
               )                
    )


So far, the only difference I can tell between the Z6 and Z8 class locomotives is that the Z8 has one inch larger diameter driving wheels, and as such I lengthened the main rods for both engines accordingly.

Attached Image: ortschalvgtest1.jpg

As you can see, my suspicions of the placement of the new parameters within the ORTSSteamEngines groupings are confirmed -- lap, lead and valve travel for both engines are reduced significantly, and cutoff pressure is nearly 3 times the current boiler pressure!

...and here's an example of the "NaN" error I received on all three locomotives -- the GS1, the Decapod and the Challenger -- when coming to a stop:
Attached Image: ortschalvgtest2.jpg

I'm just sharing this test in case anyone is curious.

Attached File(s)



#28 User is offline   steamer_ctn 

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

Posted 05 April 2026 - 12:06 AM

I have added another update (still not working 100%n correctly at the moment) to the Unstable version.

Also note comments re the parameters names to be used in the web page that I posted earlier in the thread.

In the HuD two new lines have been added "NewCylEvents" and "NewPres" these are the lines to be checked against relevant test reports.

Note as it is not robust at the moment only a small number of tests are required.

#29 User is offline   copperpen 

  • Executive Vice President
  • Group: Posts: Elite Member
  • Posts: 3,327
  • Joined: 08-August 05
  • Gender:Male
  • Simulator:MSTS & OR
  • Country:

Posted 05 April 2026 - 09:49 AM

Started testing todayb with the NYC Atlantic. First thing I noticed was the NewPressureChest figures hit full boiler pressure as soon as the throttle is moved whereas the original chest pressure rises as the throttle is opened.

Attached thumbnail(s)

  • Attached Image: Screenshot_2.jpg


#30 User is offline   steamer_ctn 

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

Posted 06 April 2026 - 01:19 AM

View Postcopperpen, on 05 April 2026 - 09:49 AM, said:

Started testing todayb with the NYC Atlantic. First thing I noticed was the NewPressureChest figures hit full boiler pressure as soon as the throttle is moved whereas the original chest pressure rises as the throttle is opened.

Thanks for that. I will have a look at it.

  • 3 Pages +
  • 1
  • 2
  • 3
  • 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