Jump to content

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


Starwaster

Recommended Posts

On 9/10/2016 at 2:10 PM, westamastaflash said:

So if I wanted to, I could add this module with a patch to other radiator parts? Any guidelines on what settings I ought to use? For example, for the Stock Radiator Panels?

Check out the following post. It lists the fields used by ModuleHeatPump and explains what they do. You should probably remove the stock radiator modules from those parts if you're changing them to use this plugin.

 

Link to comment
Share on other sites

12 hours ago, Starwaster said:

Check out the following post. It lists the fields used by ModuleHeatPump and explains what they do.

Thanks. I guess I need a better understanding of how the thermal system in KSP works, period. I'll have a peek into the code for the heat pump a bit. If I get something put together I'll add the MM patches in this thread, unless the RO ones are out there somewhere already?

Basically, I play on a heavily modded RealFuels + Stockalike + 6.4x Kerbin System and don't necessarily want 'complete' realism, but would like to be able to "guesstimate" the amount of active cooling I'd need for various sizes of procedural RF tanks (e.g. a 3.75m x 10m RF Cyro tank with LH2 inside needs X number of small / medium / large radiators for ZBO)

Edited by westamastaflash
Link to comment
Share on other sites

7 hours ago, westamastaflash said:

Thanks. I guess I need a better understanding of how the thermal system in KSP works, period. I'll have a peek into the code for the heat pump a bit. If I get something put together I'll add the MM patches in this thread, unless the RO ones are out there somewhere already?

Basically, I play on a heavily modded RealFuels + Stockalike + 6.4x Kerbin System and don't necessarily want 'complete' realism, but would like to be able to "guesstimate" the amount of active cooling I'd need for various sizes of procedural RF tanks (e.g. a 3.75m x 10m RF Cyro tank with LH2 inside needs X number of small / medium / large radiators for ZBO)

The stock radiators are configured in RO to provide cryogenic cooling but I don't really know how well they perform at that function or how many radiators are needed for adequate cooling.

IRL, active cooling is not enough and passive measures are needed which takes the form of insulation, both SOFI and MLI. No tanks that I know of for Real Fuels simulate insulation. 

Heat Pumps does because one of the parameters you can pass through will reduce the conduction rate between the exterior and interior (of any tank the HP part is providing cooling for). IRL the goal would be to bring heat penetration down to tens of watts instead of tens or hundreds of kilowatts. Some of the posts on the previous page deal with that subject.

Edited by Starwaster
Link to comment
Share on other sites

  • 3 weeks later...
6 hours ago, wb99999999 said:

Hi!

Thanks for your work! However it appears that the mod refuse to work on my install, displaying draining 0W constantly. I'm no coder or modder, but is there anything I need to do to make it work for me?

Thanks

what versions of KSP and Heat Pump are you using?

And what kind of part are you trying to cool? (Heat Pump radiators work differently than stock radiators and only work for the part they are attached to)

Link to comment
Share on other sites

On 2016/10/7 at 7:35 AM, Starwaster said:

what versions of KSP and Heat Pump are you using?

And what kind of part are you trying to cool? (Heat Pump radiators work differently than stock radiators and only work for the part they are attached to)

I am using KSP 1.1.3 with Heat Pump 1.2.1, presumably the latest release, and I am trying to cool down a PP cryogenic tank with methane or LH2 in it. 

Also, I am pretty sure that I attached the radiator parts directly to the tank (I didn't even know that stock radiators work regardless where on a craft they're attached to!)

Edited by wb99999999
Additional things to say
Link to comment
Share on other sites

  • 3 months later...

So I recompiled this myself for KSP 1.2.2 (just a few changes - 'panelState' becomes 'deployState' and part.findAttachNode becomes part.FindAttachNode). The RealFuels 'fuselage' and 'servicemodule' tank types have much higher weight + insulation levels than the Cryogenic one. A 2.5m x 1m PP tank with 3221 LH2 in it boiled off on Kerbin's surface in > 60 kerbin days compared with just a couple days for the Cryogenic tank) so I was going to use that plus a radiator with this heat pump module attached to reduce boiloff to zero for my planned Duna Missions. I'm playing a 10x rescaled kerbin so I need all the ISP I can get, and travel time to Duna is ~830 kerbal days. 

Is there anywhere that clearly explains how thermals in KSP and RealFuels work? I've looked at the formula in the RealFuels code that computes boiloff and I'm still confused as to what defines all of the various numbers. 

Edited by westamastaflash
Link to comment
Share on other sites

On 1/28/2017 at 10:06 PM, westamastaflash said:

So I recompiled this myself for KSP 1.2.2 (just a few changes - 'panelState' becomes 'deployState' and part.findAttachNode becomes part.FindAttachNode). The RealFuels 'fuselage' and 'servicemodule' tank types have much higher weight + insulation levels than the Cryogenic one. A 2.5m x 1m PP tank with 3221 LH2 in it boiled off on Kerbin's surface in > 60 kerbin days compared with just a couple days for the Cryogenic tank) so I was going to use that plus a radiator with this heat pump module attached to reduce boiloff to zero for my planned Duna Missions. I'm playing a 10x rescaled kerbin so I need all the ISP I can get, and travel time to Duna is ~830 kerbal days. 

Is there anywhere that clearly explains how thermals in KSP and RealFuels work? I've looked at the formula in the RealFuels code that computes boiloff and I'm still confused as to what defines all of the various numbers. 

KSP thermal models are abstracted when it comes to conduction and is  scaled up. RF boiloff code uses real world thermal modeling by computing the amount of heat incoming based on tank thickness (assuming typical tank thickness which IRL can vary; I averaged it out) and insulation thickness and using real world conductivity values. (assuming aluminum alloy for hydrogen and stainless steel for LOX + polyurethane insulation for conductivity values)

for more information on the formula used by RF boiloff code: http://hyperphysics.phy-astr.gsu.edu/hbase/thermo/heatcond.html

 

Link to comment
Share on other sites

7 hours ago, Starwaster said:

KSP thermal models are abstracted when it comes to conduction and is  scaled up. RF boiloff code uses real world thermal modeling by computing the amount of heat incoming based on tank thickness (assuming typical tank thickness which IRL can vary; I averaged it out) and insulation thickness and using real world conductivity values. (assuming aluminum alloy for hydrogen and stainless steel for LOX + polyurethane insulation for conductivity values)

for more information on the formula used by RF boiloff code: http://hyperphysics.phy-astr.gsu.edu/hbase/thermo/heatcond.html

 

Thanks! Appreciate the link. It's been about 14 years since I last had any Physics classes :-).

Link to comment
Share on other sites

I got it working last night, changed the part module name to ModuleRealFuelsHeatPump. Need to play with the parameters, but I created a tank definition called 'ZBO' and added this to the procedural real fuels tank definition with a MM patch. I defined the tank to hold LOX, LH2, LCH4, and LNH3. Left the wall thickness and conduction the same as stock realfuels cryo tanks. changed insulation to what the servicemodule/fueselage use. 

insulationThickness = 0.05
insulationConduction = 0.000017

Anyway, I created mm patch part copies of the stock radPanelLg and radPanelSm, called them "Zero-Boiloff Refrigeration Panel", assigned a heatTransfer of 10kw to the small and 20kw to the large. I left skinInternalConductionMult to 1 since the tank's insulation should do most of the work, right? On a large 2.5m diameter, 10m tank, with my 10x kerbal system rescale, it took 3 large panels (60kw) to suck away most of the heat from the tank (i turned on realfuels 'heat penetration' display in the real fuels settings so I could see boil-off loss #). For a long duration mission to Duna, my ship will have a nuclear reactor onboard so should have plenty of EC to refrigerate the tank. With the insulation, the amount of 'heat penetration' after 30 min or so was displayed as a few watts. It took 6 total large panels placed symmetrically (120kw?), to drop the internal temp of the part back to 20.1K and keep it there while in orbit of kerbin (keep in mind it's spending 1/2 time in dark). After a few hours it dopped to 19.9K and didn't seem to want to go any lower.


I did notice that one of the display items, 'Heat Transfer', is always showing as 0.  Should this be changed to show Rad Flux instead of Int Flux?

