{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lumber Drying Time\n", "\n", "[Source of Red Oak equations](https://en.wikipedia.org/wiki/Wood_drying)\n", "\n", "8.07131 \t1730.63 \t233.426 \t1 \t99\n", "T(°C) = (T(°F) - 32) × 5/9\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Formula](https://upload.wikimedia.org/math/e/9/5/e95d69b400fdbdc5e8af6cc7bb6e7395.png)\n", "![Time Constant](https://upload.wikimedia.org/math/a/8/d/a8df91af00c8291dd3b4d399e35f41ae.png)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "191.8194885201814" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def p_sat(T):\n", " \"\"\"\n", " Saturation vapor pressure of water - T in degress F\n", " See: https://en.wikipedia.org/wiki/Vapour_pressure_of_water#Approximation_formula\n", " \"\"\"\n", " A = 8.07131\n", " B = 1730.63\n", " C = 233.426\n", " T_C = (T - 32) * 5/9\n", " p = 10**(A - B/(C+T_C))\n", " return p\n", "\n", "p_sat(150)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def τ(L,T):\n", " \"Time Constant\"\n", " a = 0.0575\n", " b = 0.00142\n", " n = 1.52 \n", " t = L**n / (a+b*p_sat(T))\n", " return t\n", "\n", "def M_eq(h, T=72):\n", " \"\"\"\n", " Equlibrium Moisture Content \n", " \n", " Temperature (F) \n", " Relative Humidity (h)\n", " See: https://en.wikipedia.org/wiki/Equilibrium_moisture_content\n", " \"\"\"\n", " W = 330+0.452*T+0.00415 * T**2\n", " k = 0.791+4.63*10**-4*T-8.44*10**-7*T**2\n", " k1 = 6.34+7.75*10**-4*T-9.35*10**-5*T**2\n", " k2 = 1.09+2.84*10**-2*T-9.04*10**-5*T**2\n", " a = k1*k2*k**2*h**2\n", " b = k1*k*h\n", " M_e = 1800/W *(k*h/(1-k*h)+(b+2*a)/(1+b+a))\n", " return M_e" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Moisture W](https://upload.wikimedia.org/math/4/4/e/44e64c8f85e7b50aeb2c671c3cc7e1c1.png)\n", "![Moisture k](https://upload.wikimedia.org/math/2/9/7/297e89503659c6bcb292e67df2b243b7.png)\n", "![Moisture k1](https://upload.wikimedia.org/math/e/e/e/eeeafc23f767fd24808b1e9f5cafd6fc.png)\n", "![Moisture k2](https://upload.wikimedia.org/math/8/4/6/84664131ca2da179d131756dbfd0da4a.png)\n", "\n", "![Equilibrium Moisture](https://upload.wikimedia.org/math/4/d/8/4d80598eabc53e943dc7d05d3b417abd.png)\n", "\n", "![Drying Time](https://upload.wikimedia.org/math/c/b/0/cb0d2622cbbf62e49af6511c4296ea7c.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Drying Time Calculations" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "\n", "def t(M, M_0, h=0.72, L=1.5, T=72):\n", " \"\"\"\n", " Drying Time in days\n", " \n", " M - Desired Moisture Content\n", " M_0 - Starting Moisture Content\n", " h - relative humidity (72% average annual RH for Gainesville FL)\n", " L - Smallest dimension(inches)\n", " T - Temperature (F)\n", " \"\"\"\n", " M_e = M_eq(h,T)\n", " if M <= M_e:\n", " raise ValueError(\"M must above the Equilibrium Moisture Content of {:.3f}\".format(M_e))\n", " t_ = -τ(L,T)*np.log((M-M_e)/(M_0-M_e))\n", " print(\"\"\"\\tA {} inches thick board of Red Oak with an initial moisture \n", " content of {}% will dry to {}% M.C. in {:.1f} Days if placed in a \n", " constant {:.0%} Relative Humidity evironment at {} F.\"\"\".format(L,M_0,M,t_,h,T))\n", " return t_" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\tA 1.5 inches thick board of Red Oak with an initial moisture \n", " content of 100% will dry to 14% M.C. in 113.4 Days if placed in a \n", " constant 72% Relative Humidity evironment at 72 F.\n" ] }, { "data": { "text/plain": [ "113.35498604905855" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t(14,100)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3+" } }, "nbformat": 4, "nbformat_minor": 0 }