Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

GEP475GROUPINEEDANAP

Views: 1462
Kernel: Python 3 (Anaconda)

Infiltration Calculations

Things needed to make calculations more accurate:

  • No inf or zeros present in data

  • Find true asymtote for CO2_inside (seems to go below 400 "outside ppm")

  • Get accurate ETC volume. (used 40,000 ft3^3 here)

  • Isolate Negative slopes

  • Determine best days/times to isolate further

check plot at bottom

Calculations

VolumetricFlowRate:
ΔCO2=VolumetricFlowRate∗(CO2_outside−CO2_inside)\Delta CO_2 = VolumetricFlowRate * (CO_2\_outside - CO_2\_inside)VolumetricFlowRate=ΔCO2÷(CO2_outside−CO2_inside)VolumetricFlowRate = \Delta CO_2\div (CO_2\_outside - CO_2\_inside)
  • ΔCO2\Delta CO_2 = CO2CO_2 cubic feet per minute (cfm)

  • Volumetric Flow Rate = Total cubic feet per minute (cfm)

  • CO2CO_2_outside = proportion (unitless)

  • CO2CO_2_inside = proportion (unitless)

Infiltration:
Infiltration=ΔCO2(CO2_outside−CO2_inside)∗1VolumeInfiltration = \frac{\Delta CO2}{(CO2\_outside - CO2\_inside)} * \frac{1}{Volume}
  • Infiltration = "air changes" Per Minute (1min\large{\frac{1}{min}})

  • ΔCO2\Delta CO_2 = CO2CO_2 cubic feet per minute (cfm)

  • CO2CO_2_outside = proportion (unitless)

  • CO2CO_2_inside = proportion (unitless)

  • Volume = ETC cubic feet ( ft3ft^{3} )

import pandas as pd
df = pd.read_csv('Deltas_rough.csv')
# df. head()
df.drop(df.columns[[0]], axis =1, inplace = True)
df['CO2_inside'] = df['CO2']
df.head(2)
CO2 Time Time2 TimeDelta CO2_2 CO2_diff CO2_per_min CO2_inside
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0 337.0 -381.0 -95.25 718.0
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0 332.0 -5.0 -1.00 337.0
df['ppm_per_min'] = df['CO2_per_min']
df['CO2_cfm'] = (df.ppm_per_min / 1E6) * 4E4
df.head()
CO2 Time Time2 TimeDelta CO2_2 CO2_diff CO2_per_min CO2_inside ppm_per_min CO2_cfm
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0 337.0 -381.0 -95.25 718.0 -95.25 -3.810
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0 332.0 -5.0 -1.00 337.0 -1.00 -0.040
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 5.0 328.0 -4.0 -0.80 332.0 -0.80 -0.032
3 328.0 2016-02-19 13:41:00 2016-02-19 13:46:00 5.0 307.0 -21.0 -4.20 328.0 -4.20 -0.168
4 307.0 2016-02-19 13:46:00 2016-02-19 13:51:00 5.0 296.0 -11.0 -2.20 307.0 -2.20 -0.088
df.CO2_cfm.describe()
count 1.009840e+05 mean NaN std NaN min -inf 25% -4.800000e-02 50% 0.000000e+00 75% 4.000000e-02 max inf Name: CO2_cfm, dtype: float64
df['CO2_outside'] = 0.04
df['Net_proportionCO2'] = df.CO2_outside - (df.CO2_inside / 1E6 )*100
df.head()
CO2 Time Time2 TimeDelta CO2_2 CO2_diff CO2_per_min CO2_inside ppm_per_min CO2_cfm CO2_outside Net_proportionCO2
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0 337.0 -381.0 -95.25 718.0 -95.25 -3.810 0.04 -0.0318
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0 332.0 -5.0 -1.00 337.0 -1.00 -0.040 0.04 0.0063
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 5.0 328.0 -4.0 -0.80 332.0 -0.80 -0.032 0.04 0.0068
3 328.0 2016-02-19 13:41:00 2016-02-19 13:46:00 5.0 307.0 -21.0 -4.20 328.0 -4.20 -0.168 0.04 0.0072
4 307.0 2016-02-19 13:46:00 2016-02-19 13:51:00 5.0 296.0 -11.0 -2.20 307.0 -2.20 -0.088 0.04 0.0093
df['VolumetricFlowRate'] = df.CO2_cfm / df.Net_proportionCO2 df.head()
CO2 Time Time2 TimeDelta CO2_2 CO2_diff CO2_per_min CO2_inside ppm_per_min CO2_cfm CO2_outside Net_proportionCO2 VolumetricFlowRate
0 718.0 2016-02-19 13:27:00 2016-02-19 13:31:00 4.0 337.0 -381.0 -95.25 718.0 -95.25 -3.810 0.04 -0.0318 119.811321
1 337.0 2016-02-19 13:31:00 2016-02-19 13:36:00 5.0 332.0 -5.0 -1.00 337.0 -1.00 -0.040 0.04 0.0063 -6.349206
2 332.0 2016-02-19 13:36:00 2016-02-19 13:41:00 5.0 328.0 -4.0 -0.80 332.0 -0.80 -0.032 0.04 0.0068 -4.705882
3 328.0 2016-02-19 13:41:00 2016-02-19 13:46:00 5.0 307.0 -21.0 -4.20 328.0 -4.20 -0.168 0.04 0.0072 -23.333333
4 307.0 2016-02-19 13:46:00 2016-02-19 13:51:00 5.0 296.0 -11.0 -2.20 307.0 -2.20 -0.088 0.04 0.0093 -9.462366
df['Infiltration'] = df.VolumetricFlowRate / 4E4
df['ACH'] = df.Infiltration * 60
df.set_index(df.Time2, inplace = True) df.ACH.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f7c08ea7a58>
Image in a Jupyter notebook