Jump to content

[WIP] Nert's Dev Thread - Current: various updates


Nertea

Recommended Posts

I've discovered that I don't particularly care about perfectionism in this respect so uh, as the kids these days say, whatevs. I did spend all that effort matching the model footprints to stock tanks so might as well use that.

What would you do then for default size? LH2 amount = total stock equivalent tank units* 5 (the approximate volume conversion)? That would mean for a J64 sized LH2 tank, there would be 48,000 LH2 (6400 total LFO)?

 

Link to comment
Share on other sites

1 hour ago, Nertea said:

What would you do then for default size? LH2 amount = total stock equivalent tank units* 5 (the approximate volume conversion)? That would mean for a J64 sized LH2 tank, there would be 48,000 LH2 (6400 total LFO)?

Based on your discussion thread regarding fuel tank capacities and ratios, the current fuel-switching patch uses the following formula:

LH2 amount = total stock equivalent tank units * 5.5 * LH2FudgeFactor

With an LH2FudgeFactor of 1.5, that is:

LH2 amount = total stock equivalent tank units * 8.25

Therefore, a J64-sized tank should hold 52800 LH2. The J64-equivalent ZBO tank currently holds 51300 LH2, so you can see the difference is pretty trivial.

You can use my spreadsheet for reference; equivalently-sized tanks are given the same names in column B (ZBO "125-1" is the same size as stock "125-1"). Total stock equivalent tank units are listed in column G, and the corresponding LH2 units are listed in column C.

afSRZky.jpg

Edited by Fraz86
Link to comment
Share on other sites

@Nertea

Inspired by your most recent post, I realized that there is no reason to assume that the intrinsic volume conversion factor is exactly 5.5 (vs 5.0 or whatever). This conversion factor can be viewed as an additional (previously hidden) variable, redundant with LH2FudgeFactor. Therefore, I have merged this factor and LH2FudgeFactor into a single variable named "LH2ConversionFactor," which is currently 8.25 (5.5 * 1.5).

I also changed the spreadsheet to overwrite the capacities of stack ZBO tanks to match their corresponding stock tanks. The values for radial ZBO tanks will need to be manually determined.

Lastly, I came up with a new set of parameters that I believe are quite appealing:

  • ZBO dryMassPerUnitLH2 = 0.0000625
  • Lifting tank dryMassPerUnitLH2 = 0.00003125
  • LH2ConversionFactor = 10 (up from 8.25)
  • LH2OUnitRatio = 15
  • mixOXProportion = 0.4

The resulting performance ratings are 79.8% for ZBO and 90.3% for lifting tanks.

There are several potential advantages here, particularly for atomic rockets. By allowing a bit more LH2 per volume (increasing the fudge factor) but also requiring a greater proportion of LH2 for cryo engines, we're able to hit the same performance targets vs LFO (-10% and -20%), while maintaining dry mass and volumetric ratios that should be more acceptable for atomic rockets. As an added bonus, the dry masses work out to be nice round numbers. I think this might be the one. Here's an updated spreadsheet and corresponding fuel-switch config:

https://www.dropbox.com/s/r3ks6d367umfb9x/Fuel%20swithcing.xlsx?dl=0

8U4Bo1F.jpg

// Lifting tanks
@PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[InterstellarFuelSwitch],!MODULE[ModuleEnginesFX],!MODULE[ModuleEngines],!MODULE[FSfuelSwitch]]:NEEDS[!modularFuelTanks&!RealFuels]
{
	%LH2ConversionFactor = 10 // <- EDIT HERE (units of LH2 that occupy a volume equivalent to one unit of LF or OX)
	%LH2OUnitRatio = 15 // <- EDIT HERE (LH2:OX unit ratio for LH2O configuration; should correspond to burn ratio of cryogenic engines)
	%mixOXProportion = 0.4 // <- EDIT HERE (proportion of tank volume containing OX; should approximately = 1 / [1 + [LH2OUnitRatio / LH2ConversionFactor]])
	%dryMassPerUnitLH2 = 0.00003125 // <- EDIT HERE (dry mass per unit LH2 capacity)
	
	%LF = #$RESOURCE[LiquidFuel]/maxAmount$
	%OX = #$RESOURCE[Oxidizer]/maxAmount$

	%totalCap = #$RESOURCE[LiquidFuel]/maxAmount$
	@totalCap += #$RESOURCE[Oxidizer]/maxAmount$

	%onlyLH2 = #$totalCap$
	@onlyLH2 *= #$LH2ConversionFactor$

	%mixOX = #$totalCap$
	@mixOX *= #$mixOXProportion$
	%mixLH2 = #$mixOX$
	@mixLH2 *= #$LH2OUnitRatio$

	// masses
	%massOffset = #$mass$
	%tempVar = #$totalCap$
	@tempVar *= 0.000625 // standard dry mass per units of LF/OX
	@massOffset -= #$tempVar$ // accounts for non-standard tank mass, which should remain constant across fuel configurations, e.g., extra mass for spaceplane tanks
	
	%onlyLH2mass = #$onlyLH2$
	@onlyLH2mass *= #$dryMassPerUnitLH2$
	@onlyLH2mass += #$massOffset$
	
	%mixLH2mass = #$mixOX$
	@mixLH2mass *= 0.000625
	@tempVar = #$mixLH2$
	@tempVar *= #$dryMassPerUnitLH2$
	@mixLH2mass += #$tempVar$
	@mixLH2mass += #$massOffset$
	
	!RESOURCE[LiquidFuel] {}
	!RESOURCE[Oxidizer] {}
	
	MODULE
	{
		name = InterstellarFuelSwitch

		volumeMultiplier = 1
		massMultiplier = 1

		resourceGui = LF/OX;LH2/OX;LF;OX;LH2
		resourceNames = LiquidFuel,Oxidizer;LqdHydrogen,Oxidizer;LiquidFuel;Oxidizer;LqdHydrogen

		resourceAmounts = #$../LF$,$../OX$;$../mixLH2$,$../mixOX$;$../totalCap$;$../totalCap$;$../onlyLH2$

		displayCurrentTankCost = true

		hasGUI = true
		showInfo = true

		availableInFlight = false
		availableInEditor = true

		basePartMass = 0
		tankMass = #$../mass$;$../mixLH2mass$;$../mass$;$../mass$;$../onlyLH2mass$
	}
	MODULE
	{
		name =  ModuleCryoTank
		FuelName = LqdHydrogen
		// in % per hr
		BoiloffRate = 0.025
	}
}

// ZBO tanks
@PART[*]:HAS[@RESOURCE[LqdHydrogen],!MODULE[InterstellarFuelSwitch],!MODULE[ModuleEnginesFX],!MODULE[ModuleEngines],!MODULE[FSfuelSwitch]]:NEEDS[!modularFuelTanks&!RealFuels]
{
	%LH2ConversionFactor = 10 // <- EDIT HERE (LH2 vs LF/OX capacity conversion; should be identical to LH2ConversionFactor for lifting tanks above)
	%LH2OUnitRatio = 15 // <- EDIT HERE (LH2:OX unit ratio; should be identical to LH2OUnitRatio for lifting tanks above)
	%mixOXProportion = 0.4 // <- EDIT HERE (proportion of tank volume containing OX; should be identical to mixOXProportion for lifting tanks above)
	%dryMassPerUnitLH2 = 0.0000625 // <- EDIT HERE (dry mass per unit LH2 capacity)
	
	%LH2 = #$RESOURCE[LqdHydrogen]/maxAmount$
	
	%OX = #$LH2$
	@OX /= #$LH2ConversionFactor$

	%mixOX = #$OX$
	@mixOX *= #$mixOXProportion$
	%mixLH2 = #$mixOX$
	@mixLH2 *= #$LH2OUnitRatio$

	// masses
	%onlyLH2mass = #$LH2$
	@onlyLH2mass *= #$dryMassPerUnitLH2$
	
	%onlyOXmass = #$OX$
	@onlyOXmass *= 0.000625

	%mixLH2mass = #$mixOX$
	@mixLH2mass *= 0.000625
	%tempVar = #$mixLH2$
	@tempVar *= #$dryMassPerUnitLH2$
	@mixLH2mass += #$tempVar$
	
	!RESOURCE[LqdHydrogen] {}
	
	MODULE
	{
		name = InterstellarFuelSwitch

		volumeMultiplier = 1
		massMultiplier = 1

		resourceGui = LH2;LH2/OX;OX
		resourceNames = LqdHydrogen;LqdHydrogen,Oxidizer;Oxidizer

		resourceAmounts = #$../LH2$;$../mixLH2$,$../mixOX$;$../OX$

		displayCurrentTankCost = true

		hasGUI = true
		showInfo = true

		availableInFlight = false
		availableInEditor = true

		basePartMass = 0
		tankMass = #$../onlyLH2mass$;$../mixLH2mass$;$../onlyOXmass$
	}
	MODULE
	{
		name =  ModuleCryoTank
		FuelName = LqdHydrogen
		BoiloffRate = 0.025
		CoolingCost = 0.25
	}
}

 

