diff --git a/Oven Brick Model.ipynb b/Oven Brick Model.ipynb index 9da05f5..eb5ab36 100644 --- a/Oven Brick Model.ipynb +++ b/Oven Brick Model.ipynb @@ -45,7 +45,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "7ebf14f5ef9c4496aa8cf0ad6cbcdb7c", + "model_id": "ed6ee54043434154a827020efbee7467", "version_major": 2, "version_minor": 0 }, @@ -70,7 +70,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a0ec1569fa484e108a0f79e7d71cc576", + "model_id": "8e7a0d0a9f784ebdaf657d3722690175", "version_major": 2, "version_minor": 0 }, @@ -84,7 +84,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "9a81c2f246bb4774ab9157f4eef297c1", + "model_id": "21a25e45f3a846e5bd8e8097e7a36359", "version_major": 2, "version_minor": 0 }, @@ -1044,24 +1044,24 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 46, "id": "067ae187", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1454825.772118082" + "'1.454825772118082 MJ/kg'" ] }, - "execution_count": 40, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "heating_value_J_kg = gas_u.enthalpy_mass - gas_b.enthalpy_mass\n", - "heating_value_J_kg" + "f'{heating_value_J_kg*1e-6} MJ/kg'" ] }, { @@ -1083,7 +1083,7 @@ { "data": { "text/plain": [ - "3636.3636363636365" + "'3636.3636363636365 MJ / hr to a combustion chamber'" ] }, "execution_count": 42, @@ -1093,7 +1093,7 @@ ], "source": [ "heat_to_chamber = heat_to_battery * 1000 * 3 / 66 # MJ / hr\n", - "heat_to_chamber" + "f'{heat_to_chamber} MJ / hr to a combustion chamber'" ] }, { @@ -1113,7 +1113,7 @@ { "data": { "text/plain": [ - "2499.5182970050437" + "'2499.5182970050437 (kg/hr) = 3636.3636363636365 (MJ/hr) / 1.454825772118082 (MJ/kg)'" ] }, "execution_count": 43, @@ -1123,12 +1123,20 @@ ], "source": [ "mfr_to_chamber = heat_to_chamber * 1e6 / heating_value_J_kg # kg / hr\n", - "mfr_to_chamber" + "f'{mfr_to_chamber} (kg/hr) = {heat_to_chamber} (MJ/hr) / {heating_value_J_kg * 1e-6} (MJ/kg)'" + ] + }, + { + "cell_type": "markdown", + "id": "ed0ec84b", + "metadata": {}, + "source": [ + "# 단열 화염 온도 (평형 계산)" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 49, "id": "fa7ef7a2", "metadata": {}, "outputs": [ @@ -1156,33 +1164,15 @@ "\n", " mass frac. Y mole frac. X chem. pot. / RT\n", " --------------- --------------- ---------------\n", - " H2 3.8291e-06 5.8883e-05 -29.203\n", - " H 3.798e-07 1.1681e-05 -14.602\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", - " HO2 6.0747e-07 5.7059e-07 -46.48\n", - " H2O2 1.9061e-08 1.7373e-08 -61.082\n", " CO 0.001079 0.0011942 -41.097\n", " CO2 0.29111 0.20507 -57.036\n", - " HCO 4.8149e-12 5.1441e-12 -55.699\n", - " CH2O 2.8094e-14 2.9008e-14 -70.301\n", - " N 2.9746e-10 6.5837e-10 -13.636\n", - " NH 1.4836e-11 3.0632e-11 -28.238\n", - " NH2 2.3841e-12 4.6128e-12 -42.839\n", - " NH3 4.3381e-12 7.8968e-12 -57.441\n", - " NNH 1.8258e-11 1.9504e-11 -41.873\n", " NO 0.003114 0.0032174 -29.575\n", - " NO2 3.837e-06 2.5857e-06 -45.514\n", - " N2O 2.4382e-07 1.7174e-07 -43.211\n", - " HNO 6.6639e-09 6.6614e-09 -44.177\n", - " HCN 1.9162e-14 2.1981e-14 -53.395\n", - " HOCN 1.3976e-14 1.0071e-14 -69.335\n", - " HNCO 9.1269e-12 6.5765e-12 -69.335\n", - " NCO 5.5326e-13 4.0822e-13 -54.733\n", " N2 0.63235 0.6998 -27.272\n", - " [ +27 minor] 7.2355e-17 8.6041e-17 \n", + " [ +45 minor] 8.9232e-06 7.3917e-05 \n", "\n" ] } @@ -1191,22 +1181,52 @@ "gas_chamber = ct.Solution('gri30.xml')\n", "gas_chamber.TPX = 600 + 273.15, ct.one_atm, Xu\n", "gas_chamber.equilibrate(\"HP\")\n", - "gas_chamber()" + "gas_chamber(threshold=1e-4)\n", + "\n", + "eq_state = gas_chamber.TPX\n", + "\n", + "Tad, P0, X0 = eq_state" ] }, { "cell_type": "code", - "execution_count": 47, - "id": "22b66a96", + "execution_count": 87, + "id": "1d6c95a7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tad = 1717.1055126606984 `C\n" + ] + } + ], "source": [ - "eq_state = gas_chamber.TPX" + "print(f'Tad = {eq_state[0] - 273.15} `C')" ] }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 89, + "id": "e437f3b4", + "metadata": {}, + "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": 103, "id": "683e1479", "metadata": {}, "outputs": [ @@ -1214,32 +1234,40 @@ "name": "stdout", "output_type": "stream", "text": [ - "684763.1753790071 154859298.7922234\n", - "0.0 187247735.976\n" - ] - }, - { - "ename": "ValueError", - "evalue": "f(a) and f(b) must have different signs", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Input \u001b[1;32mIn [77]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;28mprint\u001b[39m(h0 \u001b[38;5;241m-\u001b[39m h1, mfr_to_chamber\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m3600\u001b[39m \u001b[38;5;241m*\u001b[39m (h0 \u001b[38;5;241m-\u001b[39m h1) \u001b[38;5;241m-\u001b[39m htc \u001b[38;5;241m*\u001b[39m area_chamber_wall \u001b[38;5;241m*\u001b[39m (((eq_state[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m-\u001b[39m Tout)\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m-\u001b[39m Twall0) \u001b[38;5;241m+\u001b[39m ((eq_state[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m-\u001b[39m Tout)\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m-\u001b[39m Twall1))\n\u001b[0;32m 16\u001b[0m )\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m mfr_to_chamber\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m3600\u001b[39m \u001b[38;5;241m*\u001b[39m (h0 \u001b[38;5;241m-\u001b[39m h1) \u001b[38;5;241m-\u001b[39m htc \u001b[38;5;241m*\u001b[39m area_chamber_wall \u001b[38;5;241m*\u001b[39m (((eq_state[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m-\u001b[39m Tout)\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m-\u001b[39m Twall0) \u001b[38;5;241m+\u001b[39m ((eq_state[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m-\u001b[39m Tout)\u001b[38;5;241m/\u001b[39m\u001b[38;5;241m2\u001b[39m \u001b[38;5;241m-\u001b[39m Twall1))\n\u001b[1;32m---> 20\u001b[0m f_found \u001b[38;5;241m=\u001b[39m \u001b[43mopt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mroot_scalar\u001b[49m\u001b[43m(\u001b[49m\u001b[43mchamber_energy_balance\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 21\u001b[0m \u001b[43m \u001b[49m\u001b[43mbracket\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mmin\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mTwall0\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mTwall1\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43meq_state\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 23\u001b[0m \u001b[38;5;28mprint\u001b[39m(f_found)\n\u001b[0;32m 26\u001b[0m f_found\u001b[38;5;241m.\u001b[39mroot \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m273.15\u001b[39m\n", - "File \u001b[1;32m~\\miniconda3\\lib\\site-packages\\scipy\\optimize\\_root_scalar.py:249\u001b[0m, in \u001b[0;36mroot_scalar\u001b[1;34m(f, args, method, bracket, fprime, fprime2, x0, x1, xtol, rtol, maxiter, options)\u001b[0m\n\u001b[0;32m 246\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mBracket needed for \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m%\u001b[39m method)\n\u001b[0;32m 248\u001b[0m a, b \u001b[38;5;241m=\u001b[39m bracket[:\u001b[38;5;241m2\u001b[39m]\n\u001b[1;32m--> 249\u001b[0m r, sol \u001b[38;5;241m=\u001b[39m methodc(f, a, b, args\u001b[38;5;241m=\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 250\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m meth \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msecant\u001b[39m\u001b[38;5;124m'\u001b[39m]:\n\u001b[0;32m 251\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m x0 \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", - "File \u001b[1;32m~\\miniconda3\\lib\\site-packages\\scipy\\optimize\\zeros.py:776\u001b[0m, in \u001b[0;36mbrentq\u001b[1;34m(f, a, b, args, xtol, rtol, maxiter, full_output, disp)\u001b[0m\n\u001b[0;32m 774\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rtol \u001b[38;5;241m<\u001b[39m _rtol:\n\u001b[0;32m 775\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrtol too small (\u001b[39m\u001b[38;5;132;01m%g\u001b[39;00m\u001b[38;5;124m < \u001b[39m\u001b[38;5;132;01m%g\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (rtol, _rtol))\n\u001b[1;32m--> 776\u001b[0m r \u001b[38;5;241m=\u001b[39m \u001b[43m_zeros\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_brentq\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mb\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mxtol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrtol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmaxiter\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfull_output\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdisp\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 777\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m results_c(full_output, r)\n", - "\u001b[1;31mValueError\u001b[0m: f(a) and f(b) must have different signs" + "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", - "Twall0 = 1200 + 273.15\n", - "Twall1 = 1200 + 273.15\n", + "Twall0 = 1100 + 273.15\n", + "Twall1 = 1100 + 273.15\n", "\n", - "area_chamber_wall = 6.7 * 16.7 \n", - "def chamber_energy_balance (Tout):\n", + "area_chamber_wall = 6.7 * 16.7\n", + "\n", + "htcA = htc * area_chamber_wall / 2 / 2 / 2 / 2 / 2 / 2 / 2# W / K\n", + "\n", + "def chamber_energy_balance (Tout, hA, Twall0, Twall1):\n", " \n", " gas_chamber.TPX = eq_state\n", " h0 = gas_chamber.enthalpy_mass\n", @@ -1247,39 +1275,44 @@ " gas_chamber.TP = Tout, gas_chamber.P\n", " h1 = gas_chamber.enthalpy_mass\n", " \n", - " print(h0 - h1, mfr_to_chamber/3600 * (h0 - h1) - htc * area_chamber_wall * (((eq_state[0] - Tout)/2 - Twall0) + ((eq_state[0] - Tout)/2 - Twall1))\n", - ")\n", + " '''print(h0 - h1, \n", + " mfr_to_chamber/3600 * (h0 - h1) - htc * area_chamber_wall * (((eq_state[0] - Tout)/2 - Twall0) + ((eq_state[0] - Tout)/2 - Twall1))\n", + ")'''\n", " \n", - " return mfr_to_chamber/3600 * (h0 - h1) - htc * area_chamber_wall * (((eq_state[0] - Tout)/2 - Twall0) + ((eq_state[0] - Tout)/2 - Twall1))\n", + " print (mfr_to_chamber/3600 * (h0 - h1), \n", + " - hA * (((eq_state[0] - Tout)/2 - Twall0) + ((eq_state[0] - Tout)/2 - Twall1)))\n", + " \n", + " print (mfr_to_chamber/3600 * (h0 - h1) \n", + " - hA * (((eq_state[0] + Tout)/2 - Twall0) + ((eq_state[0] + Tout)/2 - Twall1)))\n", "\n", - "f_found = opt.root_scalar(chamber_energy_balance,\n", - " bracket=[min(Twall0, Twall1), eq_state[0]])\n", + " return (mfr_to_chamber/3600 * (h0 - h1) \n", + " - hA * (((eq_state[0] + Tout)/2 - Twall0) + ((eq_state[0] + Tout)/2 - Twall1)))\n", "\n", - "print(f_found)\n", + "f_found = opt.root_scalar(lambda x: chamber_energy_balance(x, htcA, Twall0, Twall1),\n", + " bracket=[min(Twall0, Twall1), 1990])\n", + "\n", + "print(htcA, f_found)\n", "\n", "\n", - "f_found.root - 273.15" + "print(f'Outlet Gas Temperature: {f_found.root - 273.15} `C')" ] }, { "cell_type": "code", - "execution_count": 78, - "id": "d5e7dad6", + "execution_count": null, + "id": "badfe727", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1473.15" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "min(Twall0, Twall1)" + "class CombustionChamber:\n", + " def __init__ (self, mdot, T0, P0, X0):\n", + " self.mdot = mdot\n", + " self.T0 = T0\n", + " self.P0 = P0\n", + " self.X0 = X0\n", + " \n", + " def balance_energy_equation (Tout, Twall0, Twall1):\n", + " " ] }, { @@ -1292,67 +1325,71 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 77, "id": "858a862e", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "346.5" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" + "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", - "heat_coking_mcal_per_ton" + "print(f'{heat_coking_mcal_per_ton} Mcal / ton')" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 78, "id": "d9a3443d", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "925.2" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "925.2 Mcal / ton\n" + ] } ], "source": [ "# 50`C 물 1톤을 800`C 수증기로 증발하는데 필요한 열량\n", "# 액체 가열 + 증발 + 증기 가열\n", "heat_evap_mcal_per_ton = 1 * (100 - 50) + 539.2 + 0.48*(800-100)\n", - "heat_evap_mcal_per_ton" + "heat_evap_mcal_per_ton\n", + "print(f'{heat_evap_mcal_per_ton} Mcal / ton')" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 79, "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", "heat_total_mcal = 32 * heat_coking_mcal_per_ton + 2 * heat_evap_mcal_per_ton # Mcal\n", - "heat_total_gj = heat_total_mcal / 1000 * 4.184 / 0.6 # GJ" + "heat_total_gj = heat_total_mcal / 1000 * 4.184 / 0.6 # GJ\n", + "print(f'{heat_total_gj} GJ / charge')" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 80, "id": "c5a556cd", "metadata": {}, "outputs": [], @@ -1362,58 +1399,343 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 81, "id": "2b8e5d35", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "59.4" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "59.4 rev / charge\n" + ] } ], "source": [ "# 건류 시간 동안 rev 횟수\n", "n_rev_total = 3 * 24 * 66 / 80\n", "\n", - "n_rev_total" + "n_rev_total\n", + "print(f'{n_rev_total} rev / charge')" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 82, "id": "9e3eee55", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "100.24864" + "'100.24864 GJ / rev'" ] }, - "execution_count": 54, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "66 * heat_total_gj / n_rev_total" + "# 66 문에 rev 당 공급되는 열량\n", + "f'{66 * heat_total_gj / n_rev_total} GJ / rev'" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 83, "id": "4ae27703", "metadata": {}, "outputs": [], "source": [ "# 80 GJ/rev 는 모든 문에 공급되는 열량이 맞다" ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "d552c14d", + "metadata": {}, + "outputs": [], + "source": [ + "water = ct.Water()" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "c4d73576", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " water:\n", + "\n", + " temperature 300 K\n", + " pressure 1.0132e+05 Pa\n", + " density 996.63 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.5858e+07 -2.857e+08 J\n", + " internal energy -1.5858e+07 -2.857e+08 J\n", + " entropy 3913.2 70500 J/K\n", + " Gibbs function -1.7032e+07 -3.0685e+08 J\n", + " heat capacity c_p 4180.8 75321 J/K\n", + " heat capacity c_v 4131 74424 J/K\n", + "\n" + ] + } + ], + "source": [ + "water" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "4c82456a", + "metadata": {}, + "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", + "water()" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "9dd982a4", + "metadata": {}, + "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", + "water()" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "id": "70b5436f", + "metadata": {}, + "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", + "water()" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "1c18625b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2406727.679574404" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h_vapor - h_water" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "id": "17f8781a", + "metadata": {}, + "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", + "water.HP = h0 - (h_vapor - h_water) * 5 / 95, ct.one_atm\n", + "water()" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "f4e62efb", + "metadata": {}, + "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()" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "54881653", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8110541903465941" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "20 / (24986 / ct.one_atm * 100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38f04ea4", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {