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