CCP Modélisation de systèmes physiques ou chimiques PC 2018

Thème de l'épreuve Étude d'une réaction exothermique : stabilité thermique en réacteur fermé
Principaux outils utilisés thermodynamique, algèbre linéaire, intégration numérique
Mots clefs réaction chimique, diffusion de la chaleur, régression linéaire, schéma d'Euler implicite, algorithme de Newton–Raphson

Corrigé

(c'est payant, sauf le début): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Extrait gratuit du corrigé

(télécharger le PDF)
           

Énoncé complet

(télécharger le PDF)
                                                     

Rapport du jury

(télécharger le PDF)
        

Énoncé obtenu par reconnaissance optique des caractères


SESSION 2018 ! ! ! PCMS006 ! ÉPREUVE SPÉCIFIQUE - FILIÈRE PC! !!!!!!!!!!!!!!!!!!!!" MODÉLISATION DE SYSTÈMES PHYSIQUES OU CHIMIQUES Jeudi 3 mai : 8 h - 12 h! !!!!!!!!!!!!!!!!!!!!" N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la !"#$%&'()*+,'+-)+%$)#'#$&+./&+$0.)"+1+!.2"!.!+%.+3-'+2.-&+4-'+/.054.!+6&!.+-).+.!!.-!+#7")()%"8+'4+4.+ signalera sur sa copie et devra poursuivre sa composition en expliquant les raisons des in'&'$&'9./+3-7'4+ a été amené à prendre.! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ! ! ! ! ! ! ! ! Les calculatrices sont autorisées ! ! ! ! ! ! ! ! ! ! ! Le sujet est composé de deux parties (pages 1 à 14) ! et d'une annexe (pages 15 à 18). !! !! ! ! ! ! ! ! ! ! ! ! ! ! 1/18 ! PROBLÈME Étude d'une réaction exothermique : stabilité thermique en réacteur fermé Présentation du problème De nombreux procédés industriels font intervenir des réacteurs fermés pour la synthèse de molécules à haute valeur ajoutée. Pour optimiser le rendement de la synthèse, il est nécessaire de bien comprendre l'influence des paramètres physiques (comme la température de la réaction,...) sur la marche du réacteur. La maîtrise des échanges thermiques est cruciale dans le cas des réactions exothermiques car la chaleur dégagée par la réaction provoque une augmentation de la température du mélange réactionnel. Selon les conditions opératoires, cette augmentation de température peut entraîner un emballement thermique du réacteur et conduire à des dégâts irréversibles. L'accident de Seveso le 10 juillet 1976 illustre les problèmes liés à l'emballement thermique des réacteurs. Il s'agissait d'un procédé de production de 2,4,5-trichloro-phénol à partir de 1,2,4,5-tétrachloro-benzène et de soude dans un solvant (l'éthylène glycol) à une température voisine de 150 °C et à pression atmosphérique en réacteur fermé. La mauvaise maîtrise de la température de la réaction a entraîné le déroulement de réactions secondaires conduisant d'une part à une augmentation de la température et de la pression et d'autre part à la formation de produits secondaires toxiques : les dioxines. La rupture de la soupape de sécurité due à l'augmentation de la pression a conduit au rejet de dioxines dans l'atmosphère. L'étude de l'influence des paramètres physiques sur la marche d'un réacteur se fait la plupart du temps à l'échelle du laboratoire dans des dispositifs de dimensions beaucoup plus petites que celles des réacteurs utilisés dans les procédés industriels. La particularité du réacteur utilisé pour la présente étude est qu'il possède une géométrie cylindrique et qu'il est équipé d'une double enveloppe externe dans laquelle circule un fluide permettant de refroidir la paroi du réacteur et d'empêcher un emballement thermique (figure 1). L'emballement thermique survient lorsque la chaleur dégagée par la réaction excède la capacité du réacteur à évacuer l'énergie. Figure 1!"!#$%&'(!)*'+,*-*&!./01!2&($3402!-42'&!+(2-(*34'41t agité avec une double enveloppe pour son refroidissement 2/18 Pour caractériser le comportement thermique du réacteur, on commence la plupart du temps par une étude en l'absence de réaction. Cette étude permet dans un premier temps de caractériser la capacité du réacteur à évacuer l'énergie avec la détermination du coefficient de transfert thermique à la paroi. Dans un deuxième temps, on met en oeuvre dans ce réacteur une réaction exothermique ! " #$%&'()*. Ces études permettent de déterminer les valeurs de paramètres clefs intervenant dans les équations décrivant le comportement du réacteur (modèle théorique). L'utilisation de ce modèle théorique permet de prédire la stabilité thermique du réacteur. L'établissement du modèle théorique repose sur l'écriture de bilans de matière et de chaleur. Une fois que l'influence des conditions physiques sur la marche du réacteur est déterminée, on peut en déduire les conditions de stabilité du réacteur industriel. Ce sujet est constitué de deux parties. La première partie porte sur la modélisation du réacteur fermé parfaitement agité avec double enveloppe. Elle permet l'établissement du système d'équations différentielles régissant les variations de la conversion du réactif et de la température en fonction du temps, ainsi que la détermination de la valeur de paramètres physico-chimiques intervenant dans ces équations. La deuxième partie porte sur le traitement numérique des données expérimentales avec la détermination des paramètres d'un modèle par régression linéaire, puis la prédiction du comportement thermique du réacteur par résolution d'un système d'équations différentielles par la méthode d'Euler implicite. 3/18 Partie I ­ Modélisation du réacteur fermé parfaitement agité avec double enveloppe I.1 ­ Etalonnage thermique du réacteur Dans cette partie, on souhaite caractériser les transferts de chaleur entre un liquide contenu à l'intérieur du réacteur et la paroi en l'absence de toute réaction chimique. On supposera que la capacité thermique massique et la masse volumique de ce liquide sont constantes quelle que soit la température. Pour caractériser ces transferts de chaleur, on réalise deux expériences successives avec la température de la paroi, !" , maintenue constante dans les deux cas. · La première expérience consiste à chauffer le liquide (initialement à une température identique à celle de la paroi) avec un dispositif annexe (une résistance chauffante) dissipant une puissance thermique #$% de 96,0 W. On constate que la température de la phase liquide augmente, puis atteint une valeur asymptotique en régime permanent (figure 2a). · Après avoir atteint le régime permanent lors de la phase de chauffe, on réalise une seconde expérience en coupant le chauffage. La température du liquide décroit jusqu'à ce qu'elle tende vers la température de la paroi (figure 2b). a) pendant la phase de chauffe b) pendant la phase de refroidissement Figure 2!"!#$%&'()%*!+,!&-!(,./01-('1,!+'!&)2')+,!+-*3!&,!1éacteur On exploite d'abord la courbe obtenue lors de la phase de chauffe (figure 2a) pour déterminer le coefficient de transfert de chaleur à la paroi, noté & (unité : W·m-2·K-1). Ce coefficient rend compte des échanges de chaleur entre la phase réactionnelle et le fluide caloporteur dans la double enveloppe à travers la paroi du réacteur. Dans le cas présent, la température !" étant la température de paroi du côté du fluide caloporteur, il s'agit d'un coefficient de transfert thermique global qui tient compte du transfert convectif côté réaction et du transfert par conduction dans la paroi qui sépare les deux fluides. 4/18 Pour obtenir la valeur de !, on commence par établir l'équation différentielle qui régit l'évolution de la température " en fonction du temps en réalisant un bilan d'énergie. Le bilan d'énergie, conséquence directe du premier principe de la thermodynamique, appliqué au système constitué par la phase réactionnelle lors de la phase de chauffe, conduit à l'équation différentielle suivante (équation (1)) #$ % & % '() *" , -./ 0 ! % 1 % 2" 0 "3 45 *+ (1) où " est la température du fluide à l'intérieur du réacteur, $, & et '3 sont respectivement la masse volumique, le volume et la capacité thermique massique du fluide, -./ est la puissance thermique cédée par la résistance chauffante au milieu réactionnel, "3 est la température à la paroi, maintenue constante ("3 , 320,0 K) et 1 la surface latérale du réacteur sur laquelle le fluide à l'intérieur du réacteur est en contact avec la double enveloppe. Q1. Interpréter concrètement chacun des trois termes du bilan d'énergie en précisant leur signification physique et vérifier qu'ils sont homogènes à des puissances. Q2. Donner l'expression de " 0 "3 en régime permanent. Il est rappelé que la température de la paroi, "3 , est maintenue constante tout au long des essais. Il est précisé que la température de la phase liquide à l'instant initial est égale à "3 . Q3. D'après les résultats obtenus lors de la première expérience (figure 2a), donner la valeur de la différence de température " 0 "3 lorsqu'on atteint le régime permanent. Calculer la valeur du coefficient de transfert de chaleur à la paroi dans les unités SI. On donne "3 , 320,0 K, $ , 1 000,0 kg·m-3, & , 0,1 × 10-3 m3 et '3 , 1 800,0 J·kg-1·K-1, -./ , 96,0 W et 1 , 8,0 ×610-3 m2. Q4. On souhaite faire apparaître un temps caractéristique d'échange thermique 78 du système. Montrer que le bilan d'énergie peut se mettre sous la forme suivante (équation (2)) : "( 0 " *" ,9: ; *+ 78 (2) Donner les expressions de 9 et 78 . Vérifier que 78 est homogène à un temps. On souhaite maintenant exploiter les résultats obtenus lors de la phase de refroidissement (figure 2b) pour confirmer la valeur du temps caractéristique d'échange thermique déterminé précédemment. Q5. de Le bilan d'énergie établi à la question Q4 est-il modifié ? Si oui, donner la nouvelle expression <= <. . 5/18 Q6. Donner l'expression de ! " !# en fonction du temps $ par résolution de l'équation différentielle. On notera !%&' la température initiale lors de la phase de refroidissement. Q7. Le tracé de ()*! " !# + (avec ! " !# en K) en fonction du temps $ (figure 3) donne une droite d'équation , - "./00 1 .234 1 5 6 0/78 (avec 5 en secondes). En déduire la valeur du temps caractéristique d'échange thermique 9: . Calculer la valeur du coefficient de transfert de chaleur à la paroi et vérifier que cette valeur correspond à celle obtenue avec la première expérience. Figure 3!"!#$%&'!()!()*! " !# + en fonction de $ à l'aide des points enregistrés lors de la phase de refroidissement (figure 2b) I.2 ­ Etude d'une réaction exothermique en réacteur fermé à double enveloppe Dans cette sous-partie, on considère que l'on met en oeuvre une réaction chimique exothermique ; < =>?@AB$C (; est dissous dans un solvant) dans le même réacteur que celui dont on a étudié les échanges thermiques dans la sous-partie précédente. Il s'agit ici de caractériser le comportement thermique du réacteur en présence d'une réaction exothermique. Le comportement du réacteur fermé parfaitement agité avec double enveloppe peut être représenté par un système constitué de deux équations différentielles ordinaires. La première équation différentielle ordinaire représente l'évolution temporelle de la conversion du réactif ; ; la deuxième permet de caractériser l'évolution de la température de la réaction en fonction du temps. Le réactif ; étant dissout dans un solvant, on considère que le volume du mélange réactionnel D reste constant au cours du temps. On considère également que la réaction est homogène et qu'elle a lieu dans tout le volume du mélange réactionnel. 6/18 On commence par déterminer l'équation différentielle qui régit l'évolution de la conversion du réactif ! en fonction du temps. Q8. On considère que la réaction est d'ordre 1 par rapport au réactif !. Donner l'expression de la vitesse de la réaction (exprimée par unité de volume de mélange réactionnel) que l'on notera " (on notera #$ la concentration molaire du réactif ! et % la constante cinétique). Préciser la dimension et l'unité de " dans le Système International. Q9. Rappeler la loi d'Arrhenius donnant les variations de la constante de réaction en fonction de la température. On notera %& le facteur pré-exponentiel et '( l'énergie d'activation. Préciser les dimensions et les unités SI de %, %& et '( . Q10. !"#$#%&'%&($')*&+%&,)-$.#%&/01/&')&20#,%& )*+ ), - ./#$ 0 12. Préciser l'expression de ./#$ 0 12. Il est rappelé que le volume de la phase réactionnelle reste constant au cours du temps. Q11. Dans le cas où le réacteur fonctionnerait en marche isotherme, résoudre l'équation différentielle et donner l'expression de la concentration de ! en fonction du temps sous la forme #$ - 3/42. On notera #$& la concentration initiale en !. Q12. Pour simplifier les bilans, on introduit le taux de conversion de !, noté 5$ , défini par la relation suivante : 5$ - /#$& 6 #$ 27#$& . Exprimer l'évolution de taux de conversion 5$ en fonction du temps pour le cas de la marche isotherme. Q13. Donner l'expression de l'équation différentielle qui régit l'évolution du taux de conversion 5$ en fonction du temps dans le cas général (marche quelconque, c'est-à-dire non isotherme), sans chercher à la résoudre. L'évolution de la température en fonction du temps est régie par une seconde équation différentielle obtenue en réalisant un bilan d'énergie sur le réacteur, conséquence directe du premier principe de la thermodynamique. La réaction chimique qui se déroule dans le réacteur produit par unité de temps une variation de l'enthalpie du système réactionnel donnée par 8/40 50 12 (équation (3)) qui correspond à la chaleur dégagée par la réaction. Ce paramètre est appelé « terme source » dans la suite. 8/40 5$ 0 12 - 69: ; & /12 < "/40 5$ 0 12 < =0 (3) où = est le volume du mélange réactionnel, " est la vitesse de la réaction et 9: ; & /12 est l'enthalpie molaire standard de la réaction. Dans la suite, on suppose que 9: ; & /12 ne dépend pas de la température. On prendra 9: ; & /12 - 9: ; & >1? @ que l'on notera 9: ; & pour simplifier. Q14. Donner la dimension du terme source!"#$% &' % (). 7/18 Q15. Montrer qu'un bilan enthalpique appliqué à un système que l'on précisera avec soin permet d'aboutir à la relation suivante (équation (4)) !" !&' " ( ") $% ( , !# !# *+ (4) où l'on exprimera % et *+ en fonction de -. /, 0'1 , 2, 0) , 3, 4 et 5. On admettra qu'il est légitime de négliger la contribution des réactifs, des produits et des accessoires situés à l'intérieur du réacteur au travers de leur capacités thermiques devant celle du solvant. Q16. Donner l'expression du paramètre % ainsi que sa dimension. Q17. Calculer la valeur du paramètre % en unité SI. On donne -. / 1 $ (!"#$%$ kJ·mol-1, & ' (!$$$%$ kg·m-3, )* ' (!+$$%$ J·kg-1·K-1 et ),- ' .$$%$ mol·m-3. I.3 ­ Stabilité thermique du réacteur Une première condition de stabilité, valable pour le cas d'une marche adiabatique, est que la température finale /0 de la réaction soit inférieure à une température maximale /123 , telle que /123 ' (%4. 5 /* . Q18. Exprimer l'équation différentielle (équation (4)) dans le cas d'un fonctionnement adiabatique. Q19. Déterminer alors l'expression de la température / en fonction du taux de conversion 6, , du paramètre 7 et de /- la température initiale du mélange réactionnel. Q20. Donner l'expression de la température /0 atteinte en fin de réaction dans le cas d'une marche adiabatique sachant que /- ' /* ' "4$%$ K. Conclure quant à la stabilité du réacteur dans le cas de cette étude. Donner la signification physique du paramètre 7. 8/18 !"#$%&'((')'*#"%$&+&,$',-+.#%/-&'0&1'02,,.&1'&34.#%mentales Les algorithmes demandés au candidat devront être réalisés dans le langage Python. On supposera les bibliothèques « numpy » et « matplotlib.pyplot » chargées. Une annexe présentant les fonctions usuelles de Python est disponible pages 15 à 18. Les commentaires suffisants à la compréhension du programme devront être apportés et des noms de variables explicites devront être utilisés lorsque ceux-ci ne sont pas imposés. II.1 ­ Détermination des paramètres d'un modèle par régression linéaire Pour calculer la valeur du temps caractéristique d'échange thermique du réacteur à la question Q7, un modèle de régression linéaire simple a été estimé à partir des points expérimentaux enregistrés lors de la phase de refroidissement. Le modèle de régression linéaire simple (fonction affine) est un modèle de régression d'une variable expliquée (!"#$ % $& ' dans notre cas) sur une variable explicative (le temps ( dans notre cas) dans lequel on fait l'hypothèse que la fonction qui relie la variable explicative à la variable expliquée est linéaire dans ses paramètres. Soit ) le nombre de points expérimentaux. Le modèle linéaire simple s'écrit de la manière suivante pour un point * (+ , * , )) 21 3 4. 5 0 26 7 -. / 0 (5) 26 et 0 21 sont les paramètres du modèle, -. est la variable expliquée et 4. est la variable explicative. où 0 On propose de déterminer les paramètres du modèle par deux méthodes directes. La méthode consiste à écrire le modèle (équation (5)) sous la forme matricielle8 26 et 0 21, 9 est un vecteur 9 / : 3 ;<. ;< est un vecteur colonne contenant les paramètres du modèle 0 =>? colonne contenant les ) valeurs -. et : une matrice à ) lignes et 2 colonnes, telle que :#*7 +' / 2 =@A => ? et :#*7 B' / 2 . Rappelons que ;< / #:D 3 :'E1 3 :D 9 où :D est la matrice transposée de :. =@C =>? =>? Q21. Donner les expressions de 2 et 2 . En déduire la valeur des coefficients de la matrice :. =@A =@C Q22. On suppose que les vecteurs colonnes 9 et F, qui contiennent les valeurs -. et 4. (+ , * , )), sont déjà créés. Donner le code permettant de créer la matrice :. 9/18 Q23. Donner le code permettant de déterminer les coefficients de la matrice ! " #$ % #. Préciser les dimensions de la matrice !. Q24. Donner le code permettant de déterminer les coefficients de la matrice & " #$ % '. Préciser les dimensions de la matrice &. Q25. Donner le code permettant de créer une fonction inv_mat(M) qui renvoie la matrice inverse de la matrice ( de dimension )* % *+ donnée comme argument d'entrée. Q26. On note , la matrice inverse de (. Donner le code permettant de déterminer les coefficients /. et /0 de la matrice 12. II.2 ­ Prédiction du comportement thermique du réacteur Dans cette sous-partie, on souhaite utiliser le modèle constitué du système d'équations différentielles établies dans la Partie I qui décrit l'évolution du taux de conversion du réactif 34 et de la température de réaction 5 en fonction du temps pour prédire le comportement thermique du réacteur en présence d'une réaction exothermique. Pour simplifier les notations, on met le système d'équations différentielles sous la forme suivante (équation (6)) : 734 " 90 )8: 34 : 5+: 6 78 75 " 9; )8: 34 : 5+ 9 ?2 <; 18- 2 : 2 8; 4 (7) est une extension de la méthode de Newton permettant de trouver la racine d'une fonction d'une variable. On peut démontrer la formule de récurrence suivante (équation (8)) : 8 @,- 9 8 @ A BC + 0,01 s, ?@ + 5,0 s-1, AB + 20 000,0 J.mol-1, C + 100,0 K, DE + 75 s et F + 8,314 J.K-1.mol-1. Q38. 34".")*+)*4'5)*-)"()00#$0*5)*4#+41+)"*+)%*6#+)1"%*5u vecteur 8 à l'itération 9 G H à l'aide de l'équation (8) lors d'une boucle de l'algorithme de Newton-Raphson. On notera x_old la valeur de 8 a l'itération 9 et x_new la valeur de 8 à l'itération 9 G H. De même, on notera X_euleri et T_euleri les vecteurs contenant les valeurs de $%& et )& à l'itération I de la méthode d'Euler implicite. Pour l'inversion de matrice, on utilisera la fonction inv_mat(M) écrite à la question Q25. Q39. Pour obtenir la valeur de x_new par la méthode de Newton-Raphson, on souhaite créer une boucle itérative avec condition. La condition d'arrêt porte sur la valeur absolue de la différence ; ;'" des températures )&'" et )&'" que l'on souhaite inférieure à 10-5 K. Pour les valeurs initiales de @ @ $J&'" et )&'" on prendra respectivement 0,5 et )K G CML7* 34".")* +)* 4'5)* 4'"")%-'$5#$07* 8+* )%0* inutile de recopier l'intégralité du code écrit à la question précédente ; on indiquera néanmoins sa place dans le code de cette question. Maintenant que le code permettant de trouver les valeurs de $%&'" et )&'" par la méthode de Newton-Raphson lors d'une itération de la méthode d'Euler implicite a été établi, on souhaite calculer les valeurs pour l'ensemble des itérations de la méthode d'Euler implicite. On rappelle que $% #> + ,* + , et )#> + ,* + )K + 320,0 K. En plus de noter X_euleri et T_euleri les vecteurs contenant les valeurs de $%& et )& pour chaque itération I de la méthode d'Euler implicite, on notera t_euleri le vecteur contenant les valeurs de >& à chaque itération. L'intégration sera réalisée sur l'intervalle N>@ ( >O P avec >@ + , s et >O + 1 000 s. Le pas de temps => est de 0,01 s. Q40. Donner le code permettant de calculer le nombre Q d'intervalles => compris dans l'intervalle N>@ ( >O P (Q est un entier). Q41. 34".")* +)* 4'5)* -)"()00#$0* 5)* 4#+41+)"* +)%* 6#+)1"%* 5es éléments des vecteurs X_euleri, T_euleri et t_euleri à chaque itération de la méthode d'Euler implicite. 13/18 Q42. Donner le code permettant de tracer les graphes de la figure 5 montrant l'évolution de la conversion et de la température en fonction du temps que l'on obtiendrait en réalisant la résolution numérique du système d'équations différentielles (simulation réalisée avec !" # 5,0 s-1, $% # 20 000,0 J·mol-1, & # 100,0 K, '( # 75 s). Figure 5!"!#$%&'()*+($!$*!,-./$(01-.!,)2,+2'$0!3!&)(*1(!4+!modèle constitué du système d'équations différentielles déterminées dans la Partie I FIN 14/18 Annexe : Fonctions de Python 1. Bibliothèque numpy de Python 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 : np.array([4,3,2]) ! [4 3 2] np.array([[5],[7],[1]]) ! [[5] [7] [1]] np.array([[3,4,10],[1,8,7]]) ! [[3 4 10] [1 8 7]] !"#$ %&. Description : fonction qui retourne l'élément '( ) *$ + ) *, de la matrice -. Pour accéder à l'intégralité de la ligne (+1 de la matrice -$ on écrit -"($ . &. De même, pour obtenir toute la colonne ++1 de la matrice -$ on utilise la syntaxe -". $ +&. Arguments d'entrée : une liste contenant les coordonnées de l'élément dans le tableau -. Argument de sortie : l'élément '/ ) *$ 0 ) *, de la matrice -. !""#$"%&$'(')*'+,*-,-)'./012*3'+)4'+5-*)4'678*'0,9+eau ! de dimension 1 2 3 sont numérotées de 4 à 1 5 6 et les colonnes sont numérotées de 4 à 3 5 6 Exemple : A=np.array([[3,4,10],[1,8,7]]) A[0,2] ! 10 A[1,:] ! [1 8 7] A[:,2] ! [10 7] 15/18 !"#$%&'())!*+,,Description : fonction créant une matrice (tableau) de dimensions ! " # dont tous les éléments sont nuls. Arguments 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 : np.zeros((3,4)) ! [[0 0 0 0] [0 0 0 0] [0 0 0 0]] !"#./!("01%)2/!*203*!45.%+%!6(,Description : fonction créant un vecteur (tableau) de !$%&'#'!() nombres espacés régulièrement entre *+!!et!"#$. Le 1er élément est égal à "%&, le dernier est égal à "#$ et les éléments sont espacés de '"#$ ( "%&)*'&+,-./.&01 ( 2) : Arguments d'entrée : un tuple de 3 entiers. Argument de sortie : un tableau (vecteur). Exemple : np.linspace(3,25,5) ! [3 8.5 14 19.5 25] !"#.'07636)8!'+9:/1;/%&<*7%./+/6%&=<(6&/!>8*?(%1'.(=@!A,Description : fonction permettant de lire les données sous forme de matrice dans un fichier texte et de les stocker sous forme de vecteurs. Arguments 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 un espace ou une virgule) et le !"#$%&'()'*+',&*&!!)'-',.+%/)%'01223425647'*+'8%)#9ère colonne porte le 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'. 16/18 2. Bibliothèque matplotlib.pyplot de Python 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 : !"#$!"%#&'()*+ Description : 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é. Arguments d'entrée : un vecteur d'abscisses " (tableau de dimension !) et un vecteur d'ordonnées # (tableau de dimension !$. Argument de sortie : un graphique. Exemple : x= np.linspace(3,25,5) y=sin(x) plt.plot(x,y) plt.title(`titre_graphique') plt.xlabel(`x') plt.ylabel(`y') plt.show() plt.title('titre') Description : fonction permettant d'afficher le titre d'un graphique. Argument d'entrée : une chaîne de caractères. plt.xlabel('nom') Description : fonction permettant d'afficher le contenu de nom en abscisse d'un graphique. Argument d'entrée : une chaîne de caractères. plt.ylabel('nom') Description : fonction permettant d'afficher le contenu de nom en ordonnée d'un graphique. Argument d'entrée : une chaîne de caractères. plt.show() Description : fonction réalisant l'affichage d'un graphe préalablement créé par la commande !"#$!"%#&'()*. Elle doit être appelée après la fonction plt.plot et après les fonctions plt.xlabel et plt.ylabel. 17/18 3. Fonction intrinsèque de Python sum(x) Description : fonction permettant de faire la somme des éléments d'un vecteur ou tableau. Arguments d'entrée : un vecteur ou un tableau de réel, entier ou complexe. Argument de sortie : un scalaire y qui est la somme des éléments de x. Exemple : y= sum(x) //y retourne la somme des éléments de x. 18/18

Extrait du corrigé obtenu par reconnaissance optique des caractères


 CCP Modélisation de systèmes physiques ou chimiques PC 2018 -- Corrigé Ce corrigé est proposé par Virgile Andreani (ENS Ulm) ; il a été relu par Cyril Ravat (professeur en CPGE) et Julien Dumont (professeur en CPGE). Ce sujet de modélisation s'intéresse à la thermodynamique d'une réaction exothermique se déroulant dans un réacteur à double paroi. Il est constitué de deux moitiés quasiment indépendantes. · La première porte sur la modélisation physique du système. Aucun code n'est requis. On commence par caractériser le réacteur thermique à l'aide d'expériences classiques de chauffe et de refroidissement. On relie ensuite les parties chimique et thermique du problème en établissant un système d'équations couplées portant sur la température du réacteur et l'avancement de la réaction. Enfin, on conclut sur la stabilité thermique du réacteur grâce aux équations obtenues. · La seconde moitié du sujet est axée sur la simulation. Dans une première partie, on analyse les données des expériences d'étalonnage du réacteur en programmant une régression linéaire. Dans la seconde partie, on développe un schéma d'Euler implicite impliquant un solveur de Newton­Raphson afin d'intégrer numériquement les équations différentielles du système. Le sujet est plutôt court et d'une difficulté faible à moyenne, excepté deux questions de programmation difficiles. · La partie physique permet à tous les candidats de récupérer des points, à condition d'avoir la patience d'écrire de nombreuses équations aux dimensions... · La partie informatique est plus inégale, avec des questions théoriques faciles et répétitives, et des questions pratiques largement guidées, quelques-unes nécessitant néanmoins une bonne vision du schéma général de l'algorithme en question. On peut regretter que certaines questions n'encouragent pas l'écriture de fonctions, et que les formats des données d'entrée et des retours attendus des algorithmes ne soient pas toujours complètement spécifiés. Ce sujet permet notamment d'apprendre ou de réviser le schéma d'Euler implicite, une méthode numérique classique qui revient souvent aux concours. Indications 2 En régime permanent, la température du réacteur est constante. 10 Combiner les résultats des deux questions précédentes. 13 Dériver l'expression de la question 12 et éliminer CR par la définition de XR . 15 Faire bien attention aux signes : dans quel sens passe la chaleur ? 19 Deux dérivées égales impliquent que les fonctions sont égales à une constante additive près. 22 Il est préférable de retourner un tableau np.array. Il ne se remplit pas à l'aide d'append. 23 Transposer une matrice revient simplement à échanger les indices. Il faut réaliser la multiplication matricielle à la main. 25 Il faut se souvenir de la formule de l'inversion des matrices 2 × 2 et construire la matrice à partir des expressions de ses éléments. 26 Contrairement à ce que dit l'énoncé, considérer que N est la matrice inverse de P et non de M. 35 Il est normal que g1 et g2 contiennent des termes en XRi et Ti : en effet, au moment où l'on cherche à calculer XR i+1 et Ti+1 , les variables relatives à l'instant précédent sont considérées comme des constantes. 36 Récupérer les expressions des fonctions f1 et f2 pour pouvoir dériver g1 et g2 . 38 Attention, cette question et la suivante sont les plus délicates du sujet. Dans l'ensemble, on souhaite programmer l'algorithme d'Euler implicite, dont chaque étape exécute l'algorithme de Newton­Raphson, qui lui-même itère un calcul jusqu'à son point fixe. Le sujet propose d'écrire cet algorithme progressivement, dans l'ordre suivant : · question 38 : une étape de l'algorithme de Newton­Raphson, qui permet de passer de x_old à x_new ; · question 39 : itérer le code de la question 38 pour obtenir la totalité de l'algorithme de Newton­Raphson (qui correspond à une étape de l'algorithme d'Euler implicite) et qui permet de passer de [X_euleri[i], T_euleri[i]] à [X_euleri[i+1], T_euleri[i+1]] ; · question 41 : itérer le code de la question 39 pour obtenir la totalité de l'algorithme d'Euler implicite, ce qui permet de remplir les tableaux X_euleri et T_euleri. 39 Voir indication 38. 41 Voir indication 38. 1 Le bilan de puissance dérive du premier principe de la thermodynamique qui traduit la conservation de l'énergie d'un système. Ici, le membre gauche représente la variation d'énergie thermique que subit le réacteur. Pour la déterminer, on dérive par rapport au temps le produit de sa capacité thermique massique Cp par sa masse V et par sa température T. Le premier terme du second membre de l'équation est la puissance thermique produite par la réaction, qui tend à faire augmenter l'énergie du réacteur. Le second terme représente la puissance cédée par celui-ci à l'extérieur, qui est proportionnelle à sa surface et à la différence de température avec l'extérieur selon la loi de Newton de la convection thermique. On peut vérifier que ces termes sont homogènes à des puissances en notant respectivement L, T, M, , [E] les dimensions de longueur, temps, masse, température et énergie. En effet, on a d'une part [ V] [Cp dT] dT V Cp = dt [dt] [E] M = T dT [E] V Cp = dt T M et d'autre part [U A (T - Tp )] = [U] [A] [T - Tp ] [E] /T 2 L car U est en W/(K · m2 ) L2 [E] [U A (T - Tp )] = T qui sont bien homogènes à une puissance, soit une énergie divisée par un temps. = Normalement on écrit les variables massiques en bas de casse, donc cp au lieu de Cp ... Mais utilisons quand même la notation proposée par le sujet. Une autre technique pour répondre aux questions d'analyse dimensionnelle consiste à convertir toutes les variables en unités de base du SI. Bien que fonctionnant à tous les coups, elle est moins recommandée parce qu'elle est plus propice aux erreurs de calcul et moins « physique » : dT [] [V] [Cp ] [T] V Cp = dt [t] M 3 [E] L 3 L M = T dT [E] V Cp = dt T 2 En régime permanent, la température du réacteur est stable par définition, ce qui permet d'annuler la dérivée : 0 = Pth - U A (T - Tp ) soit T - Tp = Pth UA La puissance Pth est ici constante. Si elle ne l'était pas, on ne pourrait pas tenir le même raisonnement, à moins de faire l'hypothèse qu'elle varie sur une échelle de temps beaucoup plus longue que l'établissement du régime permanent : on ferait alors une approximation quasi-stationnaire. 3 D'après la figure 2a, T - Tp = 40 K en régime permanent. Par conséquent, U= Pth 96 = = 3 · 102 W · K-1 · m-2 (T - Tp ) A 40 · 8 · 10-3 De nombreuses valeurs numériques sont données pour les candidats qui n'auraient pas réussi à répondre à la question 2. 4 Par identification avec l'équation 1, on détermine les expressions de s et c : s= Pth V Cp et c = V Cp UA [ V Cp ] [U A] [E] 1 = [U A] [E] T = [E] [ c ] = T Vérifions la dimension de c : [ c ] = car V Cp T = H car Pconvection = U A T c est donc bien homogène à un temps. Ici, il était un peu plus direct d'utiliser la méthode pédestre, puisque les unités des différentes grandeurs sont données juste avant dans l'énoncé. [ c ] = [] [V] [Cp ] [U] [A] M L-3 L3 [E] M-1 -1 [E] T-1 L-2 -1 L2 [ c ] = T = 5 Pendant la phase de refroidissement, la réaction ne crée plus de chaleur. Il faut donc retirer le terme source s pour obtenir dT Tp - T = dt c