Edited by Fraz86
Link to comment
Share on other sites

Just an idea and I might be totally not understanding this but why LH2 tanks? This is near future stuff, maybe slush hydrogen is a better option? Or a later game alternative for denser H2 storage.

Edited by pilfit
Link to comment
Share on other sites

The list is pretty much my signature! :)

https://www.dropbox.com/s/by2red6a3lnkpbj/CryoStuff_X2.zip?dl=0

Here's a new test of cryostuff. Fixes/changes:

  • Converted all cryo engines to 15:1 fuel ratio
  • Fixed a number of bugs in boiloff module, including better UI, Ec usage tracking. Catchup is also enabled now
  • Added in WIP 1.25m nuclear engine for testing
  • Changes to the fuel switching patch.

My own thoughts - it's getting better. NTRs are still weird though. The really poor LH2 dry mass ratios are being quite annoying and I might need to rethink that. Try toggling the LH2/LANTR modes on them with the various tank types and see what I mean. It's weird when DV goes up when decreasing Isp (in LANTR mode), even though this makes sense when looking at fuel masses. 

Link to comment
Share on other sites

That is too obvious for me Nertea. I am getting old :huh:

btw,  just tried out the new LH2 mod... 2.5m drone core + HI-M-21 tank + Odin = 3100dV SSTO  (with Tunguska you reach 4500dV but not enough TWR to lift off).

 

Edited by Jimbodiah
Link to comment
Share on other sites

8 hours ago, Nertea said:

My own thoughts - it's getting better. NTRs are still weird though. The really poor LH2 dry mass ratios are being quite annoying and I might need to rethink that. Try toggling the LH2/LANTR modes on them with the various tank types and see what I mean. It's weird when DV goes up when decreasing Isp (in LANTR mode), even though this makes sense when looking at fuel masses. 

Keep in mind, the LH2O tank configuration holds ~3.5x the fuel mass of LH2-only, so you'll need extra LH2 tanks for a fair comparison. I just conducted a quick test with the following results:

  • Mk1-2 pod + 2x HI-M-10 in LH2/OX configuration (~12.8t total fuel mass) + Poseidon in LOxAugmented mode = 3178m/s Delta-V in vacuum
  • Mk1-2 pod + 7x HI-M-10 in LH2-only configuration (~13.1t total fuel mass) + Poseidon in LH2-only mode = 3514m/s Delta-V in vacuum

Thus, at least in this test case, the LH2-only mode has ~10.6% higher DV. For an analogous test case using lifting tanks, LH2-only has ~26.1% higher DV:

  • Mk1-2 pod + 2x X200-32 in LH2/OX configuration (~15.5t total fuel mass) + Poseidon in LOxAugmented mode = 3760m/s Delta-V in vacuum
  • Mk1-2 pod + 7x X200-32 in LH2-only configuration (~15.9t total fuel mass) + Poseidon in LH2-only mode = 4741m/s Delta-V in vacuum
Edited by Fraz86
Link to comment
Share on other sites

Yes, but if you increase the load, then the figures change a lot.

I have a 20ton 3.75m Orion CM/SM/LAS combination
2x Mondo 30 + Poseidon in LH2/Ox  2935dV  60.7ton total
4x Mondo-30 + 1x Mondo 15 + Poseidon in LH2   2565dV 60.1ton total    

 

This is the difference in size with the same 4000dV (vac). The LH/Ox is 13 tons lighter for the same dV, but over twice the length. Engines have the same thrust (±20kN), the LOx has 310isp and the LH2 has 410isp. As an LKO lifter the LH/Ox setup gets up to speed faster due to 13t less weight, meaning it has some dV left over on a 150x150 orbit, while the LF/Ox version is short 220dV due to the extra weight and slower acceleration.

LOx_vs_LH2.jpg

Edited by Jimbodiah
Link to comment
Share on other sites

43 minutes ago, Jimbodiah said:

Yes, but if you increase the load, then the figures change a lot.

I have a 20ton 3.75m Orion CM/SM/LAS combination
2x Mondo 30 + Poseidon in LH2/Ox  2935dV  60.7ton total
4x Mondo-30 + 1x Mondo 15 + Poseidon in LH2   2565dV 60.1ton total    

I think the discrepancy between our tests is that I held fuel mass constant whereas you held total craft mass constant. Your method is probably more relevant to gameplay. I'll do some revised testing later.

@Nertea I do wonder, what would be the harm in bringing ZBO tank dry mass closer to lifting tanks? Is there a clear reason why ZBO LH2O tanks need to have a full 10% worse performance relative to lifting tanks? Even a tiny difference would ensure that there's no compelling reason to use ZBO on lifting stages.

Edited by Fraz86
Link to comment
Share on other sites

I think that is to "add" the cooling/insulating aspect to balance it a bit.

Despite having the same dV, the same thrust LH/Ox engine has less mass thus losing less dV to gravity in the lifting stage than LF/Ox. The downside to LH is the tanks being twice (or more) the volume. The poseidon is a quirky engine as it can switch between LH2/LH2Ox, and maybe with lower payloads the LH2 engines will shine even more.

I can only conclude that LH is a more efficient method for lifters (10% dV benefit as far as I can tell) and orbital engines (10-25% depending on your payload/engine). It has a lot more volume as a trade-off (and boil-off), but a mentionable weight advantage. So less weight for the lifter, and less weight for the orbiter you are sending up, meaning even lower required volume for the lifter as with LF/Ox setups. Basically less fuel (mass) used, but a 3.75m tank now turns into a 5m tank.

Edited by Jimbodiah
Link to comment
Share on other sites

On 1/11/2016 at 8:13 AM, Nertea said:

I also finished up the modeling, unwrapping and blocking out of the texture for the 1.25m trimodal NTR. I'm pretty pleased with it as the plumbing is totally rad. 

I just gave X2 a whirl, and the Neptune plumbing is indeed rad. However, from certain camera angles it... disappears. Never seen anything like it. 

Edit: They done gone and changed how images work again:huh:

0vA2jez.png?1

Edited by Starbuckminsterfullerton
Link to comment
Share on other sites

1 hour ago, Jimbodiah said:

I think that is to "add" the cooling/insulating aspect to balance it a bit.

I understand the principle of it, but I'm not sure that the current degree of disadvantage for ZBO tanks is necessary or desirable for good balance. The fact is, there's really no advantage to using ZBO tanks on lifting stages anyway - the losses to boiloff during ascent would be basically zero. Thus, any disadvantage at all for ZBO tanks is enough to make lifting tanks the clear choice for lifting stages. Also keep in mind, ZBOs already have several other disadvantages, including EC requirement, higher cost, and lower maxTemp & crashTolerance. I'm not suggesting that we eliminate the dry mass disadvantage for ZBOs altogether; I'm simply asserting that a small token difference would be sufficient.

@Nertea This evening I plan to revise my performance vs LFO calculation to keep total mass fixed instead of fuel mass. That will give us lower performance numbers, allowing us to justify improved dry mass ratios. With these anticipated improvements to dry mass, plus possibly bringing ZBO closer to lifting tanks, plus a possible modest buff to ISP of LH2 mode for atomic rockets, I think we can arrive at desired behavior without requiring anything drastic.

Edited by Fraz86
Link to comment
Share on other sites

Something in the latest CryoStuff has broken Jumbo 64 tanks for me. Physics of these tanks go nuts. If you put a Jumbo tank on the launchpad, it would constantly "move" without moving. And with Color Coded Canisters mod is installed, all model variants of the tank are loaded simultaneously, joints break.