I can put a pull request together if you'd like with my adjustments and 'new' parts...

 

Any way to maybe do something similar as a module that's added to a tank directly? Then I could create a procedural 'Long-Duration Zero-Boiloff Tank' and not have to increase part count for the refrigeration (just increase mass of the part and decrease the space available for tankage appropriately)...

Edited by westamastaflash
Link to comment
Share on other sites

16 hours ago, westamastaflash said:

I got it working last night, changed the part module name to ModuleRealFuelsHeatPump. Need to play with the parameters, but I created a tank definition called 'ZBO' and added this to the procedural real fuels tank definition with a MM patch. I defined the tank to hold LOX, LH2, LCH4, and LNH3. Left the wall thickness and conduction the same as stock realfuels cryo tanks. changed insulation to what the servicemodule/fueselage use. 

insulationThickness = 0.05
insulationConduction = 0.000017

Anyway, I created mm patch part copies of the stock radPanelLg and radPanelSm, called them "Zero-Boiloff Refrigeration Panel", assigned a heatTransfer of 10kw to the small and 20kw to the large. I left skinInternalConductionMult to 1 since the tank's insulation should do most of the work, right? On a large 2.5m diameter, 10m tank, with my 10x kerbal system rescale, it took 3 large panels (60kw) to suck away most of the heat from the tank (i turned on realfuels 'heat penetration' display in the real fuels settings so I could see boil-off loss #). For a long duration mission to Duna, my ship will have a nuclear reactor onboard so should have plenty of EC to refrigerate the tank. With the insulation, the amount of 'heat penetration' after 30 min or so was displayed as a few watts. It took 6 total large panels placed symmetrically (120kw?), to drop the internal temp of the part back to 20.1K and keep it there while in orbit of kerbin (keep in mind it's spending 1/2 time in dark). After a few hours it dopped to 19.9K and didn't seem to want to go any lower.


I did notice that one of the display items, 'Heat Transfer', is always showing as 0.  Should this be changed to show Rad Flux instead of Int Flux?

I can put a pull request together if you'd like with my adjustments and 'new' parts...

 

Any way to maybe do something similar as a module that's added to a tank directly? Then I could create a procedural 'Long-Duration Zero-Boiloff Tank' and not have to increase part count for the refrigeration (just increase mass of the part and decrease the space available for tankage appropriately)...

Heat Transfer is the amount of heat the heat pumps are pulling out of the part being cooled. If it says 0 then either it's a rounding issue or the part's internal temp isn't hot enough to trigger the pumps. (a temp of 19.9k is cold enough to prevent hydrogen boiloff)

Edited by Starwaster
Link to comment
Share on other sites

15 hours ago, Starwaster said:

Heat Transfer is the amount of heat the heat pumps are pulling out of the part being cooled. If it says 0 then either it's a rounding issue or the part's internal temp isn't hot enough to trigger the pumps. (a temp of 19.9k is cold enough to prevent hydrogen boiloff)

The issue seems to be that even when they *are* pulling out heat, it's still 0. I turn on KSP thermal debug and watch the part go from 50k to 19.9k, but the heat transfer value stays at 0.00. Anyway, not a big deal since they're working at least :-D

Link to comment
Share on other sites

4 hours ago, westamastaflash said:

The issue seems to be that even when they *are* pulling out heat, it's still 0. I turn on KSP thermal debug and watch the part go from 50k to 19.9k, but the heat transfer value stays at 0.00. Anyway, not a big deal since they're working at least :-D

Oh crap I forgot that it used to rely on internal flux... I'll just have to cache the current transfer rate and use that

Link to comment
Share on other sites

GIST's for my configs that I made:

Tank Definition: https://gist.github.com/ntwest/eb00e448f42123d4526ac323c80483b2

Add ZBO to the real fuels procedural tank: https://gist.github.com/ntwest/a72893210f77eb6a1327b598ecb26df8

Large Radiator Panel: https://gist.github.com/ntwest/fe65c686b7a575c49e973fe1866e6c0c
This panel uses ModuleRealFuelsHeatPump, can be changed back.

I would appreciate any input into what 'mostly realistic' numbers for the procedural real fuels tank would be for the ZBO insulation & mass settings. 

Link to comment
Share on other sites

7 hours ago, westamastaflash said:

GIST's for my configs that I made:

Tank Definition: https://gist.github.com/ntwest/eb00e448f42123d4526ac323c80483b2

Add ZBO to the real fuels procedural tank: https://gist.github.com/ntwest/a72893210f77eb6a1327b598ecb26df8

Large Radiator Panel: https://gist.github.com/ntwest/fe65c686b7a575c49e973fe1866e6c0c
This panel uses ModuleRealFuelsHeatPump, can be changed back.

I would appreciate any input into what 'mostly realistic' numbers for the procedural real fuels tank would be for the ZBO insulation & mass settings. 

It depends on what those tanks actually represent? Are they just service module types wrapped in MLI? That's what it looks like you're trying to model. If so, then those configs are probably ok. The outerInsulationFactor is questionable. It looks like you pulled that from the cryogenic tank def and I'm not sure that was a good value. It's kind of subjective and may need revising. (new KSP version, what sort of tank it really represents has never been firmly established IMO, etc)

Link to comment
Share on other sites

5 hours ago, Starwaster said:

It depends on what those tanks actually represent? Are they just service module types wrapped in MLI? That's what it looks like you're trying to model. If so, then those configs are probably ok. The outerInsulationFactor is questionable. It looks like you pulled that from the cryogenic tank def and I'm not sure that was a good value. It's kind of subjective and may need revising. (new KSP version, what sort of tank it really represents has never been firmly established IMO, etc)

Really, all I'm just looking to do is to model in a procedural part a 'hypothetical' near-future tank structure to store LH2/LOX/LCH4/LNH3 in a human/kerbal mars/duna transfer vehicle. Those insulation numbers came from the existing real fuels service module insulation, so is the service module already modeled as insulated? I really know nothing about what the tanks need and am looking for a "good enough" game approximation to make the trade-offs reasonable for long-duration missions.

 

 

 

Link to comment
Share on other sites

1 hour ago, westamastaflash said:

Really, all I'm just looking to do is to model in a procedural part a 'hypothetical' near-future tank structure to store LH2/LOX/LCH4/LNH3 in a human/kerbal mars/duna transfer vehicle. Those insulation numbers came from the existing real fuels service module insulation, so is the service module already modeled as insulated? I really know nothing about what the tanks need and am looking for a "good enough" game approximation to make the trade-offs reasonable for long-duration missions.

 

 

 

The service module tank type represents a structural component with non-integral dewar type tanks. (non-integral meaning the tank is mounted to the structure rather than FORMING the structure)

Because it's basically a vacuum bottle and only receiving heat through a very limited contact area (its mounting points) it has very little heat leakage. In fact, the Apollo's LOX / LH2 tanks actually required heaters IN the tanks to provide enough heat flux on demand to maintain tank pressure within a pre-determined cut-in/cut-off range.

The final insulation figures that I settled on were arbitrarily determined by Apollo service module base heat leakage. (i.e. before added heating was applied)

The following NASA document was a useful reference: https://history.nasa.gov/afj/aoh/aoh-v1-2-06-eps.pdf (pages 2.6-10 thru 15)

Link to comment
Share on other sites

  • 1 month later...
4 hours ago, stratochief66 said:

Still trying to work out how to get my LH2 tanks chilled on the surface of Mars. I'll do it slower this time, so it doesn't drive me crazy. :)

http://imgur.com/sRtyV0G

 

The radiator in your picture isn't using my heat pump plugin. Those are stock radiator debugging numbers.

Do you have USI tools installed? If so then that's a problem as it interferes with Heat Pumps which uses the name ModuleHeatPump for the PartModule. I've asked @RoverDude to please not use the same name as mine but I never got a response back. His module is based off of the stock ModuleActiveRadiator so it would have the same debugging information in the context menu.

Edit: scratch that. You're not even using ModuleHeatPump, just ModuleActiveRadiator. I just noticed your MM cache excerpt there.

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