Starwaster

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

Recommended Posts

New update for Heat Pumps

Heat Pumps version 1.3.1

  • Numerous fixes and improvements. Most notable is that I discovered a stock bug in which results in added internal and skin flux being cut in half, so I was only removing half of the heat I thought I was.

There's also been some work done towards improved analytic support when used with Real Fuels but since then I've discovered things about how KSP's analytic mode works that are making things difficult, so I'm not really sure how well this will work with analytic. So that's a work in progress.

 

https://github.com/Starwaster/HeatPump/releases/tag/v1.3.1

Share this post


Link to post
Share on other sites

Looking good, I now demand frozen monoatomic hydrogen tanks.  /smirk

That aside, I design scientific instrumentation and found that the oil and gas industry has a lower grade aerogel insulation for keeping  liquefaction gasses cooled in pipes.  Its relatively cheap (Compared to Aerogel) and has fiber reinforcement.  Can imagine that tank insulation values will dramatically improve in the near future.  The material I used replaced low density polyethylene in a test tube sample  with R/K values about 2.5 times better.  The peltier cooling used a lot of power. I can imagine anything done to prevent adding heat is many times more efficient than removing it.

Share this post


Link to post
Share on other sites
21 minutes ago, Bornholio said:

Looking good, I now demand frozen monoatomic hydrogen tanks.  /smirk

That aside, I design scientific instrumentation and found that the oil and gas industry has a lower grade aerogel insulation for keeping  liquefaction gasses cooled in pipes.  Its relatively cheap (Compared to Aerogel) and has fiber reinforcement.  Can imagine that tank insulation values will dramatically improve in the near future.  The material I used replaced low density polyethylene in a test tube sample  with R/K values about 2.5 times better.  The peltier cooling used a lot of power. I can imagine anything done to prevent adding heat is many times more efficient than removing it.

Definitely, that's why all ZBO schemes involve both passive and active measures.

How much power does the peltier cooler use? Can you give a value per watt removed? How does it compare with Brayton cryocoolers?

Share this post


Link to post
Share on other sites
12 minutes ago, Starwaster said:

Definitely, that's why all ZBO schemes involve both passive and active measures.

How much power does the peltier cooler use? Can you give a value per watt removed? How does it compare with Brayton cryocoolers?

Compared to refrigeration cycles they are about >30%.  I calculated that I needed to reject about 35w of input load on an aluminum block with test tubes in it (60 10mm tubes).  used ~100% power on 6 100w Cooler chips at -12C and about ~50% power at 0C in 25C Lab air.  So they ranged from 10-30% efficient.  That's using a heat sink and forced convection to cool the chip hot side.  The reduced efficiency is mostly due to maxing the heat rejection of the heat sink.

I couldn't go any lower than -20C without it sounding like a jet turbine.  Well at least any more like a jet as it had some pretty big fans.  Would not consider them for bulk cooling. I used them for many other reason.  I have 6 different temperature zones in one of the units at temps from 0C to 55C and the other unit is 100C 65C and 0C.  I would cry tears of blood for better insulation.

https://www.bruker.com/fileadmin/user_upload/8-PDF-Docs/MagneticResonance/TD-NMR/Brochure_minispec_Automation.pdf

I'm not the blonde in the pdf. 

 

Share this post


Link to post
Share on other sites

Yes! The cooling is much better after the 1.3.1 patch! Now the boil-off literally doesn't happen if I turn the cooling on and give it a little time! Thank you!

Share this post


Link to post
Share on other sites

Huh?

April 30 is was 1.3.1 and today it is 1.3.0 - the same files compared bitwise?

Share this post


Link to post
Share on other sites
7 hours ago, Gordon Dry said:

Huh?

April 30 is was 1.3.1 and today it is 1.3.0 - the same files compared bitwise?

 Not every file is going to change in every release. The release page on the Github repository has the changes enumerated in a fair amount of detail. 

Share this post


Link to post
Share on other sites

Finally got to test some. RO/RP-0 Dev build (DRE etc.)

Feedback.  Built a fuel tug and sent it to orbit.  First note is (Can they list power consumption?)

Multiple radiators only waste power unless in array.  Very counter intuitive. They sink heat faster but once at equilibrium they are only a penalty.

Can regular radiators help out?

wHBfxAr.png

Up to x50 timewarp everything is good (including x4 Physics warp)

yQorflL.png

At x100 time warp or higher the heat is not removed and core temps elevated. Note the hydrogen has started to bleed off. This was a short time at max timewarp in orbit

j2DRmnY.png

They work great aside from that. Not sure if a good fix for the x100 time warp is available. 

Edited by Bornholio

Share this post


Link to post
Share on other sites

@Bornholio 100x timewarp isn't treated any differently in stock. GREATER than 100x is where analytic starts, unless you or a mod has changed that. If it's stopped working during time warp then I have to assume that analytic mode has kicked in.

I DID have hopes that I would be able to get both Real Fuels and Heat Pumps working with analytic mode properly but I didn't properly understand the nature of the problem, even though NathanKell and I had some discussion about analytic mode and the interfaces that would go into place to allow us to interact with it. He even asked me for input about what those interfaces should do, but I don't think we really understood the problem, not even Nathan even though he coded much of it.

The problems are: 

  1. Analytic mode assigns a temperature for the entire vehicle, not on a part by part basis.
  2. Heat flux goes out the window. You can still add/remove flux but it is treated differently. Temperature contribution is based on the square of the square of the flux. Specific heat of a part is ignored. Conductivity is also ignored; temperature is assigned directly though you can change how quickly or slowly it lerps to the designated temperature.

So, in analytic mode, I have no idea how much 'flux' is leaking into the tank because there is no flux. I could figure out an arbitrary value based on how much Analytic wants to increase the tank temperature, but any flux I remove is being done to the entire vehicle and it doesn't really have the result needed. 

Oh, and the analytic interfaces ONLY affect the parts that the code is running on. So, if analytic mode runs on the heat pump... it's for the PUMP part (radiator) and not tank, which is what really needs to be affected. So... I CAN change what the analytic temperature is, on a part by part basis, I can't do that from the pump part.

If Heat Pump were still part of Real Fuels, it might be a little easier to interface with but it's not. And I don't feel like fighting to put it back in again. (yeah, it got taken out once, put back in at my behest and then removed again, so I split it off into its own project)

So right now I'm not sure what to do about analytic mode. Maybe the answer is to send event messages to and from the tank part... so I can tell it... yeah, you're refrigerated so ignore the heat and don't boil off. Or maybe I'll have to do it by reflection. I don't know yet.

EDIT

And, re: stock radiators: No, they're not going to be any better in analytic mode. In fact, probably even less helpful since the stock code doesn't even TRY to deal with the analytic problem.

Oh, and finally: About the power usage separately vs in symmetry mode, I can't do much about that without a vehicle module to coordinate between multiple radiators. I do have plans to do something like that so they behave more like stock radiators, but that's in the future.

Edited by Starwaster

Share this post


Link to post
Share on other sites
2 minutes ago, Starwaster said:

@Bornholio 100x timewarp isn't treated any differently in stock. GREATER than 100x is where analytic starts, unless you or a mod has changed that. If it's stopped working during time warp then I have to assume that analytic mode has kicked in.

I DID have hopes that I would be able to get both Real Fuels and Heat Pumps working with analytic mode properly but I didn't properly understand the nature of the problem, even though NathanKell and I had some discussion about analytic mode and the interfaces that would go into place to allow us to interact with it. He even asked me for input about what those interfaces should do, but I don't think we really understood the problem, not even Nathan even though he coded much of it.

The problems are: 

  1. Analytic mode assigns a temperature for the entire vehicle, not on a part by part basis.
  2. Heat flux goes out the window. You can still add/remove flux but it is treated differently. Temperature contribution is based on the square of the square of the flux. Specific heat of a part is ignored. Conductivity is also ignored; temperature is assigned directly though you can change how quickly or slowly it lerps to the designated temperature.

So, in analytic mode, I have no idea how much 'flux' is leaking into the tank because there is no flux. I could figure out an arbitrary value based on how much Analytic wants to increase the tank temperature, but any flux I remove is being done to the entire vehicle and it doesn't really have the result needed. 

Oh, and the analytic interfaces ONLY affect the parts that the code is running on. So, if analytic mode runs on the heat pump... it's for the PUMP part (radiator) and not tank, which is what really needs to be affected. So... I CAN change what the analytic temperature is, on a part by part basis, I can't do that from the pump part.

If Heat Pump were still part of Real Fuels, it might be a little easier to interface with but it's not. And I don't feel like fighting to put it back in again. (yeah, it got taken out once, put back in at my behest and then removed again, so I split it off into its own project)

So right now I'm not sure what to do about analytic mode. Maybe the answer is to send event messages to and from the tank part... so I can tell it... yeah, you're refrigerated so ignore the heat and don't boil off. Or maybe I'll have to do it by reflection. I don't know yet.

Is it possible to do the FMRS/Stage recovery trick of saving the value as it changes state to analytic and then set it back to that value on resumption of normal time? Assuming that the system is correct it will equilibrium at a reasonable value otherwise it will reach one of two other states. First state is power runs out and shutdown, second it oscillates at a non-useful arbitrary higher temp.  The state of being in a useful but oscillatory condition is likely rare given the calculations involved.

Your description actually makes it seem that as it works currently we should use a large whole craft heat sink to lower the overall craft heat so when it goes to Analytic mode it will average out to a lower value.

Regardless I'll dig some more and give some more feedback. (like I had a set blow up when coming out of high warp..just like I lost a Jupiter probe to overheating fuel tanks that blew up for some reason../sigh)

Share this post


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

Is it possible to do the FMRS/Stage recovery trick of saving the value as it changes state to analytic and then set it back to that value on resumption of normal time? Assuming that the system is correct it will equilibrium at a reasonable value otherwise it will reach one of two other states. First state is power runs out and shutdown, second it oscillates at a non-useful arbitrary higher temp.  The state of being in a useful but oscillatory condition is likely rare given the calculations involved.

The current build doesn't consume any resources during analytic mode. A future build will look at net power generation/drain to determine if it should request resources or not. As far as storing the pre-analytic value, I'm not really clear on what you're suggesting, and where you're suggesting it be done? (Heat Pump? Real Fuels? Remember that there is lowered capacity to do anything to another part in analytic mode.)

Share this post


Link to post
Share on other sites

Stage recovery has a system that grabs the values of parts being unloaded.  My thought is that you could grab those values that matter (fuel value, internal temp) and reinject them assuming they pass a nominal temp<x test.

This does sound like it should be in real fuels end. since its obviously a problem that exists regardless of the cryo coolers. Hmmm  maybe i have that wrong.  I'll look closer at what order things happen tomorrow.

Maybe its just temp that needs to be passed back. just reloaded my tug after sitting in the KSC screen on x1 speed for while Core temp was 4K when i left the tug now its 157K. Cryo's are on and slowly cooling again.

So just watching cooling rate, deg/sec kind, time warp x1-x10 seem to function normal, x50 seemed like it was x1 speed, then it seemed normal, same with x100, temp shot up then came down to a lower but oscillating value.

I can get the oscillation values lower with more .... Just looked at my mod list again.  Cryo tanks, has dll. I'll drop it next just in case its modified anything

Share this post


Link to post
Share on other sites
2 hours ago, Bornholio said:

I can get the oscillation values lower with more .... Just looked at my mod list again.  Cryo tanks, has dll. I'll drop it next just in case its modified anything

If you're talking about the cryotanks with the simpleboiloff plugin, you should only use one or the other. Neither stock radiators nor this mod will prevent Cryotanks boiloff because they use a static method which is independent of heat. They don't have increased boiloff rates as they get hotter and don't stop boiling if you cool them down. The reverse would also be true in that any mitigating system they have for preventing their tanks from boiling off wouldn't work for Real Fuels. 

 

Also, I know NOTHING about their tank parts and I have no idea if they are properly configured for passive insulation. (i.e. they would have to have RF MFT modules with the Cryogenic type)

Edited by Starwaster

Share this post


Link to post
Share on other sites

My testing from early morning.

Removed Cryo tanks mod to make sure it had no impact. Note that i'm using RO so my time slide hover is not right.  x50 tool tip is actually x1000 since each increment in RO/RP-0 time warp is log10 except the highest.

At x1, x10 and x100 result are pretty good.  Coolers work as expected. Not sure if size has any function. temperature would rapidly head to 20k and then approach 4k as multiple passes into darkness happened.

At x1000 the temps actually stopped showing the variation from going into the sun side