Reverting to X1 fixes the issue. It has nothing to do with InterstellarFuelSwitch bundled inside, I've checked it first by taking from another mod.

I'll try to pinpoint the exact dir or file of the pack...

It's in CryoTanks...

Surprisingly, it is SimpleBoiloff.dll. When using this file from X1, everything is fine.

Edited by Psycho_zs
Link to comment
Share on other sites

6 hours ago, Fraz86 said:

 I do wonder, what would be the harm in bringing ZBO tank dry mass closer to lifting tanks? Is there a clear reason why ZBO LH2O tanks need to have a full 10% worse performance relative to lifting tanks? Even a tiny difference would ensure that there's no compelling reason to use ZBO on lifting stages.

Yeh. They both probably need to be closer in ratios to stock tanks. Maybe 5% and 10% penalties or even lower.

4 hours ago, Psycho_zs said:

Something in the latest CryoStuff has broken Jumbo 64 tanks for me. Physics of these tanks go nuts. If you put a Jumbo tank on the launchpad, it would constantly "move" without moving. And with Color Coded Canisters mod is installed, all model variants of the tank are loaded simultaneously, joints break.

I think I fixed it, but it's weird that it wasn't showing up in the old version.

Link to comment
Share on other sites

Alright, I changed "performance vs LFO" to use fixed total mass rather than fixed fuel mass, which is a better metric, and results in slightly lower performance values. I also added a new column to calculate atomic rocket's relative Delta-V for LH2-mode vs LH2O-mode (column G), with accompanying parameters including "LH2 ISP ratio," which represents LH2-mode ISP : LH2O-mode ISP. Here's what it looks like for our current values, using the ISP ratio of the Poseidon:

4YvFNA4.jpg

As you can see, with the mass parameters I chose, LH2-only mode is 14.4% worse than LH2O-mode with ZBO tanks, but 9.6% better than LH2O-mode with lifting tanks. For a potential improvement, I suggest the following:

PIoOU0m.jpg

ZBO dryMassPerUnitLH2 is decreased to 0.00003125, lifting tank dryMassPerUnitLH2 is decreased to 0.000025, and LH2 ISP ratio is slightly increased to 1.5. With these changes, LH2-only mode has a clearer advantage for both ZBO and lifting tanks; 13.8% and 21.5%, respectively. Also, the difference in Delta-V of atomic rockets with ZBO vs lifting tanks is much less dramatic (7.7% gap, down from 24%), which I think is desirable, as otherwise any parameters that make atomic rockets useful with ZBOs make them overpowered with lifting tanks.

Performance vs LFO is 92.0% for lifting tanks. If we also consider the performance impact of the greater tank volume required, I imagine that the aggregate effect is still at least 10% worse the LFO. ZBO tank performance vs LFO is 89.3%, just 2.7% below lifting tanks, which I think is perfectly adequate for the reasons outlined in my previous post - there's no good reason to use ZBOs on lifting stages anyway.

Here's the new excel file: https://www.dropbox.com/s/r3ks6d367umfb9x/Fuel%20swithcing.xlsx?dl=0

Edited by Fraz86
Link to comment
Share on other sites

@Fraz86

From my perspective a substantial penalty for ZBO tanks makes sense since it allows to build more interesting gameplay. For example just-in-time ISRU production of fuel or storing LOX/LH2 on orbital stations as water (then all those fancy heat radiators and big panels on space stations finally make sense since it takes quite a lot of energy or heat dissipation to convert lh2/lox into water and other way round ;)) I'm thinking here about a gameplay without stock ISRU since it's imho too op (should be able to produce only oxidizer from ore and at much slower pace).

Edited by riocrokite
Link to comment
Share on other sites

Right now I have zero boil-off if cooling is used, would it not be more realistic to have a very small boil-off even though it is being cooled? Else there is no real disadvantage to using LH2 in space as you don't lose any anyway. I need about 12Ec/s to keep a Mondo-60 cooled, which is not much, but I would expect to still keep losing some LH2.

Also, might be WIP related on the nukes, but they show up all white sometimes, when I restart the game it might be another engine or none at all. And there are no FX for the Liberator.

Edited by Jimbodiah
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...