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

Thème de l'épreuve Détermination du coefficient de transfert d'un polluant dans une colonne d'absorption
Principaux outils utilisés thermodynamique, bilans de matière, modélisation, algorithmes numériques

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 2016

PCMS006

!

!
!

EPREUVE SPECIFIQUE - FILIERE PC!
!!!!!!!!!!!!!!!!!!!!"
!

MODELISATION DE SYSTEMES PHYSIQUES OU CHIMIQUES
Jeudi 5 mai : 8 h - 12 h!
!!!!!!!!!!!!!!!!!!!!"
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.!

!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
!
!
!
!
Les calculatrices sont autorisées
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!

1/16

!

Détermination du coefficient de transfert d'un polluant
dans une colonne d'absorption
I. Présentation du problème
Les procédés d'absorption sont souvent utilisés pour la dépollution des gaz. 
Ces procédés
reposent sur l'absorption préférentielle du gaz polluant par un solvant et sont 
la plupart du temps mis
en oeuvre dans des colonnes d'absorption (figure 1). Lors du contact entre les 
deux phases (gazeuse
et liquide), le polluant est transféré du gaz vers le solvant. On récupère un 
gaz purifié en sortie haute
de colonne et le solvant chargé du polluant en pied de colonne.
Un exemple courant est l'absorption du dioxyde de carbone présent dans les gaz 
de combustion
à l'aide d'un solvant aminé pour éviter de rejeter ce gaz à effet de serre 
directement dans l'atmosphère.

Figure 1 ­ Schéma d'une colonne d'absorption utilisée dans l'industrie pour la 
dépollution d'un
gaz.
Pour dimensionner les colonnes d'absorption, on a besoin de connaître la 
conductance de
transfert du polluant dans le solvant (notée !" , unité : m.s-1). Pour 
déterminer ce paramètre, on réalise
une étude dans un réacteur de laboratoire dont les conditions de fonctionnement 
sont beaucoup plus
simples et beaucoup mieux définies que dans une véritable colonne d'absorption. 
Le réacteur de
laboratoire utilisé est un réacteur biphasique gaz-liquide.
Une des spécificités de ce réacteur est qu'il est alimenté par un débit 
variable de polluant qui est
ajusté au cours du temps de manière à maintenir la pression de la phase gazeuse 
constante (figure 2,
page 3). Au cours d'une expérience, on enregistre le débit molaire de polluant 
A qui entre dans le
réacteur en fonction du temps. D'après la loi de Dalton, la pression totale est 
égale à la somme des
pressions partielles des espèces dans la phase gazeuse. Comme A est seul dans 
la phase gazeuse, la
pression totale #$%$ est égale à la pression partielle de A, notée #& . On 
suppose que le réacteur est
isotherme.
2/16

La détermination directe de la conductance de transfert d'un polluant dans un 
solvant n'est pas
aisée. On procède en deux étapes pour la déterminer :
·

on détermine d'abord la valeur du produit !" # $, où $ est l'aire interfaciale 
entre le liquide
et le gaz par unité de volume de la phase liquide (unité de $ : m2.m-3), grâce 
à une première
expérience où le seul phénomène qui a lieu est l'absorption physique du 
polluant A dans le
solvant ;

·

on détermine ensuite les valeurs des deux paramètres !" et $ de manière 
indépendante grâce
à une seconde expérience avec le même solvant mais qui contient cette fois-ci 
un réactif B qui
réagit avec le gaz polluant A (absorption physique avec réaction chimique). On 
supposera que
la réaction chimique en phase liquide s'écrit : % & ' ( )*+,-./0.

12 : débit molaire de A qui entre dans le réacteur.
32 : pression partielle de A dans la phase gazeuse.
4567 : volume de la phase liquide (solvant).

Figure 2 ­ Schéma du réacteur de laboratoire utilisé pour la détermination de 
la conductance de
transfert du polluant A.8

On enregistre le débit molaire de A qui entre dans le réacteur en fonction du 
temps pour les deux
expériences (sans réaction et avec réaction avec le réactif B). Les données se 
trouvent dans un fichier
nommé « data.txt ». La première colonne correspond au temps (s). Les deuxième 
et troisième
colonnes correspondent aux débits molaires de A enregistrés au cours des deux 
expériences (sans et
avec réaction respectivement). Les colonnes sont séparées par des espaces 
(tableau 1, page 7).

II. Modélisation des phénomènes
Dans cette partie, on demande d'établir les modèles qui vont représenter 
l'évolution du débit
molaire d'entrée 12 en fonction du temps. Les modèles sont obtenus en réalisant 
des bilans de matière.
II.1 Cas où le solvant ne contient pas le réactif B
Q1.1) On considère tout d'abord l'absorption du polluant A dans le solvant (cas 
où le solvant ne
contient pas le réactif B). Le phénomène qui régit le transfert de A à 
l'interface entre les deux phases
est la diffusion, phénomène localisé au niveau de la couche limite située à 
proximité de l'interface
(zone délimitée par des pointillés sur la figure 3, page 4).

3/16

