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: | ||
− | === | + | === 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) | |
+ | *No side reactions have been observed (fuel can be mixed with any other gas with predictable results) | ||
+ | *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 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) | ||
+ | *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)'' | ||
+ | *Each press of ignite adds 5 J of energy to the furnace (only the advanced furnace was tested) ''(see discussions)'' | ||
+ | *A furnace built in a sealed room with vacuum will not loose temperature (this is seen during the furnace tutorial), nor will a furnace built partially/completely inside a fully welded frame. | ||
+ | *Ores placed in a furnace will release gases, this reduces the temperature and increases the mols of gas inside the furnace. | ||
+ | *Ingots placed in a furnace will reduce the temperature (~half compared to the ore, only copper tested) without releasing gases. | ||
+ | *Inserted ores/ingots are processed at a speed of 10 per second, so 5 seconds per stack of 50. | ||
+ | |||
+ | Regular furnace | ||
+ | *The inlet pipe will only allow gas to enter the furnace, and it will only do so if the pressure in the pipe is higher than the pressure inside the furnace. This behaviour is similar to that of the pressure regulator. | ||
+ | *The outlet pipe acts like an extension of the furnace, increasing it's volume by 100L per pipe section, and it can be used as an alternative inlet point if so desired (but it acts a little bit quirky, the pipe and the furnace will have different %gas proportions when doing so, because the gas will only move when there is a pressure difference between the two). A larger furnace volume basically only means it will require a bit more gas, +10% more mol for each unsealed pipe section attached to it, everything else will be the same. The number of junctions on a pipe doesn't matter, the volume is always 100L. | ||
+ | *Removing pipes connected to the outlet side should be avoided when the furnace is filled with fuel, doing so can cause some of the gas to vanish permanently. | ||
+ | |||
+ | Advanced furnace | ||
+ | *The inlet pipe is the only place where gas can enter the furnace (not counting the ore slot). It has a built in volume pump. | ||
+ | *The outlet pipe is the only place where gas can exit the furnace. It has a built in volume pump. | ||
+ | *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 === | |
− | <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 | + | The following formulas were created by hand, no data mining or peeking into the game code. They have a tiny unexplained error that can appear in the 6th digit (so at most 0.01% wrong when values are rounded), most noticeable at very low fuel pressures. |
+ | |||
+ | |||
+ | === Using perfect 2:1 fuel === | ||
+ | |||
+ | '''Temperature peak''' | ||
+ | |||
+ | *T(after) = ( T(before)*61.9 + 563452 ) / 234.515 | ||
+ | **T(after) is the temperature in Kelvin after 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 | ||
+ | **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) | ||
+ | *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. | ||
+ | *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. | ||
+ | |||
+ | '''Pressure peak''' | ||
+ | |||
+ | *P(after) = 2.9 * P(before) * T(after) / T(before) | ||
+ | **P(after) is the pressure in Pa after ignition | ||
+ | **P(before) is the pressure in Pa before ignition | ||
+ | **T(after) is the temperature in Kelvin after 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 | ||
+ | *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 === | ||
+ | |||
+ | 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. These equations can be used to predict the Temperature and Pressure inside the furnace after ignition. It's also possible to use this in reverse, and calculate what mixture of fuel and dilutant is needed to reach a desired Temperature and Pressure upon ignition, more about that below. | ||
+ | |||
+ | <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 it}}" data-collapsetext="{{int:COLLAPSE - a MIPS script that predicts the ignition temperature and pressure of a furnace based on the gases inside it}}"> | ||
<pre> | <pre> | ||
#prediction of the ignition temperature and pressure of a furnace | #prediction of the ignition temperature and pressure of a furnace | ||
#if combustion can't occur, display current temperature and pressure | #if combustion can't occur, display current temperature and pressure | ||
− | alias furnace d0 | + | alias furnace d0 |
− | alias consoleTemp d1 # | + | alias consoleTemp d1 #small LED display |
− | alias consolePres d2 # | + | alias consolePres d2 #small LED display |
alias ratioOx r5 | alias ratioOx r5 | ||
Line 72: | Line 122: | ||
blt ratioOx 0.05 noCombustion | blt ratioOx 0.05 noCombustion | ||
blt ratioVol 0.05 noCombustion | blt ratioVol 0.05 noCombustion | ||
− | |||
− | |||
j displayResults | j displayResults | ||
noCombustion: | noCombustion: | ||
− | |||
− | |||
move temp r0 | move temp r0 | ||
move pres r1 | move pres r1 | ||
Line 88: | Line 134: | ||
</pre> | </pre> | ||
</div> | </div> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''Temperature peak''' | '''Temperature peak''' | ||
Line 295: | Line 149: | ||
**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 | + | same thing but easier to read |
*T(after) = ( T(before) * specificHeat(before) + fuel * 563452 ) / ( specificHeat(before) + fuel * 172.615) | *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 | **specificHeat(before) = RatioOxygen*21.1 + RatioVolatile*20.4 + RatioCarbonDioxide*28.2 + RatioPollutant*24.8 + RatioNitrogen*20.6 + RatioNitrousOxide*23 | ||
Line 305: | Line 159: | ||
*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 370: | ||
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?) |
− | |||
*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 379: | ||
*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 | ||
+ | |||
=== 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 389: | ||
#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) | ||
− | + | 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- | + | 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) | + | 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 | + | 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''' | ||
Line 557: | Line 412: | ||
***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 | ||
*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 | + | **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 | **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)'' | ||
Line 574: | Line 429: | ||
'''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 | + | 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)''' When fuel and dilutant have the same temperature | ||
Line 639: | Line 494: | ||
**ratio(H2) = 0.28237 * 2/3 = 0.188 = 19% | **ratio(H2) = 0.28237 * 2/3 = 0.188 = 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 | + | 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 definately 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. | 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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |