Mixed VTE and Turbine Ships

Started by Tanthalas, April 29, 2015, 06:12:00 AM

Previous topic - Next topic

Tanthalas

To the people wondering about turbine/VTE split in mixed propulsion.  What I have been doing to assure that the split was right for my Turbine SHP limit is making the "cruise speed" take whatever SHP was assigned to the VTEs since SS3 calls them "cruising engines", and having no more than 10K SHP over that.
"He either fears his fate too much,
Or his desserts are small,
Who dares not put it to the touch,
To win or lose it all!"

James Graham, 5th Earl of Montrose
1612 to 1650
Royalist General during the English Civil War

snip

Quote from: Tanthalas on April 29, 2015, 06:12:00 AM
To the people wondering about turbine/VTE split in mixed propulsion.  What I have been doing to assure that the split was right for my Turbine SHP limit is making the "cruise speed" take whatever SHP was assigned to the VTEs since SS3 calls them "cruising engines", and having no more than 10K SHP over that.

That sounds like a good rule for it. Of course designs with supper high cruise speed (say 15+ knts) might warrant a bit of scrutiny.
You smug-faced crowds with kindling eye
Who cheer when solider lads march by
Sneak home and pray that you'll never know
The hell where youth and laughter go.
-Siegfried Sassoon

Logi

It seems fine at first glance but I run into issues with that guideline in practice.

For example in a modified Tsukaba design (14000t), I require a cruise speed of 17 kn just to potential have more shp than an all-turbine design. I need 17kn cruise to produce 10,785 shp which would allow me more than the 20,000 shp total of an all-turbine design.

For a 14,000t vessel, which is heavy for the period, and such a high cruise speed requirement makes it unfeasible.

snip

The problem is, SS assumes that a Mixed powerplant is a 50/50 split. Unless the total SHP in question is under our turbine limits, this causes a problem with the SHP not being split 50/50 between the Turbines and VTEs. I don't want to outlaw mixed drives, but given what SS does with the weights I feel we have to have some sort of limit on it.
You smug-faced crowds with kindling eye
Who cheer when solider lads march by
Sneak home and pray that you'll never know
The hell where youth and laughter go.
-Siegfried Sassoon

Logi

Why not just have that mixed propulsion can't have more than twice the limit of SHP?

For a 4 shaft ship, max mixed would then be 40,000 shp (double of the 4x5000 Turbine shp limit)

snip

That could work to. In practice, I think we are going to see a minimal amount of ships that utalise mixed propulsion.
You smug-faced crowds with kindling eye
Who cheer when solider lads march by
Sneak home and pray that you'll never know
The hell where youth and laughter go.
-Siegfried Sassoon

The Rock Doctor

Quote from: Logi on April 29, 2015, 11:59:10 AM
Why not just have that mixed propulsion can't have more than twice the limit of SHP?

For a 4 shaft ship, max mixed would then be 40,000 shp (double of the 4x5000 Turbine shp limit)

Would SS not sim that as 2 x 10,000 shp VTE and 2 x 10,000 shp turbines?

Logi

I don't think SS makes a distinction between 2x10,000 shp turbine and 4x5000 shp turbines.

SS calculates power delivery via Holtrop-Mennen and uses an empirical formula on the total shp. There is no distinction between specific increments of breakup.

snip

Baring code evidence, I think working with the assumption that SS splits 50/50 between VTE and Turbine is the safest. Of course as long as we all keep to the same standard whatever we decide will be fine.
You smug-faced crowds with kindling eye
Who cheer when solider lads march by
Sneak home and pray that you'll never know
The hell where youth and laughter go.
-Siegfried Sassoon

The Rock Doctor

I'm kind of thinking that the appropriate course of action is to sim the ship thrice:

-A:  with 100% VTE (say, 40,000 hp)
-B:  with only the turbines' machinery (say, 5,000 hp per shaft on two shafts)
-C:  As B, but using VTE (again, 5,000 hp per shaft on two shafts)

