Jump to content

generating heat


steuben

Recommended Posts

I'm trying to hack up a part so that it will generate heat as it converts resources to elec. I think I've got the right coding but it still sits there as cool as a cucumber, despite the silly large numbers I've put in. So I know I'm either mis-invoking the heat or missing parts of the invocation

Spoiler

 name = xenon-elec2
 module = Part
 author = steuben
 mesh = model.mu
 scale = 1
 rescaleFactor = 1
 node_stack_top = 0.0, 0.295, 0.0, 0.0, 1.0, 0.0, 0
 node_stack_bottom = 0.0, -0.295, 0.0, 0.0, -1.0, 0.0, 0
 TechRequired = ionPropulsion
 entryCost = 8800
 cost = 22500
 category = Utility
 subcategory = 0
 title = Xenon Aetherizer simple
 manufacturer = Aetheric Alchemic Aerologics
 description = aethericly turns xenon into elec... somehow
 attachRules = 1,0,1,1,0
 mass = 0.4125
 dragModelType = default
 maximum_drag = 0.2
 minimum_drag = 0.3
 angularDrag = 2
 crashTolerance = 6
 maxTemp = 2000 // = 2900
 breakingForce = 50
 breakingTorque = 50
 bulkheadProfiles = size1
 tags = aetheric electric

MODULE
  {
   name = ModuleResourceConverter
   ConverterName = Fuel Cell
   StartActionName = Start Fuel Cell
   StopActionName = Stop Fuel Cell
   ToggleActionName = Toggle Fuel Cell
   FillAmount = 0.95
   AutoShutdown = false
   GeneratesHeat = true
   UseSpecialistBonus = false
   TemperatureModifier = 87000

   INPUT_RESOURCE
   {
    ResourceName = XenonGas
    Ratio = 15
    FlowMode = STAGE_PRIORITY_FLOW
     }

   

  
   OUTPUT_RESOURCE
   {
    ResourceName = ElectricCharge
    Ratio = 100
    DumpExcess = false
   }
  }
  
  RESOURCE
  {
   name = ElectricCharge
   amount = 300
   maxAmount = 300
  }

 

Link to comment
Share on other sites

2 hours ago, steuben said:

I'm trying to hack up a part so that it will generate heat as it converts resources to elec. I think I've got the right coding but it still sits there as cool as a cucumber, despite the silly large numbers I've put in. So I know I'm either mis-invoking the heat or missing parts of the invocation

"TemperatureModifier" is float curve not a single number.

TemperatureModifier
{
key = 0 100000
key = 750 50000
key = 1000 10000
key = 1250 500	
key = 2000 50	
key = 4000 0
}		

 

Link to comment
Share on other sites

So if I want a flat curve, always generating the same amount of heat, I would construct it something like:

TemperatureModifier  {
key = 30 0 
}

And so i have my head around it.

The second number is the slope of the curve at that point, and the first is the value?

Link to comment
Share on other sites

I've tried both

   TemperatureModifier
   {
     key = 1 4000
    }

   TemperatureModifier
   {
     key =  4000 1
    }

I've also tried

   TemperatureModifier
   {
     key = 0 4000000
     key = 4000 4000000
    }

It still stays the coldest part of the craft.

 

There are any  docs out there for temp modifier?

Edited by steuben
Link to comment
Share on other sites

Okay i've got it generating heat. It turns out I need to add modulecoreheat.

Spoiler

PART
{
 name = xenon-elec2
 module = Part
 author = steuben
 mesh = model.mu
 scale = 1
 rescaleFactor = 1
 node_stack_top = 0.0, 0.295, 0.0, 0.0, 1.0, 0.0, 0
 node_stack_bottom = 0.0, -0.295, 0.0, 0.0, -1.0, 0.0, 0
 TechRequired = ionPropulsion
 entryCost = 8800
 cost = 22500
 category = Utility
 subcategory = 0
 title = Xenon Aetherizer simple
 manufacturer = Aetheric Alchemic Aerologics
 description = aethericly turns xenon into elec... somehow. Warning: Beware of aetheric runaway conditions.
 attachRules = 1,0,1,1,0
 mass = 0.4125
 dragModelType = default
 maximum_drag = 0.2
 minimum_drag = 0.3
 angularDrag = 2
 crashTolerance = 6
 maxTemp = 2200// = 2900
 breakingForce = 50
 breakingTorque = 50
 bulkheadProfiles = size1
 tags = aetheric electric
 MODULE
  {
   name = ModuleResourceConverter
   ConverterName = Fuel Cell
   StartActionName = Start Fuel Cell
   StopActionName = Stop Fuel Cell
   ToggleActionName = Toggle Fuel Cell
   FillAmount = 0.95
   AutoShutdown = false
   GeneratesHeat = true
   UseSpecialistBonus = false
   TemperatureModifier
   {
     key = 0 20000
     key = 30 40000
    }

   INPUT_RESOURCE
   {
    ResourceName = XenonGas
    Ratio = 15
    FlowMode = STAGE_PRIORITY_FLOW
     }
      ThermalEfficiency
    {
    key = 0 1.0 0 0
    key = 1600 1.0 0 0
    key = 1700 1.5 0 0
    key = 1800 2.0 0 0
    key = 1900 2.5 0 0
    key = 2000 3.0 0 0
   }      
           

   OUTPUT_RESOURCE
   {
    ResourceName = ElectricCharge
    Ratio = 100
    DumpExcess = false
   }
  }
  
  RESOURCE
  {
   name = ElectricCharge
   amount = 300
   maxAmount = 300
  }
 MODULE
 {
  name = ModuleCoreHeat
  CoreTempGoal = 300     //Internal temp goal - we don't transfer till we hit this point
  CoreToPartRatio = 0.1     //Scale back cooling if the part is this % of core temp
  CoreTempGoalAdjustment = 0    //Dynamic goal adjustment
  CoreEnergyMultiplier = 0.1    //What percentage of our core energy do we transfer to the part
  HeatRadiantMultiplier = 0.05    //If the core is hotter, how much heat radiates?
  CoolingRadiantMultiplier = 0    //If the core is colder, how much radiates?
  HeatTransferMultiplier = 0    //If the part is hotter, how much heat transfers in?
  CoolantTransferMultiplier = 0.01   //If the part is colder, how much of our energy can we transfer?
  radiatorCoolingFactor = 1    //How much energy we pull from core with an active radiator?  >= 1
  radiatorHeatingFactor = 0.01    //How much energy we push to the active radiator
  MaxCalculationWarp = 1000    //Based on how dramatic the changes are, this is the max rate of change
  CoreShutdownTemp = 10000000               //At what core temperature do we shut down all generators on this part?
  MaxCoolant = 5000     //Maximum amount of radiator capacity we can consume - 50 = 1 small
 }

}

Now I want to add a complexity to it. The hotter it gets the faster it gets hotter. Is it possible or do have to fake it a bit?

Link to comment
Share on other sites

The keys in TemperatureModifer are temperatures while the values are heat fluxes. So you can create the following

key = 0 50000
key = 100 100000
key = 500 150000

That will cause the part to produce 1000kW at 0K, 2000 kW at 100K and 3000kW at 500K. The values in TemperatureModifier are in kW*50, so if you want to produce say 10 kW, you write 500. 

Link to comment
Share on other sites

The system interpolates linearly between the two nearest defined points, and flat lines after it falls off the list? So using those numbers at 600 it will still generate 150000, correct?

So short of manually defining the points up to the melting point, and maybe a little beyond, of the part there is no way to create a runaway effect. Well short of getting fancy with module manager, or some other coding, which is more lifting then I am prepared to do for this.

Link to comment
Share on other sites