at x10000 the system stopped being able to compensate and starts to oscillate above any reasonable chill temps, start loosing hydrogen.

at x100000 the temps jump way up, hydrogen loss is very fast.

at x600000 the hydrogen evaporates entirely except for the cygnus tankage which starts to go slowly. (Cygnus only has radiators not cryo coolers mounted)

leaving for space center and returning next morning reset the temps to near 170K and chillers have to work to bring it down again.

oejCbWv.png

ypul2EN.png

Cryocooler Testing Imgur Album

Sorry imgur and image sorting are borked.  Comment # is real order.

Edited by Bornholio

Share this post


Link to post
Share on other sites

@Bornholio

Your Cygnus is probably using the ServiceModule type, which assumes vacuum bottles and/or vapor cooled shielding. I used Apollo service module data to determine leakage. Heat leakage was low enough that they had to use heaters to keep tank pressure up to feed the fuel cells and ensure that enough O2 was available for human consumption

And, something else you might or might not be aware of is that if your vessel is unloaded for more than a few minutes: Analytic mode kicks in and yeah, that does tend to raise your temps up obnoxiously. Obviously that's another area that needs addressing.

My current modding priorities are 

  1. Finish the current new update for DRE before KSP 1.3 if possible
  2. get Ioncross Crew Support back up and running
  3. Go back to Real Fuels + Heat Pumps to further address analytic mode boiloff and cryocooling. (which will be done concurrently to ensure they work properly together)

 

Edited by Starwaster

Share this post


Link to post
Share on other sites

@Starwaster About boil-off temperature, is it internal temp or skin temp it is related to? I had a tank full of LH2 and cooled (gladly) with your Heat Pump down to 19.9K internal and around 24~28K skin; my LH2 wouldn't stop boiling off slowly. Also, an uncooled service module I used for control is hitting around 25K internal and 29K skin, and is not losing any LH2. I am confused.

Share this post


Link to post
Share on other sites
17 hours ago, wb99999999 said:

@Starwaster About boil-off temperature, is it internal temp or skin temp it is related to? I had a tank full of LH2 and cooled (gladly) with your Heat Pump down to 19.9K internal and around 24~28K skin; my LH2 wouldn't stop boiling off slowly. Also, an uncooled service module I used for control is hitting around 25K internal and 29K skin, and is not losing any LH2. I am confused.

It can use either depending on whether the RF tank is a cryogenic type or not. Default tanks use the skin and Cryogenic tanks use the internal. Using the internal temperature allows for the simulation of multiple conduction zones, with the skin then becoming the MLI layers and the internal being the tank or spray on insulation layers. Cooling then gets applied in between those layers. The actual deciding factor is whether or not the tank part has a different skin-internal conduction factor from the default values with the boiloff equations and cooling equations using either skin or internal as appropriate.

If you're still getting boiloff then you probably have some third party mod applying its own boiloff. There are at least two other mods that have their own proprietary boiloff schemes and neither of them look at the actual temperature of the part so neither of them would benefit from Heat Pump (or even stock radiator) and have their own 'cooling' scheme to negate boiloff. If you have RF installed then you should disable any third party boiloff since there's nothing I can do to mitigate that.

I will leave open the possibility that Heat Pump isn't properly compensating for parts using the skin temperature and investigate that to make sure it's working as it should. AFAIK though that part does work properly on HP side

Share this post


Link to post
Share on other sites
6 minutes ago, Starwaster said:

It can use either depending on whether the RF tank is a cryogenic type or not. Default tanks use the skin and Cryogenic tanks use the internal. Using the internal temperature allows for the simulation of multiple conduction zones, with the skin then becoming the MLI layers and the internal being the tank or spray on insulation layers. Cooling then gets applied in between those layers. The actual deciding factor is whether or not the tank part has a different skin-internal conduction factor from the default values with the boiloff equations and cooling equations using either skin or internal as appropriate.

I am pretty sure it has something to do with RF. I am playing a RO install so it is unlikely that other mod has applied their boil-off after the RO configs; I did, however, notice a difference between cryogenic and non-cryogenic tanks. However, the difference is confusing: for Cryogenic types, having a higher skin temp does result a very slow but clearly noticeable loss; for BalloonCryo types the loss is very apparent. Notice in both case I do have my internal temp down to 19K because the Heat Pump is doing its job properly. I also tried Default tanks, and the result is not too dissimilar to the Cryogenic type tanks, and has a less loss when compared to a BalloonCryo. This seems to imply that a BalloonCryo actually have worse insulation than a Default.

I do remember just a few months ago when cooling down a Cryogenic tank means it really isn't losing anything at least in a few weeks, and when done properly it would almost hold LH2 indefinitely. I strongly believe that there's something to do with RO and/or RF changes.

Share this post


Link to post
Share on other sites
13 minutes ago, wb99999999 said:

I am pretty sure it has something to do with RF. I am playing a RO install so it is unlikely that other mod has applied their boil-off after the RO configs; I did, however, notice a difference between cryogenic and non-cryogenic tanks. However, the difference is confusing: for Cryogenic types, having a higher skin temp does result a very slow but clearly noticeable loss; for BalloonCryo types the loss is very apparent. Notice in both case I do have my internal temp down to 19K because the Heat Pump is doing its job properly. I also tried Default tanks, and the result is not too dissimilar to the Cryogenic type tanks, and has a less loss when compared to a BalloonCryo. This seems to imply that a BalloonCryo actually have worse insulation than a Default.

I do remember just a few months ago when cooling down a Cryogenic tank means it really isn't losing anything at least in a few weeks, and when done properly it would almost hold LH2 indefinitely. I strongly believe that there's something to do with RO and/or RF changes.

If internal temp is at 19K then it's not possible that RF is applying boiloff. I had to go refresh my memory as to how things were working and basically, mounting a Heat Pump part on a tank part forces it to use the internal temp if it wasn't already doing so before.

The only other way that I can see this happening is through analytic mode (high time warp, i.e. over 100x) which you didn't say was when this was happening, but it would still only be possible for RF to apply boiloff if internal temp were higher than 20.15K. So, analytic mode or not, if it's at 19K then RF can't apply boiloff. (or in the case of LOX, 90K)

 

Share this post


Link to post
Share on other sites
Just now, Starwaster said:

The only other way that I can see this happening is through analytic mode (high time warp, i.e. over 100x) which you didn't say was when this was happening, but it would still only be possible for RF to apply boiloff if internal temp were higher than 20.15K. So, analytic mode or not, if it's at 19K then RF can't apply boiloff. (or in the case of LOX, 90K)

 

I am pretty sure it has nothing to do with being in time warp or not. At 1x speed it loses 0.00 liter of LH2 every second, but as soon as I speed it up to 10x speed, it is losing 0.03 liter per second. Usually when something is not being consumed it just say 0 on the meter, the two zeros after the decimal just give away the fact that it is just too little to fit in the significant digits.

In the mean time I'll try to remove any mod which can mess with this in any remote possible ways and see if anything changes

Share this post


Link to post
Share on other sites
Just now, wb99999999 said:

I am pretty sure it has nothing to do with being in time warp or not. At 1x speed it loses 0.00 liter of LH2 every second, but as soon as I speed it up to 10x speed, it is losing 0.03 liter per second. Usually when something is not being consumed it just say 0 on the meter, the two zeros after the decimal just give away the fact that it is just too little to fit in the significant digits.

In the mean time I'll try to remove any mod which can mess with this in any remote possible ways and see if anything changes

You need to enable boiloff debugging too.

Make a patch file (cfg file, name it something like enableboiloffdebugging.cfg) and paste the following into it:

@RFSETTINGS
{
	%debugBoilOff = True
}

That will give you some additional information on boiloff in the tank's action menu: 

  • wall temperature (THIS is temperature being used in the boiloff equation. It has to be higher than the resource being boiled)
  • heat penetration (how much heat flux actually being applied to the resource by RF boiloff code)
  • boiloff loss (how much mass is being lost as a result of RF boiloff code)

For RF to be responsible for boiloff then all of the following have to be true

  1. The wall temperature has to be higher than the resources boiling temperature
  2. A value representing heat penetration has to be present. If condition 1 is false then heat penetration will be BLANK
  3. boiloff loss has to have a value. If condition 1 is false then this value will be BLANK

 

Share this post


Link to post
Share on other sites

@wb99999999 Ok let's take a look at your ModuleManager.ConfigCache file. Please put that somewhere I can download it

And where is all that other thermal data coming from? I don't recognize that

Edited by Starwaster

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.