Jump to content

Rocket engine heat production makes no sense!


Streetwind

Recommended Posts

...that is, unless I made a systematic mistake in my testing. Can you help me find it, forum? And perhaps shed some light how this actually works?

For my tests, I stuck engines to the back of a simple pod + fueltank, cheated it into orbit, turned on thermal debug display in rightclick menus, and fired the engines while noting down how much internal flux they created at full thrust.

 

Test run 1: four MM clones of the Ant engine, with maxThrust fixed to 2, but with varying levels of heatProduction.

thrust heat result   ratio
2 10 1,97   0,1970
2 20 3,93   0,1965
2 30 5,90   0,1967
2 40 7,87   0,1968

Result: it seems like every point of heatProduction is worth just shy of 0.2 kW of internal flux, when thrust is set to 2. Perhaps about 0.1 kW per kN of thrust?

 

Test run 2: four MM clones of the Ant engine, with heatProduction fixed to 100, but varying levels of maxThrust.

thrust heat result   ratio
1 100 19,67   0,1967
2 100 19,67   0,1967
3 100 19,67   0,1967
4 100 19,67   0,1967
10 100 19,67   0,1967
20 100 19,67   0,1967
30 100 19,67   0,1967
40 100 19,67   0,1967

Result: okay, every point of heatProduction seems worth just shy of 0.2 kW of internal flux, regardless of thrust.  (o_O?)

 

Test run 3: confirming findings by using the LV-909, LV-T45, LV-T30, Vector, and Aerospike stock engines.

thrust heat result   ratio
60 80 396,97   4,9621
215 200 2989,30   14,9465
240 192 2388,07   12,4379
1000 192 7663,17   39,9123
180 110 1095,93   9,9630

Result: ... ... ... ... ... ... ... ... ... ... ... ... ... ... wat. :confused:

 

Praytell, what is going on here? How is heatProduction supposed to work?!

This is a stock install, with ModuleManager the only mod, and the patch that clones my test engines the only MM patch. And to prove to myself that I'm not crazy, here's a screenshot from test run 2.

Link to comment
Share on other sites

So, I got this info from NathanKell a while ago, it's what I use to set my engine heat production values. It might be out of date though.

Engine Heat Production in kW = heatProduction * partSpecificHeatCapacity * heatProductionMultiplier * partMass * throttleSetting

where partSpecificHeatCapacity is typically 800, and heatProductionMultiplier is typically 0.03. 

edit: tried applying that to your numbers with the Ant's 0.02 t mass and it doesn't quite work... gets roughly 2x what you have there (4kW). 

Edited by Nertea
Link to comment
Share on other sites

That seems... completely weird? o_O I mean, you're calculating a localized heat flux, why does specific heat capacity and mass even matter? I'd think that would come up for determining the temperature increase created by that flux further down the line of calculations! And it apparently plays zero role how much fuel the engine actually burns, which should be the act that physically creates heat? (Yes, I know you probably can't explain it either, I'm just venting my confusion :P)

But, i can do some more tests with that formula in mind. Tomorrow.

Link to comment
Share on other sites

It's pretty silly.

The way the math works out though is basically saying that ignoring the generation factor, a heatProduction of 1 means "I raise my temperature 1K per second" (so including the generation factor, 0.03K per second). That means that in theory, you can look at that number and say "the Ant engine increases its temperature by 0.3 K per second", so balancing-wise, it's fairly easy how long an engine can run at in isolation without blowing up. 

Yet this is moot, generally, because no engine functions in isolation...

Link to comment
Share on other sites

21 hours ago, Nertea said:

So, I got this info from NathanKell a while ago, it's what I use to set my engine heat production values. It might be out of date though.

Engine Heat Production in kW = heatProduction * partSpecificHeatCapacity * heatProductionMultiplier * partMass * throttleSetting

where partSpecificHeatCapacity is typically 800, and heatProductionMultiplier is typically 0.03. 

edit: tried applying that to your numbers with the Ant's 0.02 t mass and it doesn't quite work... gets roughly 2x what you have there (4kW). 

Right, according to physics.cfg in KSP 1.2.2:

standardSpecificHeatCapacity = 800 // Standard mass specific heat capacity for parts, in kJ / tonne-K
internalHeatProductionFactor = 0.025 // Multiplier to engine heat production

For a Terrier, that's 80 * 800 * 0.025 * 0.5 * throttleSetting. If I assume throttleSetting is 1 and 100% thrust and 0 at 0% thrust, then that results in 800. For the LV-T30, it's 192 * 800 * 0.025 * 1.25 * 1 = 4,800. Which means that, in all cases, this formula gives me roughly twice of what I measure ingame - just like your check with the Ant. Very odd.

But hey, at least consistently odd. I can use the formula this way, and just slap an additional x0.4975 at the end to get roughly the correct result.

 

Do you have any best practises when giving heat values to engines, by the way? Or do you just pick something by gut feeling? A direct relationship between thrust (or perhaps, propellant flow rate) and heat produced would probably be acceptable for a simple radiatively cooled nozzle, but most engines in KSP have models that imply regenerative cooling.

Edited by Streetwind
Link to comment
Share on other sites

There's 2 approaches I've used. Part of the final balance for my suite will involve a hard look at these numbers (I have a huge spreadsheet).

1) Calculate the EC usage in kW of the engine (only works for ion engines obviously). Get the system efficiency and multiply by the inverse that to get the waste heat. Convert to cfg values.

2) Calculate the jet power of the engine (P = 0.5*Ve*Fthrust). Determine the heat efficiency of a comparable RL engine (for example 80%), and work backward to find the total power of the engine. Total power - jet power = waste heat... convert to cfg values.

Edited by Nertea
Link to comment
Share on other sites

1 hour ago, Nertea said:

2) Calculate the jet power of the engine (P = 0.5*Ve*Fthrust). Determine the heat efficiency of a comparable RL engine (for example 80%), and work backward to find the total power of the engine. Total power - jet power = waste heat... convert to cfg values.

Huh. I must be getting this very wrong.

Did this for the Terrier to get myself oriented. 0.5 * 9.80655 * 345 * 60,000 = 101,497,792.5. Which, if I'm not mistaken, is a hundred megawatts of jet power. If I divide that by 4, using the example value of 80% thermal efficiency, then that results in a waste heat of over 25 MW. Meanwhile the engine ingame has 0.4 MW. That's a huge difference. If you were statting your engines up like that, you'd melt any spacecraft they were attached to... so clearly you can't be doing it this way. Which means I got it wrong. Probably somewhere in the final step.

Link to comment
Share on other sites

I probably shouldn't have thrown that 80 in there, that's how I'm calibrating FFT engines. If you compare the jet power to the heat given by the cfg for stock engines, you'll find that they're something like 98% efficient. That's mortgage likely to produce good results.

Link to comment
Share on other sites

16 minutes ago, Streetwind said:

Huh. I must be getting this very wrong.

Did this for the Terrier to get myself oriented. 0.5 * 9.80655 * 345 * 60,000 = 101,497,792.5. Which, if I'm not mistaken, is a hundred megawatts of jet power. If I divide that by 4, using the example value of 80% thermal efficiency, then that results in a waste heat of over 25 MW. Meanwhile the engine ingame has 0.4 MW. That's a huge difference. If you were statting your engines up like that, you'd melt any spacecraft they were attached to... so clearly you can't be doing it this way. Which means I got it wrong. Probably somewhere in the final step.

Nah, seems about right. I remember the Space Shuttle clocking a few GW at liftoff, and turbopump powers being expressed in MW. A large part of the energy goes into the exhaust as heat and kinetic energy but the orders of magnitude seem right.

I've always felt that the heat production on stock engines was weak. A real engine is just containing that heat long enough to do its task, but run it longer and your engine melts (the RS-68 were not taken as SLS engines for this reason: ablative cooling + longer burn time + clustering meant that the engine couldn't be used without large modifications).

Link to comment
Share on other sites

Maybe ModuleEnginesFX is calculating the cooling effect of fuel being pumped into the engine. You could change the hsp values in ResourcesGeneric.cfg to different values and see if produces a difference.

Edited by Azimech
Link to comment
Share on other sites

13 hours ago, Nertea said:

If you compare the jet power to the heat given by the cfg for stock engines, you'll find that they're something like 98% efficient. That's mortgage likely to produce good results.

Autocorrect strikes again! :D

And, 98% is still far understated. I found that to get the ingame result for the Terrier, I have to divide jet power by 255... or in other words, the Terrier only has 1/256th waste heat, giving it 99.61% thermal efficiency. I suppose a lot of that has to do with the need to fudge numbers to simulate regenerative cooling, and other limits of KSP's simulation, but geez. That is really really efficient.

 

Oh, and for those interested:

If engine jet power[kW] = 0.5 * g0 * Isp * thrust[kN], and
If engine heat output[kW] = heatProduction * standardSpecificHeatCapacity * internalHeatProductionFactor * mass * throttleSetting * 0.4975, and
If standardSpecificHeatCapacity = 800, and
If internalHeatProductionFactor = 0.025, and
If throttleSetting = 1.0 at full vacuum thrust

Then heatProduction = ((4,903325 * Isp * thrust[kN]) / efficiencyDivider) / (9.95 * mass)
Where efficiencyDivider is chosen to represent desired thermal efficiency. For example: a divider of 19 means 95% thermal efficiency (1 in 20 waste, 19 in 20 power)

That gives you the exact value (I'd probably round to one or two significant digits) you need to put into a ModuleEnginesFX to get an ingame heat output that's directly correlated with the engine's power.

 

20 minutes ago, Azimech said:

Maybe ModuleEnginesFX is calculating the cooling effect of fuel being pumped into the engine. You could change the hsp values in ResourcesGeneric.cfg to different values and see if produces a difference.

Good call! I went and tested this right away.

Turns out, it doesn't take that into account. Changing hsp of both liquidFuel and oxidizer by an order of magnitude produced no measurable change in internal flux. It might possibly exert a cooling effect by siphoning off heat already stored in the part, but I doubt it does (due to the engine not having any actual resource storage).

I'm kinda glad it turned out this way. Having the fuel flow fudge further with the already complicated heat formulas for no visible benefit to the player would definitely be a case of too much realism for realism's sake. :wink:

 

Edited by Streetwind
Link to comment
Share on other sites

Sweet, that's a much better way of doing it. I'm going to implement this in my NFT spreadsheet for the future.

Another interesting fact is that the Dawn produces something like 41 MW of thrust power for... 9 EC/s? So if you assume 1 EC = 1 KJ, well, that's some magic there. If you go the other way and calculate EC value from thrust, you get 1 EC/s ~ 4.5 MW, without taking efficiency into account. Those are some crazy solar panels :P.

Edited by Nertea
Link to comment
Share on other sites

35 minutes ago, Nertea said:

Sweet, that's a much better way of doing it. I'm going to implement this in my NFT spreadsheet for the future.

Another interesting fact is that the Dawn produces something like 41 MW of thrust power for... 9 EC/s? So if you assume 1 EC = 1 KJ, well, that's some magic there. If you go the other way and calculate EC value from thrust, you get 1 EC/s ~ 4.5 MW, without taking efficiency into account. Those are some crazy solar panels :P.

The Dawn is literally several thousand times more powerful than real life ion engines. Having months long burn wouldn't be very helpful, an engine draining a thunderstorm per second either, so we have the almighty Dawn.

Link to comment
Share on other sites

31 minutes ago, Gaarst said:

The Dawn is literally several thousand times more powerful than real life ion engines. Having months long burn wouldn't be very helpful, an engine draining a thunderstorm per second either, so we have the almighty Dawn.

I am quite possibly the person on the forums most aware of that ;). 

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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