Go to the SS report of A and apply a below-waterlines miscellaneous weight of [(B machinery weight) - (C machinery weight)].  This value should be negative, to reflect weight savings of having the turbines.

Logi

#10
Seeing the code is not a big deal, I've decompiled it several times. The function in question is this:

public void engineCalc()
    {
      this.engine = this.engineRecipSimple = this.engineRecipComplex = this.engineTurbine = 0.0f;
      this.engineCount = 0;
      if (this.engineArray[0])
      {
        this.engineRecipSimple = this.hull.dateEngine >= 1885 ? (this.hull.dateEngine >= 1950 ? 4.075f : (float) (2.45 + (double) (this.hull.dateEngine - 1885) * 0.025)) : (float) (1.2 + (double) (this.hull.dateEngine - 1860) * 0.05);
        ++this.engineCount;
      }
      if (this.engineArray[1])
      {
        this.engineRecipComplex = this.hull.dateEngine >= 1906 ? (this.hull.dateEngine >= 1911 ? (this.hull.dateEngine >= 1950 ? 8.5f : (float) (7.5 + (double) (this.hull.dateEngine - 1910) * 0.025)) : 3.5f + (float) (this.hull.dateEngine - 1906)) : (float) (1.2 + (double) (this.hull.dateEngine - 1860) * 0.05);
        ++this.engineCount;
      }
      if (this.engineArray[2] || this.fuelArray[3] || (this.fuelArray[2] || this.fuelArray[4]))
      {
        this.engineTurbine = this.hull.dateEngine >= 1898 ? (this.hull.dateEngine >= 1903 ? (this.hull.dateEngine >= 1910 ? (this.hull.dateEngine >= 1950 ? 19f : (float) (11.0 + (double) (this.hull.dateEngine - 1910) * 0.2)) : (float) (4 + (this.hull.dateEngine - 1903))) : (float) (1.0 + (double) (this.hull.dateEngine - 1898) * 0.5)) : (float) (1.2 + (double) (this.hull.dateEngine - 1860) * 0.05);
        ++this.engineCount;
      }
      this.engine = (float) (((double) this.engineRecipSimple + (double) this.engineRecipComplex + (double) this.engineTurbine) / (double) this.engineCount * (1.10000002384186 - (double) this.pctCoal / 1000.0));
      this.engine = this.hpMax / this.engine;
      if (this.hull.dateEngine < 1890)
        this.engine /= (float) (1.0 + (1890.0 - (double) this.hull.dateEngine) / 100.0);
      if (this.engine.ToString() == "NaN")
        this.engine = 0.0f;
      this.engineDispBox.Text = this.engine.ToString("n0");
      this.dispFactor = Math.Min(this.hull.displacement / (this.engine + this.guns.borneWeight * 8f + this.arm.weight + this.weapons.miscWeight), 10f);
      this.dispFactorBox.Text = this.dispFactor.ToString("n2");
      this.engineWeight = this.engine / 2f;
      if ((double) this.hull.displacement < 5000.0 && (double) this.hull.displacement >= 600.0 && (double) this.dispFactor < 1.0)
        this.engineWeight *= (float) Math.Pow((double) this.dispFactor, 1.0 - (double) this.hull.displacement / 5000.0);
      else if ((double) this.hull.displacement < 600.0 && (double) this.dispFactor < 1.0)
        this.engineWeight *= (float) Math.Pow((double) this.dispFactor, 0.88);
      this.engineWeightBox.Text = this.engineWeight.ToString("n0");
      this.pctEngineWeight = this.main.percentCalc(this.engineWeight, this.hull.displacement);
      double num = (double) this.hullWeightCalc();
      this.perf.costCalc();
      this.perf.roomHullCalc();
      this.perf.stabilityCalc();
    }


