Jump to content

[1.11.x] SystemHeat - a replacement for the CoreHeat system (Feb 1)


Recommended Posts

 

System Heat [0.3.7]
Replacing KSP's Core Heat system

I make some mods that interact with the various KSP heat systems to delivery gameplay. You might have heard of them. As a result, I've become knowledgeable about the three two loosely coupled systems (Part and Core) that exist in the game along with most of the headaches and challenges that come along with them. The challenge I've faced in the past is that these systems don't work very well for the gameplay that I want to work with, which is developing gameplay based on system level heat mechanics. In stock, this system is the 'core heat' mechanic, which drives drills, converters, and radiators. In my mods it also drives reactors and some engines. However, the core heat system is....

  • Inflexible, and prone to breakage when pushed (weird temperature spikes,  nonsensical values)
  • Confusing, with no ingame tools to help players design ships beyond a KSPedia page
  • Simplistic, having little to no impact on ship design beyond enforcing the need to stick some poorly documented number of radiators on a ship

A little while ago I declared that I hated it and that I would write something to replace it and provide something more aligned with my goals and hopefully better in every way. Enter SystemHeat, my current code baby.

Project Goals

  • Create a coherent vision for the system-level heat mechanics in KSP
  • Design a fairly simple but deep system built around designing ships to manage heat
  • Provide better tools and visualizations to help players with those designs
  • Make something that maybe other modders can hook onto to do cool things

Ok so, moving on to the thing that has been designed. Please note that this is not a great representation of spacecraft thermodynamics, it's abstracted.

Gameplay Concept

Besides building a system that is stable and extensible without the show-stopping bugs of Core Heat, I want to represent a couple of design challenges that come up in spacecraft design. Spacecraft usually have to deal with a number of different thermal systems for different purposes, due to the varying heat generation requirements of various things on them. Humans make heat, electricity makes heat, nuclear engines make heat... and they tend to do so at different rates and in different ways. You usually can't just put 50 Thermal Control System (large) parts on the ship and you're all happy. 

The SystemHeat concept will basically take this and run with it. Allocating your heat producing parts correctly between your radiators will be important, as well as making sure you don't do stuff like pipe your reactor exhaust into your life support system. Fun times!

Heat Loops

In this mod, all parts that interact with the system are part of an abstract Heat Loop. This represents the flow of coolant through a set of systems that produce heat and consume heat. Producers might include reactors, life support processors, ISRUs, drills and that kind of thing. Radiators would be consumers (effectively the only one at this point).

Each part that produces heat does so with an Output Temperature and an Output Flux. The Output Temperature this is the temperature of the insides of the part (say, a nuclear reactor core) - any coolant coming out of the part will be at that temperature. The Output Flux is the rate heat is produced by the part. Parts have different temperatures and fluxes depending on their nature - a nuclear reactor has a pretty high Output Temperature and a high Output Flux, a drill might have a lower Output Flux and a lower Output Temperature.

Similarly, parts that consume heat have special properties. They specifically consume heat with an Input Flux - a bigger, better radiator is likely able to handle a higher input flux. 

When parts are connected into a Heat Loop , the members of the loop contribute their Input/Output Flux and Output Temperature into it. If all the fluxes going into the loop are positive, it heats up and increases its Loop Temperature. If the flux is negative, it cools down. If the Loop Temperature gets too high, systems in the loop will be negatively affected, in proportion to how different the Loop Temperature is to their Output Temperature.

Your job, as the spacecraft engineer, is to construct Heat Loops such that they are well-balanced and basically don't heat up and . There can be several different Heat Loops on a vessel with different parts assigned to them (though a part can currently only belong to one loop at a time).

Documentation

I am expanding the GitHub wiki with what I hope is solid documentation. Currently the basic gameplay is covered. 

Part Types

I'll be supporting and reworking the heat mechanics of the following parts:

  • Converters: porting stock converters to this new system, cleaning up how they behave at high and low temperatures but otherwise unchanged. 
  • Drills: porting stock drills to this system.
  • Radiators: somewhat importantly, radiators will have maximum loop temperatures they support. Basic stock radiators will be fairly low temperature and therefore pretty ineffective at cooling high temperature things.
  • Engines: supporting engines that can interact with the SystemHeat system to be cooled and such.
  • Fission Reactors: porting my fission reactor implementation to this - it won't change much but will be less buggy!
  • Fusion Reactors: porting my fusion reactor implementation to this - it won't change much but will be less buggy!

Interfaces

You'll need to be able to visualize things to do this! I really hate planning stuff by opening a bajillion PAWs, even if that's how Squad likes it done. So let's ensure there's a nice thermal overlay for you to design your craft. See below (click for more)

ygYkDXq.png

 

Downloads

Please note that the package download only affects radiators immediately and is fully reverse compatible. However, it contains several Extra packages to do affect stock parts. These may affect your save - they won't break anything but ships flying with hot parts may not work. 

Frequently Asked Questions

Q: Can I add this to a save in progress?
A: Yes, if you use the base mod. However, if you use any of the Extra packages to adjust existing converters, reactors, and such, your existing vessels might overheat as the balance is different. 

Dependencies (Required and Bundled)

  • Module Manager 

Licensing

  • All code and cfgs are distributed under the MIT License
  • All art assets (textures, models, animations) are distributed under a All Rights Reserved License.
  • All bundled mods are distributed under their own licenses.

Download
Mirrors


Primary (GitHub)

 

Edited by Nertea
Link to post
Share on other sites

Awesome! Finally a functional reason to manage radiators! Curious on how this could integrate with life support or health mods.

Is simulating solar exposure heat build-up in scope for this mod? Solar arrays do need heat management, even on smaller satellites. Would there be negative effects on electronics/functionality if heat is not managed?

Link to post
Share on other sites

The system you describes makes intuitive sense and combined with a visual overlay as you WIP image show or like the fuel flow overlay would make it easy to work with yet adds a challenging addition to the gameplay. 

This would be something I would definitely add to my game as it makes you builds a bit more "alive" and realistic.

A few questions came to mind:

How do you see environmental effects affecting the performance of the heat consuming parts? A decrease in the input flux? 

What kind of effect does distance between the heat producer and consumer have? I.e. do a need to have consumers near or on my producers?

Are parts not assigned to a HeatLoop unaffected when the loop is overheating?

I'll be following the development and thanks for another interesting addition to the game Nertea!

Link to post
Share on other sites
11 hours ago, OldMold said:

Is simulating solar exposure heat build-up in scope for this mod? Solar arrays do need heat management, even on smaller satellites. Would there be negative effects on electronics/functionality if heat is not managed?

It is not. One of my top reasons for doing this is communicating exposure elegantly to the player is fairly challenging. It's also going to be computationally expensive.

1 hour ago, 4nxs said:

How do you see environmental effects affecting the performance of the heat consuming parts? A decrease in the input flux? 

Currently the minimum temperature that a heat loop can have is the local environmental temperature. Because most of these temperatures are below the operational temperatures of most parts, it's not really a major gameplay thing.

1 hour ago, 4nxs said:

What kind of effect does distance between the heat producer and consumer have? I.e. do a need to have consumers near or on my producers?

There is no distance effect - this is assumed to be a perfectly efficient. Or that it has enough margin built-in I guess.

1 hour ago, 4nxs said:

Are parts not assigned to a HeatLoop unaffected when the loop is overheating?

That's correct!

 

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

Currently the minimum temperature that a heat loop can have is the local environmental temperature.

Makes sense, and still adds a heat management challenge to hotter environments.

2 hours ago, Nertea said:

There is no distance effect - this is assumed to be a perfectly efficient. Or that it has enough margin built-in I guess.

Fair enough, you got to hand it to those engineers, they know what they are doing ;)

Seems like a solid design for the system :)

Have you considered heatsinks? To act as a pool/reservoir for heat in a loop? Each sink could have a maximum "storage" based on the temperature and flux. Activating the sink would temporarily remove heat from the loop to be added again later when you "discharge" it. Say for when you are running a reactor and have retract your radiators for re-entry.

Not that I want to add to your part burden in anyway... But could be a nice feature if it can be implemented easily. 

Link to post
Share on other sites
54 minutes ago, 4nxs said:

Have you considered heatsinks? To act as a pool/reservoir for heat in a loop? Each sink could have a maximum "storage" based on the temperature and flux. Activating the sink would temporarily remove heat from the loop to be added again later when you "discharge" it. Say for when you are running a reactor and have retract your radiators for re-entry.

Actually that's already supported. Systems add volume to loops, more volume makes the loop heat up and cool more slowly. You could easily make a system that added and subtracted no heat, but had a large volume, which would be added to the loop.

Link to post
Share on other sites
On 5/16/2020 at 8:16 AM, Nertea said:

It is not. One of my top reasons for doing this is communicating exposure elegantly to the player is fairly challenging. It's also going to be computationally expensive.

Could you abstract this by having output temperature of a solar array just be a coefficient of EC generated?

Link to post
Share on other sites
On 5/16/2020 at 10:16 AM, Nertea said:

Q: Are parts not assigned to a HeatLoop unaffected when the loop is overheating?

A: That's correct!

Couple of questions about the Loops and such:

  1. As a new user who sees something like the screenshot for the first time, it makes a lot of sense - the 4 radiators and the engines are together on the same circuit; I assume the fact that the lines are green means the thing won't overheat (barring outside factors). It does make me wonder - is there any meaning in the order of connections on the loop? is there a "direction" to the loop, where one of the radiators is "first" - and if so, does that have some kind of effects? It seems like it doesn't, based on the description, just curious.
  2. Since distance isn't factored in (system is perfectly efficient), it's possible to assign all systems on the ship to one loop, right? (I'm going go ignore OutputTemperature for now.)
  3. Then, from the quote above, what I understand is: if you put parts on separate loops, overheating part A on loop A won't affect nominal part B on loop B. But if you can only assign a part to one loop at a time, and if you also can assign all parts to a single loop, I'm thinking of a scenario and wondering how it would play out:
    1. Your ship has a nuclear engine loop as pictured, on EngineLoop, with exactly enough cooling (-2000kW?). LSLoop has a life support system (+1000kW) and 2 radiators (each -500kW, for the sake of argument).
    2. One radiator on LSLoop is destroyed. Now the life support system can only run at 50% capacity; you're on a long trip, half your kerbals will die. Or maybe it can't run at all without sufficient cooling - however that works. Regardless, EngineLoop is untouched.
    3. Another accident destroys the second radiator in LSLoop. Life support is inoperable, maybe, or just really, really intermittent or something. More Kerbals die. EngineLoop is still happy.
    4. But now: If you had placed all the heat generators and all the radiators on only one loop when designing the craft, there would be an advantage: you can run the life support if you turn off the engine, and maybe you can even run both at the same time (with the engine at 50% power). Is that actually how the loops are envisioned to work? If so, what's the reason for ever opting for more than one loop? Sorry if I have missed something !
    5. Moreover, a single loop would seem to always be more efficient: you can design a single loop to have cooling for the total number of systems that run at the same time (which is maybe < all craft systems, e.g. engines and drills don't run together). But if you take the loops to the extreme and do 1 system per loop, your cooling requirements grow to the total possible heat output of all systems, not just the output of systems that run simultaneously... thus more radiators/weight.
    6. If instead each system on the ship is forced to be on a different loop, then you're just forcing the second condition in (5), effectively simulating "We didn't put any valves in the coolant tube network." Or something.

I feel like I am missing some step in the logic here, maybe, so if I am, sorry to waste time.

Regarding OutputTemperatures: I get that some parts might have higher OutputTemperatures than specific radiators could handle - just curious as to how that would play out. For example: can you just make a single loop on a craft, and add at least X number of high-temperature radiators to that loop to accommodate the "special heat" produced by those parts (the abstraction of really hot coolant)? Or do you effectively have to have something like a nuclear reactor on its own loop with high temp radiators? So is the idea that you now need one loop for "special heat" and one loop for "normal heat"?

Re: heatsinks - if heatsinks (more volume) is a thing, presumably that means "lots of volume/mass of something whose temperature is raised in proportion to the heat & flux of coolant" (i.e. slowly heats up over time, starting from ambient). If they exist, then wouldn't normal temperature radiators (in enough quantity) be able to handle high OutputTemperature coolant?

Edited by AccidentalDisassembly
Link to post
Share on other sites

Good thoughts, let me see if I can explain them.

2 hours ago, AccidentalDisassembly said:
  • As a new user who sees something like the screenshot for the first time, it makes a lot of sense - the 4 radiators and the engines are together on the same circuit; I assume the fact that the lines are green means the thing won't overheat (barring outside factors). It does make me wonder - is there any meaning in the order of connections on the loop? is there a "direction" to the loop, where one of the radiators is "first" - and if so, does that have some kind of effects? It seems like it doesn't, based on the description, just curious.
  •  

There is no directionalilty to the loop. The colour is currently the loop ID. There are other indications not shown there

  • An icon shows up on each system if the loop is too hot for that sytem
  • The loop line glows red if the loop has a net positive flux.
2 hours ago, AccidentalDisassembly said:
  • Since distance isn't factored in (system is perfectly efficient), it's possible to assign all systems on the ship to one loop, right? (I'm going go ignore OutputTemperature for now.)

Yes, and this will work very well as long as all the systems in the loop can operate at the same temperature (more below).

2 hours ago, AccidentalDisassembly said:

Then, from the quote above, what I understand is: if you put parts on separate loops, overheating part A on loop A won't affect nominal part B on loop B. But if you can only assign a part to one loop at a time, and if you also can assign all parts to a single loop, I'm thinking of a scenario and wondering how it would play out:

  1. Your ship has a nuclear engine loop as pictured, on EngineLoop, with exactly enough cooling (-2000kW?). LSLoop has a life support system (+1000kW) and 2 radiators (each -500kW, for the sake of argument).
  2. One radiator on LSLoop is destroyed. Now the life support system can only run at 50% capacity; you're on a long trip, half your kerbals will die. Or maybe it can't run at all without sufficient cooling - however that works. Regardless, EngineLoop is untouched.
  3. Another accident destroys the second radiator in LSLoop. Life support is inoperable, maybe, or just really, really intermittent or something. More Kerbals die. EngineLoop is still happy.
  4. But now: If you had placed all the heat generators and all the radiators on only one loop when designing the craft, there would be an advantage: you can run the life support if you turn off the engine, and maybe you can even run both at the same time (with the engine at 50% power). Is that actually how the loops are envisioned to work? If so, what's the reason for ever opting for more than one loop? Sorry if I have missed something !
  5. Moreover, a single loop would seem to always be more efficient: you can design a single loop to have cooling for the total number of systems that run at the same time (which is maybe < all craft systems, e.g. engines and drills don't run together). But if you take the loops to the extreme and do 1 system per loop, your cooling requirements grow to the total possible heat output of all systems, not just the output of systems that run simultaneously... thus more radiators/weight.
  6. If instead each system on the ship is forced to be on a different loop, then you're just forcing the second condition in (5), effectively simulating "We didn't put any valves in the coolant tube network." Or something.

So where this breaks down is 4. If you placed everything on the same loop, the life support systems, that operate at a low temperature (~300-400K) are in the same loop as the nuclear reactor, which operates at maybe 3000 K. That's bad.

The systems in a loop determine its operating temperature in proportion to their volume contributed - a small LS processor would contribute a low volume and probably a low temperature, whereas a nuclear engine contributes a high temperature and volume depending on how big it is. Loops want to get to their operating temperature.

This loop' operating temperature determines the 'bad' effects on the parts connected to it. If the loop is very high temperature (involves a nuclear engine, maybe), and life support is on that loop, the life support parts will experience negative effects of overheating. 

This does mean that the most efficient way to build systems is to have a different loop for each system of different operating temperatures. However as you point out, that's probably not the most mass efficient way to do things. This is the design trade of the mod overall - how many different loops, and with what parts, provide the best experience for your ship? Is it one loop, where you run your nuclear engine and rely on a large amount of coolant volume to not cook your kerbals during a burn and shut it down right after? Is it a pair of loops, one with specialized high temp radiators for the reactors, and one with low temp radiators for the LS?

2 hours ago, AccidentalDisassembly said:

Re: heatsinks - if heatsinks (more volume) is a thing, presumably that means "lots of volume/mass of something whose temperature is raised in proportion to the heat & flux of coolant" (i.e. slowly heats up over time, starting from ambient). If they exist, then wouldn't normal temperature radiators (in enough quantity) be able to handle high OutputTemperature coolant?

Yes, no issues there. However, lower temperature radiators don't radiate as much heat away, so you will need more. More radiators is a linear increase in radiative capacity, but running at higher temperatures is a quartic (^4) increase. 

Link to post
Share on other sites
56 minutes ago, Nertea said:

Good thoughts, let me see if I can explain them.

There is no directionalilty to the loop. The colour is currently the loop ID. There are other indications not shown there

  • An icon shows up on each system if the loop is too hot for that sytem
  • The loop line glows red if the loop has a net positive flux.

Yes, and this will work very well as long as all the systems in the loop can operate at the same temperature (more below).

So where this breaks down is 4. If you placed everything on the same loop, the life support systems, that operate at a low temperature (~300-400K) are in the same loop as the nuclear reactor, which operates at maybe 3000 K. That's bad.

The systems in a loop determine its operating temperature in proportion to their volume contributed - a small LS processor would contribute a low volume and probably a low temperature, whereas a nuclear engine contributes a high temperature and volume depending on how big it is. Loops want to get to their operating temperature.

This loop' operating temperature determines the 'bad' effects on the parts connected to it. If the loop is very high temperature (involves a nuclear engine, maybe), and life support is on that loop, the life support parts will experience negative effects of overheating. 

This does mean that the most efficient way to build systems is to have a different loop for each system of different operating temperatures. However as you point out, that's probably not the most mass efficient way to do things. This is the design trade of the mod overall - how many different loops, and with what parts, provide the best experience for your ship? Is it one loop, where you run your nuclear engine and rely on a large amount of coolant volume to not cook your kerbals during a burn and shut it down right after? Is it a pair of loops, one with specialized high temp radiators for the reactors, and one with low temp radiators for the LS?

Yes, no issues there. However, lower temperature radiators don't radiate as much heat away, so you will need more. More radiators is a linear increase in radiative capacity, but running at higher temperatures is a quartic (^4) increase. 

OK, that makes sense - so the idea is that (assuming everything, even really high temp stuff, is on one loop), you would need to add a bunch of mass (large amount of coolant) in order for the high temp parts not to cook everything. This simulates the idea of "sure, you can stick the 3000k thing in the same loop, but you need a bunch of mass/you need to dilute that superhot coolant/whatever before it touches your more tender parts." That makes sense as a design tradeoff: more flexible = potentially more mass (probably), but scenarios with multiple kinds of heat sources = probably more efficient to be less flexible.

If you did do one single loop, then, presumably you could just keep adding a combination of high and low temp radiators until you got what you needed in total? Would it be possible just to add only high temp radiators to the system and call it done - or is there another mechanic in play, e.g. "high temp radiators work really well when the coolant is hot, so they'll bring the loop down to medium temps just fine; but they work poorly when the coolant is medium temperature, so the total loop will be fine for the reactor, but will still be too hot for the other parts"? Seems like an interesting design decision.

I would say that distance could be an interesting design decision too, simply because otherwise in theory I guess it would be possible to just cram a bunch of radiators into a cargo bay somewhere, I suppose.

 

Edited by AccidentalDisassembly
Link to post
Share on other sites
On 5/17/2020 at 10:10 AM, Misguided_Kerbal said:

Will this have mod support?

Not really, I'm not going to rewrite everybody's systems to work with this. If they want to do this that's up to them. I will provide appropriate adapters for all stock modules as well as my own. 

22 hours ago, AccidentalDisassembly said:

OK, that makes sense - so the idea is that (assuming everything, even really high temp stuff, is on one loop), you would need to add a bunch of mass (large amount of coolant) in order for the high temp parts not to cook everything. This simulates the idea of "sure, you can stick the 3000k thing in the same loop, but you need a bunch of mass/you need to dilute that superhot coolant/whatever before it touches your more tender parts." That makes sense as a design tradeoff: more flexible = potentially more mass (probably), but scenarios with multiple kinds of heat sources = probably more efficient to be less flexible.

 

Under certain circumstances, sure. If the hot part runs all the time though, when we're thinking about orbital transfer times of thousands of hours, you would need a truly shocking amount of loop volume to stop it from heating up. Water heats up, for example, at about 0.20 K/kW/kg, and a decent size NFE reactor outputs about 1 MW of waste heat. That would heat up 1t of water by almost 800 K every hour.

22 hours ago, AccidentalDisassembly said:

If you did do one single loop, then, presumably you could just keep adding a combination of high and low temp radiators until you got what you needed in total? Would it be possible just to add only high temp radiators to the system and call it done - or is there another mechanic in play, e.g. "high temp radiators work really well when the coolant is hot, so they'll bring the loop down to medium temps just fine; but they work poorly when the coolant is medium temperature, so the total loop will be fine for the reactor, but will still be too hot for the other parts"? Seems like an interesting design decision.

 

There's no reason you need to use any type of radiator to achieve appropriate heat transfer, but that might be inefficient in terms of mass and cost.

It's really important to note that number and type of radiators have no effect on the temperature of the loop if there is enough radiative capacity. I'll try enumerating it another way than the OP:

  • A loop has an operating temperature, which is derived from the various systems in the loop. You could think of it as the average of all systems contributing, if there is something at 3000K and something at 300K, the loop will be operating at somewhere in between. It's a little more complicated than that but it's good enough for this. 
    • This operating temperature already might be too high or too low for some systems that are part of the loop.
    • If the loop temperature is too high for a system in the loop, it will have negative consequences.
    • If the temperature is too low for a system in the loop,  there might be negative consequences (haven't decided yet, this might make things too complex).
  • When systems are on in the loop, it will slowly increase from its current temperature (starting at ambient) to the operating temperature (regardless of amount of radiative capacity)
    • The speed of this is dependent on the amount of energy going into the loop and the total volume of the loop (realistically that's basically the number of systems in it)
  • A loop increases in temperature above the operating temperature only if there isn't enough radiative capacity.
  • A loop never decreases below operating temperature (currently)

This way, you have two mostly orthogonal problems to solve. Regulate the operating temperature of the loop, and regulate the radiative capacity of the loop. If you mix these problems too much, you end up with an undergraduate level thermodynamics course. There are some couplings in that radiators are more effective at higher operating temperatures, but they are intentionally minimized.

On 5/17/2020 at 8:58 AM, OldMold said:

Could you abstract this by having output temperature of a solar array just be a coefficient of EC generated?

It's not like it's hard to do. I just don't think it adds a ton to gameplay - it's effectively a nerf to all solar panels. I could also go into why this is less of a problem than people tend to think. 

22 hours ago, AccidentalDisassembly said:

I would say that distance could be an interesting design decision too, simply because otherwise in theory I guess it would be possible to just cram a bunch of radiators into a cargo bay somewhere, I suppose.

 

Hard to stop all the cheesing really - i mean, consider radiator occlusion in general...

 

Edited by Nertea
Link to post
Share on other sites
2 hours ago, Nertea said:

Under certain circumstances, sure. If the hot part runs all the time though, when we're thinking about orbital transfer times of thousands of hours, you would need a truly shocking amount of loop volume to stop it from heating up. Water heats up, for example, at about 0.20 K/kW/kg, and a decent size NFE reactor outputs about 1 MW of waste heat. That would heat up 1t of water by almost 800 K every hour.

There's no reason you need to use any type of radiator to achieve appropriate heat transfer, but that might be inefficient in terms of mass and cost.

It's really important to note that number and type of radiators have no effect on the temperature of the loop if there is enough radiative capacity. I'll try enumerating it another way than the OP:

  • A loop has an operating temperature, which is derived from the various systems in the loop. You could think of it as the average of all systems contributing, if there is something at 3000K and something at 300K, the loop will be operating at somewhere in between. It's a little more complicated than that but it's good enough for this. 
    • This operating temperature already might be too high or too low for some systems that are part of the loop.
    • If the loop temperature is too high for a system in the loop, it will have negative consequences.
    • If the temperature is too low for a system in the loop,  there might be negative consequences (haven't decided yet, this might make things too complex).
  • When systems are on in the loop, it will slowly increase from its current temperature (starting at ambient) to the operating temperature (regardless of amount of radiative capacity)
    • The speed of this is dependent on the amount of energy going into the loop and the total volume of the loop (realistically that's basically the number of systems in it)
  • A loop increases in temperature above the operating temperature only if there isn't enough radiative capacity.
  • A loop never decreases below operating temperature (currently

I think I understand a little better, but am still stuck on (at least) one thing. Maybe I am not understanding terminology, that's quite possible - and I'm probably about to butcher some terminology in what follows.

I understand the idea that certain systems have operating temperatures - like they do in game now, e.g. NFE reactors want to operate at 1000k (or whatever the number is), and if you don't have enough cooling, they run poorly or blow up eventually. If you have a billion times the cooling you need, that part (system) still runs at 1000k. But what exactly is the operating temperature of a loop? The idea of "the temperature of a loop" really has me stumped.

If it's something like "the average temperature of the coolant or the radiator parts" or something like that, then I am extra stumped, because I don't understand where I'm going wrong in my logic...:

  1. You have a "loop" with the 3000k reactor and a 300k snack machine. (I am imagining this as an actual circuit of pipe moving coolant around, but I think the principle would be theoretically the same even if you were talking about taking those two systems, which need vastly different temperatures to function correctly, and gluing them to opposite ends of a gigantic metal brick with radiating fins.) 
  2. There's a coolant reservoir somewhere. It's ambient temperature. Ambient-temperature coolant starts there, then goes to the reactor. The inside of the reactor is a nice, toasty 3000k - its operating temperature. Once it achieves that temperature, its flux/heat output is 1000kW, so 1000kW of energy is applied to the coolant, which heats up.
  3. Toasty coolant (presumably close to 3000k and a volume determined by a bunch of math related to how much energy it takes to heat this magic liquid by X degrees) exits the reactor, then pipes through four 250kW radiators. After coming out of the radiators, the coolant has returned to ambient temperature. If it hasn't, then the radiators didn't actually achieve that rate of cooling, presumably.
  4. Now, still on the same loop, the coolant enters the 300k part, an insanely powerful snack fabricator whose flux is also 1000kW - applied to coolant, which then passes through four more 250kW radiators (so 8 in total on the single loop). 
  5. Coolant is back to ambient temperature again, and it returns to reservoir. Loop complete.

Every system is on the same loop; the only thing that seems to matter is flux in, flux out (and/or heatsink mass, if your design works just fine by spreading out your flux over time) - unless you are also proposing that the user should need to design the order of radiators on the loop, so as to avoid putting the 300k snack machine before the first set of radiators (in which case the super hot coolant would cook it). But if the order is abstracted, then I am not understanding why the "Loop operating temperature" is swooping in to level out the temperature (of the coolant?) - effectively making everything but the reactor suddenly become the same averaged temperature until the very last radiator in the loop, if you see what I mean.

If I'm missing something reasonably obvious here, please don't feel obligated to explain it all - maybe just point me in the general direction and I'll try to figure it out!

Edited by AccidentalDisassembly
Link to post
Share on other sites

So you are describing the thinking I took when I started, which is an example where order matters and is critical for functioning. If you go Reactor  (+1000) -> High Temp Radiators (-1000) > Processor (+1000) -> Low Temp Radiators (-1000) -> Reactor, that works. If you go in any other order, it doesn't work. The two options would then to create a system where the user has to do ordering, or you solve the ordering algorithmically. I don't love either of those solution. So...

Instead, I'm saying in this concept that all heat producing systems always exist in a virtual sequence before radiators - it's Reactor (+1000) > Processor (+1000) -> Radiators (-2000)-> Reactor. In this model, your 3000K reactor flow goes into a 300K snack machine and cooks it. Or, if the order is reversed, your processor dumps already-heated coolant into your reactor which is probably bad. It's a simplification of the same system which lets you order by creating two loops: [1] Reactor  (+1000) -> High Temp Radiators (-1000) > Reactor, and  [2] Processor (+1000) -> Low Temp Radiators (-1000) -> Processor. I guess you could say that operating temperature is the temperature of the coolant before it gets to the radiator. 

It's true that you could also say that temperature doesn't matter - if there is no concept of ordering in any way, then this is all pointless. Just balance the fluxes and you're good... and now you're basically back to Core Heat, but maybe with variable temperature radiators. So... not a mod i want to make.

 

Link to post
Share on other sites
6 hours ago, Nertea said:

It's not like it's hard to do. I just don't think it adds a ton to gameplay - it's effectively a nerf to all solar panels. I could also go into why this is less of a problem than people tend to think. 

I dont want to derail the thread, but if you have the time sure! Big part of this game and mods nerding is the edutainment of space exploration, so it would be fascinating.

Link to post
Share on other sites

@Nertea, this looks really great! I’ve always ended up just adding way more radiators than required just to satisfy my idea of what a proper ship should look like, so it’ll be nice to have that as part of the game.

How will System Heat interact with the environment? Will atmospheric properties (temp and pressure, or lack there of) affect the efficiency of radiators?

Will kerbal crew generate heat themselves? Will their habitats?


 

Link to post
Share on other sites
On 5/18/2020 at 10:53 PM, OldMold said:

I dont want to derail the thread, but if you have the time sure! Big part of this game and mods nerding is the edutainment of space exploration, so it would be fascinating.

I'll try to summarize...

It would be more accurate to say that thermal issues come from the systems on the spacecraft, not the solar panels. Sure, the solar panel is only 30-40% efficient based on insolation, but this inefficiency is misleading - the panel also re-radiates on the rear, and is coated to reduce the absorption of energy that can't be transformed to electrical power. That gets rid of most of the excess. The end result of this is that most modern spacecraft don't need dedicated radiating hardware for their solar panels - even the ISS's  prominent TCSes are primarily designed to radiate to the interior. The real need for radiation comes from components that take that power generated and use it - whether that is for life support or other functions. That heat is usually generated inside the component and needs to be moved somewhere outside to be radiated. To top that off the inside of spacecraft are very sensitive, usually containing electronics that have a death threshold in the range of -60 to 60 C, and functional temperature ranges that are only 10-20 C wide - which incidentally also applies to humans. So overall the problem is less about getting the heat from the solar panels dealt with, but the heat from the things that use the power the panels provide. 

Still though most unmanned spacecraft don't have radiators - this is because overall, it's pretty easy to do thermal control without active systems - you put a heat conducting surface from your electronics to the outside of the spacecraft and the bus does the radiating. With clever design you can do this well and really minimize your total mass. 

Caveat is when you move inwards from Earth you change this heat balance equation - but usually, you will not add cooling to your solar panels, instead you will just cant them or design your ship with an appropriate sun shield, which is more mass efficient and mechanically simpler. If you move outwards, you have the opposite problem, but you still avoid active cooling if you can, and rely on louvers or similar surfaces to help limit heat loss. 

Functionally though, humans generate so much heat, what with them being complex chemical reactors that need all sorts of feedstock, that it's hard to do this passive heat rejection work. Almost all manned spacecraft have some kind of active thermal control, even if it's simply a roll maneuver. Any time you have high power electrical systems you probably need to do this. 

Hopefully that explains things better, I am not a spacecraft thermal engineer, but I need to deal with their decisions sometimes :)

On 5/19/2020 at 6:41 AM, Nightside said:

@Nertea, this looks really great! I’ve always ended up just adding way more radiators than required just to satisfy my idea of what a proper ship should look like, so it’ll be nice to have that as part of the game.

How will System Heat interact with the environment? Will atmospheric properties (temp and pressure, or lack there of) affect the efficiency of radiators?

Will kerbal crew generate heat themselves? Will their habitats?
 

No major environmental interactions, and no changes to crew mechanics, through the door will be open to others to add that. 

Link to post
Share on other sites

This is super cool. Managing heat in the base game has always felt like guess work. It isnt very clear and never seems to be enough. Im not even sure how the numbers in the item descriptions are supposed to be used.

Link to post
Share on other sites

Will this mod do away with the idea of radiator parts only being able to pull a small amount of heat from any given part? It always struck me as odd to have a radiator that can emit 1000kW of heat, but only pull in 50kW from any specific part, for example, or to have a cluster of radiators manage to overheat themselves in some kind of bizarre feedback loop while everything else around them is barely above ambient.

Sounds like an interesting concept and one I imagine will work well with NFE and heat control.

Link to post
Share on other sites
On 5/24/2020 at 5:37 AM, jimmymcgoochie said:

Will this mod do away with the idea of radiator parts only being able to pull a small amount of heat from any given part? It always struck me as odd to have a radiator that can emit 1000kW of heat, but only pull in 50kW from any specific part, for example, or to have a cluster of radiators manage to overheat themselves in some kind of bizarre feedback loop while everything else around them is barely above ambient.

Sounds like an interesting concept and one I imagine will work well with NFE and heat control.

Are you referring to the thing where radiators say 'max cooling = 13253523 kW' and 'max transfer = 50 kW'?

If so, yes, in a way. The problem that Squad faced when they designed that system was that there is a physical radiative component (ok, 'physical') which says that a radiator can radiate energy by the stefann-boltzmann law. This is problematic... KSP part temperatures are allowed to be so high that the amount of cooling that is provided by say, a 1500K radiator is enough for a million ships. Instead of trying to fix this, they decided that the rate of coolant flow would be a better thing to balance with, so a part can transfer X heat per tick, and that X has been calibrated to be something more realistic for a modest radiator. 

I'm not going to touch the part surface temperature component of radiator-part interaction - playing with that system is a recipe for exploding ships. Howevever there's basically no use cases left in the game for that system anyways, so.... shouldn't be too bad. 

Link to post
Share on other sites

Can a single part be connected to two loops at once? Perhaps I want a heat pump which will take my 300K life support heat and pump it up to 1000K to save on radiator area (and maybe even pump it into the same loop as my powerplant). Would this be possible?

Link to post
Share on other sites

Would it be possible to jettison hot coolant in an emergency? Say, you're overheating in flight and need to cool that reactor NOW, and draw water from life support tanks to replenish it? Perhaps you're low on propellant and your cooling loop is looking a lot like some extra dV?

Link to post
Share on other sites
4 hours ago, SingABrightSong said:

Would it be possible to jettison hot coolant in an emergency? Say, you're overheating in flight and need to cool that reactor NOW, and draw water from life support tanks to replenish it? Perhaps you're low on propellant and your cooling loop is looking a lot like some extra dV?

I thought about that, but I'd prefer not to. Once that happens, I need to start tracking coolant types, coolant used by loops, management of types of coolant, etc. In a backwards attempt to justify this from realism, high temperature coolants aren't really replaceable with water or things like that. 

On 5/27/2020 at 8:31 PM, 0111narwhalz said:

Can a single part be connected to two loops at once? Perhaps I want a heat pump which will take my 300K life support heat and pump it up to 1000K to save on radiator area (and maybe even pump it into the same loop as my powerplant). Would this be possible?

I also thought of this - definitely don't want to do it as part of the MVP. Remember that to pump it up, you need to add energy, so now you'd have to bring X kW of solarpanels around to run your step-upper. I can see that case but it's kinda an edge...

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

I also thought of this - definitely don't want to do it as part of the MVP. Remember that to pump it up, you need to add energy, so now you'd have to bring X kW of solarpanels around to run your step-upper. I can see that case but it's kinda an edge...

I worked out the math on this at some point and concluded that a case like the one I described will result in a net reduction of radiator area.

Link to post
Share on other sites
On 5/29/2020 at 10:57 PM, 0111narwhalz said:

I worked out the math on this at some point and concluded that a case like the one I described will result in a net reduction of radiator area.

Yes - but you would also have to trade the radiator area (or solar panel area) and mass needed to add the power to step up to the higher temperature.

It's something to think about, might be very awkward to do in the current system though.

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