Figure 3 ­ Schéma représentant l'interface gaz ­ liquide.
La pression à l'interface !"# est égale à la pression partielle !" dans la 
phase gazeuse car le polluant
A est seul dans cette phase. La pression dans la phase gazeuse est maintenue 
constante
(!" $ !"# $ 1,0 bar). A l'interface, la loi de Henry permet de relier la 
pression !"# et la concentration
%"# . D'après cette loi, la concentration de gaz dissous dans un liquide est 
proportionnelle à la pression
partielle du gaz en contact avec le liquide à l'équilibre thermodynamique et à 
température constante.
Calculer la valeur de la concentration %"# en mol.m-3 à partir de la loi de 
Henry. On donne la
constante de Henry pour A : & = 26,0 bar.L.mol-1. On pourra s'appuyer sur 
l'analyse dimensionnelle
pour écrire la loi de Henry.
Q1.2) Le débit molaire '"# qui traverse l'interface gaz-liquide vers le solvant 
s'écrit :
() * + * ,%"# - %" . * /012 , où %"# est la concentration du polluant à 
l'interface, %" est la concentration
de A dans le solvant (figure 3) et /012 le volume de la phase liquide.
Vérifier que l'expression () * + * ,%"# - %" . * /012 est bien homogène à un 
débit molaire.
Q1.3) Sachant qu'à l'instant initial la concentration %" de A dans la phase 
liquide est nulle, expliquer
qualitativement comment %" va évoluer au cours du temps. Préciser le signe du 
terme
() * + * ,%"# - %" . * /012 .
Q1.4) On considère que la phase gazeuse se comporte comme un réacteur ouvert 
parfaitement agité
en régime permanent (il n'y a donc pas d'accumulation de A dans cette phase) 
dans lequel il n'y a
pas de réaction (le gaz ne fait que transiter dans cette partie du réacteur). 
On précise que les grandeurs
intensives (température, pression, concentration) dans un réacteur ouvert 
parfaitement agité sont
identiques en tout point.
Ecrire le bilan de matière sur le polluant A dans la phase gazeuse. Préciser le 
terme d'entrée et le
terme de sortie intervenant dans le bilan de matière.

Q1.5) La phase liquide est modélisée par un réacteur semi-fermé parfaitement 
agité fonctionnant en
régime transitoire. Ce type de réacteur peut être considéré comme un réacteur 
fermé parfaitement
agité (contenant initialement le solvant dans le cas présent) possédant une 
entrée permettant l'ajout
d'une espèce au cours du temps (le polluant A dans le cas présent).
4/16

Pour simplifier le problème, on suppose que le volume de la couche limite (zone 
à proximité de
l'interface dans laquelle on observe un gradient de concentration du polluant 
dû à sa diffusion de
l'interface vers la phase liquide, figure 3, page 4) est très faible et que la 
concentration de A dans la
phase liquide est homogène. En d'autres termes, on considère que la 
concentration de A passe
instantanément de !"# , à l'interface, à !" dans la phase liquide comme indiqué 
sur le schéma de la
figure 4.

Figure 4 ­ Schéma simplifié de l'interface gaz­liquide.
Ecrire le bilan de matière sur le polluant A dans la phase liquide. Préciser le 
terme d'entrée et le
terme d'accumulation.

Q1.6) Simplifier le bilan en considérant que le volume de la phase liquide 
reste constant au cours du
temps.

Q1.7) Résoudre l'équation différentielle obtenue à la question précédente en 
considérant que la
concentration initiale de A dans la phase liquide est nulle. On pourra 
effectuer un changement de
variable.

Q1.8) Donner l'expression de la concentration de A en fonction du temps. 
Vérifier que !" évolue
bien de la manière prévue à la question Q1.3), page 4.

Q1.9) Etablir l'expression du débit molaire $" en fonction du temps. Vérifier 
l'homogénéité de la
relation.

Q1.10) Préciser vers quelle valeur tend le débit molaire $" pour des temps 
importants et indiquer vers
quelle valeur tend la concentration !" dans ce cas.

II.2 Cas où le réactif B est présent dans le solvant
Q2.1) On considère maintenant le cas où le réactif B est présent dans le 
solvant (à la concentration
initiale !%& de 1 000,0 mol.m-3) et où il y a réaction entre A et B dans la 
phase liquide. Pour simplifier,
on suppose que le réactif B ne passe pas dans la phase gazeuse (figure 5, page 
6). On suppose
également que la phase liquide est parfaitement agitée et que le volume reste 
constant. On précise
que, comme dans le cas précédent, la concentration !" de A dans la phase 
liquide est nulle à l'instant
initial.
5/16

Figure 5 ­ Schéma du réacteur dans le cas de la deuxième expérience.
Le bilan de matière sur la phase gazeuse est-il modifié ? Justifier.

Q2.2) Des études préalables ont montré que la vitesse apparente de la réaction 
dans la phase liquide
(notée !"
limite et qu'elle peut
s'écrire sous la forme !"
un par rapport à
chacun des deux réactifs. +( est la diffusivité de A dans la phase liquide 
(1,83 × 10-9 m2.s-1), , est la
constante cinétique vraie de la réaction entre A et B (, = 0,10 m3.mol-1.s-1) 
et '- est la concentration
de B dans la phase liquide.
Indiquer la dimension de !"
Q2.3) Ecrire le nouveau bilan de matière sur A dans la phase liquide en prenant 
en compte le nouveau
terme correspondant à la réaction chimique (on fera particulièrement attention 
au signe).

Q2.4) Simplifier le bilan en considérant que le volume de la phase liquide 
reste constant.

Q2.5) Ecrire le bilan de matière sur B dans la phase liquide en considérant que 
la phase liquide est
un réacteur fermé parfaitement agité.

Q2.6) Simplifier ce bilan en considérant que le volume de la phase liquide 
reste constant.

Q2.7) Donner le système de deux équations différentielles ordinaires qui régit 
l'évolution des
concentrations de A et de B dans la phase liquide en fonction du temps.

6/16

III. Traitement numérique des données expérimentales
Dans cette partie, on propose de comparer les modèles établis dans la partie II 
aux résultats
expérimentaux pour déterminer la valeur de l'aire interfaciale ! et celle du 
coefficient de transfert "#
en utilisant des outils numériques.
Les portions de programme demandées au candidat peuvent être réalisées dans le 
langage Python
ou dans le langage Scilab. Cependant, toutes les questions seront traitées dans 
le même langage. On
veillera à apporter les commentaires suffisants à 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é). Des 
annexes sont
disponibles à la fin de l'énoncé.

III.1 Détermination de la valeur du produit $% & '
Dans cette partie, on va déterminer la valeur du produit "# & ! à partir des 
données
expérimentales enregistrées en l'absence de réaction dans la phase liquide. Si 
l'expression du débit
molaire de A demandée à la question Q1.9), page 5, n'a pas été trouvée, on 
utilisera la notation
formelle suivante pour écrire le code : () * +,-. ,"# & !//.
Q3.1) Les données expérimentales sont disponibles sous forme d'un fichier texte 
nommé
« data.txt » dans lequel les informations sont présentées sous forme de 
colonnes (tableau 1). La
première colonne du fichier correspond au temps (unité : s), la deuxième au 
débit molaire de A (unité :
mol.s-1) entrant dans le réacteur enregistré au cours de la première expérience 
(cas de l'absorption
dans le solvant sans réaction) et la troisième colonne au débit molaire de A 
(unité : mol.s-1) entrant
dans le réacteur enregistré au cours de la seconde expérience (en présence du 
réactif B).
00.0
10.0
20.0
30.0
40.0
50.0

1.9231E-04
1.8293E-04
1.7401E-04
1.6552E-04
1.5745E-04
1.4977E-04

1.9230E-04
1.9108E-04
1.8991E-04
1.8878E-04
1.8771E-04
1.8667E-04

Tableau 1 ­ Données expérimentales contenues dans le fichier « data.txt ».
Q3.1.a) Indiquer la syntaxe à utiliser pour charger le fichier « data.txt » qui 
contient les données
0123
0124
expérimentales. Donner le code permettant de créer trois vecteurs - 012 , ()
et ()
correspondant
respectivement aux données des première, deuxième et troisième colonnes. Donner 
également le code
qui permet de déterminer le nombre de points expérimentaux 5.
Q3.1.b) Donner la syntaxe permettant de tracer sur un graphe l'évolution du 
débit molaire de A en
fonction du temps dans le cas où seul le phénomène d'absorption physique est 
étudié.

Q3.2) On souhaite déterminer la valeur du produit "# & ! grâce au modèle établi 
à la question Q1.9),
page 5, par une méthode d'optimisation numérique de paramètres. La méthode 
utilisée est celle des
moindres carrés. Il s'agit d'une méthode qui permet de comparer des données 
expérimentales à un
modèle mathématique la plupart du temps issu d'une théorie.
7/16

Dans le cas présent, le modèle mathématique correspond à l'expression du débit 
molaire !" , que
l'on notera !"#$% par la suite, déterminé à la question Q1.9), page 5. Ce débit 
molaire est une fonction
du temps & et du produit '( ) * que l'on souhaite déterminer. La méthode des 
moindres carrés donne
la valeur optimale du produit '( ) * qui permet de calculer un débit molaire 
théorique !"#$%
+,-%
représentant le mieux le débit molaire expérimental !"
. Cette valeur optimale est celle qui permet
de minimiser la somme quadratique des déviations des mesures aux prédictions. 
Cette somme, notée
./'( ) *01, peut se mettre sous la forme suivante :
9

+,-%

./'( ) *1 2 3 4!"5
5:%

#$%
/'( ) *17
6 !"5

8

avec ; le nombre de points expérimentaux, < l'indice correspondant au point 
expérimental enregistré
+,+,-%
+,#$%
/'( ) *1
au temps &5 (1 ! < ! ;), !"5 le débit molaire expérimental obtenu au temps &5 
et !"5
+,le débit molaire théorique calculé au temps &5 grâce au modèle établi à la 
question Q1.9), page 5.
Ecrire une fonction smc(kla,t_exp,Fa_exp1)qui retourne la valeur de la quantité 
.. Cette
+,-%
créés à la
fonction aura comme argument d'entrée le produit '( ) * et les vecteurs & +,- 
et !"
question Q3.1.a), page 7.
Q3.3) Une des méthodes utilisées pour trouver le minimum d'une fonction = est 
celle proposée par
Nelder-Mead. Il s'agit d'un algorithme d'optimisation non linéaire basé sur le 
concept de simplexe à
; > ? sommets dans un espace à ; dimensions. Dans le cas d'une fonction d'une 
variable (; 2 ?),
un simplexe est un segment.
L'algorithme de Nelder-Mead est une procédure itérative. Partant d'un segment 
initial @ABC,
l'algorithme va générer une succession de segments par des transformations 
simples au cours des
itérations : le segment se déplace et se réduit jusqu'à ce que ses extrémités 
se rapprochent d'un point
où la fonction présente un minimum (ce minimum peut être un minimum local).
Soient DE et DF les abscisses des points A et B. Les transformations subies par 
le segment
(illustrées à la figure 6, page 9) sont basées sur la comparaison des valeurs 
de la fonction = aux
extrémités du segment.
· La première étape consiste à réindexer si nécessaire les deux extrémités du 
segment de
manière à ce que =/DE 1 G =/DF 1.
· L'extrémité B pour laquelle la fonction = est maximale est remplacée par une 
nouvelle
extrémité. On introduit alors le point H, réflexion de B par rapport à A, tel 
que
DI 2 DE > /DE 6 DF 1.
· Si =/DI 1 J =/DE 1, le segment est étiré dans cette direction (car la 
réflexion se rapproche du
minimum). On introduit un point K (étirement du segment) tel que DL 2 DE > M/DE 
6 DF 1
qui permet éventuellement de se rapprocher encore un peu plus du minimum. Le 
point B est
substitué par le point H si =/DI 1 J =/DL 1, sinon par K.
· Si =/DI 1 N =/DE 1, le segment est réduit dans la direction opposée de la 
réflexion (car la
réflexion s'éloigne du minimum). On introduit le point O% (contraction du 
segment) qui est
défini par DPQ 2 DF > ?RM /DE 6 DF 1. Si =SDPQ T J =/DE 1, B est remplacé par 
O% . Sinon B
est remplacé par O8 , homothétie de rapport 6? et de centre A du point O%
(DPU 2 DE > ?RM /DE 6 DF 1).

8/16

Figure 6 ­ Illustration des transformations subies par le segment initial !"#$ 
dans la méthode
d'optimisation de Nelder-Mead.
Q3.3.a) Soit %&'( une fonction dont on cherche le minimum. Soient ') et '* les 
abscisses des
extrémités d'un segment !"#$. Ecrire le code permettant de réindexer les deux 
extrémités du segment
de manière à ce que %&') ( soit inférieure ou égale à %&'* (.
Q3.3.b) Partant du segment !"#$ réindexé, écrire le code permettant de 
transformer le segment
!"#$ au cours d'une itération de la méthode de Nelder-Mead. Chaque étape du 
code devra être
commentée.

Q3.3.c) Construire une boucle permettant de réaliser des itérations successives 
de la méthode de
+
Nelder-Mead. On prendra ')
= 1 et '*+ = 10-5 pour les abscisses des deux extrémités du segment
0 20
initial !"#$. Cette boucle sera interrompue lorsque l'écart relatif ,-. / 1 3 4 
sera inférieur à 10-4
01

ou lorsque le nombre maximum d'itérations, fixé par l'utilisateur, sera atteint 
soit 567,' = 1 000.

Q3.4) La méthode de Nelder-Mead appliquée à la fonction 8&9: ; ,( conduit à
&9: ; ,(<=> = 5,0 × 10-3. Donner le code permettant de calculer le débit 
molaire théorique grâce à la
valeur optimisée du produit &9: ; ,(<=> .
Q3.5) Indiquer la syntaxe à utiliser pour comparer sur un même graphe les 
débits molaires théorique
et expérimental. Expliquer l'intérêt de comparer la courbe théorique et les 
points expérimentaux.

Q3.6) On souhaite développer un algorithme de tri permettant de réindexer les 
sommets d'un
simplexe à ? @ A sommets (B C D'E F 'G F H '=IE J) dans le cadre de la 
généralisation de la méthode de
Nelder-Mead appliquée à une fonction quelconque K&'( de ? variables (' L M= ). 
On propose
d'utiliser la méthode du tri par sélection pour réindexer les sommets du 
simplexe de sorte que les
valeurs que prend la fonction K&'( en chaque sommet du simplexe soient classées 
de manière
croissante.
9/16

La méthode du tri par sélection repose sur la recherche du plus petit élément 
d'une liste. Une fois
identifié, on échange cet élément avec le premier élément de la liste. Il 
s'agit d'une procédure itérative
(figure 7). Lors de la première itération, on échange le premier élément (! = 
1) avec le plus petit de la
liste. Lors de la ! " itération, on échange le ! " élément par le plus petit 
élément en ne considérant que
ceux à partir de la ! " position.

Figure 7 ­ Représentation schématique des trois premières itérations de la 
méthode de tri par
sélection.

Ecrire le code permettant de réindexer les sommets du simplexe # $ %&' ( &) ( * 
&+,' - de sorte que
les valeurs que prend la fonction ./&0 en chaque sommet du simplexe soient 
classées de manière
croissante. On supposera que la fonction ./&0 est déjà définie.

III.2 Détermination des valeurs de 1 et 23

Dans cette partie, on souhaite déterminer la valeur de l'aire interfaciale 4 en 
comparant les débits
molaires expérimentaux obtenus lors de la deuxième expérience (en présence du 
réactif B dans le
solvant) avec le débit molaire théorique calculé à partir du modèle établi à la 
question Q2.7), page 6.
Ce modèle est un système de deux équations différentielles ordinaires que l'on 
peut écrire sous la
forme suivante :
678
$ :;9( 78 ( 7< ( 4( /=> ? 40@
5 69
67<
$ A/9( 78 ( 7< ( 40BBBBBBBBBBBBBBBBBBB
69

La fonction : est une fonction du produit => ? 4 dont la valeur a été 
déterminée grâce à la première
expérience (/=> ? 40C+D = 5,0 × 10-3 s-1), du temps 9, des concentrations 78 et 
7< de A et B dans le
solvant et de l'aire interfacialeB4. La fonction A est une fonction du temps 9, 
des concentrations 78 et
7< de A et B dans le solvant et de l'aire interfaciale 4.
On propose d'utiliser la méthode d'Euler pour résoudre le système d'équations 
différentielles.

Q3.7) Ecrire deux fonctions G(t,CA,CB,A,kla) et H(t,CA,CB,A) permettant de 
calculer les
valeurs des fonctions :;9( 78 ( 7< ( 4( /=> ? 40@ et A/9( 78 ( 7< ( 40.

Q3.8) La méthode utilisée pour résoudre le système d'équations différentielles 
est la méthode
d'Euler à pas fixe. On note 9E le temps initial, 9F le temps final 
d'intégration et G9 le pas d'intégration.
Q3.8.a) Soient n le nombre d'expériences réalisées et G9 "H+ l'intervalle de 
temps entre deux
mesures expérimentales successives du débit molaire du polluant A. Pour 
réaliser la comparaison
entre les débits molaires théoriques et expérimentaux, on ne s'intéresse qu'aux 
valeurs du débit
"H+
DK)
aux instants particuliers 9J $ G9 "H+ ? ! avec ! variant de 1 à L.
molaire théorique I8J
10/16

La méthode d'Euler ne permet d'obtenir un résultat correct que si le pas 
d'intégration, !", est
suffisamment faible. Par conséquent, on souhaite utiliser un pas d'intégration 
!" cent fois plus petit
que l'intervalle de temps entre deux mesures expérimentales !" #$% . Le temps 
d'intégration est donc
discrétisé en intervalles de durée !" et les valeurs des concentrations &' et 
&( sont calculées aux
instants particuliers ") * !" + , avec , variant de 0 à -.
Donner la syntaxe permettant de calculer le pas de temps !" ainsi que le nombre 
d'intervalles (- est un nombre entier) en fonction de ". (le premier élément du 
vecteur " #$% ), "/ (le dernier élément
du vecteur " #$% ) et !" #$% (l'intervalle de temps entre deux mesures 
expérimentales successives du
débit molaire).
Q3.8.b) Donner une expression de &' 0" 1 !"2 à l'ordre 1 (30!"2) en fonction de 
&' et
en " à l'aide d'un développement limité de la fonction " 8 9 &' 0"2.

Q3.8.c)

En déduire une valeur approchée de

456

456
47

évaluées

: à l'ordre 0 (30;2) en fonction de &' 0"2,

47 7

&' 0" 1 !"29et !". Faire de même pour donner une valeur approchée de

fonction de &( 0"2, &( 0" 1 !"29et !".

45<

: à l'ordre 0 (30;2) en

47 7

Q3.8.d) On note &') et &() les concentrations &' =") > et &( =") >. De même, on 
note &')?@ et &()?@
les concentrations &' =")?@ > et &( =")?@ >. Donner une expression de la 
dérivée par rapport au temps de
&' évaluée à l'instant ") , notée

456

: , en fonction de !", &') et &')?@ . De même, donner une

47 7A

expression de la dérivée par rapport au temps de &( évaluée à l'instant ") , 
notée
de !", &() et &()?@ .
Q3.8.e)

45<

: , en fonction

47 7A

Donner le système de deux équations permettant de calculer &')?@ et &()?@ en 
fonction de

&') , &() , !", B C") D &') D &() D ED 0FG + E2H et I=") D &') D &() D E>.

Q3.8.f) Ecrire une fonction Euler(G,H,t0,tf,CA0,CB0,Dt,m,a,kla) qui retourne 
deux
vecteurs : le vecteur temps et le vecteur correspondant à la concentration &' 
calculée par la méthode
d'Euler.

Q3.9) On souhaite utiliser la méthode des moindres carrés pour déterminer la 
valeur optimale de
l'aire interfaciale E en utilisant une stratégie similaire à celle utilisée 
pour obtenir la valeur optimisée
7LM
du produit 0FG + E2. Pour cela, on a besoin de connaître les valeurs du débit 
molaire de A J'K
calculé
#$%
#$%
aux instants particuliers "K * !"
+ N avec N variant de 1 à O.
Donner le code permettant de créer un vecteur J'7LM contenant les valeurs du 
débit molaire de A
#$%
calculé aux instants particuliers "K à partir des valeurs de la concentration 
de A (&'7LM ) calculées en
utilisant la fonction Euler de la question Q3.8.f).
11/16

Q3.10) La valeur optimale de l'aire interfaciale ! est celle qui permet de 
minimiser la fonction
"# $!%&%qui peut se mettre sous la forme suivante :
4

-./#

"# $!& ' ( )*+,
,56

12#
$!&3
0 *+,

#

-./#
-./
12#
$!& le débit molaire théorique
avec *+, le débit molaire expérimental obtenu au temps 7, , *+,
-./
calculé au temps 7, (question Q3.9), page 11) et 8 le nombre de points 
expérimentaux.

Donner le code permettant de construire une fonction smc2(a,t_exp,Fa_exp2)qui 
retourne
la valeur de la quantité "# . Cette fonction aura comme argument d'entrée 
l'aire interfaciale ! et les
-./#
créés à la question Q3.1.a), page 7.
vecteurs 7 -./ et *+
Q3.11) La méthode de Nelder-Mead appliquée à la fonction "# $!& conduit à !9/1 
= 10,0 m2.m-3.
Indiquer le code pour calculer le coefficient de transfert :; et afficher les 
valeurs de !9/1 et :; à
l'écran.

III.3 Utilisation du modèle pour réaliser des simulations
Maintenant que l'on connaît les valeurs des paramètres ! et :; , on souhaite 
utiliser le modèle pour
réaliser des prédictions. On propose d'étudier l'influence de la concentration 
initiale <=> du réactif B
dans la phase liquide sur le débit molaire en entrée du réacteur (*+12# ).
Q3.12) Expliquer qualitativement comment doit varier le débit molaire en entrée 
du réacteur avec la
concentration initiale du réactif B.

Q3.13) Justifier le concept « d'accélération du transfert par la réaction 
chimique ».
Q3.14) Ecrire le code qui permettrait de réaliser une prédiction du débit 
molaire *+12 à l'aide du
modèle et des paramètres optimisés (:; et !) en prenant <=> comme valeur pour 
la concentration
initiale du réactif B, une valeur rentrée par l'utilisateur (unité : mol.m-3). 
On prendra le même pas ?7
que précédemment et comme durée d'intégration 1 000 s.
Q3.15) On souhaite calculer la quantité de matière de polluant A, 8+ , à partir 
du débit molaire *+12
obtenu à la question précédente par intégration sur l'intervalle 0 ­ 1 000 s. 
La méthode utilisée pour
réaliser l'intégration est la méthode des trapèzes. Donner le code permettant 
de calculer 8+ par cette
méthode.

12/16

ANNEXE A : COMMANDES ET FONCTIONS USUELLES DE SCILAB
A=[a b c d;e f g h;i j k l]
Description : commande permettant de créer une matrice dont la première ligne 
contient les
éléments !" #" $" %, la seconde ligne contient les éléments &" '" (" ) et la 
troisième, les éléments
*" +" ," -.
Exemple :
A=[1 2 3 4 5;3 10 11 12 20;0 1 0 0 2]
!

1. 2. 3.
4. 5.
3. 10. 11. 12. 20.
0. 1. 0.
0. 2.

A(i,j)
Description : fonction qui retourne l'élément .*" +/ de la matrice 0. Pour 
accéder à l'intégralité
de la ligne * de la matrice 0" on écrit 0.*" 1 /. De même, pour obtenir toute 
la colonne + de la
matrice 0" on utilise la syntaxe 0.1 " +/.
Arguments d'entrée : les coordonnées de l'élément dans la matrice 0.
Argument de sortie : l'élément .*" +/ de la matrice 0.
Exemple :
A=[1 2 3 4 5;3 10 11 12 20;0 1 0 0 2]
A(2,4)
! 12
A(2,:)
! 3. 10. 11. 12. 20.
A(:,3)
!
3.
11.
0.
x=[x1:Dx:x2]
Description : commande permettant de créer un vecteur dont les éléments sont 
espacés de
234et dont le premier élément est 35 et le dernier élément est le plus grand 
multiple de 23
inférieur ou égal à 36 .
ATTENTION : le vecteur ainsi créé est un vecteur ligne. Pour convertir un 
vecteur ligne
en un vecteur colonne, on le transpose en utilisant l'apostrophe « ' » : 
x_trans=x'.
Exemple :
x=[2:0.5:4.2]
! 2. 2.5 3. 3.5 4.
x_trans=x'
! 2.
2.5
3.
3.5
4.
zeros(n,m)
Description : fonction créant une matrice (tableau) de dimensions 7 8 9 dont 
tous les
éléments sont nuls.
Arguments d'entrée : deux entiers 7 et 9 correspondant aux dimensions de la 
matrice à créer.
Argument de sortie : un tableau (matrice) d'éléments nuls.
Exemple :
zeros(3,4)
! 0. 0. 0. 0.
0. 0. 0. 0.
0. 0. 0. 0.
13/16