Specific this line:
this.engine = (float) (((double) this.engineRecipSimple + (double) this.engineRecipComplex + (double) this.engineTurbine) / (double) this.engineCount * (1.10000002384186 - (double) this.pctCoal / 1000.0));

Cleaned up that would read:
engine = (Recip_Simple + Recip_Complex + Turbine) / count * (1.1 - (percent_coal / 1000))

The engineArray[idx] data structure is just an array of Bools for the Radio buttons. The line that initializes it is:
this.engineArray[index] = this.engineCheckedList.GetItemChecked(index);


In other words, for a 40,000 shp ship with steam turbine & complex reciprocating engine, SS does the following:
1. Calculate weight modifier for ALL steam turbine engine.
2. Calculate weight modifier for ALL complex reciprocating engine engine.
3. Average the two modifiers.
4. Get engine weight by dividing total SHP by this modifier.

Logi

Here is the cleaned up code regarding the weight modifiers:

if Simple Recip:
if eng_year >= 1950:
c = 4.075
elif eng_year >= 1885:
c = (24.5 + eng_year - 1885) * 0.025
else
c = 1.2 + eng_year - 1860 * 0.05

recip_simple = c
++engineCount

if Complex Recip:
if eng_year >= 1950:
c = 8.5
elif eng_year >= 1911:
c = 7.5 + (eng_year - 1910) * 0.025
elif eng_year >= 1906:
c = 3.5 + (eng_year - 1906)
else:
c = (1.2 + eng_year - 1860) * 0.05

recip_complex = c
++engineCount;
     
if Turbine or fuelArray[3] or (fuelArray[2] or fuelArray[4]) :
if eng_year >= 1950
c = 19
elif eng_year >= 1910
c = 11 + (eng_year - 1910) * 0.2
elif eng_year >= 1903
c = 4 + (eng_year - 1903)
elif eng_year >= 1898
c = 1 + (eng_year - 1898) * 0.5
else:
c = 1.2 + (eng_year - 1860) * 0.5

turbine = c
++engineCount


The weight modifiers are not 50/50 so the distribution for SHP power amongst the engines is also not 50/50.

Tanthalas

to address the concerns given about "Super Cruise" I am keeping the range at these speeds really low, I set the speed first at a reasonable 10,000 @10 knots (more or less my fleet standard) then from there I lower it to match the changed cruise speed (keeping my fuel weight as close to the same as I can).  After I have done this, I add the Turbines (making sure to keep to the 5K shp limit), then again adjust the fuel weight to match my original number (range stays about the same within a few miles more or less).

As snip said I don't anticipate anyone building allot of ships like this, but it was something I could do to boost speed and still stay well within the spirit of the rules.  Ideally I would do this in 1903, but I don't have the tech ready so it will have to wait.
"He either fears his fate too much,
Or his desserts are small,
Who dares not put it to the touch,
To win or lose it all!"

James Graham, 5th Earl of Montrose
1612 to 1650
Royalist General during the English Civil War

Logi

For the engine year 1905, the modifiers from Complex Reciprocating and Turbines are 2.31 and 6 respectively.

An evenly mixed propulsion ship would have a modifier of 4.155, which is 79.87% more than an All-Complex Reciprocating ship and 44.4% less than an All-Turbine ship.
Since this modifier varies inversely with the actual engine weight (we get engine weight by shp / engine modifier) - the modifiers for Turbines, Mixed, and Reciprocating are respectively:

0.1667
0.2407
0.4329

It takes roughly 28% of the difference between Turbine and Reciprocating to go from Turbine to Mixed. Alternatively going from Reciprocating to Mixed is 78% of the difference.

Perhaps allow power up to 28% more than the SHP limit for 1905 mixed systems? That would mean:
6400 shp Mixed for 5000 shp tech. Total of 25,600 shp for 4 shafts.

The Rock Doctor

That could be a reasonable and simple approach.  Then tweak the number with progressive engine techs if somebody wants to stick with mxed machinery?