Actions

Editing Furnace temperature and pressure math

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
=== Introduction ===
+
''The data used was collected in version 0.2.2800.''
This page is about predicting combustion temperatures and pressures inside furnaces. It's not about engineering or design.
 
 
 
The furnace is one of the most important objects in the entire game, but it can also be complicated and hard to use, especially when making alloys and super-alloys. There is no real need to know anything written on this page, because it's possible to engineer solutions that doesn't require placing fuel inside a furnace. Hot gas can also be made elsewhere (with an Air Conditioner or by combusting fuel in a pipe) and stored in insulated tanks, and just be pumped directly into a furnace as needed.
 
 
 
There are two MIPS scripts here (click the links to expand/collapse the code), that can do the math described on this page inside the game. The first script is used to predict what temperature and pressure a furnace will reach when the current gas content is ignited. The second script is used to predict how much perfect fuel (33.33% oxygen and 66.67% volatiles) and how much other gas (not fuel) that needs to be added in order to reach a desired temperature and pressure on ignition. There are two alloys that are tricky however: Waspaloy and Solder. That is because the gas mixes to make these two tends to be too dilute to ignite (below 5% oxygen), but there are ways around that, the furnace could for example be ignited after adding only half the dilutant and then the remainder is added afterwards).
 
 
 
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside of it}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside of it}}">
 
<pre>
 
#prediction of the ignition temperature and pressure of a furnace
 
#if combustion can't occur, display current temperature and pressure
 
 
 
alias furnace d0        #advanced or regular
 
alias consoleTemp d1    #console, small LED
 
alias consolePres d2    #console, small LED
 
 
 
alias ratioOx r5
 
alias ratioVol r6
 
alias specificHeat r12
 
alias fuel r13
 
alias temp r14
 
alias pres r15
 
 
 
define energyReleased 563452
 
define specificHeatInc 172.615
 
define gasMolInc 5.7
 
 
 
main:
 
yield
 
#calculate the specific heat of the gas mix
 
l r5 furnace RatioOxygen
 
l r6 furnace RatioVolatiles
 
l r7 furnace RatioCarbonDioxide
 
l r8 furnace RatioPollutant
 
l r9 furnace RatioNitrogen
 
l r10 furnace RatioNitrousOxide
 
l r11 furnace RatioWater
 
mul r0 r5 21.1
 
mul r1 r6 20.4
 
add r0 r0 r1
 
mul r1 r7 28.2
 
add r0 r0 r1
 
mul r1 r8 24.8
 
add r0 r0 r1
 
mul r1 r9 20.6
 
add r0 r0 r1
 
mul r1 r10 23
 
add r0 r0 r1
 
mul r1 r11 72
 
add specificHeat r0 r1
 
#calculate the fuel amount
 
div ratioVol ratioVol 2
 
min fuel ratioOx ratioVol
 
#calculate Temp after ignition
 
mul r0 fuel specificHeatInc
 
add r0 r0 specificHeat
 
mul r1 fuel energyReleased
 
l r2 furnace Temperature
 
mul r2 r2 specificHeat
 
add r1 r1 r2
 
div temp r1 r0
 
#calculate Pressure after ignition
 
l r0 furnace Temperature
 
l r1 furnace Pressure
 
mul r2 fuel gasMolInc
 
add r2 r2 1
 
mul r2 r2 temp
 
mul r2 r2 r1
 
div pres r2 r0
 
#check if pressure <10kPa and ratios <0.05
 
blt r1 10 noCombustion
 
blt ratioOx 0.05 noCombustion
 
blt ratioVol 0.05 noCombustion
 
s consoleTemp Color 6
 
s consolePres Color 1
 
j displayResults
 
noCombustion:
 
s consoleTemp Color 3
 
s consolePres Color 2
 
move temp r0
 
move pres r1
 
displayResults:
 
s consoleTemp Setting temp
 
s consolePres Setting pres
 
j main
 
 
 
### End Script ###
 
</pre>
 
</div>
 
<br>
 
 
 
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script that calculates how to mix fuel and diluting gas inside a furnace to reach a desired temperature and pressure}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that calculates how to mix fuel and diluting gas inside a furnace to reach a desired temperature and pressure}}">
 
<pre>
 
#A script for calculating how to dilute fuel..
 
#..inside a furnace to reach a desired temperature..
 
#..and pressure on ignition
 
 
 
# This script requires perfect fuel (O2 + 2 H2)
 
# The diluting gas can be anything, even a mix
 
# Temperature of fuel and dilutant can be different
 
# BLUE color = dilutant must provide missing oxygen
 
# ORANGE color = gas will ignite
 
 
 
#Inputs are desired temperature (K) and pressure (kPa)
 
#Outputs are the pressure of fuel (kPa) and the..
 
#..total pressure (kPa) after adding the dilutant
 
 
 
alias inputTemp d0          #logic memory
 
alias inputPres d1          #logic memory
 
alias outputFuel d2        #console, small LED
 
alias outputTotal d3        #console, small LED
 
alias fuelAnalyzer d4      #pipe analyzer
 
alias dilutantAnalyzer d5  #pipe analyzer
 
 
 
alias oldTmix r10
 
alias Tmix r11
 
alias fuelSpecificHeat r12
 
alias dilutantSpecificHeat r13
 
alias ratioFuel r14
 
alias pressureTotal r15
 
s outputTotal Color 1
 
 
 
main:
 
yield
 
s outputFuel Color 3
 
#calculate specific heat values
 
div r0 61.9 3
 
move fuelSpecificHeat r0
 
jal specficHeatCalculation
 
#calculate how to reach input values
 
l r5 fuelAnalyzer Temperature
 
l r6 inputTemp Setting
 
l r7 dilutantAnalyzer Temperature
 
move oldTmix r5
 
move r9 5
 
iterate:
 
jal fuelRatioCalculation
 
jal temperatureMixCalculation
 
sub r9 r9 1
 
move oldTmix Tmix
 
blt r9 1 iterate
 
#calculate total fuel+dilutant pressure
 
l r8 inputPres Setting
 
mul r1 ratioFuel 1.9
 
add r1 r1 1
 
mul r1 r1 r6
 
mul r0 r8 Tmix
 
div pressureTotal r0 r1
 
#calculate fuel pressure
 
mul r0 r5 pressureTotal
 
mul r0 ratioFuel r0
 
div r0 r0 Tmix
 
#calculate dilutant pressure (not used)
 
#sub r1 1 ratioFuel
 
#mul r1 r1 pressureTotal
 
#mul r1 r1 r7
 
#div r1 r1 Tmix
 
#check for too high input temperature
 
blt pressureTotal r0 noCombustion
 
#display result
 
bltal ratioFuel 0.15 dilutantMustHaveOxygen
 
bltal ratioFuel 0.10 noCombustion
 
s outputFuel Setting r0
 
s outputTotal Setting pressureTotal
 
j main
 
noCombustion:
 
s outputFuel Setting -1
 
s outputTotal Setting -1
 
j main
 
dilutantMustHaveOxygen:
 
s outputFuel Color 0
 
j ra
 
 
 
fuelRatioCalculation:
 
div r0 563452 3
 
sub r4 fuelSpecificHeat dilutantSpecificHeat
 
mul r1 Tmix r4
 
add r0 r0 r1
 
mul r1 r6 r4
 
sub r0 r0 r1
 
div r1 172.615 3
 
mul r1 r6 r1
 
sub r0 r0 r1
 
sub r1 r6 Tmix
 
mul r1 r1 dilutantSpecificHeat
 
div ratioFuel r1 r0
 
j ra
 
temperatureMixCalculation:
 
sub r4 1 ratioFuel
 
mul r0 dilutantSpecificHeat r4
 
mul r1 ratioFuel fuelSpecificHeat
 
add r3 r0 r1
 
mul r0 r7 r4
 
mul r0 r0 dilutantSpecificHeat
 
mul r1 r5 ratioFuel
 
mul r1 r1 fuelSpecificHeat
 
add r0 r0 r1
 
div Tmix r0 r3
 
j ra
 
specficHeatCalculation:
 
l r5 d5 RatioOxygen
 
l r6 d5 RatioVolatiles
 
l r7 d5 RatioCarbonDioxide
 
l r8 d5 RatioPollutant
 
l r9 d5 RatioNitrogen
 
l r10 d5 RatioNitrousOxide
 
bne r5 r5 noCombustion #protection against null
 
mul r0 r5 21.1
 
mul r1 r6 20.4
 
add r0 r0 r1
 
mul r1 r7 28.2
 
add r0 r0 r1
 
mul r1 r8 24.8
 
add r0 r0 r1
 
mul r1 r9 20.6
 
add r0 r0 r1
 
mul r1 r10 23
 
add dilutantSpecificHeat r0 r1
 
j ra
 
 
 
### End Script ###
 
 
 
</pre>
 
</div>
 
  
 
=== Furnace behaviour ===
 
=== Furnace behaviour ===
*Only the gas inside the furnace have a temperature (the furnace itself has no temperature, nor will it take heat away from the gas inside)
+
*Only the gas inside the furnace have temperature, the furnace itself do not, nor does it take any energy from the gas.
*No side reactions have been observed (fuel can be mixed with any other gas with predictable results)
+
*For a combustion to occur, there must be at least 5% each of both O2 and H2
*For a combustion to occur, the gas must have at least 5% each of both O2 and H2
+
*For a combustion to occur, there must be a minumum pressure of ? kPa ''(not investigated yet)''
*For a combustion to occur, there must be a minimum pressure of 10 kPa ''(0.2.2733.13309 changelog)''
 
 
*A combustion will consume 95% of the limiting ingredient, O2 or H2 (if there is 10 mol H2, and excess O2, 0.5 mol H2 will remain afterwards)
 
*A combustion will consume 95% of the limiting ingredient, O2 or H2 (if there is 10 mol H2, and excess O2, 0.5 mol H2 will remain afterwards)
*Combustion reaction formula: 1 O2 + 2 H2 -> 6 CO2 + 3 X + 593 107.3684 J ''(this energy value is an approximation, see discussions for details)''
+
*Combustion reaction formula: 1 O2 + 2 H2 -> 6 CO2 + 3 X + 595kJ ''(see discussions for the 595kJ value)''
*Each press of ignite adds 5 J of energy to the furnace (only the advanced furnace was tested) ''(see discussions)''
+
*No side reactions have been observed so far
*A furnace, as any other device with internal atmosphere, except insulated ones, constantly radiates temperature into void, even when built in a sealed room with vacuum or inside a fully welded frame. This should simulate entropy and radiative heat exchange with space, but does not account if device is placed in a room. And also this does not increase temperature when it's lower than global atmosphere's temperature.
 
*Ores placed in a furnace will release gases, this reduces the temperature and increases the mols of gas.
 
*Ingots placed in a furnace will reduce the temperature (~half compared to the ore, only copper tested) without releasing gas.
 
*Inserted ores/ingots are processed at a speed of 10 per second, so 5 seconds per stack of 50.
 
  
 
Regular furnace
 
Regular furnace
Line 247: Line 19:
 
*Unlike the regular furnace, the advanced one always have a volume of 1000 L, regardless of how many pipes are attached to it. This saves a little bit of fuel.
 
*Unlike the regular furnace, the advanced one always have a volume of 1000 L, regardless of how many pipes are attached to it. This saves a little bit of fuel.
  
=== Known errors of the math formulas ===
 
  
The formulas were created by hand, no data mining or peeking into the game code.
+
=== Using perfect 2:1 fuel ===
<br>The calculation for temperature and pressure of a gas mix have a tiny unexplained error that can appear in the 6th digit and it's most noticeable at very low fuel pressures.
 
<br>The reverse calculation (to know how much fuel and diluting gas to add to reach a desired temperature and pressure) requires iteration in order to calculate the temperature obtained after mixing the fuel and the dilutant, but the impact of the starting temperature is still pretty small to begin with, and after a few iterations this error will become negligible.
 
 
 
 
 
=== Using perfect O2 + 2 H2 fuel ===
 
The amount of fuel that combusts has no impact on the final temperature. Only the purity of the fuel (more on dirty fuel in the next section) and the temperature of the fuel matters, but the latter can be ignored for practical purposes (only around 3% difference in combustion temperature between fuel that is 1K and fuel that has room temperature). More fuel will always release more total energy, which means it takes increasingly longer for the furnace to cool down.
 
  
 
'''Temperature peak'''
 
'''Temperature peak'''
  
*T(after) = ( T(before)*61.9 + 563452 ) / 234.515
+
*T(after) = ( T(before)*61.9 + 565250 ) / 234.515
 
**T(after) is the temperature in Kelvin after ignition
 
**T(after) is the temperature in Kelvin after ignition
 
**T(before) is the temperature in Kelvin before ignition
 
**T(before) is the temperature in Kelvin before ignition
**The 563452 value is the released energy per mol at 95% combustion efficiency, the full energy isn't released
+
**The 565250 value is because of the 95% combustion efficiency, the full 595kJ isn't released
 
**61.9 is the heat capacity for 1 mol O2 and 2 mol H2, the sum of their specific heat values, the mol amounts comes from the reaction formula
 
**61.9 is the heat capacity for 1 mol O2 and 2 mol H2, the sum of their specific heat values, the mol amounts comes from the reaction formula
 
**234.515 is the heat capacity for the gas obtained when 1 mol O2 and 2 mol H2 combusts with 95% efficiency (243.6 * 0.95 + 61.9 * 0.05)  
 
**234.515 is the heat capacity for the gas obtained when 1 mol O2 and 2 mol H2 combusts with 95% efficiency (243.6 * 0.95 + 61.9 * 0.05)  
*The equation can be arrived at by using the released energy per mol and the specific heat per mol of the mixture before and after combustion, also account for the 95% combustion efficiency.
+
*The number of mol combusted doesn't actually matter for the temperature, it will always reach the same value. More fuel will however release more total energy which means it takes longer for the furnace to cool down.
  
 
'''Pressure peak'''
 
'''Pressure peak'''
Line 275: Line 40:
 
**T(before) is the temperature in Kelvin before ignition
 
**T(before) is the temperature in Kelvin before ignition
 
**2.9 is the multiple of the number of mol inside the furnace after combustion with 95% efficiency based on the reaction formula
 
**2.9 is the multiple of the number of mol inside the furnace after combustion with 95% efficiency based on the reaction formula
*The equation can be made from two sets of PV=nRT (one before and one after combustion), linking them via n (combustion makes 3 mols of gas turn into 9 mols), and adjust for the 95% combustion efficiency.
 
  
  
 
=== Using diluted fuel ===
 
=== Using diluted fuel ===
[[File:Advanced-furnace-gas-mixing.png|thumb|gas mixing for 2H2+O2+dilutant]]
+
 
Dirty fuel combusts at a lower temperature, the non-combustible gases also helps to increase the pressure. This can be very useful. Adding unreactive gases to a furnace on purpose means that the combustion temperature will be lower and the pressure higher, which helps when making certain alloys. An excess of either oxygen or volatiles will also count as unreactive since they don't take part in the combustion.
+
Unreactive gases can be added before the ignition to increase pressure and decrease temperature. An excess of either O2 or H2 also counts as unreactive.
  
 
'''Temperature peak'''
 
'''Temperature peak'''
  
*T(after) = ( T(before) * sum(specific heat * ratio(gas)(before)) + min(ratio(O2), ratio(H2)*0.5) * 563452 ) / ( sum(specific heat * ratio(gas)(before)) + min(ratio(O2), ratio(H2)*0.5) * 172.615)
+
*T(after) = ( T(before) * sum(specific heat * ratio(gas)(before)) + min(ratio(O2), ratio(H2) * 0.5) * 0.95 * 595000 ) / ( sum(specific heat * ratio(gas)(before)) + min(ratio(O2), ratio(H2)*0.5) * 0.95 * 181.7)
 
