Actions

Talk

Difference between revisions of "Furnace temperature and pressure math"

From Unofficial Stationeers Wiki

 
(6 intermediate revisions by the same user not shown)
Line 11: Line 11:
  
 
===Improved experiment===
 
===Improved experiment===
#An advanced furnace with connected LED consoles to accurately track temperature and pressure was prepared, a MIPS program was written to show practical and theoretical values
+
#An advanced furnace with two connected LED consoles and an IC housing to accurately track the data was prepared. A MIPS program was written to calculate and display the released energy. The script runs only once, immediately after being inserted into its housing, and it will ignite the furnace automatically. Both the 95% combustion efficiency value and the full 100% combustion efficiency value are displayed. The 5 J added by the ignite is not subtracted. Different starting pressure gives slightly different values (in the 6th digit) for the released energy are obtained.
#the furnace was loaded with fuel and the game saved
+
 
#the fuel was ignited, the temperature and pressure was recorded with many decimal values accuracy
+
<div class="mw-collapsible mw-collapsed" data-expandtext="{{int:EXPAND - a MIPS script for calculating the energy released from 1 mol O2 + 2 mol H2 combusting}}" data-collapsetext="{{int:COLLAPSE - a MIPS script for calculating the energy released from 1 mol O2 + 2 mol H2 combusting}}">
#the MIPS program numerical value for the released energy was manually tweaked until it was a close fit to the actual Temperature value recorded earlier
+
<pre>
#eventually there is a precision error when different amounts of gas are inside of the furnace, it's assumed that this error comes from the energy added by the ignition spark
+
#a script that calculates the energy of combustion
#some test results (these predictions use 593120.4978 J as the value for the energy released per 1 mol O2 and 2 mol H2 that combusts)
+
#obs! this script runs once and automatically ignites the furnace
*12.55kPa fuel in furnace (33.3335906% oxygen)
+
#the 5 J added by ignite is not accounted for
**predicted temp: 2475.82064K
+
#E = s(Ta-Tb)/f + Ta*172.615
**actual temp: 2475.82959K (slightly higher)
+
#s = specific heat of the gas mix = sum(specificHeat * gasRatio)
*518.77kPa fuel in furnace (33.3335906% oxygen)
+
#Ta = temp before ignition
**predicted temp: 2475.820748K
+
#Tb = temp after ignition
**actual temp: 2475.818359K (slightly lower)
+
#f = fuel = min(RatioOxygen, RatioVolatiles / 2)
*The error is assumed to be the energy from the spark. This is because the chemical energy released is per mol, but the spark is a flat value, so the spark should give a decreasing effect as the number of moles inside the furnace increases. While it is possible to account for this by tracking the TotalMoles value from the furnace, the error is so tiny that the extra calculations required just doesn't seem worth doing.
+
 
 +
alias furnace d0
 +
alias consoleOne d1    #small LED display
 +
alias consoleTwo d2    #small LED display
 +
 
 +
alias ratioOx r5
 +
alias ratioVol r6
 +
alias specificHeat r12
 +
alias fuel r13
 +
alias tempBefore r14
 +
alias tempAfter r15
 +
 
 +
#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
 +
#save temperature before
 +
l tempBefore furnace Temperature
 +
#ignite and wait a little
 +
s furnace Activate 1
 +
sleep 2
 +
#save temperature after
 +
l tempAfter furnace Temperature
 +
#check mol amount after combustion
 +
#l r4 furnace TotalMoles
 +
#calculate released energy
 +
mul r0 172.615 tempAfter
 +
sub r2 tempAfter tempBefore
 +
mul r1 specificHeat r2
 +
div r1 r1 fuel
 +
add r0 r0 r1
 +
#display released energy from chemical reaction (95%)
 +
s consoleOne Setting r0
 +
#display the 100% released energy value
 +
div r0 r0 0.95
 +
s consoleTwo Setting r0
 +
 
 +
### End Script ###
 +
</pre>
 +
</div>
 +
 
 +
*Some mesurements
 +
**10.65kPa (perfect fuel) gave 563 454.676
 +
***diluted with O2/N2 to 130.91kPa gave 563 454.729
 +
**50kPa (perfect 1:2 fuel) gave 563 452.094
 +
***diluted with some warm N2 (37% mol N2) gave 563 452.120
 +
**506.00kPa (perfect fuel) gave 563 451.456
 +
*The trend is: less fuel gives a higher released energy value (this fits with the idea of the 5 J from ignition behind behind this). Increasing the pressure with inert gases also increases the released energy slightly (this contradicts the idea that the 5 J added from ignition is behind this).
  
 
===Spark energy experiment===
 
===Spark energy experiment===
Line 29: Line 96:
 
#Ignite was pressed 2 times, each time the new Temperature was recorded, the increase was the same
 
#Ignite was pressed 2 times, each time the new Temperature was recorded, the increase was the same
 
#The energy added per ignite was calculated as: EnergyChange = moles * specificHeat * TemperatureChange
 
#The energy added per ignite was calculated as: EnergyChange = moles * specificHeat * TemperatureChange
#The obtained value was 0.499999 J for each button press
+
#The obtained value was 4.99999 J per ignite.
 +
#The experiment was repeated with a larger amount of N2. The obtained value was 5.0126 J per ignite.
 +
 
 +
===Measuring R in PV=nRT just to see what happens===
 +
#A MIPS program was prepared to calculate and display R=(PV)/(nT)
 +
*50.00kPa gave R = 8.31439978
 +
*38.89kPa gave R = 8.31440004
 +
*15.12kPa gave R = 8.31439978
 +
*10.64kPa gave R = 8.31440002
 +
*10.44kPa gave R = 8.31439940
 +
The value fluctuates in the 8th digit. This is espcially easy to see by inserting/releasing gas slowly and watching the value change. There is a precision error here, maybe a result of a rounding error in the game. Since it appears random, it can't explain the error in the released energy above, since that one has a trend.

Latest revision as of 04:27, 17 October 2021

Experiment used to determine the amount of released energy from combustion (if things change in the future)[edit]

  1. Place a frame, build a furnace partially inside the frame, complete the frame. The furnace is now perfectly insulated and will no longer loose temperature (unless ore is added) nor explode from high pressure
  2. Add fuel (perfect 2:1 is not required) via a pipe, use over 1000 mol of O2, remove the pipe attached to the furnace
  3. Record all mol amounts and temp with a tablet (atmos cartridge), convert temp to K (add +273)
  4. Ignite furnace, record all mol amounts and temp with tablet, convert temp to K
  5. Calculate moles of combusted O2 (= moles before - moles after)
  6. Calculate the Thermal energy in the gas, before and after (Thermal energy = Temp * sum(mol of each gas * specific heat)
  7. Calculate energy released per mol of combusted O2 (= TE.after - TE.before) / moles of combusted O2)
  8. Deconstruct the furnace completely to disarm it safely, or connect a single pipe so it can burst and act as a vent
  9. Alternatively: A circuit could maybe also be used to capture the temperature and pressure at the point of ignition... before the furnace explodes (the pressure will be around 200MPa)

Improved experiment[edit]

  1. An advanced furnace with two connected LED consoles and an IC housing to accurately track the data was prepared. A MIPS program was written to calculate and display the released energy. The script runs only once, immediately after being inserted into its housing, and it will ignite the furnace automatically. Both the 95% combustion efficiency value and the full 100% combustion efficiency value are displayed. The 5 J added by the ignite is not subtracted. Different starting pressure gives slightly different values (in the 6th digit) for the released energy are obtained.
#a script that calculates the energy of combustion
#obs! this script runs once and automatically ignites the furnace
#the 5 J added by ignite is not accounted for
#E = s(Ta-Tb)/f + Ta*172.615
#s = specific heat of the gas mix = sum(specificHeat * gasRatio)
#Ta = temp before ignition
#Tb = temp after ignition
#f = fuel = min(RatioOxygen, RatioVolatiles / 2)

alias furnace d0
alias consoleOne d1    #small LED display
alias consoleTwo d2    #small LED display

alias ratioOx r5
alias ratioVol r6
alias specificHeat r12
alias fuel r13
alias tempBefore r14
alias tempAfter r15

#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
#save temperature before
l tempBefore furnace Temperature
#ignite and wait a little
s furnace Activate 1
sleep 2
#save temperature after
l tempAfter furnace Temperature
#check mol amount after combustion
#l r4 furnace TotalMoles
#calculate released energy
mul r0 172.615 tempAfter
sub r2 tempAfter tempBefore
mul r1 specificHeat r2
div r1 r1 fuel
add r0 r0 r1
#display released energy from chemical reaction (95%)
s consoleOne Setting r0
#display the 100% released energy value
div r0 r0 0.95
s consoleTwo Setting r0

### End Script ###
  • Some mesurements
    • 10.65kPa (perfect fuel) gave 563 454.676
      • diluted with O2/N2 to 130.91kPa gave 563 454.729
    • 50kPa (perfect 1:2 fuel) gave 563 452.094
      • diluted with some warm N2 (37% mol N2) gave 563 452.120
    • 506.00kPa (perfect fuel) gave 563 451.456
  • The trend is: less fuel gives a higher released energy value (this fits with the idea of the 5 J from ignition behind behind this). Increasing the pressure with inert gases also increases the released energy slightly (this contradicts the idea that the 5 J added from ignition is behind this).

Spark energy experiment[edit]

  1. A small amount of N2 was placed in an advanced furnace. The TotalMoles and Temperature values were recorded, the specific heat was looked up in game and found to be 20.6
  2. Ignite was pressed 2 times, each time the new Temperature was recorded, the increase was the same
  3. The energy added per ignite was calculated as: EnergyChange = moles * specificHeat * TemperatureChange
  4. The obtained value was 4.99999 J per ignite.
  5. The experiment was repeated with a larger amount of N2. The obtained value was 5.0126 J per ignite.

Measuring R in PV=nRT just to see what happens[edit]

  1. A MIPS program was prepared to calculate and display R=(PV)/(nT)
  • 50.00kPa gave R = 8.31439978
  • 38.89kPa gave R = 8.31440004
  • 15.12kPa gave R = 8.31439978
  • 10.64kPa gave R = 8.31440002
  • 10.44kPa gave R = 8.31439940

The value fluctuates in the 8th digit. This is espcially easy to see by inserting/releasing gas slowly and watching the value change. There is a precision error here, maybe a result of a rounding error in the game. Since it appears random, it can't explain the error in the released energy above, since that one has a trend.