Jump to content

[1.8+] Real Fuels


NathanKell

Recommended Posts

Just a heads up, many of the parts now contain a small fuel tank for LiquidFuel (e.g. nacelleBody, radialEngineBosy, some cockpits), but this is not reflected in the overrides in RealFuels.

I did a quick thingie and the results are in. This is how I got that list, just in case it's missing something.

find . -name '*.cfg' -exec awk '/LiquidFuel/{ln1=NR;line1=$0} /amount/{ln2=NR;line2=$0} END{if(ln1&&ln2&&ln1 <ln2){print FILENAME, "\n", line1, "\n", line2}}' {} \;|sprunge

Also, doesn't appear Mk3 parts are updated. Made my self an MM config for all of these, but, you know...

Thanks for the speedy update during the holidays, by the way.

Link to comment
Share on other sites

Is there a way to make an engine that would support more than one fuel configuration at a time?

Like the first run on the main launch vehicle fuel mixture as a booster stage and all subsequent ones on hypergolic fuel for maneuvers?

Link to comment
Share on other sites

Is there a way to make an engine that would support more than one fuel configuration at a time?

Like the first run on the main launch vehicle fuel mixture as a booster stage and all subsequent ones on hypergolic fuel for maneuvers?

The trimodal NTR allows you to switch between H2 and hydrolox in flight. So it should be possible. Though you'd have to cook up the config file yourself.

Link to comment
Share on other sites

There's a long thread here, but perhaps someone can point me toward the rationale for setting the tank volumes as they are?

e.g. Most of the rocket fuel tank volumes seem to be merely multiplied by 5 to yield the realfuels volume. However the volume of spaceplane parts and adaptors are variable from 8.33 to 13.3. It doesn't seem to be related to crash strength or structure, part scaling, and I can't accurately calculate part volume, so I'm not sure why these values exist.

Anyway, a whole bunch of new tanks need to be added, and I'd be happy to help, but I just need info. Here's the incomplete chart I generated by parsing the stock files and comparing to the provided module manager changes:


mono O2 liquid volume crash multi
"nacelleBody" 40
"radialEngineBody" 40

"adapterMk3-Size2Slant" 1125 1375
"adapterMk3-Size2" 1125 1375
"adapterSize2-Size1Slant" 360 440
"adapterSize3-Mk3" 1125 1375
"adapterSize2-Mk2" 360 440
"adapterSize2-Size1" 360 440
"adapterMk3-Mk2" 900 1100

"fuelTank1-2" 1440 1760 16000 6 x5
"miniFuelTank" 5.735 7 62.5 6 x4.91
"fuelTankSmallFlat" 45 55 500 6 x5
"fuelTankSmall" 90 110 1000 6 x5
"fuelTank_long" 360 440 4000 6 x5
"fuelTank4-2" 360 440 4000 6 x5
"toroidalFuelTank" 10 12.2 112.5 6 x5.07
"fuelTank" 180 220 2000 x5
"fuelTank3-2" 2880 3520 32000 x5
"fuelTank2-2" 720 880 8000 x5

"MK1Fuselage" 150 1900 20 x12.67
"mk3Fuselage" REMOVED
"mk3FuselageLF_50" 5000
"mk3FuselageLFO_25" 1125 1375
"mk3FuselageLFO_100" 4500 5500
"mk3FuselageLF_25" 2500
"mk3FuselageLF_100" 10000
"mk3FuselageLFO_50" 2250 2750

"mk3FuselageMONO" 1000
"mk2FuselageShortLFO" 135 165 3600 50 x12
"mk2FuselageShortLiquid" 300 2500 50 x8.33
"mk2Fuselage" 600 5000 50 x8.33
"mk2FuselageLongLFO" 270 330 7200 50 x12
"mk2_1m_Bicoupler" 135 165 4000 50 x13.33
"mk2_1m_AdapterLong" 225 275 5900 x11.8
"mk2_1m_Adapter" REMOVED
"mk2DockingPort" REMOVED
"mk2pit_Standard" REMOVED*
"mk2Cockpit_Standard" 15 45
"mk2pit_Inline" REMOVED*
"mk2Cockpit_Inline" 25
"mk2SpacePlaneAdapter" 135 165 3000 x10
"mk2FuselageShortMono" 300 3600 x12

Edited by velusip
added other half of chart
Link to comment
Share on other sites

There's a long thread here, but perhaps someone can point me toward the rationale for setting the tank volumes as they are?

e.g. Most of the rocket fuel tank volumes seem to be merely multiplied by 5 to yield the realfuels volume. However the volume of spaceplane parts and adaptors are variable from 8.33 to 13.3. It doesn't seem to be related to crash strength or structure, part scaling, and I can't accurately calculate part volume, so I'm not sure why these values exist.

Anyway, a whole bunch of new tanks need to be added, and I'd be happy to help, but I just need info. Here's the incomplete chart I generated by parsing the stock files and comparing to the provided module manager changes:

Real Fuel volume units are in liters. Most parts volume in liters can be found by multiplying the stock value by 5. Pressurized tanks such as those containing gaseous xenon have larger sizes because that is the volume of the gas uncompressed. If there's any deviation from the stock volume x5 then it's because someone felt that the new volume was a more realistic value. Again, in liters.

Link to comment
Share on other sites

The problem is that tanks, in KSP, aren't actually tanks. They're stages, with tanks inside.

Check out this cutaway view of the Titan II GLV. Notice how there are capsule tanks inside each stage. The issue is that you need to estimate, for a given part, how much of the part's volume can actually be utilized by tanks, assuming two capsule tanks. You can see that the longer (higher aspect ratio height : width) lower stage has more of its volume utilized in tankage, compared to the upper stage.

Now, it so happens that one gets a reasonable utilized-volume figure for most KSP tanks by multiplying their LF+Ox contents by five. But it would be the best, long term, to actually go through the parts and figure out the above. Since the users of RF however will often use procedural parts or (in the case of RO) real life rockets' parts (for which we know the tank sizes), it hasn't seemed worth the effort to recalculate volumes, with the exception of spaceplane parts where stock volumes are bonkers.

Link to comment
Share on other sites

The problem is that tanks, in KSP, aren't actually tanks. They're stages, with tanks inside.

Check out this cutaway view of the Titan II GLV. Notice how there are capsule tanks inside each stage. The issue is that you need to estimate, for a given part, how much of the part's volume can actually be utilized by tanks, assuming two capsule tanks. You can see that the longer (higher aspect ratio height : width) lower stage has more of its volume utilized in tankage, compared to the upper stage.

Now, it so happens that one gets a reasonable utilized-volume figure for most KSP tanks by multiplying their LF+Ox contents by five. But it would be the best, long term, to actually go through the parts and figure out the above. Since the users of RF however will often use procedural parts or (in the case of RO) real life rockets' parts (for which we know the tank sizes), it hasn't seemed worth the effort to recalculate volumes, with the exception of spaceplane parts where stock volumes are bonkers.

Yeah except that we're treating everything as if it has common bulkheads.

Link to comment
Share on other sites

Can a part have an engine and resources with real fuels? Mine will hold resources and say it has an engine, but when I click to add the fuel type it uses it adds it, but the Delta V readout is 0 and if I launch it the engines say "LqdOxygen or LqdHydrogen deprived!" even though there is about 30KL of it IN the part itself.... I'm getting confus over here and could use help :)

Here is the part parameters:

PART
{
// --- general parameters ---
name = AresVCore
module = Part
author = BobCat/YANFRET/edits by me

// --- asset parameters ---
mesh = model.mu


MODEL
{
model = CMES/Ares_V/Ares_V_Core/model
scale = 1.237, 1.2, 1.237
}

scale = 1
rescaleFactor = 0.765


CoMOffset = 0, -20.0, 0

// --- node definitions ---
node_stack_top = 0.0, 1.6518588, 0.0, 0.0, 1.0, 0.0, 3
node_stack_bottom = 0.0, -41.0, 0.0, 0.0, 1.0, 0.0, 3



fx_exhaustFlame_blue = 0.0, -3.0, 0.0, 0.0, 1.0, 0.0, running
fx_exhaustLight_blue = 0.0, -3.0, 0.0, 0.0, 0.0, 1.0, running
fx_smokeTrail_light = 0.0, -3.0, 0.0, 0.0, 1.0, 0.0, running



sound_rocket_hard = running
sound_vent_soft = disengage
sound_explosion_low = flameout



// --- editor parameters ---

TechRequired = veryHeavyRocketry
entryCost = 40000
cost = 13900
category = Propulsion
subcategory = 0
title = Ares V Main Core
manufacturer = Aerojet Kerbodyne
description = One of the largest launch vehicles around, this booster was made to bring huge cargo into LKO or beyond.

// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,0,1,1,0

// --- standard part parameters ---
mass = 12
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 200
maxTemp = 2900
breakingForce = 99200
breakingTorque = 99200

// Tank Parameters

MODULE
{
name = ModuleFuelTanks
volume = 304000
type = Default
}

MODULE
{
name = ModuleEngines
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 4560
heatProduction = 220
fxOffset = 0, 0, 2.5
PROPELLANT
{
name = Kerosene
ratio = 37.694087
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 62.305913
}
atmosphereCurve
{
key = 0 368
key = 1 304
}
}

MODULE
{
name = ModuleEngineConfigs
type = ModuleEngines
techLevel = 7
origTechLevel = 7
engineType = L
origMass = 12
configuration = Kerosene+LqdOxygen
modded = false
CONFIG
{
name = LqdHydrogen+LqdOxygen
maxThrust = 4560
heatProduction = 217

PROPELLANT
{
name = LqdHydrogen
ratio = 0.7630831
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 0.2369169
}
IspSL = 1.3
IspV = 1.27
throttle = 0

ModuleEngineIgnitor
{
name = ModuleEngineIgnitor
ignitionsAvailable = 1
autoIgnitionTemperature = 800
ignitorType = Electric
useUllageSimulation = true
IGNITOR_RESOURCE
{
name = ElectricCharge
amount = 32
}
}
}
CONFIG
{
name = Kerosene+LqdOxygen
maxThrust = 4560
heatProduction = 217

PROPELLANT
{
name = Kerosene
ratio = 0.37694087
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 0.62305913
}
IspSL = 1
IspV = 1
throttle = 0

ModuleEngineIgnitor
{
name = ModuleEngineIgnitor
ignitionsAvailable = 1
autoIgnitionTemperature = 800
ignitorType = Electric
useUllageSimulation = true
IGNITOR_RESOURCE
{
name = ElectricCharge
amount = 32
}
}
}
CONFIG
{
name = Aerozine50+NTO
maxThrust = 4560
heatProduction = 217

PROPELLANT
{
name = Aerozine50
ratio = 0.5017301
DrawGauge = True
}
PROPELLANT
{
name = NTO
ratio = 0.4982699
}
IspSL = 0.96
IspV = 0.95
throttle = 0

ModuleEngineIgnitor
{
name = ModuleEngineIgnitor
ignitionsAvailable = 1
autoIgnitionTemperature = 800
ignitorType = Electric
useUllageSimulation = true
IGNITOR_RESOURCE
{
name = ElectricCharge
amount = 32
}
}
}
}

MODULE
{
name = ModuleGimbal
gimbalTransformName = thrustTransform
gimbalRange = 3
}

MODULE
{
name = ModuleAnimateHeat
ThermalAnim = overheat2
}

MODULE
{
name = ModuleAlternator
RESOURCE
{
name = ElectricCharge
rate = 12.0
}
}

RESOURCE
{
name = ElectricCharge
amount = 0
maxAmount = 0
isTweakable = false
hideFlow = true
}

Anybody see anything blatantly obvious?

EDIT: So i've been looking at stock parts that do this (like the LFB in NASAMission) and it added "basemass = -1" under the MFT module, testing now...

Edited by Sippyfrog
Link to comment
Share on other sites

Can a part have an engine and resources with real fuels? Mine will hold resources and say it has an engine, but when I click to add the fuel type it uses it adds it, but the Delta V readout is 0 and if I launch it the engines say "LqdOxygen or LqdHydrogen deprived!" even though there is about 30KL of it IN the part itself.... I'm getting confus over here and could use help :)

Anybody see anything blatantly obvious?

EDIT: So i've been looking at stock parts that do this (like the LFB in NASAMission) and it added "basemass = -1" under the MFT module, testing now...

No, it's possible to do, that's how SRB's work.... I'll look over your part config. Right off the top though, you're missing a bracket in the config you posted, at the end. (to close the part)

Edit: No, basemass = -1 isn't the reason. You do want that, in all probability, but what it does is tell RF to use the part's mass instead of calculating the tank mass. That way, if you're recreating a historical part, it will be accurate as far as mass goes. (of course, if you change the tankage from what the stage had historically, then it wont be realistic)

Edited by Starwaster
Link to comment
Share on other sites

No, it's possible to do, that's how SRB's work.... I'll look over your part config. Right off the top though, you're missing a bracket in the config you posted, at the end. (to close the part)

Edit: No, basemass = -1 isn't the reason. You do want that, in all probability, but what it does is tell RF to use the part's mass instead of calculating the tank mass. That way, if you're recreating a historical part, it will be accurate as far as mass goes. (of course, if you change the tankage from what the stage had historically, then it wont be realistic)

I've made.. progress... I got it to actually get fuel now, but I have to manually enter the fuel numbers into the Tank GUI, there's not button to auto do it according to the engine it's feeding (-_-) So for testing of other features, I just did RESOURCE with blah blah blah of the stuff,

I still wanna make it a MFT, but I dont wanna have to manually type in the correct numbers each time I load the tank from the part list in the editor, do you know what I have to do?

EDIT: here's what I got so far:

PART
{
// --- general parameters ---
name = AresVCore
module = Part
author = BobCat/YANFRET/edits by me

// --- asset parameters ---
mesh = model.mu


MODEL
{
model = CMES/Ares_V/Ares_V_Core/model
scale = 1.237, 1.2, 1.237
}

scale = 1
rescaleFactor = 0.765


CoMOffset = 0, -20.0, 0

// --- node definitions ---
node_stack_top = 0.0, 1.6518588, 0.0, 0.0, 1.0, 0.0, 3
node_stack_bottom = 0.0, -41.0, 0.0, 0.0, 1.0, 0.0, 3



fx_exhaustFlame_blue = 0.0, -3.0, 0.0, 0.0, 1.0, 0.0, running
fx_exhaustLight_blue = 0.0, -3.0, 0.0, 0.0, 0.0, 1.0, running
fx_smokeTrail_light = 0.0, -3.0, 0.0, 0.0, 1.0, 0.0, running



sound_rocket_hard = running
sound_vent_soft = disengage
sound_explosion_low = flameout



// --- editor parameters ---

TechRequired = veryHeavyRocketry
entryCost = 40000
cost = 13900
category = Propulsion
subcategory = 0
title = Ares V Main Core
manufacturer = Aerojet Kerbodyne
description = One of the largest launch vehicles around, this booster was made to bring huge cargo into LKO or beyond.

// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,0,1,1,0

// --- standard part parameters ---
mass = 12
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 200
maxTemp = 2900
breakingForce = 99200
breakingTorque = 99200

// Tank Parameters

MODULE
{
name = ModuleEngines
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 4560
heatProduction = 220
fxOffset = 0, 0, 2.5
PROPELLANT
{
name = Kerosene
ratio = 37.694087
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 62.305913
}
atmosphereCurve
{
key = 0 368
key = 1 304
}
}

MODULE
{
name = ModuleEngineConfigs
type = ModuleEngines
techLevel = 7
origTechLevel = 7
engineType = L
origMass = 12
configuration = LqdHydrogen+LqdOxygen
modded = false
CONFIG
{
name = LqdHydrogen+LqdOxygen
maxThrust = 4560
heatProduction = 217

PROPELLANT
{
name = LqdHydrogen
ratio = 0.7630831
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 0.2369169
}
IspSL = 1.3
IspV = 1.27
throttle = 0

ModuleEngineIgnitor
{
name = ModuleEngineIgnitor
ignitionsAvailable = 1
autoIgnitionTemperature = 800
ignitorType = Electric
useUllageSimulation = true
IGNITOR_RESOURCE
{
name = ElectricCharge
amount = 32
}
}
}
}

MODULE
{
name = ModuleFuelTanks
volume = 304000
type = Cryogenic
}

MODULE
{
name = ModuleGimbal
gimbalTransformName = thrustTransform
gimbalRange = 3
}

MODULE
{
name = ModuleAnimateHeat
ThermalAnim = overheat2
}

MODULE
{
name = ModuleAlternator
RESOURCE
{
name = ElectricCharge
rate = 12.0
}
}

RESOURCE
{
name = ElectricCharge
amount = 0
maxAmount = 0
isTweakable = false
hideFlow = true
}

}

Link to comment
Share on other sites

In my experience, RealFuels isn't 'self-aware' of Engines within the same part. When they are on separate parts, you can click and add fuel by engine no problem. The same part though it doesn't 'see' it.

I haven't tested it...but MAYBE one just needs the ModuleFuelTanks MODULE after ModuleEngineConfigs.

Link to comment
Share on other sites

In my experience, RealFuels isn't 'self-aware' of Engines within the same part. When they are on separate parts, you can click and add fuel by engine no problem. The same part though it doesn't 'see' it.

I haven't tested it...but MAYBE one just needs the ModuleFuelTanks MODULE after ModuleEngineConfigs.

Yeah that's what I thought lol XD I tried that to see and am looking now, KSP just booted

EDIT: meh same results, maybe that's something to be addressed in future versions @Nathankell?

Parts with an engine AND MFT (bi propellant is the problem really) doesn't prompt the ability to auto fill the tank to the correct proportions that the engine needs

Edited by Sippyfrog
Link to comment
Share on other sites

Yeah that's what I thought lol XD I tried that to see and am looking now, KSP just booted

EDIT: meh same results, maybe that's something to be addressed in future versions @Nathankell?

Parts with an engine AND MFT (bi propellant is the problem really) doesn't prompt the ability to auto fill the tank to the correct proportions that the engine needs

Okay, wait, I got it to work..... not too sure what I did lol

Final Config:

PART
{
// --- general parameters ---
name = AresVCore
module = Part
author = BobCat/YANFRET/edits by me

// --- asset parameters ---
mesh = model.mu


MODEL
{
model = CMES/Ares_V/Ares_V_Core/model
scale = 1.237, 1.2, 1.237
}

scale = 1
rescaleFactor = 0.765


CoMOffset = 0, -20.0, 0

// --- node definitions ---
node_stack_top = 0.0, 1.6518588, 0.0, 0.0, 1.0, 0.0, 3
node_stack_bottom = 0.0, -41.0, 0.0, 0.0, 1.0, 0.0, 3



fx_exhaustFlame_blue = 0.0, -3.0, 0.0, 0.0, 1.0, 0.0, running
fx_exhaustLight_blue = 0.0, -3.0, 0.0, 0.0, 0.0, 1.0, running
fx_smokeTrail_light = 0.0, -3.0, 0.0, 0.0, 1.0, 0.0, running



sound_rocket_hard = running
sound_vent_soft = disengage
sound_explosion_low = flameout



// --- editor parameters ---

TechRequired = veryHeavyRocketry
entryCost = 40000
cost = 13900
category = Propulsion
subcategory = 0
title = Ares V Main Core
manufacturer = Aerojet Kerbodyne
description = One of the largest launch vehicles around, this booster was made to bring huge cargo into LKO or beyond.

// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
attachRules = 1,0,1,1,0

// --- standard part parameters ---
mass = 12
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 200
maxTemp = 2900
breakingForce = 99200
breakingTorque = 99200

// Tank Parameters

MODULE
{
name = ModuleEngines
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 4560
heatProduction = 220
fxOffset = 0, 0, 2.5
PROPELLANT
{
name = Kerosene
ratio = 37.694087
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 62.305913
}
atmosphereCurve
{
key = 0 368
key = 1 304
}
}

MODULE
{
name = ModuleEngineConfigs
type = ModuleEngines
techLevel = 7
origTechLevel = 7
engineType = L
origMass = 12
configuration = LqdHydrogen+LqdOxygen
modded = false
CONFIG
{
name = LqdHydrogen+LqdOxygen
maxThrust = 4560
heatProduction = 217

PROPELLANT
{
name = LqdHydrogen
ratio = 0.7630831
DrawGauge = True
}
PROPELLANT
{
name = LqdOxygen
ratio = 0.2369169
}
IspSL = 1.3
IspV = 1.27
throttle = 0

ModuleEngineIgnitor
{
name = ModuleEngineIgnitor
ignitionsAvailable = 1
autoIgnitionTemperature = 800
ignitorType = Electric
useUllageSimulation = true
IGNITOR_RESOURCE
{
name = ElectricCharge
amount = 32
}
}
}
}

MODULE
{
name = ModuleFuelTanks
volume = 304000
type = Cryogenic
}

MODULE
{
name = ModuleGimbal
gimbalTransformName = thrustTransform
gimbalRange = 3
}

MODULE
{
name = ModuleAnimateHeat
ThermalAnim = overheat2
}

MODULE
{
name = ModuleAlternator
RESOURCE
{
name = ElectricCharge
rate = 12.0
}
}

RESOURCE
{
name = ElectricCharge
amount = 0
maxAmount = 0
isTweakable = false
hideFlow = true
}

}

Link to comment
Share on other sites

Uhm yeah that bit about not recognizing the engine when they're on the same part isn't true. I'm not sure it was ever true

(Sippy: sorry, didn't get to look at that yet, glad you got it working)

Um, yeah, it WAS true. IF things are not in 'proper' order.

I haven't tested it...but MAYBE one just needs the ModuleFuelTanks MODULE after ModuleEngineConfigs.

Seems under Sippy's own testing. Put MFT before engine on the same part...no worky...put it after...worky.

Edited by StoryMusgrave
Link to comment
Share on other sites

...spaceplane parts where stock volumes are bonkers.

When you say stock volumes are bonkers you mean they are too high? In that case, why are the few existing RF volume configurations for plane parts generated with such a high multiplier? Or did you mean that the stock volumes are too low and required a higher multiplier to account for all the empty space?

I'd like to fill in the blanks in the RF volume config for all these new stock parts. I just need to know some of the rationale that went into the plane parts which already have RF volumes defined (mk2Fuselage, et cetrea).

I tried using some Blender plugins to calculate volume in the stock parts as a starting point. I will then subtract volume based on some assumed/imagined internal structure based on the stock crash strength, and further subtract what other systems might occupy the part internals (cockpit, life support, electronics, pumps, solenoids/servos, et cetera). Since several of the models are poorly made, I can't get an accurate volume from Blender (perhaps someone else has more experience summarizing subtractive geometry to yield fine detail). In the meantime I will just overlay simple geometry and add up an approximate volume.

Link to comment
Share on other sites

The Tank Type selection in the rightclick menu is coming from RealFuels, right? Is there a description anywhere what each type entails?

Edit: I understood thrust varies with Isp with RealFuels. I just installed it to test that, but thrust stays at 200, even though iSP does seem to vary. Am I missing something? I see the fuel flow decreasing with increasing iSP, that looks an awful lot like stock behaviour.

Edited by Camacha
Link to comment
Share on other sites

The Tank Type selection in the rightclick menu is coming from RealFuels, right? Is there a description anywhere what each type entails?

Edit: I understood thrust varies with Isp with RealFuels. I just installed it to test that, but thrust stays at 200, even though iSP does seem to vary. Am I missing something? I see the fuel flow decreasing with increasing iSP, that looks an awful lot like stock behaviour.

Sounds like it's not installed properly.

Logs.

http://forum.kerbalspaceprogram.com/threads/92229-VALUABLE-LINK-FOR-FINDING-LOGS

Link to comment
Share on other sites

The problem is that tanks, in KSP, aren't actually tanks. They're stages, with tanks inside.

Check out this cutaway view of the Titan II GLV. Notice how there are capsule tanks inside each stage. The issue is that you need to estimate, for a given part, how much of the part's volume can actually be utilized by tanks, assuming two capsule tanks. You can see that the longer (higher aspect ratio height : width) lower stage has more of its volume utilized in tankage, compared to the upper stage.

Now, it so happens that one gets a reasonable utilized-volume figure for most KSP tanks by multiplying their LF+Ox contents by five. But it would be the best, long term, to actually go through the parts and figure out the above. Since the users of RF however will often use procedural parts or (in the case of RO) real life rockets' parts (for which we know the tank sizes), it hasn't seemed worth the effort to recalculate volumes, with the exception of spaceplane parts where stock volumes are bonkers.

Good insight as always. We're missing one MAJOR feature of real-world fuel tanks though (well, one more besides the problems I mentioned with how the Square-Cube Law affects boil-off before...)

Pressurized Fuel Tanks. That is, stages that have fuel tanks sufficiently pressurized that their fuel volume capacity actually exceeds what could be held at 1 atmosphere of pressure.

This mainly holds true of Service Modules (which can reach an average utilization of 400%, 500% or more compared to tanks a 1 atmosphere- through high pressurization), but also would likely hold true of spaceplane parts (although with the volume factors reaching as high as 13x the LFO capacity for existing spaceplane parts in KSP, it seems that a roughly 3 atm pressure level with less than 100% space utilization is already accounted for...)

This mainly affects Service Module parts from the Procedural Parts mod, but also affects a few mod "Service Module" parts such as the NovaPunch2 "Yawmaster Service Module". All of these parts have MUCH lower volume capacities than they should for their size, as real life service modules often exceed 400% utilization (and can reach 500% or more) compared to 1 atm through highly pressurizing the fuel tanks. Even ordinary fuel tanks are often pressurized- the Space Shuttle External Fuel Tank was pressurized to 1.5 atm, for example...

The mass of the fuel tanks should be scaled with the volume capacity- i.e. a Procedural Parts Service Module with 500% utilization should have slightly more than 5x the tank mass of a BalloonCryo tank of the same size (Service Module tanks are also insulated in Procedural Parts, and there doesn't seem to be a way to create Service Modules with uninsulated pressurized fuel tanks for hypergolic...) I say *more than* 5x the tank mass because service modules often include more structural mass than standard fuel tanks in real life (the Procedural Parts mod already accounts for this with an inferior mass-fraction).

The primary advantage of service modules is that they hold a lot more fuel mass for their physical size due to pressurization (thus creating a much more compact aerodynamic profile with a higher ballistic-coefficient, or fitting inside smaller fairings, among other benefits) but strangely, this advantage is NOT reflected in the Procedural Parts or NovaPunch2 mods- making them just heavy fuel tanks with inferior mass-ratios compared to all the other fuel tank types (they do have the capability to store ElectricCharge, but this is only a minor benefit for their much higher mass...) There is no easy way to simulate the other main benefit of pressurization in KSP besides a higher space utilization- the ability to efficiently use pressure-fed engines that are simpler/cheaper/lighter to design and manufacture compared to those relying on turbopumps...

Regards,

Northstar

P.S. Turns out that fuel tanks are often even more highly pressurized than I thought. Any pressure-fed rocket engine requires *higher* tank pressure than chamber pressure, and the Kestrel pressure-fed rocket engine of the Falcon 1 had a chamber pressure of 930 kPa (9.18 atm), for instance. Which means, the fuel tanks of the Falcon 1 upper stage were pressurized to at least 930 kPa as well...

Edited by Northstar1989
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...