{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Purification d'un gaz dans une colonne à bulle\n", "\n", "On purifie un gaz en faisant réagir une de ces impuretés avec un réactif en solution aqueuse dans une colonne à bulles. Lorsque le gaz est introduit dans la colonne de 1 m3 on constate une augmentation de volume de 30 l. Le diamètre moyen des bulles est de 2 mm. \n", "\n", "**Calculer la surface de l’interface gaz-liquide dans la colonne**\n", "\n", ">Il est possible de calculer le nombre de bulles en divisant le volume de gaz introduit 30L par le volume d'une bulle. On peut ensuite multiplier le nombre de bulles par la surface d'une bulle. \n", "> Plus simplement, on peut considérer la surface spécifique de sphère, 3/R (en m2/m3). La surface de l'interface est alors la surface spécifique fois le volume de gaz. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4.188790204786391e-09\n", "7161972.43913529\n", "Surface de l'interface 90.0 m2\n", "3000.0\n", "Surface de l'interface 90.0 m2\n" ] } ], "source": [ "import numpy as np\n", "V_bulles=30e-3 #m3\n", "R_bulle=1e-3 #m\n", "V_bulle=4*np.pi*R_bulle**3/3\n", "print (V_bulle)\n", "nb_bulles=V_bulles/V_bulle\n", "print (nb_bulles)\n", "S=nb_bulles*4*np.pi*R_bulle**2\n", "print ('Surface de l\\'interface',round(S,2),'m2')\n", "# plus simple à partir de la surface spécifique en 2 lignes\n", "a=3/R_bulle\n", "print (a)\n", "S2=a*V_bulles\n", "print ('Surface de l\\'interface',round(S2,2),'m2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Calculer la vitesse ascensionnelle des bulles dans la colonne (voir rappel de mécanique des fluides).**\n", "\n", ">L’application de la loi de Stokes peut permettre d’estimer la vitesse ascensionnelle des bulles \n", "$$u=\\frac{2R^2}{9\\mu}(\\rho_L-\\rho_G)g$$ si l'écoulement est laminaire Re<1\n", "Si on calcule la vitesse avec cette relation, on trouve une vitesse d'ascension de 2,17 m/s soit un nombre de Re égale à 4350. La loi de Stokes n’est pas valide pour estimer la vitesse des bulles. Le résultat est donc FAUX.\n", ">\n", ">On doit alors considérer les équations donnant la force par l’intermédiaire du facteur de friction en écoulement turbulent :\n", ">$$F_{gravité}-F_{Archimède}+F_{trainée}=0$$\n", ">$$V_b(\\rho_G-\\rho_L)g+\\frac{1}{2}\\rho_Lu^2\\pi R^2f=0$$\n", ">\n", ">avec un facteur de friction $f$ qui s'écrit :\n", ">- $f=\\frac{24}{Re}$ si Re<1 (équation de Stokes)\n", ">\n", ">- $f=\\frac{18.5}{Re^{3/5}}$ si 1\n", ">- $f=0.44$ si Re>500\n", ">\n", ">Si on applique f=0.44, on trouve u=0,24 m/s et un Re=243, ce qui respecte par Re>500 et est donc FAUX.\n", ">\n", ">En appliquant la formule de Balsius 1500:\n", " fr=0.44\n", " else:\n", " fr=18.5*Re**(-3/5) \n", " f=V_bulle*(rho_g-rho_l)*g+0.5*rho_l*u**2*np.pi*R_bulle**2*fr\n", " return f\n", "u=newton(f,x0=1)\n", "Re=rho_l*u*2*R_bulle/mu\n", "print ('La vitesse ascentionnelle de la bulle est de', round(u,2), 'm/s et le nombre de Reynolds est de', round(Re,2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "Le coefficient de diffusion de l’impureté est de 1,5.10-9 m2.s-1 et la réaction en phase liquide peut être considérée comme une réaction du premier ordre de 0,15 s-1. \n", "\t\n", "**Estimer le coefficient de transfert de matière en utilisant la relation de Frössling :**\n", "$$Sh=0.552Re^{0.5}Sc^{0.33}$$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "le coefficient de transfert de matière est de 7.74e-05 m/s\n", "666.6666666666666\n", "103.24324293014652\n", "7.74324321976099e-05\n", "1.937172780743804e-05\n" ] } ], "source": [ "D=1.5e-9 #m2/s\n", "Sc=mu/(rho_l*D)\n", "Sh=0.552*Re**0.5*Sc**0.33\n", "k=Sh*D/(2*R_bulle)\n", "print('le coefficient de transfert de matière est de', \"%.2e\"%k, 'm/s')\n", "print (Sc)\n", "print (Sh)\n", "print (k)\n", "print (2*R_bulle/Sh)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Vérifier que le procédé utilisé est adapté en calculant le nombre de Hatta.**\n", "\n", ">Le nombre de Hatta est alors de 0,194. La valeur de ce nombre indique que la réaction est relativement lente et constitue l’étape limitante du procédé. Il est donc inutile d’avoir une aire interfaciale élevée et la colonne à bulle qui présente une rétention liquide importante est un bon procédé à utiliser. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hatta= 0.194\n" ] } ], "source": [ "kR=0.15\n", "Ha=np.sqrt(kR*D/(k**2))\n", "print ('Hatta=',round(Ha,3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comment pourrait être modifié le procédé si jamais un réactif réagissant 100 fois plus vite avec l’impureté était mis au point ?**\n", "\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hatta new= 1.937\n" ] } ], "source": [ "kR_new=kR*100.\n", "Ha_new=np.sqrt(kR_new*D/(k**2))\n", "print ('Hatta new=',round(Ha_new,3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">Il serait alors judicieux de travailler avec une colonne à bulles agitée de façon à augmenter l’aire interfaciale.\n", "\n", "**Calculer la densité de flux de matière dans les deux cas en considérant que l’impureté est présente à une concentration de 10-3 mole/l. **" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ha: 0.194 le facteur d accélération est de 1 et le flux de matière de 7.74e-05 mol/m2s\n", "Ha: 1.937 le facteur d accélération est de 2.18 et le flux de matière de 1.69e-04 mol/m2s\n" ] } ], "source": [ "VL=1\n", "def EA(Ha):\n", " if Ha<0.3:\n", " phi_f=S*D/(k*VL)\n", " if Ha**23:\n", " EA=Ha\n", " else:\n", " EA=np.sqrt(1+Ha**2)\n", " return EA\n", "\n", "\n", "ci=1 #mol/m3\n", "N=EA(Ha)*k*ci\n", "N_new=EA(Ha_new)*k*ci\n", "\n", "print ('Ha:', round(Ha,3),'le facteur d accélération est de', round(EA(Ha),3),'et le flux de matière de', \"%.2e\"%N, 'mol/m2s')\n", "print ('Ha:', round(Ha_new,3),'le facteur d accélération est de', round(EA(Ha_new),3),'et le flux de matière de', \"%.2e\"%N_new, 'mol/m2s')\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Déterminer ensuite le temps de séjour (et la hauteur de la colonne) nécessaire pour éliminer 50% de l’impuretés. Commenter les résultats.**\n", "\n", ">Le temps de séjour nécessaire à l’élimination peut se déterminer en effectuant un bilan sur la bulle. On considère que l'élimination de l'impuretés dans la bulle est due au flux de matière sortant de la phase gaz et arrivant dans la phase liquide. \n", ">\n", ">Accumulation = 0 - Flux sortant\n", "$$dn=-N.S.dt $$\n", "où dn est la variation de nombre de mole dans la bulle. Si l'impureté est diluée dans la phase gaz, l'élimination de l'impuretés ne changera pas le volume de la bulle, $dV=0$. La variation du nombre de mole s'écrit alors $dn=Vdc+cdV=Vdc$. L'équation de continuité conduit à l'équation différentielle suivante pour la concentration dans la bulle :\n", "$$V\\frac{dc}{dt}=-NS=-E_A k c S$$\n", ">La résolution de l'équation conduit à une variation de la concentration en exponentielle décroissante du temps :\n", "$$c=Ke^{-E_A a k t }$$\n", "En appliquant la condition initiale, $t=0\\quad c=c_0$, on peut écrire :\n", "$$\\frac{c}{c_0}=e^{-E_A a k t }$$\n", ">\n", ">le temps nécessaire à une réduction de 50% de la concentration de l’impureté est :\n", ">$$t=-\\frac{ln(0.5)}{E_A a k}$$\n", "\t \n", "\n" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7.74324321976099e-05\n", "3000.0\n", "1\n", "Ha: 0.194 le temps est de 2.984 s et la hauteur de la colonne de 0.714 m\n", "Ha: 1.937 le temps est de 1.369 s et la hauteur de la colonne de 0.328 m\n" ] } ], "source": [ "print (k)\n", "print (a)\n", "print (EA(Ha))\n", "t=-np.log(0.5)/(EA(Ha)*a*k)\n", "t_new=-np.log(0.5)/(EA(Ha_new)*a*k)\n", "H=u*t\n", "H_new=u*t_new\n", "\n", "print ('Ha:', round(Ha,3),'le temps est de', round(t,3),'s et la hauteur de la colonne de', round(H,3),'m')\n", "print ('Ha:', round(Ha_new,3),'le temps est de', round(t_new,3),'s et la hauteur de la colonne de', round(H_new,3),'m')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour en savoir plus https://onlinelibrary.wiley.com/doi/book/10.1002/0471725137https://www.lavoisier.fr/livre/industries-chimiques/genie-de-la-reaction-chimique-2e-ed/villermaux/descriptif-9782852067592 disponible à la BU en plusieurs exemplaires\n", "\n", "Questions auxquelles vous devez être capable de répondre :\n", "- Est-ce que la résistance peut être localisée du côté gaz ?\n", "- Est-ce que les bulles sont vraiment sphériques ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }