Starwaster

Heat Pumps v1.3.0 for Real Fuels - May 1, 2017

Recommended Posts

Heat Pump version 1.3.1!

Heat Pump is derived from the heat pump code that originated in Modular Fuel Tanks / Real Fuels, originally created by ialdabaoth (who is awesome!)

HeatPump from RealFuels

Version 1.3.1 updated for Real Fuels (any version of RF that works with KSP 1.2.2)

The purpose of Heat Pump is to intercept heat and cool down cryogenic tanks to prevent boiloff.

Pumps can be configured with the following features.

 

  • An amount of heat is removed from protected parts (active refrigeration) equal to a flat rate multiplied by a temperature delta.
  • The flat rate is capped at ten times the flat rate value by default.
  • The heat pumps also attempt to remove any heat that leaked into the part's interior (from the skin and adjacent parts)
  • Resource cost per kilowatt of heat removed.
  • The amount of heat moved into the radiator is split up among any symmetrically added radiators.
  • This mod comes with a radiator part created by zzz (licensed by GingerCorp) and Heat Pump versions of all stock radiators are also included.

 

Another feature is that the conductivity of protected parts is lowered. This represents the addition of multi layered insulation to the outside of the part. (generally cryogenic fuel tanks). In real life applications, this would be an important part of thermal management. This feature will require balancing against the loss rates of Real Fuels tanks which assume that insulation was builtin but don't take into consideration ZBO applications.

The radiator will drain heat from whatever it is connected to. It drains a flat rate of 50kw  + a amount equal to whatever heat is leaking through the insulation. (this because the goal is zero boiloff)

KNOWN ISSUES

Time warp faster than 100x (technically this starts at 1000x which is one step up from 100 in stock) will cause problems because KSP's thermodynamics switches into analytical mode which doesn't simulate heat transfer in a time based manner. If you must warp faster I recommend doing it from the space center until a solution can be found.

Download Latest

Github (source)

If you find this mod helpful and want to throw some money away, feel free to click the donate button below!

btn_donate_LG.gif

License for the plugin is CC-SA-BY as it was in Real Fuels. (with the provision that derivative works must proclaim that ialdabaoth is awesome)

 

License for the zzz radiator is public domain as all of zzz's released parts are public domain. (the part is renamed to avoid conflict with any other mods that may be using it)

https://creativecommons.org/licenses/by-sa/3.0/us/

Edited by Starwaster
Update for KSP 1.2.2

Share this post


Link to post
Share on other sites

Awesome, can't wait to try some fun long range stuff outside of the allmighty Aestus II! :D

Btw, isn't it possible to set the mod into some kind of cheat mode during high timewarps? I know, it's not really 'balance' per se, but we're able to customize our experience anyway and decide how realistic we want to make it for ourselfs.

IMO would be better that loosing to much fuel on long range missions.

Squueeee!!!

Will this work in RO? If so I recommend it be added to the recommended list!

Boiloff is part of RO/RF, so I assume so! ;)

Edited by Temeter

Share this post


Link to post
Share on other sites

RO would require some rebalancing of resource consumption. NASA/GRC say cryo coolers require about 114 watts of electrical power per watt of heat removed. Obviously if I set power consumption that high it would be a problem in stock so I configured for stock first. But power consumption is even higher regardless of stock or RO right now because nobody has really designed their parts to account for insulation that I know of....

Share this post


Link to post
Share on other sites

About the Known Issues statement: I had thought all calculations for all events were performed in the same ways once in timewarp / on rails. Is this 'analytic mode' above 100x exclusive to Thermal, or is it also used by other systems?

Share this post


Link to post
Share on other sites
About the Known Issues statement: I had thought all calculations for all events were performed in the same ways once in timewarp / on rails. Is this 'analytic mode' above 100x exclusive to Thermal, or is it also used by other systems?

It's really from 1000x up which is the next time step after 100x

and AFAIK only thermal does it. Aero doesn't of course because that's on rails.

I dont know of any other systems that behave that way on rails at high speeds vs lower speeds

Share this post


Link to post
Share on other sites

I can't get it to work after 2 ships: From what i'm understanding, the radiator will draw out heat and therefor actively cool the tank, keeping it at low temperatures, while actively counteracting boil-off?

Made a very simple ship for testing purposes and put it into orbit: Basically a pod, behind it a tank with an engine on it (and the usual doodads, reentry stuff, RCS, etc). BallonCryo tank is filled with ~12 to 20T of LH/LOX and surrounded by 6 radiators. Now the issue is the tanks temperature (in orbit) is constantly rising, and there is a bit of boiloff going on. Activating or deactivating the radiators doesn't seem to do anything (got a high skin temp which doesn't seem to change depending on state).

Edit: I would of course never suspect such a talented modder, who has done so much for the community, but I can't help but notice a strange emptiness inside of the plugin folder...

Edited by Temeter

Share this post


Link to post
Share on other sites
I can't get it to work after 2 ships: From what i'm understanding, the radiator will draw out heat and therefor actively cool the tank, keeping it at low temperatures, while actively counteracting boil-off?

Made a very simple ship for testing purposes and put it into orbit: Basically a pod, behind it a tank with an engine on it (and the usual doodads, reentry stuff, RCS, etc). BallonCryo tank is filled with ~12 to 20T of LH/LOX and surrounded by 6 radiators. Now the issue is the tanks temperature (in orbit) is constantly rising, and there is a bit of boiloff going on. Activating or deactivating the radiators doesn't seem to do anything (got a high skin temp which doesn't seem to change depending on state).

Edit: I would of course never suspect such a talented modder, who has done so much for the community, but I can't help but notice a strange emptiness inside of the plugin folder...

omg.... seriously...?

I forgot to copy the freakin plugin to the plugin folder?

But... then... what do you mean you're getting a high skin temperature........ ok whatever let me go fix this.... (but also seriously, nobody else noticed this and came to chastise me? For 9 hours?)

Edit: Fixed. I feel like such a.... a... I don't even know right now.

Edited by Starwaster

Share this post


Link to post
Share on other sites

That's unacceptable. I'm afraid I need to ask for a refund. :<

Jokes aside: LOL, don't sweat it! I'm surprised you guys don't make more terminal mistakes, throwing around so many numbers, dependencies and configs. As for the 9 hours, i've spend much longer times failing to design a mars lander than that (newest variation has the advantage of looking like one of these japanese throwing daggers, tho!). This kind of thing is generally easy to miss, especially considering how long it can take to understand systems in RSS/RO.

btw: As for the high skin temperature, radiator temp was ~130 like the other parts of my craft (including stock radiators), but their external temp was ~260.

Edited by Temeter

Share this post


Link to post
Share on other sites

So, I've played around a bit, and it works splendid! Might indeed need some balancing, tho. The high electricity requirements are good (finally a reason to use those large solar panels!), but the radiators are a bit strong, or at least don't scale enough. Had a small ship around kerbin, and the heat influx from the sun was around ~3 (whatever unit KSP uses), while a single radiator removed ~9. Which of course resulted over time in the tank getting down to 4 Kelvin. It's of course the aim of having next to zero boiloff, but it should maybe scale with the temperature. E.g. so keeping a tank at 40K is easy, but 20K does take a bit more proportional effort.

I didn't test heat development or solar panel capacity nearer or further away from the sun, tho. That might make things a lot harder than they are around kerbin.

Share this post


Link to post
Share on other sites
So, I've played around a bit, and it works splendid! Might indeed need some balancing, tho. The high electricity requirements are good (finally a reason to use those large solar panels!), but the radiators are a bit strong, or at least don't scale enough. Had a small ship around kerbin, and the heat influx from the sun was around ~3 (whatever unit KSP uses), while a single radiator removed ~9. Which of course resulted over time in the tank getting down to 4 Kelvin. It's of course the aim of having next to zero boiloff, but it should maybe scale with the temperature. E.g. so keeping a tank at 40K is easy, but 20K does take a bit more proportional effort.

I didn't test heat development or solar panel capacity nearer or further away from the sun, tho. That might make things a lot harder than they are around kerbin.

There's a bit of a formula in there that governs that but it dates back to the early days of the heat pump code so it clearly needs some work....

Or maybe there should be a more automated setting where the base rate is calculated on a tank by tank basis.... but yeah, still needs some balancing work

All heat units are in kilowatts btw.

