{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quantité, composition, débits partiel et globaux\n", "\n", "Il est important de savoir manipuler et convertir les quantités et les compositions. Dans les procédés, il est aussi souvent nécessaire de faire des bilans sur les quantités et les débits. Cette feuille doit vous permettre de vous exercer et de développer une méthodologie vous permettant d'effecteur ces calculs sans erreurs (80 % des points perdus dans les examens sont liées à des problèmes de calculs de ce type).\n", "\n", "## Quantité\n", "\n", "On peut representer une quantité de trois façons différentes par : \n", "- le nombre de **moles**, n, lié aux nombres de molécules et donc d'objets avec le [nombre d'Avogadro](https://fr.wikipedia.org/wiki/Nombre_d%27Avogadro))\n", "- la **masse**, m\n", "- le **volume**, V\n", "\n", "En ajoutant un indice, on peut ainsi définir des quantités partielles, c'est à dire des quantités d'un constituant dans un mélange (par exemple, $n_A$ représente le nombre de mole de A). On peut également utilisé l'indice T pour la quantité totale (pour un mélange composé de A et B : $n_T=n_A+n_B). Les quantités peuvent ainsi s'ajouter.\n", "\n", "On peut passer d'une quantité à l'autre en utilisant des rapports de quantité qui caractérise les propriétés des constituants ou des mélanges :\n", "- la **masse molaire** réprésente le rapport la masse par moles, $M_A=\\frac{m_A}{n_A}$\n", "- la **masse volumique** représente le rapport la masse par unité de volume $\\rho_A=\\frac{m_A}{V_A}$\n", "- le **volume molaire** représente le rapport le volume occupé par une mole $v_A=\\frac{V_A}{n_A}$\n", "\n", "Il faut utiliser avec précaution ces changements de quantité en vérifiant à quelles quantités elles se rapportent, quantité d'un constituant ou du mélange. On peut ainsi définir la masse volumique du constituant A $\\rho_A=\\frac{m_A}{V_A}$ mais aussi du mélange $\\rho_T=\\frac{m_T}{V_T}$. Vous pouvez aussi remarquer que ces rapports ne s'aditionnent pas : $\\rho_T \\ne \\rho_A+\\rho_B$ mais $V_T\\rho_T = V_A\\rho_A+V_B\\rho_B$.\n", "\n", "## Composition\n", "\n", "Les compositions représentent un rapport de quantité dans les mélanges : généralement une quantité d'un constituant sur une quantité totale. On peut utiliser :\n", "\n", "Les **concentrations** représentent généralement une quantité d'un constituant sur le volume total, $V_T$. On peut définir :\n", "- une concentration molaire $c_{nA}=n_A/V_T$\n", "- une concentration massique $c_{mA}=m_A/V_T$\n", "- une concentration volumique $c_{VA}=V_A/V_T$ qui est aussi une fraction volumique ou un degré (noté°)\n", "\n", "Les **fractions** représentent une quantité d'un constituant sur la même quantité totale. On peut ainsi définir :\n", "- une fraction molaire $x_{nA}=n_A/n_T$\n", "- une fraction molaire $x_{mA}=m_A/m_T$\n", "- une fraction volumique $x_{VA}=c_{VA}=V_A/V_T$\n", "\n", "## Exerçons-nous\n", "On mélange 50 g de d'ethanol pur avec 20 g d'eau.\n", "Calculer les fractions molaires, massiques et volumique.\n", "\n", "Données à 20°C :\n", "$\\rho_W=1000 kg/m3$\n", "$\\rho_A=789 kg/m3$\n", "$M_A=46 g/mol$\n", "$M_W=18 g/mol$" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Ethanol Eau \n", "Fraction massique 0.714 0.286\n", "Fraction molaire 0.495 0.505\n", "Fraction volumique 0.76 0.24\n" ] } ], "source": [ "#Données W eau et A alcool\n", "rho_W=1000 #M_W/V_W kg/m3 ou g/L\n", "rho_A=789 #M_A/V_A kg/m3 ou g/L\n", "M_A=46 #g/mol\n", "M_W=18 #g/mol\n", "\n", "m_A=50 #g A\n", "m_W=20 #g W\n", "m_T=m_A+m_W\n", "\n", "#Fraction massique\n", "x_mA=m_A/m_T\n", "x_mW=m_W/m_T\n", "\n", "#Fraction molaire \n", "n_A=m_A/M_A\n", "n_W=m_W/M_W\n", "n_T=n_A+n_W\n", "x_nA=n_A/n_T\n", "x_nW=n_W/n_T\n", "\n", "#Fraction volumique \n", "V_A=m_A/rho_A #L\n", "V_W=m_W/rho_W #L\n", "V_T=V_A+V_W #L\n", "x_VA=V_A/V_T\n", "x_VW=V_W/V_T\n", "\n", "print('{:<20}{:<8}{:<8}'.format('','Ethanol','Eau'))\n", "print('{:<20}{:.3g}{:<3}{:.3g}'.format('Fraction massique',x_mA,'', x_mW))\n", "print('{:<20}{:.3g}{:<3}{:.3g}'.format('Fraction molaire',x_nA,'', x_nW))\n", "print('{:<20}{:.3g}{:<4}{:.3g}'.format('Fraction volumique',x_VA,'', x_VW))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exerçons-nous\n", "Quels sont les masses à peser d'éthanol et d'eau pour réaliser 20g d'un mélange avec une fraction molaire de 30% en éthanol ?\n", ">Il s'agit ici de déterminer deux inconnues m_A et m_W sachant que :\n", "- $m_A+m_W=20 g$\n", "- $n_A/n_T=0.3$\n", ">\n", "> Or $n_A=m_A/M_A$ et $n_W=m_W/M_W$. Le système à résoudre est donc :\n", "- $m_A+m_W=m_T=20 g$\n", "- $\\frac{m_A/M_A}{m_A/M_A+m_W/M_W}=x_{nA}=0.3$\n", ">\n", ">On est arrivé à exprimer le problème avec deux équations et deux inconnus : c'est raassurant et un premier pas important franchi ! On peut ensuite combiner ces équations pour avoir une équation à une inconnue, choisissons de tout exprimer en fonction de $m_A$ :\n", ">\n", ">$m_A/M_A=x_{nA}(m_A/M_A+(m_T-m_A)/M_W)$\n", ">\n", ">$m_A/M_A-x_{nA}(m_A/M_A+(m_T-m_A)/M_W)=0$\n", ">\n", ">$m_A(1/MA-x_{nA}(1/M_A-1/M_W))-x_{nA}m_T/M_W=0$\n", ">\n", ">$m_A(1/MA-x_{nA}(1/M_A-1/M_W))=x_{nA}m_T/M_W$\n", ">\n", ">$m_A=\\frac{x_{nA}m_T/M_W}{1/MA-x_{nA}(1/M_A-1/M_W)}$\n", ">\n", ">$\\frac{m_A}{m_T}=x_{mA}=\\frac{1}{1+(1/x_{nA}-1)M_W/M_A}$\n", ">\n", ">Cette dernière écriture permet de vérifier que les unités sont correctes (c'est important pour trouver ses erreurs). C'est un calcul assez compliqué : cela vaut le coup de recalculer la fraction molaire une fois les masses déterminés pour vérifier son calcul." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pour une fraction molaire de 0.3 il faut une fraction massique de 0.523\n", "il faut peser 10.455 g d'éthanol et 9.545 g d'eau\n", "\n", "Vérification nA= 0.227 n_W= 0.53 soit une fraction molaire de 0.3\n" ] } ], "source": [ "m_T=20\n", "x_nA=0.3\n", "x_mA=1/(1+(1/x_nA-1)*M_W/M_A)\n", "print('Pour une fraction molaire de', x_nA, \"il faut une fraction massique de\", round(x_mA,3))\n", "m_A=x_mA*m_T\n", "m_W=m_T-x_mA*m_T\n", "print('il faut peser', round(m_A,3), 'g d\\'éthanol et', round(m_W,3), 'g d\\'eau')\n", "print('')\n", "n_A=m_A/M_A\n", "n_W=m_W/M_W\n", "print('Vérification nA=',round(n_A,3),' n_W=', round(n_W,3), 'soit une fraction molaire de', round(n_A/(n_A+n_W),2))\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.12" } }, "nbformat": 4, "nbformat_minor": 4 }