Jump to content

Fraz86

Members
  • Posts

    462
  • Joined

  • Last visited

Posts posted by Fraz86

  1. 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

  2. 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.

  3. 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.

  4. 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
  5. @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
    	}
    }

     

  6. 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

  7. @Nertea Given that we're conducting an exhaustive overhaul, I would again like to advocate for conforming CryoTank volumes to match the volumes of their corresponding stock tanks. This would hold several significant advantages:

    • Side-by-side comparison of ZBO vs lifting tank characteristics would be much easier and more transparent for players.
    • Volume relationships between tanks would be more intuitive and amenable to mental math (2x length = 2x volume, 2x diameter = 4x volume).
    • CryoTank volumes would be more in-line with players' expectations based on their experiences with stock tanks.
    • Values for fuel units and masses would be more rounded (terminating decimals with only a few significant digits) across all fuel configurations, making these numbers more stock-alike and more readable (especially if we also round off dryMassPerUnitLH2, e.g., to 0.000035 and 0.00007).
    • With volume-matched stock tanks as a point of reference, it will be easier to set appropriate costs for CryoTanks (costs are otherwise difficult to set in a consistent fashion, as the costs of stock tanks don't obey any specific formula).
    • The current volumes of CryoTanks are already pretty close to their stock counterparts, so this change would not represent a huge deviation from your model-based volumes.
  8. 50 minutes ago, blowfish said:

    You can actually modify the loss rates so that you loose mass at the same rate as with pure LH2, but maintain the correct ratio of resources.  The calculation looks a little odd but it works.

    You'll have to elaborate. I understand that we could make LH2 and OX together lose the same amount of mass that is currently lost from LH2 alone, at a given point in time. But the loss rate needs to be calculated based on the amount of LH2 remaining in the tank. When all of the mass being lost is LH2 (as it is currently), the amount of remaining LH2 drops more rapidly, and thus the rate of loss also decreases more rapidly. However, in your model, most of the mass being lost would be OX. The total mass being lost at a given point in time would be the same, but only a small fraction of that mass would be LH2. Thus, the amount of remaining LH2 would drop more slowly, and the rate of loss would therefore remain higher for longer (because it's based on remaining LH2), resulting in a greater total loss over time for a given starting LH2O mass.

    EDIT: Whoops, didn't see your edit.

  9. 23 hours ago, blowfish said:

    I had a thought regarding boiloff in mixed tanks.  For LH2OX tanks, the LH2 will boil off while the Oxidizer will not.  This leaves you with either (1) Extra Oxidizer when your LH2 runs dry, the exact amount depending on your flight time/burn characteristics or (2) A painstaking process of calibrating the amount of fuel, either by adding LH2 tankage or removing Oxidizer from the tanks until you get the right amount.

    The solution I'm proposing is to calculate the boiloff rate based on only the cryogenic resources, but then proportionally distribute that boil off to all resources in the tank so that the ratio of remaining resources stays the same.  I think this is the sort of abstraction that makes sense in KSP - it retains the boiloff mechanic while removing the annoying details of exactly how much of each resource you need.

    That's an interesting idea. It simplifies things for the player, and it might not be exploitable or problematic if calculated correctly. Basically, each "tick," the amount of mass to be lost would be calculated based solely on the remaining LH2 in the tank, and then a combination of LH2 and OX totaling said amount (and with a ratio equal to the tank's contents) would be removed.

    It should be noted that this would change the curve of boiloff, because the mass of LH2 would drop off less quickly (because OX is being lost in its place), and thus - due to the nature of exponential decay - the total mass loss rate would remain higher for longer. However, as things are now, a much greater mass of LH2 is required in the first place, and my intuition is that these two factors basically cancel each other out, but I haven't actually done the math yet. The other major consideration would be ISRU - this change might become undesirable if Nertea was planning for LH2 ISRU to be significantly different from OX.

    22 hours ago, Psycho_zs said:

    IRL reference for LH2OX ratios:

    https://forum.nasaspaceflight.com/index.php?topic=9806.0

    http://www.astronautix.com/props/loxlh2.htm

    6:1 by mass is preferred as the most efficient. I hope, we wouldn't wander too far away.

    The current unit ratio of 1:10 gives a mass ratio of 7.1:1. A unit ratio of 1:15 would give a mass ratio of 4.7:1. I'd say anything in that range is reasonably close to reality.

     

    @Nertea I like the following:

    • ZBO massPerUnitLH2 = 0.00007085 (equal to LH2 density)
    • Lifting tank massPerUnitLH2 = 0.000035425 (1/2 LH2 density)
    • LH2FudgeFactor = 1.5 (same as before)
    • LH2:OX ratio = 12.5 (up from 10)
    • mixOXProportion = 0.4 (down from 0.45; necessary due to increased LH2:OX ratio)

    Performance vs LFO is 90.1% for lifting tanks and 79.9% for ZBO. It should be noted that the ZBO fuel:dry mass ratio of 1:1 is still quite bad, and atomic rockets will need to be buffed. Also, higher LH2:OX ratio means higher tank volumes, so that should be kept in mind when balancing as well.

    Here's a cleaned up fuel-switch config that adds unitsLH2PerUnitOX, removes massOffset for ZBO tanks (dry mass ratios will be uniform across tank sizes), removes the cost calculations we weren't using, and re-organizes a few other things:

    // Lifting tanks
    @PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[InterstellarFuelSwitch],!MODULE[ModuleEnginesFX],!MODULE[ModuleEngines],!MODULE[FSfuelSwitch]]:NEEDS[!modularFuelTanks&!RealFuels]
    {
    	%LH2FudgeFactor = 1.5 // <- EDIT HERE (effectively multiplies LH2 density by this number)
    	%unitsLH2PerUnitOX = 12.5 // <- EDIT HERE (LH2:OX unit ratio; should correspond to usage of cryogenic engines)
    	%mixOXProportion = 0.4 // <- EDIT HERE (proportion of tank volume containing OX; should approximately = 5.5 / [5.5 + [unitsLH2PerUnitOX / LH2FudgeFactor]])
    	%dryMassPerUnitLH2 = 0.000035425 // <- 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 *= 5.5
    	@onlyLH2 *= #$LH2FudgeFactor$
    
    	%mixOX = #$totalCap$
    	@mixOX *= #$mixOXProportion$
    	%mixLH2 = #$mixOX$
    	@mixLH2 *= #$unitsLH2PerUnitOX$
    
    	// 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]
    {
    	%LH2FudgeFactor = 1.5 // <- EDIT HERE (effectively multiplies LH2 density by this number; should be identical to LH2FudgeFactor for lifting tanks above)
    	%unitsLH2PerUnitOX = 12.5 // <- EDIT HERE (LH2:OX unit ratio; should be identical to unitsLH2PerUnitOX 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.00007085 // <- EDIT HERE (dry mass per unit LH2 capacity)
    	
    	%LH2 = #$RESOURCE[LqdHydrogen]/maxAmount$
    	
    	%OX = #$LH2$
    	@OX /= #$LH2FudgeFactor$
    	@OX /= 5.5
    
    	%mixOX = #$OX$
    	@mixOX *= #$mixOXProportion$
    	%mixLH2 = #$mixOX$
    	@mixLH2 *= #$unitsLH2PerUnitOX$
    
    	// 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
    	}
    }

     

  10. @Nertea I've developed a new-and-improved spreadsheet, now with modifiable LH2:OX ratio and auto-calculation of performance vs LFO (pay no attention to the hilariously inelegant formula I used to derive this value). Keep in mind, I don't have a good way to account for the performance impact of higher drag created by LH2O's larger tank volume, so these numbers will overestimate relative performance in atmosphere. At this point I really would encourage you to play around with the input fields (highlighted in yellow) to get an idea of what feels right to you. I'd be happy to draft a new fuel-switching config once we decide on some values. Let me know if there's anything else I can do to help.

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

    Edit: When modifying LH2FudgeFactor or LH2:OX ratio, be sure to adjust mixOXProportion such that it is approximately equal to the predicted value listed to its right.

    Edit 2: Additional data at the bottom of the spreadsheet.

    afSRZky.jpg

  11. On 1/10/2016 at 11:43 AM, Nertea said:

    @Fraz86, maybe let me try another approach to communicate what I mean:

    In a hypothetical scenario with an LFO engine and a LH2O with identical Isp, with the same fuel mass, I want the LH2O setup to perform 10% worse with lifting tanks. How do I achieve that?

    The impact of dry mass on performance varies substantially depending on the specific characteristics of the craft, so it's difficult to give a generalized answer. That said, I played around with a Delta-V calculator and came up with the following numbers:

    A craft with 4t LFO, 0.5t tank dry mass, 1.5t additional mass (engine + payload), and 300 ISP would have 3232m/s Delta-V. A craft with 10% worse performance would have 2909m/s Delta-V, which can be achieved if an extra 0.37t of dry mass is added to the aforementioned craft. In order for 4t LH2O to have a corresponding dry mass of 0.87t (i.e., 0.5t + 0.37t), massPerUnitLH2 needs to be 0.00006.

    If you want ZBO tanks to have 20-30% worse performance, their massPerUnitLH2 needs to be at least 0.00012. As a point of reference, at a massPerUnitLH2 of 0.00007085, dry mass is equal to fuel mass.

    -----------------------------------------------------------------------

    Edit for new scenario:

    For a lifter, results are slightly less severe. A craft with 80t LFO, 10t tank dry mass, 10t additional mass (engines + payload), and 285 ISP would have 4498m/s Delta-V. A craft with 10% worse performance would have 4048m/s Delta-V, which can be achieved if an extra 4.6t of dry mass is added to the aforementioned craft. In order for 80t LH2O to have a corresponding dry mass of 14.6t (i.e., 10t + 4.6t), massPerUnitLH2 needs to be 0.00004. ZBO needs at least 0.00008.

    -----------------------------------------------------------------------

    Edit for general commentary:

    The basic issue is that LH2O tanks carry a relatively low mass of LH2 - only 12.4% of the tanks' total fuel mass. The other 87.6% of the fuel mass (oxidizer) has a known dry mass ratio of 8:1. Thus, in order for the small mass of LH2 to have a 10-30% impact on the performance of the craft as a whole, it needs to have an absurdly terrible dry mass ratio. For atomic rockets, 100% of the fuel mass is LH2, so the impact will be much more dramatic than 10-30%. As I see it, there are a few solutions:

    • Proceed with terrible dry mass ratios for LH2 (e.g., 0.00004-0.00006 for lifting tanks and 0.00008-0.00012 for ZBO). Buff atomic rockets accordingly (will require substantial buff).
    • Increase LH2:OX ratio for hydrolox engines and LH2O tanks (e.g., to 15:1). A larger proportion of LH2 would make it possible to hit the desired performance targets with less severe dry mass ratios.
    • Bring the performance targets closer to LFO. Performing 5-10% below LFO rather than 10-30% would require much less severe dry mass ratios.
  12. 7 hours ago, Nertea said:

    By 10% I mean that if a LFO tanks has for example 10t of fuel and 1t of dry mass, a LH2O tank might have something like 1.1t dry mass.

    Based on current volumetric ratios, a tank that holds 10t of LFO will only hold 5.14t of LH2O, of which 4.5t is OX and 0.64t is LH2. The 4.5t OX has a corresponding dry mass of 0.56t (based on the established dry mass ratio of 8:1 for stock LFO & LF tanks). Therefore, in order for the tank to have a total dry mass of 1.1t, the 0.64t of LH2 needs to have a corresponding dry mass of 0.54t, which is a lot. Is that what you had in mind?

    Edit:

    In fact, it's worse than the above. An LFO tank with 10t of fuel would actually have 1.25t of dry mass. If you want the LH2O configuration to have 10% greater mass, that would be 1.375t. Therefore, the 0.64t of LH2 would need to have a corresponding dry mass 0.815t.

    Edit 2:

    If you do indeed want dry mass ratios as described above, massPerUnitLH2 needs to be around 0.00009 for stock tanks and 0.00011 for ZBO. Also, massPerUnitOX should be set to 0.000625 to match stock tanks (the OX portion of LH2O ZBO tanks doesn't require refrigeration, and therefore ought to have the same mass ratio as non-ZBO tanks). Here's my excel sheet if you'd like to play with the numbers:

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

    6tR6kh6.jpg

    Edit 3: Made the spreadsheet more readable.

    Quote

    I'm pretty happy with the Lh2 volumetric ratio right now. I don't see much need in changing it with the proposed changes to dry mass.

    And the electrical requirements should probably not be enough to add a huge amount of dry mass. Just some

    Fair enough!

  13. 1 hour ago, Nertea said:

    Yeah that's rather a bug. It should be currently 0.25 EC/s per 1000 u of tank capacity, so it's not being applied properly. a "goal" for this is that the largest 3.75m ZBO tank should need about 10 Ec/s for refrigeration. That probably translates to an effective rate of 0.1 EC/s/1000u.

    Ah, I see, that sounds good!

    Quote

    I do. I thought I had added them (at least I changed the dry mass in the patch, I thought). It should be pointed out that adding EC usage to ZBO tanks does effectively increase dry mass as well.

    Huh, I'm looking at the fuel switch patch right now, and it looks identical to the one from CryoEngines v0.1.11 (except for the addition of ModuleCryoTank).

    Quote

    In my view, there should be a small penalty for LH2 in general for lifer tanks (maybe 10% more dry mass than LFO), and maybe a 20-30% for ZBO tanks.

    To clarify: you're talking about the LH2/OX configuration relative to LFO? And when you say 10% more dry mass, do you mean 10% more dry mass relative to fuel mass, or just straight up 10% more dry mass? If it's the latter, that will require an abysmal dry mass ratio for LH2 - the fuel mass of the LH2/OX configuration will be significantly less than LFO, and most of the fuel mass will be OX, so ending up with higher dry mass than LFO would require a horrendous ratio for LH2 - about 0.787 kg LH2 per kg dry mass, to be specific. Also, we should probably figure out LH2FudgeFactor/mixOXProportion before deciding on specific dry mass ratio numbers. Thoughts?

    Quote

    It should be pointed out that adding EC usage to ZBO tanks does effectively increase dry mass as well. 

    Good point. If the EC requirements are high enough, perhaps it's not even worth the potential non-transparency of giving them higher dry mass than atmospheric tanks? You could give them higher cost, lower maxTemp, and lower crashTolerance to compensate?

  14. @Nertea Another note:

    In some situations, it may be important to have a manual on/off toggle for refrigeration on ZBO tanks. For example, a Duna ascent vehicle with cryo engines and ZBO tanks probably won't have enough batteries to keep the tanks powered through Duna's 9 hour nights. It would be desirable to turn off refrigeration at night so the craft doesn't run out of power, and the fuel loss to boiloff would be trivial.

  15. 7 hours ago, Captain Sierra said:

    Re EC: Oh dear. I know this crowd of people. We love complexity and if you give us an inch, we'll take a mile. Give us EC usage and before you know it, people will be asking for full thermal sim. @Nertea you're the one who gets to draw the line on how much feature bloat is acceptable feature bloat.

    I am absolutely not asking for a thermal sim. I think the complexity level is pretty much perfect right where it is. The current implementation is consistent with the middle complexity option from my original boiloff suggestions, which was my personal favorite of the three, so I'm quite happy with it.

    EC usage scaling with tank size is really just a matter of consistency and intuitive game mechanics. Consider the following:

    • In vanilla KSP, one large tank has identical properties to two half-size tanks, except for modest cost savings. Identical EC consumption for all LH2 tanks (regardless of size) adds a new consideration: larger tanks are much more EC efficient. Thus, non-scaling EC consumption actually increases complexity, because it incentivizes the consolidation of a craft's LH2 to the fewest number of tanks possible - a design consideration not present in vanilla KSP - in order to minimize EC consumption. If EC consumption is proportional to tank size, players can select whatever set of tanks they want (e.g., multiple smaller tanks instead of one big tank) without incurring any disadvantage beyond slightly higher cost, just like vanilla KSP.
    • EC consumption for LH2 tanks represents active refrigeration, just like the EC consumption of radiators. The EC consumption of radiators scales with their size.
    • It's common sense that refrigerating 10000L of LH2 should require more electricity than 100L, and players will intuitively expect this to be the case.
    Quote

    Boiloff rate: Based on the data you displayed in that thread Fraz, I concluded that an arguably ideal rate to make Duna one way sufficiently awkward and also difficult was 0.065%. That, however was based on when the model was linear rather than exponential decay. With the exponential model it could go as high as 0.1% to be reasonable. I would definitely advise targeting 0.08% currently.

    The data I displayed in that chart was for exponential decay, not linear. It's difficult to make an exact recommendation regarding the final boiloff rate until we know how large the dry mass ratio advantage of atmospheric tanks will be, but - as stated in my previous post - I agree that the rate should be at least doubled (0.05%). Perhaps as much as quadrupled (0.1%), as you said.

  16. @Nertea A few quick notes:

    • The basic mechanics of boiloff appear to work as expected. Fuel loss proceeds exactly as predicted for exponential decay with a rate of 0.025% per hour.
    • When transitioning into or out of 10000x or 100000x time warp, ZBO tanks often lose a little fuel despite more than adequate solar panels and batteries.
    • All ZBO tanks have the same EC requirement (0.25 EC/s). It seems like this requirement ought to scale with the size of the tank.
    • As noted in my previous post, 0.025% loss per hour is probably too low to make round trips to Duna using LH2/OX truly awkward. A 7% increase in required fuel mass isn't terribly significant, and thus LH2/OX engines with atmospheric tanks will likely be superior to LF/OX for some Duna missions. Depending on the mass ratio advantage of atmospheric LH2/OX tanks, they might also be superior to ZBO tanks for some Duna missions. I'm afraid these considerations might be confusing/non-transparent to players. I believe the boiloff rate should be at least doubled, in order to make atmospheric more clearly undesirable for interplanetary missions.
    • It looks like there haven't yet been any changes to LH2 fudge factor or dry mass for atmospheric or ZBO tanks. Do you have some targets in mind?
    • The Poseidon Atomic Rocket's description mentions a built-in generator; looks like that hasn't been implemented yet?
  17. This isn't about self control - it's about balance, immersion, game mechanics that follow logically expected behavior, and the sense of quality that comes with attention to detail.

    I originally discovered this issue when I deflated a hab after forgetting that I had Kerbals inside. Later, I was trying to figure out where my Kerbals were, and found all 4 of them inside the deflated hab. This was immersion-breaking for me. The realization that inflating these modules is "just for looks" was quite disappointing. And the fact that a deflated hab turns out to be outright superior to a Hitchhiker for transporting Kerbals is obviously not an intended use of the mod. I'm not saying it's a huge issue, but it certainly is an issue, and for some users (like me) this kind of thing is a significant turn off. RoverDude said he already has the code and it will be easy to sort out, so why not fix it?

  18. 14 minutes ago, RoverDude said:

    There's a bit of a far cry from an OP engine vs. a part with crew capacity (That you will hardly ever use if you're using the mod right).  Easy enough to sort as I have the code elsewhere, but has been fairly low on the priority list as it's not breaking.

    I don't mean to imply that they're of equivalent severity. I'm merely attempting to illustrate that "don't use it that way" isn't really a helpful answer when addressing issues of balance and exploitability.

  19. 2 hours ago, goldenpsp said:

    You could just not put people in them.

    I could also install the most blatantly overpowered of mods and promise myself not to use them in a "cheaty" manner, but I don't want to, because I'd rather just use mods that are well balanced and don't require me to impose imaginary rules regarding how I play the game.

  20. I would love to use MKS-L, but one issue in particular precludes my enjoyment the mod:

    Inflatable modules are fully crew-able and fully functional (e.g., agroponics can be activated) even when uninflated. There is no practical reason to actually inflate the modules; only for appearances. For me, the result is unbalanced and immersion-breaking. Why use a Hitchhiker when a Scout Hab can carry the same number of Kerbals in a fraction the space (in fact, the uninflated module has less volume than the 4 Kerbals it can carry), less than 1/3 the mass, plus it even comes with 2.5x greater crashTolerance?! Other mods with deployable parts (Porkjet's Habitat Pack, Nils' Kerbal Planetary Base Systems) made their modules useless when undeployed; I would be very happy if MKS-L did the same.

    Edit: This complaint, of course, is in no way meant to disparage the otherwise excellent work RoverDude has done on this mod.

  21. 4 hours ago, Captain Sierra said:

    One possible solution to this to equalize this may be to actually switch cryo engines to using actual LOX instead of stock oxidizer and adding the associated boiloff to that component too. Now ... this begins to stray away from stock in the interest of CryoEngines -AOYUNEM compatibility, so thats something Nert should weigh in on.

    I think it's perfectly reasonable to assume that stock oxidizer is LOX, and adding even more fuel types should probably be avoided unless truly warranted. I don't think it's important to "equalize" the effects of boiloff on cryo engines versus AOYUNEM. Practically, there isn't really much difference between "hugely impractical" (return from Duna with AOYUNEM and atmospheric tanks) versus "not hugely impractical, but clearly inferior to alternatives" (return from Duna with cryo engines and atmospheric tanks). There's no logical reason to use either in actual gameplay, so the distinction is academic.

  22. On 12/3/2015 at 5:58 PM, Papa_Joe said:

    On second thought, I'm thinking the tweakable feature should be disabled as well by default... I will correct that and issue a dot release

    I'm looking forward to re-installing the mod once this problem has been fixed! In the meantime, I've been missing CLS, so I was wondering if there might be an archived copy of version 1.1.3.1 available somewhere?

  23. @Jimbodiah The Chelyabinsk is currently (without boiloff) an excellent engine for many Duna mission profiles. Compared to its LF/OX analogue (the Terrier), the Chelyabinsk has nearly the same thrust (55 vs 60), a bit more mass (0.8 vs 0.5), and higher cost (1920 vs 390), but substantially better ISP (455 vs 345). For many Duna missions, the fuel savings with the Chelyabinsk will easily justify its downsides. Nukes, in some cases, may be overkill due to their dramatically higher mass and cost. Thus, if we don't want LH2/OX engines to be ideal for these missions, we need to make sure that boiloff is suitably problematic.

    Hypothetically, we could just set boiloff at a rate that makes it practically impossible to use these tanks outside the Kerbin SOI, which was my original thought (back when I suggested 0.1% loss per minute). That would keep things simple, but perhaps it's a bit boring, and it might annoy players by forcing them to make transfer burns immediately after launch (players might want a few hours or days to rendezvous with another ship section, dock at a station to pick up crew, or whatever else). Nertea asked for a rate that would "put a serious dent" in the fuel if taken to Duna, so I set about calculating what that might be.

  24. 55 minutes ago, RoverDude said:

    Habs will be last, but must coincide with MKS, Karibou, and MKS-Lite releases.

    Any big changes in the planned implementation of habs, or will it be pretty much the same as what you outlined a few months ago?

    Also, thanks for the update!

×
×
  • Create New...