Another possible option is just to do away with the base rate as it will always try to remove conductive heat no matter what. Anything above that is like you're trying to refrigerate the tank contents themselves and in reading about ZBO it seems like they're only aiming for (and needing to) stop incoming heat. You don't need to chill the contents further. (and might not be able to... I mean, 4K is FROZEN hydrogen. You're having to THAW that stuff before you can use it :P)

Share this post


Link to post
Share on other sites

Well, everything solid can be cut into pieces and thrown out of the airlock. Propulsion is propulsion, i'm not gonna judge. :D

But it is possible to 'refrigerate' in space? Should be possible, if you move warmth to the radiator? I mean, that's what a normal radiator does, isn't it. Thing is, I'm not completely trusting KSPs Thermal system to reliable work with a part loosing warmth on an incredibly slow rate on very high timewarps, even if current issues are fixed. Or think about operations in hot places (low solar orbit, certain planets/moons).

Maybe a good way would be to do both things at once: One part for added insulation and stopping heat influx, another one for extremly slowly removing heat (as a single part radiator, similar to the current part). So you could decide if you just want insulation, or take the weight for an additional system (+panels) to slowly cool it down. Latter could of course be made so weak it is basically useless without said insulation and maybe detoriating efficiency on ultra low temperatures. I like ice, but i'm not convinced hydrogen tastes very well.

Edited by Temeter

Share this post


Link to post
Share on other sites
Well, everything solid can be cut into pieces and thrown out of the airlock. Propulsion is propulsion, i'm not gonna judge. :D

But it is possible to 'refrigerate' in space? Should be possible, if you move warmth to the radiator? I mean, that's what a normal radiator does, isn't it. Thing is, I'm not completely trusting KSPs Thermal system to reliable work with a part loosing warmth on an incredibly slow rate on very high timewarps, even if current issues are fixed. Or think about operations in hot places (low solar orbit, certain planets/moons).

Maybe a good way would be to do both things at once: One part for added insulation and stopping heat influx, another one for extremly slowly removing heat (as a single part radiator, similar to the current part). So you could decide if you just want insulation, or take the weight for an additional system (+panels) to slowly cool it down. Latter could of course be made so weak it is basically useless without said insulation and maybe detoriating efficiency on ultra low temperatures. I like ice, but i'm not convinced hydrogen tastes very well.

Of course it's possible to refrigerate in space. You have heat; you move it from one place to another. You can even move it somewhere that's hotter than where you're moving it from. That's what refrigerators do. Work has to be performed to make that happen and that's where the electrical cost comes in.

Insulation is important so that you don't have to deal with as much heat, but insulation has mass and one criteria in choosing insulation is you don't want your insulation to have more mass than what you stand to lose in boiloff.

Obviously that's not a criteria in KSP right now... maybe that's something for Real Fuels in the future. *shrug*

Share this post


Link to post
Share on other sites

I see the line legacy = true was removed from the part and the EC rate was put to zero what was the reasoning behind that.

Share this post


Link to post
Share on other sites
I see the line legacy = true was removed from the part and the EC rate was put to zero what was the reasoning behind that.

The code that would have used legacy is deprecated; it made less sense now that Real Fuels's boil-off is KSP 1.0 compatible

Removing the EC rate was done accidentally while trying to calibrate it with the new system. (merged the wrong set of changes locally) It'll be put back.

Share this post


Link to post
Share on other sites

Starwaster, I can work on configs for RO/RP-0 if you can point in a general direction for finding data. I only use RF in RO so those configs are important to me.

Share this post


Link to post
Share on other sites
5 minutes ago, smartdummies said:

Starwaster, I can work on configs for RO/RP-0 if you can point in a general direction for finding data. I only use RF in RO so those configs are important to me.

Here's a config with comments as to what each thing does. Note that heatTransfer is technically optional and is only 0.1 by default. Heat Pump works by intercepting conducted heat and providing just enough cooling to neutralize the heat that is in danger of penetrating the tank wall into the tank contents. A non-zero heatTransfer is basically actual refrigeration beyond insulation cooling. This really should not be set very high unless the application is some sort of ISRU making cryogenic fuels. Default is 0.1

So basically the way HP works is that it just intercepts incoming heat and provides just enough cooling to prevent that. For ZBO purposes a cryo tank really should have a lot of MLI installed but no existing tank parts are actually configured this way. Even the RF Cryogenic and BalloonCry tank types don't provide the type of insulation required for long term Earth-Mars voyages. That's what skinInternalConductionMult is for. Basically that needs to be set low enough to reduce heat penetration to watts instead of kilowatts if the objective is actual ZBO. (so in other words passive AND active heat management). In the example below it's set to 0.00005 which should be enough to reduce heating from solar/planetary flux to a few tens of watts down from several kilowatts

	MODULE
	{
		name = ModuleHeatPump

		// Active tank refrigeration. Set this if you want cooling BEYOND heat penetration removal
		heatTransfer = 50

		// Part's heatConductivity. Only gets set if provided value is lower than the part's current values during HP initialization
		heatConductivity = 0.12

		// Part's skin-internal conduction factor. Only gets set if provided value is lower than the part's current values during HP initialization	
		// This is meant to represent any multi layered insulation present
		skinInternalConductionMult = 0.00005

		// Percentage of max temp (skin and internal) at which throttling occurs
		radiatorMaxTempCap = 0.8

		// One RESOURCE node for each resource you want consumed (or gained!) for each watt of heat removed.
		// NASA documents state that 114 We are required for each Wt removed
		RESOURCE
		{
			name = ElectricCharge
			rate = 0.114
		}

		// Need one of these for each attach node that you want heat to be removed through
		// name is either attach or the name of the stack node (i.e. top, bottom or other stack name)
		HEATPUMP_NODE
		{
			name = attach
		}
	}

 

Share this post


Link to post
Share on other sites

Recompiled for KSP 1.1.3. Update pushed tohttps://github.com/Starwaster/HeatPump/releases/latest

Future plans are to allow power generation by converting heat to electricity. That can sort of already be done by setting the resource rate negative but I have the feeling that it would stop providing cooling if it couldn't find somewhere to store generated power since it scales cooling by how successful the resource request is. (basically this would be a Closed Brayton Cycle generator).

On the other hand it would probably a waste of time considering the current levels of download activity :(

There were a  grand total of 23 downloads of the prior update over slightly more than a 1 month period

And 90 downloads of the version before that over a ~7 month period.

Not to mention that taking advantage of a feature like that would probably require it to be picked up by other modders. Oh well.

Share this post


Link to post
Share on other sites

Hey Starwaster, I have been progressing on the configs for RO and while I can get the radiators to work correctly, the resetting of the conduction multiplier really bothers me as it is adding MLI to the tanks without adding in the mass needed to accomplish this. I have been looking for some details about how much weight this would add (preferable as comparable to the insulation levels on the Cyro tanks in Real Fuels but I can try and get the calculations based on Default and Balloon as a base if I need to) but have not found anything that I can understand enough to work with.  If you could provide some guidance here I should be able to create the MLI variants of the thank types and would not need to override the conduction multipliers. This would be preferable as the free insulation does not belong in RO, IMHO.

Share this post


Link to post
Share on other sites
16 minutes ago, smartdummies said:

Hey Starwaster, I have been progressing on the configs for RO and while I can get the radiators to work correctly, the resetting of the conduction multiplier really bothers me as it is adding MLI to the tanks without adding in the mass needed to accomplish this. I have been looking for some details about how much weight this would add (preferable as comparable to the insulation levels on the Cyro tanks in Real Fuels but I can try and get the calculations based on Default and Balloon as a base if I need to) but have not found anything that I can understand enough to work with.  If you could provide some guidance here I should be able to create the MLI variants of the thank types and would not need to override the conduction multipliers. This would be preferable as the free insulation does not belong in RO, IMHO.

From  Nuclear Thermal Propulsion (NTP): A Proven Growth Technology for Human NEO / Mars Exploration Missions

http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20120003776.pdf

page 9

  • Material: Aluminum-Lithium (Al/Li)
  • Tank ID/OD: ~9.8 m/10.0 m
  • Tank L: ~19.7 m (propulsion stage) – 22.7 m (“in-line” drop tank)
  • Geometry: cylindrical with root 2/2 ellipsoidal domes
  • Insulation: 1” SOFI (~0.78 kg/m2 ) + 60 layers of MLI (~0.90 kg/m2 )

In LEO that resulted in ~78 W of heat flux penetrating the tank. (heatConductivity = 0.0039 would work I think...)

If you need more or less insulation it gets more complicated than I have time to type out right now, so more later as needed

Share this post


Link to post
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.