plot(x,y)
Description : fonction permettant de tracer sur un graphique ! points dont les 
abscisses sont
contenues dans le vecteur " et les ordonnées dans le vecteur #.
Arguments d'entrée : un vecteur d'abscisses " (tableau de dimension !) et un 
vecteur
d'ordonnées # (tableau de dimension !$.
Exemple :
x= [3:0.1:5]
y=sin(x)
plot(x,y)
read("nom_fichier",m,n)
Description : fonction permettant de lire les données sous forme de matrice 
dans un fichier
texte et de les stocker dans une matrice.
Arguments d'entrée : un nom de fichier contenant des données sous forme de 
matrice de
dimension (m,n) et les dimensions de la matrice m (nombre de lignes) et n 
(nombre de
colonnes). On prend m = %1 si le nombre de lignes n'est pas connu a priori.
Exemple :
data= read("fichier.txt",%1,2)
//dans cet exemple, data est une matrice constituée des deux premières
//colonnes se trouvant dans le fichier nommé fichier.txt.
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éels, entiers ou complexes.
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.

ANNEXE B : FONCTIONS DE PYTHON
B.1. BIBLIOTHEQUE 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).
Exemple :
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]]

14/16

!"#$ %&.
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 -.
ATTENTION : en langage Python, les lignes d'un tableau ! 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]
np.zeros((n,m))
Description : fonction créant une matrice (tableau) de dimensions 7 2 8 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]]
np.linspace(Min,Max,nbElements)
Description : fonction créant un vecteur (tableau) de 79:;<8<7=> nombres espacés
régulièrement entre ?(7@et@?AB. Le 1er élément est égal à ?(7, le dernier est 
égal à ?AB et
les éléments sont espacés de '?AB 5 ?(7,C'79:;<8<7=> 5 *, :
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]
np.loadtxt(`nom_fichier',delimiter='string`,usecols=[n])
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
numéro de la colonne à charger (ATTENTION, la première colonne porte le numéro 
0).
Argument de sortie : un tableau.
Exemple :
data=np.loadtxt(`fichier.txt',delimiter=' `,usecols=[0])
#dans cette exemple data est un vecteur qui correspond à la première
#colonne de la matrice contenue dans le fichier fichier.txt

15/16

B.2. BIBLIOTHEQUE 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 :
plt.plot(x,y)
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.show()
Description : fonction réalisant l'affichage d'un graphe préalablement créé par 
la commande
plt.plot(x,y). Elle doit être appelée après la fonction plt.plot et après les 
fonctions plt.xlabel
et plt.ylabel.
B.3. FONCTION INTRINSEQUE 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.

FIN
16/16

I M P R I M E R I E N A T I O N A L E ­ 16 1221 ­ D'après documents fournis

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.

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



CCP Modélisation de systèmes physiques
ou chimiques PC 2016 -- Corrigé
Ce corrigé est proposé par Virgile Andreani (ENS Ulm) ; il a été relu par 
Olivier
Frantz (Professeur agrégé en école d'ingénieur) et Stéphane Ravier (Professeur 
en
CPGE).

Le thème de ce sujet est l'étude du transfert d'un polluant dans une colonne 
d'absorption. Il est le prétexte, après une partie théorique, à 
l'implémentation de divers
algorithmes d'optimisation non linéaire (l'algorithme de Nelder-Mead en une 
dimension), d'intégration d'un système d'équations différentielles ordinaires 
(l'algorithme
d'Euler explicite) et enfin d'intégration numérique (la méthode des trapèzes).
· La première partie, très détaillée, ne demande pas de code et consiste en 
l'établissement des bilans de matière dans un dispositif similaire à la 
colonne. Elle
ne présente pas de difficulté conceptuelle particulière, et est constituée de 
deux
moitiés très semblables qui diffèrent seulement par la présence ou l'absence du
réactif dans le liquide.
· La seconde partie, longue de vingt-trois questions, entreprend la modélisation
informatique du transfert. L'objectif général est la calibration de deux 
paramètres à l'aide de valeurs expérimentales. Divers outils sont requis dont 
un optimiseur non linéaire et un intégrateur d'équations différentielles. Le 
pseudo-code
du premier (l'algorithme de Nelder-Mead) est fourni, et le sujet guide 
l'écriture
du deuxième (l'algorithme d'Euler explicite). Deux questions demandent une
certaine familiarité avec deux algorithmes vus en cours, le tri par sélection 
(rappelé par l'énoncé) et la méthode des trapèzes pour l'intégration numérique.
De manière générale, le sujet est très peu clair ; l'organisation des 
questions, le
fait que les données numériques sont disséminées dans tout le texte, ainsi que 
la
redéfinition de symboles en cours de partie rendent sa lecture difficile. Ni la 
partie
théorique, ni la partie informatique ne présentent un intérêt extraordinaire et 
l'originalité de l'algorithme de Nelder-Mead n'est même pas exploitée puisque 
la tâche
se limite à en recopier le pseudo-code. Il est concevable qu'une analyse 
détaillée des
propriétés de l'algorithme (comme sa convergence, problème très complexe et pas
encore résolu en dimension supérieure à 1) dépasse le cadre de ce sujet de 
modélisation. En revanche, alors qu'un sujet de concours devrait encourager la 
production
d'un code exemplaire, les contraintes artificielles que celui-là impose 
(interdiction de
définir des fonctions sauf lorsque c'est explicitement demandé, manque de 
généralité
de celles qu'il demande de définir, choix algorithmiques parfois peu inspirés 
et enfin
constantes numériques insérées « en dur » dans le programme au lieu d'utiliser 
des
variables, que l'on aurait pu imaginer être définies de manière globale), sont 
plutôt
une bonne série d'exemples à ne pas suivre.

Indications
Partie II
1.7 Pour le changement de variable, se ramener à une simple équation de 
décroissance exponentielle.
2.5 Attention ici aussi au signe.
Partie III
3.2 On pourra éventuellement utiliser les capacités de vectorisation de numpy 
pour
éviter d'avoir à écrire une boucle.
3.3.b Faire en sorte que la fonction f soit appliquée un nombre minimum de fois,
l'exécution de celle-ci pouvant être longue.
3.4 Ici aussi, il est possible d'utiliser numpy pour simplifier le programme.
3.8.f Faire très attention aux instants auxquels on doit enregistrer la valeur 
de CA .
3.15 L'intégration par la méthode des trapèzes consiste à additionner les aires 
des
trapèzes droits délimités par l'axe des abscisses, les deux droites verticales 
qui
correspondent à deux abscisses consécutives dans t_exp, et celle qui passe par
les points d'intersection de la courbe et de ces deux droites verticales.

II. Modélisation des phénomènes
1.1 Pour obtenir une concentration à partir d'une pression et de la constante de
Henry, il faut diviser la première par la seconde :
CA =
Numériquement,

PA
H

CA = 38,5 mol · m-3

1.2 On obtient la dimension de l'expression considérée en remplaçant chacun de 
ses
facteurs par leur dimension respective :
[k L × a × (CA - CA ) × Vliq ] =

L L2 N 3
N
L =
3
3
TL L
T

On trouve une quantité de matière divisée par un temps, soit un débit molaire.
1.3 CA suit une croissance monotone jusqu'à sa valeur d'équilibre CA et reste 
donc
inférieure à celle-ci à tout instant. Par conséquent, le terme k L × a× (CA - 
CA ) × Vliq
est toujours positif .
1.4 En prenant comme système de contrôle l'ensemble de la phase gazeuse à un
instant t, la loi de conservation de la matière appliquée au polluant permet 
d'égaler
dnA
la dérivée temporelle de la quantité de matière du polluant,
, à la somme des
dt
termes d'entrée et de sortie, avec des signes respectivement positif et négatif.
L'entrée de polluant s'effectue par voie gazeuse avec un débit molaire FA , 
comme
indiqué figure 2. Sa sortie du volume de contrôle se fait vers le liquide, avec 
le débit
molaire FA . Par conséquent,
dnA
= FA - FA
dt
L'énoncé précise que la phase gazeuse est considérée comme étant en régime
stationnaire, ce qui annule la dérivée. Par conséquent,
FA = FA = k L a (CA - CA ) Vliq
1.5 La phase liquide ne perd pas de matière mais elle en acquiert par son 
interaction
avec la phase gazeuse, on peut donc écrire
dVliq CA
= FA
dt
dVliq CA
= k L a(CA - CA )Vliq
dt

soit

1.6 L'équation devient

dCA
= k L a(CA - CA )
dt

1.7 La concentration CA étant définie par la pression partielle de polluant PA 
qui
reste constante, elle ne change pas non plus au cours du temps. On peut 
effectuer le
changement de variable D = CA - CA , qui donne
dD
= -k L aD
dt

avec

D(0) = CA

D(t) = CA e -kL at

d'où

CA (t) = CA (1 - e -kL at )

finalement

1.8 On a trouvé à la question précédente que
CA (t) =

PA
(1 - e -kL at )
H

On peut vérifier que CA est bien monotone croissante, initialement nulle et se 
stabilise
à sa valeur d'équilibre CA .
1.9 En réutilisant l'équation de la question 1.4, on obtient pour FA
FA = k L a

dont la dimension est

PA Vliq -kL at
e
H

L L2 3
PL
3
N
[FA ] = T L 3
=
T
PL
N

1.10 Comme on pouvait s'en douter, FA tend vers 0 pour des temps longs et
conjointement, CA se stabilise à CA .
2.1 L'ajout de B ne change ni le terme d'entrée FA , ni le terme de sortie FA , 
ni le
fait que la phase gazeuse reste en régime stationnaire. Le bilan sur celle-ci 
n'est donc
pas modifié.
2.2 Calculons la dimension de rapp :
r
L2 N L2 L3 N
N
=
[rapp ] = 3 3
L L
T NT L3
TL3
C'est une concentration divisée par un temps, qui se note en mol · m-3 · s-1 .
2.3 On a cette fois-ci un terme de perte qui représente le taux de polluant 
consommé
par la réaction, soit rapp Vliq . Son signe est négatif puisqu'il s'agit d'une 
perte. L'équation de la question 1.5 est donc modifiée en
dVliq CA
= FA - rapp Vliq
dt
2.4 L'équation devient

dCA
F
= A - rapp
dt
Vliq

2.5 Le bilan de matière de l'élément B ne comporte qu'un terme de sortie 
(puisqu'il
réagit avec A) et pas d'entrée, il est donc nécessairement en régime 
transitoire :
dVliq CB
= -rapp Vliq
dt