Elvas Tower: a possible error in the steamer code - Elvas Tower

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

a possible error in the steamer code Rate Topic: -----

#1 User is offline   Lindsayts 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,849
  • Joined: 25-November 11
  • Gender:Male
  • Country:

Posted 31 May 2013 - 10:05 PM

Will the developers and steamer_ctn have a look at the following fairy tale to see if there's any sense there.

Is an some work on a possible error in MSTSSteamLocomotive.cs relating to steam usage, its rather brief as if I sat on it I very likely would not put it up.

Lindsay


Calculation of swept volume per sec during the inlet part of the cylinders cycle of loco H220
at 60 mph.

cylinders       3
        D       21in    0.533m
        S       28in    0.711m
drivers         67in    1.702m

RPS @60 mph     5.02

swept Volumne   1 cylinder      9698 cu in

swept V, 3 Cylinders @ 20% cuttoff      11637 cu in =   6.73  cu ft

density of steam @ 220 lbs/sq in        0.5101

max possible steam consumed/sec at 60 mph @ 20 cutoff   3.43 lbs/sec = 12367 lbs/h

At 60 mph at 10 percent cuttoff this loco in the sim consumes around 54,000 lbs/h.

VR boiler tests show H220's boiler supplied 36,000 lbs/h, on this amount must be counted
condensation and leaks, Compressor, injectors and lighting generator as well as a bit
for any circumstances that may occur. Note H220 was designed for 70mph cruising speed.


Analysis of the OR file MSTSSteamLocomotive.cs as applied to the above.

SteamUsageFactor is a constant that appears to represents the total amount of swept
Volume of the cylinders covered in a single turn of the driving wheels.

Line 142

SteamUsageFactor = 2 * NumCylinders * 3.281f * CylinderDiameterM / 2 * 3.281f *
        CylinderDiameterM / 2 * 3.281f * CylinderStrokeM / (2 * DriverWheelRadiusM);


The dimensions in the above formula are converted to feet BUT the velocity is in Metres/sec.
Also volume calculated is in error as Pi is not used.

I believe Line 142 should be........


SteamUsageFactor = 2 * NumCylinders * 3.14159 *  CylinderDiameterM / 2 * CylinderDiameterM / 2 *
        CylinderStrokeM / (2 * DriverWheelRadiusM);


The steam useage formula is below.......


Line 572

SteamUsageLBpS = .6f * SteamUsageLBpS + .4f * speed * SteamUsageFactor * (cutoff + .07f) *
        (CylinderSteamDensity[cylinderPressure] - CylinderSteamDensity[backPressure]);


Speed formula is, Note speed is stated as Metres/sec

line 536

float speed = Math.Abs(Train.SpeedMpS);



#2 User is offline   Lindsayts 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,849
  • Joined: 25-November 11
  • Gender:Male
  • Country:

Posted 01 June 2013 - 01:05 AM

There's an error in the description of "SteamUsageFactor", it should read.......


"SteamUsageFactor is a constant that appears to represents the total amount of swept
Volume of the cylinders covered in 1 metre of travel of the loco."

Therefore multiplying speed in metres/sec by this produces the total swept volume in the cylinders by the pistons in one second of time.


Lindsay

#3 User is offline   dajones 

  • Open Rails Developer
  • Group: Status: Contributing Member
  • Posts: 413
  • Joined: 27-February 08
  • Gender:Male
  • Location:Durango, CO
  • Country:

Posted 01 June 2013 - 04:46 AM

I think the formula in the code is correct. The SteamUsageFactor is in cubic feet per meter traveled. When multiple by speed this gives cubic feet per second. The SteamDensity table is in pounds per cubic foot, so the result is pounds per second.

Pi is missing because it canceled. There should be a Pi in the numerator and the denominator.

Doug

#4 User is offline   steamer_ctn 

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

Posted 01 June 2013 - 10:44 PM

I would like to add my thoughts to this discussion, but I want to go "back to basics" first to ensure that we are all "on the same page". Thus this will be a long post. Sorry about that.

Total Steam Usage

In OR:

Total Steam Usage = Cylinder usage + Blower Usage + Basic Usage

Basic Usage = value read from ENG File

Blower Usage = possibly dealt with at another time.

The main component of steam usage is the steam used by the cylinders to drive the wheels around.


Cylinder Usage

Broadly Cylinder Usage can be expressed as follows:

Cylinder usage = number of cylinders * number of strokes at current speed (Cyl_Strokes) * amount of steam used per stroke (Steam_Amt)

Cylinder Strokes


The first assumption to be made is that each cylinder will do two (2) strokes for each revolution of the drive wheel, thus, based on the circumference of the drive wheel we can calculate the number of turns that it is making and multiply this by this assumption, and the number of cylinders to arrive at the number of cylinder strokes for the locomotive.

One thing that I am uncertain about is whether there is actually 4 steam applications per revolution, ie 2 forward and 2 return. This could increase the amount of steam used by a further factor of 2. Can anyone shed some light on this?

Let's assume that we are calculating steam usage in 1 sec ( * 3600 to convert to per hour)

Cyl_Strokes = {distance travelled at speed in 1 sec / Drive Wheel Circumference} * (No strokes in one Drive Wheel Revolution (= 2 based on above assumption, or more?)

Thus:

Cyl_Strokes = {speed (in m/s) / (2 * PI * DriverWheelRadiusM)} * { 2 }

Steam_Amt

Steam will depend on the cylinder volume, and the steam in the cylinders based on density and cutoff, etc.

Steam_Amt = {cylinder volume} * {Cutoff Amount} * {Steam Density} - I have assumed that the core principle for this formula is correct.

Cylinder Volume = PI * R^2 * H = {(PI * (CylinderDiameterM / 2)^2 * CylinderStrokeM)}

Steam_Amt = {(PI * (CylinderDiameterM / 2)^2 * CylinderStrokeM)} * (cutoff + .07f) * (CylinderSteamDensity[cylinderPressure] - CylinderSteamDensity[backPressure])

Thus

Cylinder usage (per second) = number of cylinders * {speed (in m/s) / (2 * PI * DriverWheelRadiusM)} * { 2 } * {(PI * (CylinderDiameterM / 2)^2 * CylinderStrokeM)} * {Cutoff Amount} * {Steam Density}

Rearranging the formula:

Cylinder usage (per second) = speed (in m/s) * {{number of cylinders * 2 * {(PI * (CylinderDiameterM / 2)^2 * CylinderStrokeM)}} / (2 * PI * DriverWheelRadiusM)} * {Cutoff Amount} * {Steam Density}

Thus the Steam Usage Factor (bold above) (SUF) = {{number of cylinders * 2 * {(PI * (CylinderDiameterM / 2)^2 * CylinderStrokeM)}} / (2 * PI * CylinderStrokeM)}

Cancelling out redundant values we get:

Thus SUF = NumCyl * {CylinderDiameterM ^ 2} * CylinderStrokeM / (4 * DriverWheelRadiusM))

This has been a complex post, and I hopefully I have not made any mistakes in my calculations.

I would be happy to get confirmation or correction if I have made a mistake. Thus hopefully we can agree on the formula and then align units, and constants to get the correct result.

Thanks

#5 User is offline   copperpen 

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

Posted 02 June 2013 - 06:32 AM

Your basic calculation of Cylinder usage = number of cylinders * number of strokes at current speed (Cyl_Strokes) * amount of steam used per stroke (Steam_Amt)
is correct, so the calculation of the amount needs to be refined. Steam will only be admitted to each stroke of the cylinder for the piston distance travelled in the cylinder during the open cutoff period. That volume turned into weight per stroke will give the total amount used. There is also the throttle to be considered as this will affect how much steam gets allowed into the cylinder from the boiler. Half throttle uses less steam than full throttle.

#6 User is offline   Lindsayts 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,849
  • Joined: 25-November 11
  • Gender:Male
  • Country:

Posted 02 June 2013 - 04:19 PM

Thanks for the replies, someone actaully are paying attention, good.

The arithmetic is flawed so the post does not hold water, but the issue I am trying to chase is that the steamer modeling as it stands is not accurate. I have since corrected my own mathematics, the results compared to reality were enlighening. There is clearly something throttling the steam in the path from the boiler into the cylinder.

I have three loco's whose performance including power and steam consumption has been published, of these only one I have corrected for performance ,the loco's are GWR 4900 Hall class, PRR K4s and Victorian railways H220. There are as well two other loco's NSW 57 and 58 class, while there performance figures have not been published they are essentailly identical to H220, the eng files only varying in minor details. All five are avaible as models for MSTS, the Hall class and the PRR K4s require extensive modification of the eng files to get them to run properly, I have not as yet done that.

Extensive testing of H220 has shown that the currrent steamer modelling is not correct. Steam consumption at full power being around 17 to 18 lbs/bhp/H. The actual consumption should around 10 to 11 lbs/bhp/H. Power is also low, H220 struggling to get a draw bar power above 3000bhp the real loco giving between 3500 and 3700bhp.

It appears at this stage its likely there is no major error in the maths of the sim which means either the mathematical model is incorrect, incomplete or some of the data is inaccurate. The chance is that all three are present to some degree.

A point I will like to make is that a steam loco is in fact a very complex machine to model, my own opinion is that the likely hood of getting a mathematical model to reflect the real thing without some kind of user configuration of some of the details is very low. OR may be better off to calculate the comparitive steam consumption then reference this to the total boiler output from the eng file.

A question on the current code, does the modelling take into account the throttling of the steam into cylinders caused be the short both in time and in opening of the inlet port of the cylinder that occurs at very short valve travel. There is some indication that designers were trying to find ways around this problem in loco's designed and built in the 1940's, particularly in Europe.

Lindsay

Note: My firewall is playing up I may be off the air for some time as I cannot immediately attack the problem.

#7 User is offline   Lindsayts 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,849
  • Joined: 25-November 11
  • Gender:Male
  • Country:

Posted 02 June 2013 - 04:34 PM

steamer_ctn said,

"One thing that I am uncertain about is whether there is actually 4 steam applications per revolution, ie 2 forward and 2 return. This could increase the amount of steam used by a further factor of 2. Can anyone shed some light on this?"

In a single acting single cylinder steam engine, the inlet port opens once for every complete turn of the crankshaft. Steam locos use double acting cylinders, ie both sides of the piston are active. Therefore such a cylinder has two inlet port openings per turn of the crankshaft. So a loco with two cylinders will have 4 openings per turn, a 3 cylinder will have 6 openings per turn. A 4 cylinder will have 8. Note, for a four cylinder inlet openings may occur in pairs or all individually depending if a 90 degree or 135 degree crankshaft has been used.

Lindsay

#8 User is offline   Lindsayts 

  • Superintendant
  • Group: Status: Elite Member
  • Posts: 1,849
  • Joined: 25-November 11
  • Gender:Male
  • Country:

Posted 02 June 2013 - 07:07 PM

I have been looking at steamer_ctn contribution, the following should be of interest...

Peter said

"Steam_Amt = {cylinder volume} * {Cutoff Amount} * {Steam Density} -
I have assumed that the core principle for this formula is correct."

Note the assumption, this appears to be the same assumption the existing code makes. It is in fact not correct. It does not take into account the resistance the steam encounters getting from the steam pipe into the cylinder.

In the book "La Locomotive A Vapeur" by Chapelon on pages 169-173, it details a series of tests done on PRR K4s No 5399 before and after the loco was fitted with poppet valve gear. Amongst other things they increased the size of the steam chest within the valve gear and increased the size of the passage's from the steam chest into the cylinders. The indicator diagrams are quite different between the original piston valves and the modified cylinders. The modified one looking much like it would match the above formula. The indictated power difference is high, the modified one being 3851 ihp, the original arrangement 2388 ihp, ie the old only 62% of the new arrangement. The piston valve and passages apparently causing a 38% reduction in the volumne of steam reaching the cylinder. Note this reduction will not be constant with valve cuttoff and loco speed. Particularly at high cuttoffs and slow speed the restriction will nearly be no existent.

What is need is a port restriction factor that varies with cuttoff, being around 1 at high cuttoffs dropping to around 0.6 at very short cuttoffs. The obvious answer would be to make an interpolated look up table so it could be changed if someone for instance did a model of a loco with poppet valves.

The above forumla would then become...
Steam_Amt = {cylinder volume} * {Cutoff Amount} * {Steam Density} * {port restriction factor}

Note, such a modification would bring H220's steam consumption almost dead in line with reality.

For an initial trial the table for cutoff to port restriction factor could look like....

.75 = 1
.65 = 0.92
.55 = 0.83
.45 = 0.74
.35 = 0.65
.25 = 0.56
.15 = 0.47

And we see how it behaves.................

Lindsay

#9 User is offline   steamer_ctn 

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

Posted 03 June 2013 - 02:20 AM

 Lindsayts, on 02 June 2013 - 04:34 PM, said:

"One thing that I am uncertain about is whether there is actually 4 steam applications per revolution, ie 2 forward and 2 return. This could increase the amount of steam used by a further factor of 2. Can anyone shed some light on this?"

In a single acting single cylinder steam engine, the inlet port opens once for every complete turn of the crankshaft. Steam locos use double acting cylinders, ie both sides of the piston are active. Therefore such a cylinder has two inlet port openings per turn of the crankshaft. So a loco with two cylinders will have 4 openings per turn, a 3 cylinder will have 6 openings per turn. A 4 cylinder will have 8. Note, for a four cylinder inlet openings may occur in pairs or all individually depending if a 90 degree or 135 degree crankshaft has been used.



Thanks for confirming that

Page 1 of 1
  • 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