ÉPREUVE MUTUALISÉE AVEC E3A-POLYTECH ÉPREUVE SPÉCIFIQUE - FILIÈRE PC
MODÉLISATION DE SYSTÈMES PHYSIQUES OU CHIMIQUES
Durée : 4 heures
N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut lui sembler être une erreur d'énoncé, il le signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des initiatives qu'il a été amené à prendre.
RAPPEL DES CONSIGNES
Utiliser uniquement un stylo noir ou bleu foncé non effaçable pour la rédaction de votre composition ; d'autres couleurs, excepté le vert, peuvent être utilisées, mais exclusivement pour les schémas et la mise en évidence des résultats.
Ne pas utiliser de correcteur.
Écrire le mot FIN à la fin de votre composition.
Les calculatrices sont autorisées.
Le sujet est composé de trois parties indépendantes.
Sujet : page 1 à page 12.
Annexe : page 13 à page 16.
Modélisation de la fuite de matière d'un réservoir rempli de dioxyde de carbone gazeux
Présentation générale
Ce sujet repose sur l'étude théorique et numérique d'une fuite de matière au sein d'une cuve contenant du dioxyde de carbone ( ) gazeux. Il est constitué de trois parties indépendantes.
La première partie est dédiée à l'établissement du modèle thermodynamique du phénomène de fuite de matière contenue dans une cuve à travers un orifice.
La seconde partie est consacrée à l'étude numérique du problème; la relation entre la capacité thermique molaire du gaz parfait et la température est admise.
La troisième partie est consacrée à l'étude de deux modèles pour décrire la relation entre et dont les coefficients sont déduits de mesures expérimentales.
Traitement numérique et calcul scientifique réalisés à partir d'un programme écrit en langage Python
Les programmes demandés au candidat seront réalisés dans le langage Python.
On veillera à apporter les commentaires facilitant la compréhension du programme et à utiliser des noms de variables explicites.
Il est demandé de répondre précisément aux questions posées (par exemple, on écrira une fonction uniquement lorsque cela est explicitement demandé).
Une annexe décrivant quelques éléments de langage Python utiles pour ce sujet est fournie en page 13.
Précisions concernant les notations utilisées
Symbole
Nom
Unité
Capacité thermique molaire à pression constante
Capacité thermique massique à pression constante
Débit massique
Enthalpie massique
Masse molaire
Masse
kg
Pression
Pa
Puissance thermique
W
Constante des gaz parfaits
Température
K
Température critique
K
Énergie interne
J
u
Énergie interne massique
Volume
Puissance utile
W
Vitesse des courants de matière
Section de fuite
Partie I - Modélisation de la fuite d'un réservoir : mise en équation
Généralités sur les bilans de matière et d'énergie en système ouvert
On s'intéresse au système ouvert décrit par la figure 1. Ce système possède une entrée de matière (notée A), une sortie (notée B). Il reçoit du milieu extérieur une puissance thermique et une puissance de force . Il fournit au milieu extérieur une puissance thermique et une puissance de force . Les grandeurs sont définies comme des quantités algébriques. En revanche, les débits massiques et sont définis comme des quantités positives.
Figure 1 - Représentation schématique d'un système ouvert
Q1. Donner l'unité des grandeurs et mentionnées sur la figure 1 .
Q2. Le système considéré est supposé évoluer en régime stationnaire. Quelle est la relation entre les débits des courants de matière entrant et sortant ? Justifier.
Q3. Appliquer le premier principe de la thermodynamique au système ouvert stationnaire de la figure 1. Montrer qu'il peut se mettre sous la forme :
On explicitera les termes débits d'énergie (homogènes à une puissance) en fonction des grandeurs introduites par la figure 1.
Q4. Le système étudié de la figure 1 est supposé évoluer en régime transitoire. On note , la fonction représentant l'évolution de sa masse en fonction du temps . À partir d'un bilan de matière, déduire la relation existant entre et . Proposer une interprétation qualitative du bilan.
On admet dans la suite l'écriture du premier principe en système ouvert, étendue aux systèmes immobiles en régime transitoire :
où désigne la dérivée de l'énergie interne du système étudié par rapport au temps .
Q5. Proposer une interprétation qualitative du bilan d'énergie traduit par l'équation (2).
Écriture d'un modèle décrivant la fuite d'un réservoir adiabatique contenant du
On s'intéresse à présent à un réservoir contenant un gaz supposé parfait. Ce réservoir indéformable (donc de volume fixe) est le siège d'une fuite vers le milieu environnant à la température et à la pression bar supposées fixes dans tout le sujet. Il n'est pas agité mécaniquement. Toutefois, les propriétés du gaz dans le réservoir sont supposées uniformes à chaque instant. Ce réservoir est décrit par la figure 2.
Réservoir adiabatique
Figure 2 - Réservoir adiabatique renfermant du gaz et soumis à une fuite de gaz vers le milieu environnant
Q6. Le modèle gaz parfait
a) Dans quelle situation limite un gaz réel s'identifie-t-il exactement à un gaz parfait?
b) Donner la valeur du rapport pour un gaz parfait monoatomique. Faire de même pour un gaz parfait diatomique.
c) Pour le gaz parfait, le rapport dépend de la température selon une loi notée par la suite . L'étude de la loi sera l'objet de la partie suivante.
Donner un argument physique expliquant pourquoi, pour le est une fonction de la température contrairement au cas des gaz parfaits mono- et di-atomiques.
d) Donner la relation unissant les variations d'énergie interne molaire et de température à la fonction . En déduire l'expression de où désigne l'énergie interne massique d'un gaz parfait pur.
Q7. On suppose que les propriétés intensives du gaz dans le réservoir (entre autres, sa température , sa pression et son enthalpie massique ) sont uniformes. On considèrera que les propriétés intensives du gaz sortant sont les mêmes que celles du gaz dans le réservoir. On s'intéresse au système {volume contenant le gaz à et dans le réservoir, paroi non comprise} représenté par des pointillés sur la figure 2. Montrer que l'application du bilan de matière et du premier principe au système en pointillés décrit par la figure 2 amène :
On supposera négligeable l'énergie cinétique massique de la matière quittant le système.
Q8. En introduisant la relation entre l'énergie interne massique (en ) et l'énergie interne (en J ) du système étudié, montrer que l'équation (3) amène :
où et désignent respectivement la constante des gaz parfaits et la masse molaire du gaz. En déduire que :
On cherche à présent à estimer le débit de gaz quittant le réservoir. Pour ce faire, on s'intéresse à la zone de l'espace dans laquelle se produit la fuite.
Figure 3 - Fuite de gazeux à travers l'orifice dans la paroi du réservoir
On considère le système {orifice dans la paroi du réservoir}; on supposera que :
l'écoulement de gaz à travers l'orifice est adiabatique et stationnaire;
la vitesse du gaz en entrée du système est nulle; elle est notée en sortie;
la température et la pression du gaz en entrée sont notées et (ce sont celles du gaz à l'intérieur du réservoir); en sortie, elles sont notées et bar.
Q9. Montrer que le débit massique de fluide à travers la section de l'orifice est donné par :
où la surface désigne la section de passage du fluide à travers l'orifice.
Q10. Expression de en fonction de
En appliquant l'expression du premier principe en système ouvert stationnaire, donnée par l'équation (1), au système {orifice dans la paroi du réservoir} délimité par des pointillés sur la figure 3, montrer que la vitesse de sortie du a pour expression :
Q11. Méthode de calcul de
a) En négligeant les frottements au sein du système considéré, on peut supposer l'écoulement réversible. Montrer, par application du second principe, que cette hypothèse amène à supposer l'écoulement isentropique massique (ou molaire) (i.e., à entropie massique - ou molaire constante).
b) Montrer que la variation d'entropie massique d'un gaz parfait pur s'écrit :
En déduire que est solution de l'équation :
Finalement, en réunissant les équations (3), (5), (6), (7) et (9), le modèle ainsi constitué est représenté par le système suivant :
avec solution de :
Partie II - Modélisation de la fuite d'un réservoir : traitement numérique
Dans cette partie, on fera référence au modèle défini par les équations (10) et (11).
Données numériques utiles pour cette partie :
Modèle pour avec
Q12. Intégration numérique
a) Donner le code de la fonction integ1( ) réalisant le calcul analytique de l'intégrale (T1 et T2 sont des arguments d'entrée de la fonction integ1 qui désignent les bornes de l'intégrale).
b) Donner le code de la fonction integ2 ( ) réalisant le calcul numérique de l'intégrale (T1 et T2 sont des arguments d'entrée de la fonction integ2 qui désignent les bornes de l'intégrale).
La méthode des rectangles sera adoptée pour estimer l'intégrale; l'intervalle des températures sera divisé en 100 sous-intervalles).
Ces deux fonctions pourront être appelées autant de fois que nécessaire par la suite.
Q13. La fonction chercheTB (T,m) fournie ci-dessous renvoie, pour des valeurs connues des variables et , la valeur correspondante de obtenue par résolution de l'équation (11) selon la méthode de Newton :
Pour compléter la portion de code ci-dessus, indiquer par quelles instructions il convient de remplacer les séquences [instruction1] à [instruction4]. Justifier.
La fonction chercheTB (T,m) pourra être appelée autant de fois que nécessaire par la suite.
Pour résoudre une équation différentielle mise sous la forme , on peut utiliser le schéma d'Euler dont on rappelle l'expression :
Dans le cas d'un système d'équations différentielles d'ordre 1 , de la forme , on peut généraliser le schéma d'Euler de la manière suivante :
où désigne le vecteur des fonctions inconnues évaluées à la date courante .
Q14. Donner l'algorithme général du calcul numérique des fonctions temporelles , et entre et , par résolution du système différentiel (10) reposant sur l'utilisation du schéma d'Euler généralisé (on choisira comme pas de temps : ).
Cet algorithme sera fourni sous la forme d'un logigramme. On veillera à mentionner les procédures d'initialisation des processus itératifs ainsi que leurs critères d'arrêt. Quand cela sera nécessaire, on fera appel à la fonction cherche sans détailler sa structure.
Q15. Écrire le code mettant en œuvre l'algorithme proposé à la question précédente. On pourra faire appel à toutes les fonctions programmées précédemment.
Q16. Intuitivement, quand la fuite s'arrêtera-t-elle en pratique?
Partie III - Développement de corrélations pour la capacité thermique à pression constante molaire du dioxyde de carbone
On dispose d'un faible nombre de mesures expérimentales du rapport du gazeux sur un large domaine de températures sous pression atmosphérique (où désigne la capacité thermique molaire à pression constante et , la constante des gaz parfaits).
Ces mesures (au nombre de 6) sont consignées dans un fichier cP. txt (voir tableau 1). La première colonne donne la température en K , la seconde fournit les mesures expérimentales de la quantité .
100.0
3.513
500.0
5.367
1000.0
6.532
2000.0
7.257
3000.0
7.475
4000.0
7.586
Tableau 1 - Contenu du fichier cP. txt
Dans cette partie, on cherche à développer une corrélation de la propriété en fonction de la température. Le modèle est noté par la suite :
è
Les coefficients intervenant dans la corrélation seront déterminés de manière à reproduire efficacement les données expérimentales ( ) dont on dispose. Pour y parvenir, deux stratégies sont envisagées et testées :
un premier modèle de la forme :
è
où et sont des constantes;
un second modèle de forme polynomiale :
è
où désigne la température critique du , le degré du polynôme. Les sont les coefficients réels du polynôme.
Q17. Les valeurs des capacités thermiques reportées dans le tableau 1 ont été mesurées par calorimétrie. Il existe de nombreuses techniques de mesures calorimétriques. Décrire succinctement le principe d'une technique expérimentale de mesure de la capacité thermique d'un liquide ou d'un gaz par calorimétrie que vous connaissez; en particulier, fournir un schéma pour illustrer le principe de la mesure et préciser comment la valeur de la capacité thermique est déduite de la mesure.
Q18. Montrer par une analyse dimensionnelle que le rapport est sans dimension.
Q19. Programme de lecture des données
Indiquer la syntaxe à utiliser pour charger le fichier CP . txt qui contient les données expérimentales et stocker celles-ci dans deux tableaux de réels temp (pour les températures) et CpR_exp (pour les valeurs expérimentales du rapport ).
De plus, déterminer automatiquement le nombre de points expérimentaux présents dans le fichier chargé.
III. 1 - Développement du premier modèle
On cherche à déterminer les coefficients et du modèle donné par l'équation (15).
Ces coefficients sont inconnus dans cette partie. Pour ce faire, on va utiliser une technique de minimisation. L'idée générale est la suivante :
on forme une fonction dite objectif, notée rendant compte des écarts entre les prédictions du modèle et les valeurs expérimentales;
on va chercher à minimiser cette fonction en jouant sur les valeurs des coefficients et .
La fonction objectif choisie a pour expression :
è
Q20. Dans l'expression de la fonction objectif, pour quelle raison les écarts ont-ils été élevés au carré?
On range les coefficients recherchés dans le vecteur .
Q21. Écrire la syntaxe de la fonction delta(vecA, temp, CpR_exp) qui prend comme argument d'entrée un jeu quelconque de coefficients a (vecA désigne le tableau contenant les éléments du vecteur ), les tableaux temp et CpR_exp et renvoie en sortie le vecteur contenant les éléments définis par l'équation (17).
Q22. Écrire la syntaxe de la fonction fobj (vecA,temp, CpR_exp) permettant l'estimation de la fonction-objectif pour un jeu quelconque de coefficients a (vecA désigne le tableau contenant les éléments du vecteur a). On pourra utiliser la fonction delta définie à la question précédente.
Un extremum local de la fonction objectif vérifie :
C'est donc, en particulier, le cas d'un minimum. À présent, on a besoin d'exprimer et d'estimer les dérivées (pour ).
Q23. Donner les expressions analytiques des dérivées èè et è.
Q24. Montrer que les expressions analytiques des dérivées peuvent se mettre sous la forme :
è
et fournir explicitement leurs expressions.
On note , le gradient de , i.e., le vecteur des 3 dérivées partielles (pour ).
Q25. Écrire la syntaxe d'une fonction deriv_fobj (vecA, temp, CpR_exp) permettant l'estimation de . Cette fonction pourra faire appel aux fonctions programmées précédemment.
Pour résoudre l'équation (18), une méthode de type Newton est envisagée. Les valeurs de a minimisant la fonction-objectif sont obtenues à partir du schéma itératif suivant :
éé
où et sont respectivement la matrice hessienne et le gradient de estimés à l'itération ( ). La matrice hessienne de la fonction désigne la matrice (symétrique) de ses dérivées partielles secondes dont l'expression est définie ci-après :
On choisit d'estimer numériquement les éléments de la matrice hessienne à partir de l'approximation suivante :
è
où è est égal à excepté pour la è composante qui est augmentée de la quantité .
Par exemple, si , on a : è.
Q26. Écrire la syntaxe d'une fonction hessienne_fobj (vecA,temp,CpR_exp) permettant l'estimation de la matrice hessienne de la fonction-objectif en un point a quelconque. Cette fonction pourra faire appel aux fonctions programmées précédemment. On prendra .
Q27. On choisit comme point de départ de la procédure itérative : .
Écrire un code permettant de mettre en œuvre le calcul du a optimal (noté ) à partir d'une méthode de type Newton. On proposera en particulier un critère d'arrêt pertinent des itérations (ce choix sera justifié).
Q28. Pour s'assurer que l'extremum obtenu est un minimum, il convient de vérifier que la matrice évaluée en est semi-définie positive (i.e., que ses valeurs propres sont positives ou nulles). Pour ce faire, écrire une fonction prenant comme argument d'entrée et renvoyant en sortie 0 si la plus petite des valeurs propres de est positive ou nulle et 1 si ce n'est pas le cas. Le calcul des valeurs propres sera effectué à l'aide d'une fonction-intrinsèque adaptée (voir annexe).
III. 2 - Développement du second modèle : le modèle polynomial
Pour décrire les mesures expérimentales, on choisit d'utiliser un polynôme d'interpolation dont l'expression générale est donnée par l'équation (16). Cela signifie que le degré du polynôme et ses coefficients seront déterminés de manière à ce que la courbe représentative de la fonction è passe exactement par les 6 points expérimentaux.
Q29. Déduire le degré du polynôme du nombre de données expérimentales. Justifier brièvement.
Q30. Écrire le système d'équations que doivent vérifier les coefficients du polynôme de manière à reproduire exactement les données expérimentales.
Q31. Montrer que ce système est linéaire en le mettant sous la forme :
où est le vecteur contenant les mesures expérimentales de , le vecteur contenant les coefficients du polynôme et une matrice carrée dont les coefficients ne dépendent que des valeurs expérimentales de . Donner explicitement l'expression de la matrice .
Q32. Mathématiquement, quelle opération algébrique faut-il effectuer pour accéder aux valeurs des coefficients ?
Dans la figure 4, on a superposé dans le plan ( ) les points expérimentaux ainsi que les courbes associées aux deux modèles proposés. Les coefficients de ces modèles ont été déterminés suivant les procédures présentées précédemment.
Q33. Donner la syntaxe du code permettant de générer cette figure (la courbe du modèle 1 sera représentée par un trait pointillé tandis que celle du modèle 2 sera représentée par un trait continu). On rappelle que les coordonnées des points expérimentaux sont contenues dans les tableaux temp et CpR_exp; les 3 coefficients du modèle 1 sont stockés dans vecA; les 6 coefficients du modèle 2 sont supposés être stockés dans un vecteur vecB.
Q34. Commentez le graphe de la figure 4. Finalement, parmi les deux modèles proposés, lequel retiendriez-vous et pourquoi?
Vous pourrez prendre en considération l'influence des incertitudes expérimentales sur les valeurs des paramètres des deux modèles considérés précédemment.
Évolution de la capacité calorifique molaire ( ) du gazeux avec la température ( T )
Figure 4 - Confrontation des points expérimentaux et des valeurs prédites par les deux modèles proposés dans le plan versus
ANNEXE
Quelques commandes utiles en langage Python
A - Bibliothèque NUMPY de Python (gestion des tableaux, matrices, vecteurs et fichiers) 13 - Résolution d'une équation non linéaire à une inconnue 15
C - Bibliothèque MATPLOTLIB.PYPLOT de Python (gestion des graphes) 16
A - Bibliothèque NUMPY de Python (gestion des tableaux, matrices, vecteurs et fichiers)
Dans les exemples ci-dessous, la bibliothèque numpy a préalablement été importée à l'aide de la commande : import numpy as np. On peut alors utiliser les fonctions de la bibliothèque, dont voici quelques exemples :
np.array(liste)
Description : fonction permettant de créer une matrice (de type tableau) à partir d'une liste.
Argument d'entrée : une liste définissant un tableau à 1 dimension (vecteur) ou 2 dimensions (matrice).
Argument de sortie : un tableau (matrice).
Exemples :
Commande
Résultat
np.array
np.array
np.array
éééàé gralité de la ligne de la matrice , on écrit . De même, pour obtenir toute la colonne de la matrice , on utilise la syntaxe .
Argument d'entrée : une liste contenant les coordonnées de l'élément dans le tableau .
Arguments de sortie : l'élément de la matrice .
RAPPEL : en langage Python, les lignes d'un tableau de taille sont numérotées de 0 à et les colonnes sont numérotées de 0 à .
Exemples :
Commande
Résultat
10
np.zeros((n,m))
Description : fonction créant une matrice (tableau) de taille dont tous les éléments sont nuls.
Argument d'entrée : un tuple de deux entiers correspondant aux dimensions de la matrice à créer.
Argument de sortie : un tableau (matrice) d'éléments nuls.
Exemple: Commande Résultat
np.zeros
np.dot(mat1,mat2)
: fonction calculant le produit de deux matrices mat1 et mat2.
Argument d'entrée : matrices mat1 et mat2.
Argument de sortie: la matrice produit de mat1 et mat2.
np.linalg.inv(mat)
Argument d'entrée : matrice mat.
Argument de sortie: la matrice inverse de mat.
np.linalg.eig(mat)
: fonction calculant les valeurs propres de la matrice mat.
Argument d'entrée : matrice mat.
Argument de sortie: c'est un tuple dont le premier élément correspond aux valeurs propres tandis que le second élément contient les vecteurs propres.
Pour accéder aux valeurs propres de mat, on écrira :
np.linalg.eig(mat)[0]
np.linspace(Min,Max,nbElements)
éééè entre Min et Max. Le premier élément est égal à Min, le dernier est égal à Max et les éléments sont espacés de (Max-Min)/(nbElements-1).
Argument d'entrée : un tuple de 3 entiers.
Argument de sortie: un tableau (vecteur).
Exemple:
: fonction permettant de lire les données sous forme de matrice dans un fichier texte et de les stocker sous forme de vecteurs.
Argument d'entrée : le nom du fichier qui contient les données à charger, le type de caractère utilisé dans ce fichier pour séparer les données (par exemple, une espace ou une virgule) et le numéro de la colonne à charger (RAPPEL : la première colonne est affectée du numéro 0 ).
Argument de sortie: un tableau.
Exemple :
data=np.loadtxt('fichier.txt', delimiter=' ', usecols=[0])
Dans cet exemple, data est un vecteur qui correspond à la première colonne de la matrice contenue dans le fichier fichier.txt.
B - Résolution d'une équation non linéaire à une inconnue
La bibliothèque adaptée est chargée par l'instruction : from scipy import optimize.
L'équation à résoudre est mise sous la forme : , où désigne l'inconnue. La fonction doit d'abord être définie à l'aide de l'instruction def.
Exemple : si l'équation à résoudre s'écrit , la fonction a pour expression : . Codage: :
return .
La fonction root peut alors être utilisée pour résoudre l'équation. La variable doit être initialisée à une valeur aussi proche que possible de la solution.
# Valeur initiale de x :
Xinit = 1.
# jac = None signifie que la dérivée de f (dont se sert
# la fonction root pour effectuer la résolution)
# n'est pas fournie par l'utilisateur mais estimée
# numériquement par Python.
Xsol = root(f,Xinit,jac=None)
La solution de l'équation est rangée dans le premier élément du vecteur Xsol. x, c'est-à-dire:
Xsol.x[0]
C - Bibliothèque MATPLOTLIB.PYPLOT de Python (gestion des graphes)
Cette bibliothèque permet de tracer des graphiques. Dans les exemples ci-dessous, la bibliothèque matplotlib.pyplot a préalablement été importée à l'aide de la commande :
import matplotlib.pyplot as plt
On peut alors utiliser les fonctions de la bibliothèque, dont voici quelques exemples :
plt.plot( , ' ) : fonction permettant de tracer un graphique de points dont les abscisses sont contenues dans le vecteur et les ordonnées dans le vecteur . Cette fonction doit être suivie de la fonction plt.show() pour que le graphique soit affiché. éééé (tableau de éléments).
La chaîne de caractères 'SC' précise le style et la couleur de la courbe tracée. Des valeurs possibles pour ces deux critères sont :
Valeurs possibles pour S (style) :
Description
Ligne continue
Ligne traitillée
Marqueur rond
Marqueur plus
Symbole S
-
--
o
+
Valeurs possibles pour C (couleur) :
Description
bleu
rouge
vert
noir
Symbole C
b
r
g
k
Argument de sortie: un graphique.
Exemple: x= np.linspace(3,25,5)
y=sin(x)
plt.plot(x,y,'-b') # tracé d'une ligne bleue continue
plt.title('titre_graphique') # titre du graphe
plt.xlabel('x') # titre de l'axe des abscisses
plt.ylabel('y') # titre de l'axe des ordonnées
plt.show()
FIN
CCINP Modélisation PC 2021 - Version Web LaTeX | WikiPrépa | WikiPrépa