**T(after) is the temperature in Kelvin after ignition
 
**T(after) is the temperature in Kelvin after ignition
 
**T(before) is the temperature in Kelvin before ignition
 
**T(before) is the temperature in Kelvin before ignition
**sum(x*y) is the sum of all x*y products, used to calculate the total sum of each gas specific heat multiplied with its ratio
+
**sum(x*y) is the sum of all x*y products, one product for every gas in the mix, before ignition
**specific heat is the value given for each gas, it refers to how much energy that is needed to increase the temperature by 1K per mol
+
**specific heat is the value given for each gas, it's how much energy is needed to increase the temperature by 1K/mol
 
**ratio(gas)(before) is the molecular ratio, given by the tablet as % values for each gas in the mix, before ignition
 
**ratio(gas)(before) is the molecular ratio, given by the tablet as % values for each gas in the mix, before ignition
 
**min(x,y) returns the smallest value of x and y
 
**min(x,y) returns the smallest value of x and y
**563452 comes from the energy released when 1 mol O2 and 2 mol H2 combusts with 95% efficiency
+
**181.7 comes from 243.6-61.9, the increase in heat capacity (specific heat*number of mol) when 1 mol of O2 and 2 mol of H2 is combusted to 100%
**172.615 comes from 0.95*(243.6-61.9), this is the change in heat capacity (specific heat*number of mol) of the gas when 1 mol O2 and 2 mol H2 combusts with 95% efficiency into its new compounds
 
 
**The equation comes from calculating the Thermal Energy (temperature*specific heat per mol) before combustion, add the released energy calculated from the ratio of O2, then divide with the ''specific heat per mol'' of the gas obtained after combustion, which is known thanks to the reaction formula, all of this becomes the temperature on ignition
 
**The equation comes from calculating the Thermal Energy (temperature*specific heat per mol) before combustion, add the released energy calculated from the ratio of O2, then divide with the ''specific heat per mol'' of the gas obtained after combustion, which is known thanks to the reaction formula, all of this becomes the temperature on ignition
 
same thing but possibly easier to read
 
*T(after) = ( T(before) * specificHeat(before) + fuel * 563452 ) / ( specificHeat(before) + fuel * 172.615)
 
**specificHeat(before) = RatioOxygen*21.1 + RatioVolatile*20.4 + RatioCarbonDioxide*28.2 + RatioPollutant*24.8 + RatioNitrogen*20.6 + RatioNitrousOxide*23
 
**fuel = min(RatioOxygen,RatioVolatile/2)
 
**Notice that water isn't included. That's because this haven't been verified, but water is probably treated as a gas by the game so a good guess is that it can be included simply by adding RatioWater*72 to the specificHeat sum.
 
  
 
'''Pressure peak'''
 
'''Pressure peak'''
Line 305: Line 62:
 
*P(after) = P(before) * T(after) * ( 1 + 5.7*min(ratio(O2), ratio(H2)*0.5) ) / T(before)
 
*P(after) = P(before) * T(after) * ( 1 + 5.7*min(ratio(O2), ratio(H2)*0.5) ) / T(before)
 
**this expression comes from two sets of PV=nRT, one after and one before combustion. The reaction formula say that for each mol consumed O2 we gain 6 mol gas (9-3), this creates a link between the equations, n(after) = n(before)*(1+min(ratio(O2), ratio(H2)*0.5)*6), then include the 0.95 efficiency as well
 
**this expression comes from two sets of PV=nRT, one after and one before combustion. The reaction formula say that for each mol consumed O2 we gain 6 mol gas (9-3), this creates a link between the equations, n(after) = n(before)*(1+min(ratio(O2), ratio(H2)*0.5)*6), then include the 0.95 efficiency as well
 +
  
 
=== Using Ice(Oxite) and Ice(Volatiles) ===
 
=== Using Ice(Oxite) and Ice(Volatiles) ===
Line 515: Line 273:
  
 
Observations
 
Observations
*the rate of cooling is temperature dependent, hotter cools faster  
+
*the rate of cooling is temperature dependent, hotter cools faster (furnace temp - surrounding temp? how do vaccum behave?)
* Furnaces do not lose heat through conduction if in a vacuum.  This can be very useful for recipes that have tight temperature or pressure windows, although you will have to have an alternate mechanism to tweak the values if you overshoot (such as a valve leading to a pipe with a radiator out in the atmosphere, or a backpressure regulator).
 
 
*the rate of cooling is time dependent (game tick speed is once per 0.5 seconds)
 
*the rate of cooling is time dependent (game tick speed is once per 0.5 seconds)
 
*the rate of cooling is mol dependent (small amounts cool faster)
 
*the rate of cooling is mol dependent (small amounts cool faster)
Line 525: Line 282:
 
*Hold a tablet with an atmos cartridge in the right hand (so it can be read when the game is paused). Aim the tablet against the furnace and pause with ESC, double tap ESC to move the game forward one tick, record the temperatures.
 
*Hold a tablet with an atmos cartridge in the right hand (so it can be read when the game is paused). Aim the tablet against the furnace and pause with ESC, double tap ESC to move the game forward one tick, record the temperatures.
 
*Remember to record the ''total amount of moles'' as well
 
*Remember to record the ''total amount of moles'' as well
 +
 +
 +
=== Resetting the furnace ===
 +
Since only gas have temperature, evacuating all gas means resetting the temperature.
 +
  
 