I think I have my run away condition... but I can't see to get control back of it. I let the temp spike up to 1300, turn on all the radidators, the temp drops down to 400 and then runs its way back up to the temps that will slag the part. I think it has something to do with CoreEnegry on the thermal debug display.

I don't think I've got the cooling hooked up right, or enough flow for the heat I'm generating.

Partcode:

Spoiler

PART
{
 name = xenon-elec
 module = Part
 author = steuben
 mesh = model.mu
 scale = 1
 rescaleFactor = 1
 node_stack_top = 0.0, 0.295, 0.0, 0.0, 1.0, 0.0, 0
 node_stack_bottom = 0.0, -0.295, 0.0, 0.0, -1.0, 0.0, 0
 TechRequired = ionPropulsion
 entryCost = 8800
 cost = 22500
 category = Utility
 subcategory = 0
 title = Xenon Aetherizer simple
 manufacturer = Aetheric Alchemic Aerologics
 description = aethericly turns xenon into elec... somehow. Warning: Beware of aetheric runaway conditions.
 attachRules = 1,0,1,1,0
 mass = 0.4125
 dragModelType = default
 maximum_drag = 0.2
 minimum_drag = 0.3
 angularDrag = 2
 crashTolerance = 6
 maxTemp = 2200 // = 2900
 breakingForce = 50
 breakingTorque = 50
 bulkheadProfiles = size1
 tags = aetheric electric
 MODULE
  {
   name = ModuleResourceConverter
   ConverterName = Fuel Cell
   StartActionName = Start Fuel Cell
   StopActionName = Stop Fuel Cell
   ToggleActionName = Toggle Fuel Cell
   FillAmount = 0.95
   AutoShutdown = false
   GeneratesHeat = true
   UseSpecialistBonus = false
   TemperatureModifier
   {
     key = 0 10000
     key = 200 20000
     key = 1000 25000    
    key = 1300 80000
    key = 1600 100000
    key = 1700 200000
    key = 1800 400000
    key = 1900 800000
    key = 2000 1600000
    }

   INPUT_RESOURCE
   {
    ResourceName = XenonGas
    Ratio = 5
    FlowMode = STAGE_PRIORITY_FLOW
     }
      ThermalEfficiency
    {
    key = 0 1.0 0 0
    key = 1600 1.0 0 0
    key = 1700 1.5 0 0
    key = 1800 2.0 0 0
    key = 1900 2.5 0 0
    key = 2000 3.0 0 0
   }      
           

   OUTPUT_RESOURCE
   {
    ResourceName = ElectricCharge
    Ratio = 100
    DumpExcess = false
   }
  }
  
  RESOURCE
  {
   name = ElectricCharge
   amount = 300
   maxAmount = 300
  }
 MODULE
 {
  name = ModuleCoreHeat
  CoreTempGoal = 300     //Internal temp goal - we don't transfer till we hit this point
  CoreToPartRatio = 0.1     //Scale back cooling if the part is this % of core temp
  CoreTempGoalAdjustment = 0    //Dynamic goal adjustment
  CoreEnergyMultiplier = 0.1    //What percentage of our core energy do we transfer to the part
  HeatRadiantMultiplier = 0.05    //If the core is hotter, how much heat radiates?
  CoolingRadiantMultiplier = 0    //If the core is colder, how much radiates?
  HeatTransferMultiplier = 0    //If the part is hotter, how much heat transfers in?
  CoolantTransferMultiplier = 0.01   //If the part is colder, how much of our energy can we transfer?
  radiatorCoolingFactor = 1    //How much energy we pull from core with an active radiator?  >= 1
  radiatorHeatingFactor = 0.01    //How much energy we push to the active radiator
  MaxCalculationWarp = 1000    //Based on how dramatic the changes are, this is the max rate of change
  CoreShutdownTemp = 5000000               //At what core temperature do we shut down all generators on this part?
  MaxCoolant = 50000     //Maximum amount of radiator capacity we can consume - 50 = 1 small
 }

}

 

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