Latest revision |
Your text |
Line 11: |
Line 11: |
| | | |
| ===Improved experiment=== | | ===Improved experiment=== |
− | #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. | + | #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 |
− | | + | #the furnace was loaded with fuel and the game saved |
− | <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 fuel was ignited, the temperature and pressure was recorded with many decimal values accuracy |
− | <pre>
| + | #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 |
− | #a script that calculates the energy of combustion | + | #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 |
− | #obs! this script runs once and automatically ignites the furnace
| + | #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) |
− | #the 5 J added by ignite is not accounted for
| + | *12.55kPa fuel in furnace (33.3335906% oxygen) |
− | #E = s(Ta-Tb)/f + Ta*172.615
| + | **predicted temp: 2475.82064K |
− | #s = specific heat of the gas mix = sum(specificHeat * gasRatio)
| + | **actual temp: 2475.82959K (slightly higher) |
− | #Ta = temp before ignition
| + | *518.77kPa fuel in furnace (33.3335906% oxygen) |
− | #Tb = temp after ignition | + | **predicted temp: 2475.820748K |
− | #f = fuel = min(RatioOxygen, RatioVolatiles / 2)
| + | **actual temp: 2475.818359K (slightly lower) |
− | | + | *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 96: |
Line 29: |
| #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 4.99999 J per ignite. | + | #The obtained value was 4.99999 J for each button press |
− | #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.
| |