diff --git a/Oven Brick Model.ipynb b/Oven Brick Model.ipynb index cff1f8d..d09fa32 100644 --- a/Oven Brick Model.ipynb +++ b/Oven Brick Model.ipynb @@ -47,7 +47,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c7038d50268541e680fd49194661f002", + "model_id": "15bd29d87af64158a1c9fa7597610e09", "version_major": 2, "version_minor": 0 }, @@ -72,7 +72,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "dd4bd23cf2e546b9a7bd17b74f5769f2", + "model_id": "0688e4ebb4724cddb7195d622651a472", "version_major": 2, "version_minor": 0 }, @@ -86,7 +86,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f7e512a0f1b44f1ab67d93d7d9043b19", + "model_id": "031c67cb5f244f339839c35db16a110f", "version_major": 2, "version_minor": 0 }, @@ -916,14 +916,14 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 66, "id": "bf8c7fe0", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "e44ad08b1cf141639749b2aca1c1b6d7", + "model_id": "c6213c0588ce438f9642b3f2d3457eeb", "version_major": 2, "version_minor": 0 }, @@ -967,7 +967,7 @@ " print(f'stoichiometric A/F = {AF_st}')\n", " \n", " f_found = opt.root_scalar(lambda x: exhaust_stoichiometry(x)[\"O2\"] - O2_in_exhaust/100, \n", - " bracket=[3e-1, 1])\n", + " bracket=[1e-1, 1])\n", " \n", " # print(f_found)\n", " \n", @@ -991,7 +991,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "id": "2f732468", "metadata": { "scrolled": false @@ -1011,10 +1011,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "id": "53b2c1b9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " gri30:\n", + "\n", + " temperature 298.15 K\n", + " pressure 1.0133e+05 Pa\n", + " density 1.1869 kg/m^3\n", + " mean mol. weight 29.039 kg/kmol\n", + " phase of matter gas\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -1.5255e+06 -4.4299e+07 J\n", + " internal energy -1.6109e+06 -4.6778e+07 J\n", + " entropy 6999.5 2.0326e+05 J/K\n", + " Gibbs function -3.6124e+06 -1.049e+08 J\n", + " heat capacity c_p 1027.5 29837 J/K\n", + " heat capacity c_v 741.17 21523 J/K\n", + "\n", + " mass frac. Y mole frac. X chem. pot. / RT\n", + " --------------- --------------- ---------------\n", + " H2 0.0018679 0.026906 -19.333\n", + " O2 0.1362 0.1236 -26.764\n", + " CH4 0.0041445 0.0075018 -57.401\n", + " CO 0.098029 0.10163 -70.646\n", + " CO2 0.12525 0.082645 -186.95\n", + " C2H4 0.00052634 0.00054482 -12.715\n", + " C2H6 0.00017359 0.00016764 -70.088\n", + " N2 0.63381 0.657 -23.453\n", + " [ +45 minor] 0 0 \n", + "\n" + ] + } + ], "source": [ "gas_u = ct.Solution('gri30.xml')\n", "gas_u.TPX = 25 + 273.15, ct.one_atm, Xu\n", @@ -1031,10 +1068,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "id": "a1bc3d15", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " gri30:\n", + "\n", + " temperature 298.15 K\n", + " pressure 1.0133e+05 Pa\n", + " density 1.2684 kg/m^3\n", + " mean mol. weight 31.031 kg/kmol\n", + " phase of matter gas\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -2.9803e+06 -9.2481e+07 J\n", + " internal energy -3.0602e+06 -9.496e+07 J\n", + " entropy 6565.1 2.0372e+05 J/K\n", + " Gibbs function -4.9377e+06 -1.5322e+08 J\n", + " heat capacity c_p 997.71 30960 J/K\n", + " heat capacity c_v 729.77 22645 J/K\n", + "\n", + " mass frac. Y mole frac. X chem. pot. / RT\n", + " --------------- --------------- ---------------\n", + " O2 0.046403 0.045 -27.775\n", + " H2O 0.026987 0.046486 -123.33\n", + " CO2 0.2928 0.20645 -186.03\n", + " N2 0.63381 0.70206 -23.387\n", + " [ +49 minor] 0 0 \n", + "\n" + ] + } + ], "source": [ "gas_b = ct.Solution('gri30.xml')\n", "gas_b.TPX = 25 + 273.15, ct.one_atm, Xb\n", @@ -1051,10 +1121,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "id": "067ae187", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'1.454825772118082 MJ/kg'" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "heating_value_J_kg = gas_u.enthalpy_mass - gas_b.enthalpy_mass\n", "f'{heating_value_J_kg*1e-6} MJ/kg'" @@ -1062,7 +1143,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "id": "f8713062", "metadata": {}, "outputs": [], @@ -1072,10 +1153,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "id": "42f68b81", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'3636.3636363636365 MJ / hr to a combustion chamber'" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "heat_to_chamber = heat_to_battery * 1000 * 3 / 66 # MJ / hr\n", "f'{heat_to_chamber} MJ / hr to a combustion chamber'" @@ -1091,10 +1183,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "id": "fd85f6dc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'2499.5182970050437 (kg/hr) = 3636.3636363636365 (MJ/hr) / 1.454825772118082 (MJ/kg)'" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "mfr_to_chamber = heat_to_chamber * 1e6 / heating_value_J_kg # kg / hr\n", "f'{mfr_to_chamber} (kg/hr) = {heat_to_chamber} (MJ/hr) / {heating_value_J_kg * 1e-6} (MJ/kg)'" @@ -1110,10 +1213,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "id": "fa7ef7a2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " gri30:\n", + "\n", + " temperature 1990.3 K\n", + " pressure 1.0133e+05 Pa\n", + " density 0.18983 kg/m^3\n", + " mean mol. weight 31.002 kg/kmol\n", + " phase of matter gas\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -8.9328e+05 -2.7694e+07 J\n", + " internal energy -1.427e+06 -4.4241e+07 J\n", + " entropy 8783.1 2.7229e+05 J/K\n", + " Gibbs function -1.8374e+07 -5.6963e+08 J\n", + " heat capacity c_p 1347.2 41767 J/K\n", + " heat capacity c_v 1079 33452 J/K\n", + "\n", + " mass frac. Y mole frac. X chem. pot. / RT\n", + " --------------- --------------- ---------------\n", + " O 6.69e-05 0.00012964 -15.939\n", + " O2 0.045092 0.043688 -31.879\n", + " OH 0.00048954 0.00089239 -30.541\n", + " H2O 0.02669 0.045932 -45.143\n", + " CO 0.001079 0.0011942 -41.097\n", + " CO2 0.29111 0.20507 -57.036\n", + " NO 0.003114 0.0032174 -29.575\n", + " N2 0.63235 0.6998 -27.272\n", + " [ +45 minor] 8.9232e-06 7.3917e-05 \n", + "\n" + ] + } + ], "source": [ "gas_chamber = ct.Solution('gri30.xml')\n", "gas_chamber.TPX = 600 + 273.15, ct.one_atm, Xu\n", @@ -1127,30 +1267,73 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "id": "1d6c95a7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tad = 1717.1055126606984 `C\n" + ] + } + ], "source": [ "print(f'Tad = {eq_state[0] - 273.15} `C')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "id": "e437f3b4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NO: 3217.3809731942233 ppm\n" + ] + } + ], "source": [ "print(f'NO: {gas_chamber.mole_fraction_dict()[\"NO\"] * 1e6} ppm')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 48, "id": "683e1479", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "564968.6851296029 1057170.3471485006\n", + "258568.46996560355\n", + "239.0022179980857 1363443.6972422504\n", + "-612434.5630397515\n", + "400326.765370211 1148091.5363109885\n", + "3005.361043723591\n", + "398382.53608438675 1149155.5265008416\n", + "-2.858431953645777\n", + "398384.3836843984 1149154.51548965\n", + "0.000179249735083431\n", + "398384.3835685452 1149154.5155530453\n", + "8.731149137020111e-10\n", + "398384.38356854365 1149154.515553046\n", + "-1.6298145055770874e-09\n", + "496.511875 converged: True\n", + " flag: 'converged'\n", + " function_calls: 7\n", + " iterations: 6\n", + " root: 1558.4107622013973\n", + "Outlet Gas Temperature: 1285.2607622013975 `C\n" + ] + } + ], "source": [ "htc = 568 # W / m2 / K\n", "\n", @@ -1193,7 +1376,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "id": "badfe727", "metadata": {}, "outputs": [], @@ -1209,8 +1392,7 @@ " \n", " def energy_balance_equation (Tout, Twall0, Twall1):\n", " # mdot * (dh) - self.heat()\n", - " pass\n", - " \n", + " pass \n", " \n", " def solve (self, ):\n", " pass\n", @@ -1218,8 +1400,32 @@ " def heat (self, Tgas, Twall0, Twall1):\n", " # Tgas = (T0 + T1) / 2\n", " # heat_to_Twall0 + heat_to_Twall1\n", - " pass\n", - " " + " pass\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50208cd7", + "metadata": {}, + "outputs": [], + "source": [ + "chamber = CombustionChamber()\n", + "wall0 = Brick()\n", + "wall1 = Brick()\n", + "# Iterate\n", + "# Integrate for 1 timestep\n", + "chamber.solve()\n", + "\n", + "wall0.heat_to_coke()\n", + "wall1.heat_to_coke()\n", + "\n", + "wall0.update_coke_side() coke_model.brick_temperature(cum_heat)\n", + "wall1.update_coke_side() coke_model.brick_temperature(cum_heat)\n", + " \n", + "wall0.solve() # advance 1 timestep\n", + "wall1.solve() # advance 1 timestep\n", + "\n" ] }, { @@ -1232,10 +1438,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 50, "id": "858a862e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "346.5 Mcal / ton\n" + ] + } + ], "source": [ "# 50'C 장입탄 1 톤을 1100'C 코크스로 건류시키기 위해 필요한 열량\n", "heat_coking_mcal_per_ton = (1100 - 50) * 0.33 # Mcal / t-c\n", @@ -1244,10 +1458,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 51, "id": "d9a3443d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "925.2 Mcal / ton\n" + ] + } + ], "source": [ "# 50`C 물 1톤을 800`C 수증기로 증발하는데 필요한 열량\n", "# 액체 가열 + 증발 + 증기 가열\n", @@ -1258,10 +1480,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 52, "id": "bc35e30a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "90.223776 GJ / charge\n" + ] + } + ], "source": [ "# 1~4 기 장입 습탄 34 톤 중 수분 5.9% (2 톤) 제외 건탄 32 톤\n", "# 1 문당 장입에서 추출까지 필요한 열량\n", @@ -1272,7 +1502,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 53, "id": "c5a556cd", "metadata": {}, "outputs": [], @@ -1282,10 +1512,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 54, "id": "2b8e5d35", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "59.4 rev / charge\n" + ] + } + ], "source": [ "# 건류 시간 동안 rev 횟수\n", "n_rev_total = 3 * 24 * 66 / 80\n", @@ -1296,10 +1534,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 55, "id": "9e3eee55", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'100.24864 GJ / rev'" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# 66 문에 rev 당 공급되는 열량\n", "f'{66 * heat_total_gj / n_rev_total} GJ / rev'" @@ -1307,7 +1556,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "id": "4ae27703", "metadata": {}, "outputs": [], @@ -1317,7 +1566,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "id": "d552c14d", "metadata": {}, "outputs": [], @@ -1327,20 +1576,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 58, "id": "c4d73576", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + ".WaterWithTransport at 0x1e52f2f99e0>" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "water" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 59, "id": "4c82456a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " water:\n", + "\n", + " temperature 313.15 K\n", + " pressure 1.0132e+05 Pa\n", + " density 992.27 kg/m^3\n", + " mean mol. weight 18.016 kg/kmol\n", + " vapor fraction 0\n", + " phase of matter liquid\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -1.5803e+07 -2.8471e+08 J\n", + " internal energy -1.5803e+07 -2.8471e+08 J\n", + " entropy 4092.4 73728 J/K\n", + " Gibbs function -1.7085e+07 -3.078e+08 J\n", + " heat capacity c_p 4175.6 75228 J/K\n", + " heat capacity c_v 4067.9 73288 J/K\n", + "\n" + ] + } + ], "source": [ "water.TP = 40 + 273.15, ct.one_atm\n", "\n", @@ -1349,10 +1635,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "id": "9dd982a4", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " water:\n", + "\n", + " temperature 313.15 K\n", + " pressure 7367.2 Pa\n", + " density 0.051107 kg/m^3\n", + " mean mol. weight 18.016 kg/kmol\n", + " vapor fraction 1\n", + " phase of matter liquid-gas-mix\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -1.3397e+07 -2.4135e+08 J\n", + " internal energy -1.3541e+07 -2.4395e+08 J\n", + " entropy 11778 2.1219e+05 J/K\n", + " Gibbs function -1.7085e+07 -3.078e+08 J\n", + " heat capacity c_p 1884.7 33955 J/K\n", + " heat capacity c_v 1414.4 25481 J/K\n", + "\n" + ] + } + ], "source": [ "water.TQ = 40 + 273.15, 1\n", "h_vapor = water.enthalpy_mass\n", @@ -1361,10 +1673,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "id": "70b5436f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " water:\n", + "\n", + " temperature 313.15 K\n", + " pressure 7367.2 Pa\n", + " density 992.23 kg/m^3\n", + " mean mol. weight 18.016 kg/kmol\n", + " vapor fraction 0\n", + " phase of matter liquid-gas-mix\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -1.5803e+07 -2.8471e+08 J\n", + " internal energy -1.5803e+07 -2.8471e+08 J\n", + " entropy 4092.4 73729 J/K\n", + " Gibbs function -1.7085e+07 -3.078e+08 J\n", + " heat capacity c_p 4176.1 75236 J/K\n", + " heat capacity c_v 4067.9 73287 J/K\n", + "\n" + ] + } + ], "source": [ "water.TQ = 40 + 273.15, 0\n", "h_water = water.enthalpy_mass\n", @@ -1373,20 +1711,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "id": "1c18625b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2406727.679574404" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "h_vapor - h_water" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "id": "17f8781a", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " water:\n", + "\n", + " temperature 282.88 K\n", + " pressure 1.0133e+05 Pa\n", + " density 999.71 kg/m^3\n", + " mean mol. weight 18.016 kg/kmol\n", + " vapor fraction 0\n", + " phase of matter liquid\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -1.593e+07 -2.8699e+08 J\n", + " internal energy -1.593e+07 -2.8699e+08 J\n", + " entropy 3667 66064 J/K\n", + " Gibbs function -1.6967e+07 -3.0568e+08 J\n", + " heat capacity c_p 4201.1 75688 J/K\n", + " heat capacity c_v 4197.7 75626 J/K\n", + "\n" + ] + } + ], "source": [ "water.TP = 40+273.15, ct.one_atm\n", "h0 = water.enthalpy_mass\n", @@ -1396,10 +1771,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "id": "f4e62efb", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " water:\n", + "\n", + " temperature 338.15 K\n", + " pressure 24986 Pa\n", + " density 0.16107 kg/m^3\n", + " mean mol. weight 18.016 kg/kmol\n", + " vapor fraction 1\n", + " phase of matter liquid-gas-mix\n", + "\n", + " 1 kg 1 kmol \n", + " --------------- ---------------\n", + " enthalpy -1.3353e+07 -2.4056e+08 J\n", + " internal energy -1.3508e+07 -2.4335e+08 J\n", + " entropy 11352 2.0451e+05 J/K\n", + " Gibbs function -1.7191e+07 -3.0972e+08 J\n", + " heat capacity c_p 1926.9 34715 J/K\n", + " heat capacity c_v 1443.6 26008 J/K\n", + "\n" + ] + } + ], "source": [ "water.TQ = 65 + 273.15, 1\n", "water()" @@ -1407,10 +1808,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 65, "id": "54881653", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.8110541903465941" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "20 / (24986 / ct.one_atm * 100)" ]