=== Calculating how to reach a desired Temperature and Pressure on ignition ===
 
=== Calculating how to reach a desired Temperature and Pressure on ignition ===
Line 534: Line 296:
 
#The specific heat value of the gas used to dilute the fuel (if a mix of gases is used, the specific heat to use is the average specific heat per mol, example calculation below)
 
#The specific heat value of the gas used to dilute the fuel (if a mix of gases is used, the specific heat to use is the average specific heat per mol, example calculation below)
  
<br>The equations will give these results
+
The equations will give these results
 
#The ratio(fuel) in the fuel-dilutant mix. (0.75 means 75% perfect 1:2 fuel mols (O2 and H2 added together)†, the other 25% will be dilutant gas mols, making it a 1:2:1 mix of O2:H2:dilutant)
 
#The ratio(fuel) in the fuel-dilutant mix. (0.75 means 75% perfect 1:2 fuel mols (O2 and H2 added together)†, the other 25% will be dilutant gas mols, making it a 1:2:1 mix of O2:H2:dilutant)
 
#The total pressure of the fuel-dilutant mix inside the furnace before ignition
 
#The total pressure of the fuel-dilutant mix inside the furnace before ignition
 
†It's helpful to separate out the fuel part like this since everyone should be using pre-mixed fuel, it makes the diluting easier and has a lower risk to cause confusion when using either O2 or H2 to be the dilutant gas
 
†It's helpful to separate out the fuel part like this since everyone should be using pre-mixed fuel, it makes the diluting easier and has a lower risk to cause confusion when using either O2 or H2 to be the dilutant gas
  
To freely control the temperature and pressure, the fuel must be diluted with a non-combustible gas. This can be added either before or after ignition, doing so before ignition makes it a lot easier to predict, doing so after ignition is more of an art than a science (it depends on how the furnace is built and how fast the operator can work). The method prefered here is to add the non-combustible gas before ignition.  
+
To freely control the temperature and pressure, the fuel must be diluted with a non-combustable gas. This can be added either before or after ignition, doing so before ignition makes it alot easier to predict, doing so after ignition is more of an art than a science (it depends on how the furnace is built and how fast the operator can work). The method prefered here is to add the non-combustable gas before ignition.  
  
 
Diluting the fuel can be done in the furnace directly or in pipes outside of it. There are good and bad points with both ways. Diluting outside fits the advanced furnace best (the built-in volume pump can easily move all of the prepared gas inside), diluting inside fits the regular furnace best (the exhaust outlet can be used as an inlet but it's a little bit quirky, and diluting in pipes outside means not all of the prepared gas can be moved into the furnace (the pipe directly on the furnace inlet will hold on to some of the diluted fuel) so extra gas must always be prepared).
 
Diluting the fuel can be done in the furnace directly or in pipes outside of it. There are good and bad points with both ways. Diluting outside fits the advanced furnace best (the built-in volume pump can easily move all of the prepared gas inside), diluting inside fits the regular furnace best (the exhaust outlet can be used as an inlet but it's a little bit quirky, and diluting in pipes outside means not all of the prepared gas can be moved into the furnace (the pipe directly on the furnace inlet will hold on to some of the diluted fuel) so extra gas must always be prepared).
  
It is worth noting that for some temperatures and pressures suitable for advanced alloys, the calculation can suggest a fuel ratio below 0.15. This will not work however, since it means having less than 5% oxygen, that mix will not combust (unless the dilutant contains extra oxygen). This is a particular problem with '''Waspaloy''' (400-800K, 50+MPa), that can be solved by having oxygen in the diluting gas (a 5% ratio, having more doesn't help), but it's easier to just ignite the furnace prematurely and then finish adding the remaining dilutant.
+
It is worth noting that for some temperatures and pressures suitable for advanced alloys, the calculation can suggest a fuel ratio below 0.15. This will not work however, since it means having less than 5% oxygen, that mix will not combust (unless the dilutant contains extra oxygen).  
  
The dilution can be always be double checked by using the tablet and looking at the mol% values for the fuel mix. If the outlet on the regular furnace was used as an inlet, the first gas that entered there will have been mostly pushed back into the furnace, making the mol% values different but the total number of mol are still the same.
+
The dilution can be double checked by using the tablet and looking at the mol% values for the fuel mix. If the outlet on the regular furnace was used as an inlet, the first gas that entered there will have been mostly pushed back into the furnace, making the mol% values diffrent but the total number of mol are still the same.
  
 
'''Calculating the fuel ratio'''
 
'''Calculating the fuel ratio'''
  
*ratio(fuel) = s*( T(after) - T(before) ) / ( 187817 + T(before)*(20.633 - s) - T(after)*(78.172 - s) )
+
*ratio(fuel) = n(fuel)/( n(fuel)+n(dilutant) ) = s*( T(after) - T(before) ) / ( T(before)*(61.9/3-s) + (0.95*595000/3) - T(after)*(61.9/3-s) - T(after)*(0.95*181.7/3) )
**ratio(fuel), 1 = 100% fuel which is 33.33% O2 and 66.67% H2
+
**ratio(fuel), 1 = 100% fuel = 33.3% O2 and 66.7% H2
**T(after) is the chosen temperature after ignition, in K
+
**T(after) is the chosen temperature after ignition
**T(before) is the furnace temperature before ignition, in K
+
**T(before) is the furnace temperature before ignition
 
**s = specific heat of diluting gas
 
**s = specific heat of diluting gas
 
***if the dilutant is a mix of gases, calculate the average specific heat in that mix per mol
 
***if the dilutant is a mix of gases, calculate the average specific heat in that mix per mol
 
***example: 15% N2 and 85% CO2 as dilutant -> specific heat = 0.15*20.6 + 0.85*28.2 = 27.06
 
***example: 15% N2 and 85% CO2 as dilutant -> specific heat = 0.15*20.6 + 0.85*28.2 = 27.06
 +
**n(fuel) = total mols of fuel = n(O2)+n(H2) together (always in the perfect 1:2 ratio, if either O2 or H2 are in excess the extra amount is considered a dilutant)
 +
**n(dilutant) = total mols of non-combusting gas (this can be an excess of O2 or H2 if that is used as dilutant)
 
*This equation comes from the equation under ''Using diluted fuel'', it was arrived at by doing the following things
 
*This equation comes from the equation under ''Using diluted fuel'', it was arrived at by doing the following things
**ratio(fuel) was introduced (which is 3 times higher than min(ratio(O2),ratio(H2)*0.5), everyone should be using pre-mixed fuel so this should make things simpler, having 1 represent 100% fuel is also more intuitive than having 0.333 mean 100% fuel
+
**ratio(fuel) was introduced (which is 3 times higher than min(ratio(O2),ratio(H2)*0.5), everyone should be using pre-mixed fuel so this should make things simpler, having 1 represent 100% fuel is also more intutive than having 0.333 mean 100% fuel
**everything is calculated per 1 mol fuel here, the original one uses per 3 mol fuel (1 mol O2 + 2 mol H2), so several values must be divided by 3
 
 
**the dilutant (even a mix) can be treated as a single gas, which turns ''sum(specific heat * mol of gas (before))'' into ''ratio(fuel)*(specific heat(O2)+2*specific heat(H2) )/3 + (1-ratio(fuel))*specific heat(dilutant)''
 
**the dilutant (even a mix) can be treated as a single gas, which turns ''sum(specific heat * mol of gas (before))'' into ''ratio(fuel)*(specific heat(O2)+2*specific heat(H2) )/3 + (1-ratio(fuel))*specific heat(dilutant)''
**min(ratio(O2),ratio(H2)*0.5) will now always be ratio(fuel)/3, so it can be replaced with that
+
**61.9/3 is the specific heat for the 2:1 fuel per mol fuel, the 181.7 value was explained under ''Using diluted fuel'' above
**without any rounding the formula is: ratio(fuel) = s*(T(after) - T(before)) / ( T(before)*(61.9/3-s) + (0.95*593107.3684/3) - T(after)*(61.9/3-s) - T(after)*(0.95*181.7/3) )
+
**min(ratio(O2),ratio(H2)*0.5) will now always output ratio(fuel)/3, so it can be replaced with that
  
 
'''Calculating the pressure before ignition'''
 
'''Calculating the pressure before ignition'''
  
*P(before) = P(after)*T(before) / ( T(after) * (1 + ratio(fuel)*1.9) )
+
*P(before) = P(after)*T(before) / ( T(after) * (1 + ratio(fuel)*2*0.95) )
 
**ratio(fuel) is the result from the temperature calculation above
 
**ratio(fuel) is the result from the temperature calculation above
**P(after) = the chosen pressure value, in Pa
+
**P(after) = desired value, in Pa
**T(before) = temperature of fuel mix in the furnace before ignition, in K
+
**T(before) = temperature of fuel mix in the furnace before ignition
**T(after) = the chosen value used in the temperature calculation above, in K
+
**T(after) = the chosen value used in the temperature calculation above
*This equation was arrived at by starting with the one under ''Using diluted fuel'' and replacing min(ratio(O2),ratio(H2)*0.5) with ratio(fuel)/3
 
  
 
'''Diluting fuel'''
 
'''Diluting fuel'''
  
Mixing gas is temperature sensitive. This is because pressure is used as an indirect measure of the amount of mol (n=PV/(RT)) being transferred, and pressure is also dependent on temperature. It is however possible to get around this issue with a bit of math.
+
Mixing gas is temperature sensitive. This is because pressure is used as an indirect measure of the amount of mol (n=PV/(RT)) being transfered, and pressure is also dependent on temperature. It is however possible to get around this issue with a bit of math.
  
'''A)''' When fuel and dilutant have the same temperature
+
A) Same temperature of fuel and dilutant
 
*Add the fuel
 
*Add the fuel
 
**fuel pressure = ratio(fuel) * P(before)
 
**fuel pressure = ratio(fuel) * P(before)
 
*Add the dilutant until the pressure P(before) is reached  
 
*Add the dilutant until the pressure P(before) is reached  
  
'''B)''' When fuel and dilutant have different temperature
+
B) Different temperature of fuel and dilutant
 
*T(mix) = sum( T(before)*ratio(after)*sh ) / sum( ratio(after)*sh )
 
*T(mix) = sum( T(before)*ratio(after)*sh ) / sum( ratio(after)*sh )
 
**T(mix) is the temperature after combining all gases
 
**T(mix) is the temperature after combining all gases
Line 589: Line 351:
  
 
''(same thing, different way of writing it)''
 
''(same thing, different way of writing it)''
*T(mix) = ( T(fuel)*ratio(fuel)*20.633 + T(dilutant)*ratio(dilutant)*s ) / ( ratio(fuel)*20.633 + ratio(dilutant)*s )
+
*T(mix) = ( T(fuel)*ratio(fuel)*61.9/3 + T(dilutant)*ratio(dilutant)*s ) / ( ratio(fuel)*61.9/3 + ratio(dilutant)*s )
 
**T(mix) is the temperature ''after'' combining the fuel and dilutant
 
**T(mix) is the temperature ''after'' combining the fuel and dilutant
 
**T(fuel) is the temperature of the fuel ''before'' mixing
 
**T(fuel) is the temperature of the fuel ''before'' mixing
Line 616: Line 378:
 
It's a warm and sunny day on Europa and a stationeer wants to make some invar. The desired temperature and pressure will be chosen as be the upper limit for invar, so 1500K and 20MPa. Adding ore to the furnace will reduce its temperature and increase the amount of gas (and pressure) inside of it, but the stationeer hopes that 100g of invar will be too little to have much of an effect. The furnace is exposed to the atmosphere and will be loosing temperature and pressure fairly fast which could be an issue, but making the alloy should be quick enough. The dilutant gas will be pure O2 from the atmosphere, which has a specific heat value of 21.1. The starting temperature of the fuel and the atmosphere are both at -140°C.
 
It's a warm and sunny day on Europa and a stationeer wants to make some invar. The desired temperature and pressure will be chosen as be the upper limit for invar, so 1500K and 20MPa. Adding ore to the furnace will reduce its temperature and increase the amount of gas (and pressure) inside of it, but the stationeer hopes that 100g of invar will be too little to have much of an effect. The furnace is exposed to the atmosphere and will be loosing temperature and pressure fairly fast which could be an issue, but making the alloy should be quick enough. The dilutant gas will be pure O2 from the atmosphere, which has a specific heat value of 21.1. The starting temperature of the fuel and the atmosphere are both at -140°C.
  
*ratio(fuel) = s*( T(after) - T(before) ) / ( 187817 + T(before)*(20.633 - s) - T(after)*(78.172 - s) )
+
*ratio(fuel) = s*(T(after) - T(before)) / ( T(before)*(61.9/3-s) + (0.95*595000/3) - T(after)*(61.9/3-s) - T(after)*(0.95*181.7/3) )
 
**s = specific heat of the dilutant = 21.1
 
**s = specific heat of the dilutant = 21.1
 
**T(after) = 1500K (this is the chosen value)
 
**T(after) = 1500K (this is the chosen value)
 
**T(before) = -140C = 133K (temperature inside the furnace before ignition)
 
**T(before) = -140C = 133K (temperature inside the furnace before ignition)
*ratio(fuel) = 0.28237
+
*ratio(fuel) = 0.281
*This is high enough for combustion to occur
 
**H2 is the limiting gas so %H2 must be at least 5%, the minimum value can be expressed as %H2 = ratio(fuel)*2/3 = 5%, solving for ratio(fuel) gives us 0.075, which is the lowest ratio(fuel) at which combustion can occur
 
  
 
The necessary pressure of the pre-ignition fuel mix inside the furnace will be
 
The necessary pressure of the pre-ignition fuel mix inside the furnace will be
*P(before) = P(after)*T(before) / ( T(after) * (1 + ratio(fuel)*1.9) )
+
*P(before) = P(after)*T(before) / ( T(after) * (1 + ratio(fuel)*2*0.95) )
**ratio(fuel) = 0.28237
+
**ratio(fuel) = 0.281
 
**P(after) = 20MPa (this is the chosen value)
 
**P(after) = 20MPa (this is the chosen value)
 
**T(before) = -140C = 133K
 
**T(before) = -140C = 133K
 
**T(after) = 1500K (this is the chosen value used in the temperature calculation)
 
**T(after) = 1500K (this is the chosen value used in the temperature calculation)
*P(before) = 1154.1kPa
+
*P(before) = 1156.5kPa
  
 
Dilution calculations
 
Dilution calculations
 
*The needed pressure of pure fuel inside the furnace will be
 
*The needed pressure of pure fuel inside the furnace will be
**P(fuel) = ratio(fuel) * P(before) = 0.28237 * 1154.1kPa = 325.88kPa
+
**P(fuel) = ratio(fuel) * P(before) = 0.281 * 1156.5kPa = 325kPa
*The dilutant will then be added to the furnace to reach the P(before) pressure at 1.16MPa (1154kPa rounded up)
+
*The dilutant will then be added to the furnace to reach the P(before) pressure at 1.16MPa
 
*The ratio of H2 inside the furnace before ignition can be checked with the tablet, it should be
 
*The ratio of H2 inside the furnace before ignition can be checked with the tablet, it should be
**ratio(H2) = 0.28237 * 2/3 = 0.188 = 19%
+
**ratio(H2) = 0.281 * 2/3 = 0.187 = 19%
 
 
This was tested in practice. After adding fuel and dilutant the game was saved, then the furnace was ignited. Adding the ores reduced the temperature and increased the pressure a bit, which pushed the pressure up above 20MPa and out of the needed range. After waiting for the pressure to drop back down, the temperature was still high enough to make the desired alloy with several seconds to spare. In hindsight, 20MPa was a bit too high and 1500K a bit too low, better values could definitely have been chosen.
 
 
 
Reloading the save and placing the furnace inside a welded frame to insulate it (no loss of temperature or pressure) showed the following. The furnace reached 1477K and 19.90MPa after ignition. The fuel was added with a regulator (the furnace showed: 325kPa, 133K), the fuel mix was decent but not a perfect 1:2. Then the diluting O2 was added, it was slightly too cold (the furnace now showed: 1.16MPa, 130K), so a bit too much dilutant was added to the furnace (since cold gas has a lower pressure). The dilutant was inserted via the furnace outlet, checking the mol% with the tablet showed 3% H2 in the outlet pipe and 20% inside the furnace instead of 19% in both, the total number of H2 mol was unchanged. The temperature and pressure was really close to the calculated ones, even though the execution was a bit sloppy. The observed loss of temperature could be explained by using too much dilutant, using a lower starting temperature and a flawed fuel mix. The lower pressure is related to the temperature, going from 1500K to 1477K should mean -1.5% reduction in pressure, but the change was just -0.5%, an indication that too much dilutant had been added.
 
 
 
 
 
===Charts for fuel and dilutant mixes at 25°C===
 
 
 
{| class="wikitable"
 
! colspan="4" |'''Pure fuel at 25°C (perfect mix, 33.33% O2 and 66.67% H2)'''
 
|-
 
! colspan="1" rowspan="1" |'''Temperature (K)'''
 
! colspan="1" rowspan="1" |'''Pressure'''
 
! colspan="1" rowspan="1" |'''Fuel (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Comment'''
 
|-
 
| 2481 K
 
| 1.5 MPa
 
| 62 kPa
 
|
 
|-
 
| 2481 K
 
| 22 MPa
 
| 911 kPa
 
|
 
|-
 
| 2481 K
 
| 60 MPa
 
| 2485 kPa
 
| Explosion warning
 
|}
 
 
 
 
 
{| class="wikitable"
 
! colspan="6" |'''Perfect fuel diluted with CO2 (specific heat = 28.5, highest value)'''
 
|-
 
! colspan="1" rowspan="1" |'''Temperature (K)'''
 
! colspan="1" rowspan="1" |'''Pressure'''
 
! colspan="1" rowspan="1" |'''Fuel (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Dilutant (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Fuel + Dilutant (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Comment'''
 
|-
 
| 550 K
 
| 1.5 MPa
 
| 34 kPa
 
| 715 kPa
 
| 749 kPa
 
| Will not ignite (must ignite before all dilutant is added)
 
|-
 
| 1200 K
 
| 1.5 MPa
 
| 54.5 kPa
 
| 214.5 kPa
 
| 269 kPa
 
|
 
|-
 
| 1200 K
 
| 22 MPa
 
| 800 kPa
 
| 3144 kPa
 
| 3944 kPa
 
|
 
|-
 
| 1500 K
 
| 19 MPa
 
| 731 kPa
 
| 1655 kPa
 
| 2386 kPa
 
|
 
|}
 
  
 +
The added ores reduced the temperature and increased the pressure a bit, pushing the pressure up above 20MPa and out of the needed range. After waiting for the pressure to drop back down, the temperature was still high enough to produce the desired alloy. In hindsight, 20MPa was a bit too high and 1500K a bit too low, but it was good enough to make 100g of invar.
  
{| class="wikitable"
+
Reloading the save and placing the furnace inside a welded frame to insulate it (no loss of temperature or pressure) showed the following. The furnace reached 1477K and 19.90MPa after ignition. The correct fuel amount was pretty much spot on (furnace showed: 325kPa, 133K) but it wasn't a perfect 1:2 mix. The diluting O2 was slightly too cold (furnace now showed: 1.16MPa, 130K), so slightly too much dilutant ended up being added (since cold gas has lower pressure). The dilutant was inserted via the furnace outlet, checking the mol% with the tablet showed 3% H2 in the outlet pipe and 20% inside the furnace instead of 19% in both, the total number of H2 mol was unchanged. The observed loss of temperature is a result from using too much dilutant, using a lower starting temperature and a flawed fuel mix. But it's still very close to the desired value. The lower pressure is related to the temperature, going from 1500K to 1477K should mean -1.5% pressure, but the change was just -0.5%, another indication that too much dilutant had been added. Everything was built outdoors and exposed to the daily temperature cycle.
! colspan="6" |'''Perfect fuel diluted with H2 (specific heat = 20.4, lowest value)'''
 
|-
 
! colspan="1" rowspan="1" |'''Temperature (K)'''
 
! colspan="1" rowspan="1" |'''Pressure'''
 
! colspan="1" rowspan="1" |'''Fuel (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Dilutant (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Fuel + Dilutant (25°C, 298K)'''
 
! colspan="1" rowspan="1" |'''Comment'''
 
|-
 
| 550 K
 
| 1.5 MPa
 
| 25 kPa
 
| 740 kPa
 
| 765 kPa
 
| Will not ignite (must ignite before all dilutant is added)
 
|-
 
| 1200 K
 
| 1.5 MPa
 
| 44.5 kPa
 
| 243.5 kPa
 
| 288 kPa
 
|
 
|-
 
| 1200 K
 
| 22 MPa
 
| 652 kPa
 
| 3572 kPa
 
| 4224 kPa
 
|
 
|-
 
| 1500 K
 
| 19 MPa
 
| 624 kPa
 
| 1966 kPa
 
| 2590 kPa
 
|
 
|}
 

Please note that all contributions to Unofficial Stationeers Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Unofficial Stationeers Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)