Académique Documents
Professionnel Documents
Culture Documents
Newton Rafson PDF
Newton Rafson PDF
SIMULATION ET OPTIMALISATION
STATIQUE DES SYSTÈMES INDUSTRIELS
CHAPITRE 1
SIMULATION STATIQUE DES SYSTEMES CHIMIQUES
Introduction
Nous allons considérer l’étude du comportement d’un ensemble d’appareils (un “système”) par
simulation. Nous considérerons que nous disposons d’un modèle de chacun des appareils, c’est-à-dire
d’un moyen de calculer l’état des flux sortant d’un appareil lorsque ses alimentations sont connues.
Pour résoudre ce problème, on devra réaliser une “coupure” de flux, c’est-à-dire que l’on devra
estimer un des flux puis calculer toutes les unités de la série et enfin utiliser une méthode de promotion de
convergence afin d’obtenir une meilleure estimation des grandeurs concernant le flux que l’on a coupé.
Figure 1.1
- 1.1 -
Chapitre 1
Par exemple, si l’on coupe le flux 2, on pourra calculer l’échangeur HE1, puis le réacteur,
l’échangeur HE2, le séparateur et le diviseur. On obtiendra ainsi de nouvelles valeurs pour le flux 2. On
peut alors effectuer la convergence sur le flux 2.
Si on considère un schéma plus complexe, il n’est pas évident de déterminer directement les flux à
couper de manière à avoir un nombre minimum de coupures (pour limiter les problèmes de convergence).
Méthode de Motard1
Une méthode pour déterminer le nombre minimum de coupures a été mise au point par MOTARD.
Nous utiliserons un exemple afin d’illustrer cette méthode.
y
52
y (7)
43
(4)
y y y y y y y
1 12 23 34 45 56 6
1 2 3 4 5 6
(-) (1) (2) (3) (6) (8) (-)
(5)
y
42
Figure 1.2
Chaque flèche représente un flux dirigé d’une certaine grandeur (matière, énergie,...) qu’il faut
déterminer. Pour chaque unité, il existe un modèle pouvant être résolu permettant de calculer les flux de
sortie en fonction des entrées. Dans le contexte du système, elle constitue un élément connu.
Nous considérons que le système est en régime, c’est-à-dire qu’il n’y a pas d’accumulation. S’il y
a une transformation chimique (réacteur par ex.), il est nécessaire d’introduire un flux fictif exprimant la
quantité de produits formée et la quantité de réactifs consommée. Nous n’envisagerons pas ici ce cas de
façon explicite.
Avant de résoudre le système ci-dessus, nous allons tout d’abord introduire la notion de graphe
dual et énoncer quelques règles systématiques qui nous permettront de résoudre le système en organisant
la séquence de calcul de manière optimale.
Le graphe dual
1
Barkley R.W., Motard R.L., “Decomposition of Nets”, The Chemical Engineering Journal, 1972, 3, 265-275.
- 1.2 -
Chapitre 1
Le graphe dual est construit à partir du flow-sheet du système que l’on veut résoudre. La grande
différence entre ces deux types de graphes se situe au niveau des significations des branches et des noeuds.
Les branches (noeuds) du flow-sheet deviennent les noeuds (branches) du graphe dual.
3 A
A B 2 1
C
1 2 A C
4
C 3 4
B
Figure 1.3 Flow-sheet Figure 1.4 Graphe dual
Les deux figures ci-dessus montrent la relation existant entre un flow-sheet et un graphe dual.
Règles de Motard
Pour trouver ce flux de manière systématique, nous considérons le graphe dual du flow-sheet et
nous appliquerons les règles suivantes en revenant à la première chaque fois qu’une règle aura été utilisée :
1. supprimer les flux qui n’ont pas de flux antérieur. Ils sont nécessairement spécifiés ;
2. remplacer les flux par leur antérieur, s’il n’y en a qu’un. Dès qu’un flux apparaît deux fois, le
supprimer une fois (ou ne pas l’écrire) ;
3. couper les boucles propres (ce sont les boucles sur un même noeud) ;
Figure 1.5
Le calcul du flux 1 implique une boucle de calcul itératifs donc une coupure.
4. couper un des flux parallèles de sens contraire . Couper la branche qui a le plus de flux postérieurs
(qui est le plus grand nombre de fois l’antérieur d’autres) ;
- 1.3 -
Chapitre 1
1 2
Figure 1.6
5. si deux boucles impliquent un même noeud (donc un même flux), c’est celui-ci qui doit être
coupé. En effet, ce faisant on coupe les deux boucles par un seule coupure.
1 2 3
Figure 1.7
Remarques :
• on est rarement amené à appliquer la dernière règle, car les autres suffisent généralement,
• lorsqu’on applique une des règles, il faut toujours recommencer à la 1ère règle pour continuer.
Ces règles dues à MOTARD ont été édictées pour permettre la décomposition des flow-sheets
préalablement à une simulation : elles permettent de déterminer et de localiser le nombre minimal de
coupures pour que le calcul des unités puisse se faire de manière séquentielle et itérative.
Pour connaître l’endroit où nous allons couper le système donné figure 1.2, appliquons les règles
proposées ci-dessus.
Le flux 1 n’ayant pas de flux antérieur est supprimé (règle 1). D’où le tableau :
- 1.4 -
Chapitre 1
2 5, 7
3 2, 4
4 3
5 3
6 3
7 6
8 6
Remplacer les flux 4, 5, 6 par leur flux antérieur unique 3 (règle 2). D’où le tableau :
2 3, 7
3 2, 3
4 3
5 3
6 3
7 3
8 3
Remplacer le flux 7 par son flux antérieur 3. Ce dernier existant déjà comme antérieur de 2, il est
inutile de l’écrire deux fois (règle 2). D’où le tableau :
2 3
3 2, 3
4 3
5 3
6 3
7 3
8 3
Remplacer le flux 2 par son flux antérieur 3 et ne pas l’écrire car 3 existe déjà comme antérieur de
3.
- 1.5 -
Chapitre 1
2 3
3 3
4 3
5 3
6 3
7 3
8 3
Il est évident qu’il est inutile de recopier chaque fois le tableau. Généralement, les corrections
successives sont apportées au 1er tableau (éventuellement en couleur) jusqu’à obtenir ce dernier tableau.
Nous remarquons que tous les flux ont le flux 3 comme flux antérieur (sauf le flux 1 qui n’en a pas).
Regardons maintenant l’application des règles de Motard au travers du graphe dual. Le 1er graphe
dual est obtenu à partir du 1er tableau des flux (attention, ici les numéros représentent les flux).
1 2 3 4
5 7 6 8
Figure 1.8
2 3 4
5 7 6 8
Figure 1.9
- 1.6 -
Chapitre 1
2 3 4
5 7 6 8
Figure 1.10
2 3 4
5 7 6 8
Figure 1.11
2 3 4
5 7 6 8
Figure 1.12
Le dernier tableau, ainsi que ce graphe, permettent de voir que tous les flux ont le flux 3 comme
flux antérieur, même le flux 3. Nous avons donc une boucle propre sur le flux 3.
Tous les autres flux disparaissent par application de la règle 1 car si le flux 3 est supprimé, les
autres n’ont plus d’antérieur.
Nous pouvons alors commencer le processus itératif. Le schéma suivant considère un calcul de
simulation.
- 1.7 -
Chapitre 1
Envisageons une seule variable de description des flux (débit par ex.) et donnons au flux 3 une
première valeur, soit a. On calcule les flux 4, 5 et 6. On calcule ensuite le flux 7 [ 7 = f6(6) ]. A ce moment,
on est en mesure de calculer le flux 2 [ 2 = f1(1, 5, 7) ] et le flux 3 [ 3 = f2(2, 4) ].
| a - a’ | ≤ ε , ε fixé.
Ayant trouvé le flux 3 à convergence, nous pouvons alors déterminer tous les autres flux.
Début
3 a
4 5 6
a = f(a′)
7
2 1
a′
Figure 1.13
Remarques :
• Une solution moins économique aurait, par exemple, consisté à couper les flux 4, 5 et 7. On aurait ainsi
obtenu un calcul séquentiel, mais on aurait eu un processus itératif plus compliqué.
- 1.8 -
Chapitre 1
• La théorie présentée n’exclut évidemment pas que l’on procède d’abord à toutes les éliminations
possibles lorsqu’elles sont faciles à réaliser.
Exemple :
1 2 3 4 1 3 4
i j k ij k
7 → 7
5 6 5 6
l l
Figure 1.14
Nous pouvons maintenant traiter un cas plus complexe, soit le système dont le flow-sheet est donné
ci-après :
Sortie
gaz
1 2 3 4 5
Cl 2
PRODUIT 11 13
12
HCl
6 7 8 10
Paraffines
9
Figure 1.15
2
3
5
1 11 4 6
Cl 1 2 3 4 5
2
9 18 19
14
7 17
11 12 13
8 12 13
16
15 20
10 6 7 8 9 10
22
21
Paraffines HCl
Figure 1.16
- 1.9 -
Chapitre 1
flux
1 - - - -
2 1, 11 15 12 -
3 2 15 12 -
4 3, 9, 13 13, 15 12, 16 16 couper 4
5 4, 14, 17 4, 14 4, 12 4
6 5 5 5 4
7 10 15 12 -
8 1, 11 15 12 -
9 10 15 12 -
10 8 15 12 -
11 15 15 12 -
12 3, 9, 13 13, 15 12, 16 couper 12 -
13 16 16 16 16
14 15 15 12 -
15 12 12 12 -
16 4, 14, 17 4, 15 4, 12 4
17 21 - - -
18 2 15 12 -
19 5 5 5 4
20 18, 19 18, 19 18, 19 4
21 - - - -
22 20 20 20 4
Nous aurons donc une boucle pour trouver le flux 4, accompagnée d’un test de convergence, ainsi
que sur le flux 12. Il s’agit d’un calcul où deux boucles de convergence sont imbriquées, il faudra faire un
pas en avant sur 12 lorsque 4 est à convergence.
- 1.10 -
Chapitre 1
{ a
12 15
14
1
18
{ b'
4
{ a'
12
11
{ 2
8
3
10 9
7
Figure 1.17
Bien remarquer que tous les calculs intermédiaires qui ne sont pas nécessaires (flux 6, 19, 20, 22),
ne sont pas calculés chaque fois mais uniquement à convergence.
On choisit un vecteur a de données (T, P, débits molaires partiels) pour le flux 12, et on calcule 15
qui donne 14 et 11. Le flux 11 et l’entrée 1 fournissent 2 et 8, avec 2 on trouve 3 (et 18) tandis qu’avec 8
on trouve 10 puis 9 (et 7).
On choisit des valeurs pour les composantes du vecteur b correspondant au flux 4 (17 et 14 sont
connus), on calcule 16 (et 5) puis 13. Ensuite 9, 13 et 3 permettent de calculer 4 = b’.
Test sur b’ = b, nouvelles valeurs pour b ... jusqu’à convergence de la boucle sur 4.
On calcule 12 (à partir de 13, 3, 9) = a’ ; test sur a’ - a, nouvelles valeurs pour a, etc., jusqu’à
convergence sur la boucle 12.
- 1.11 -
Chapitre 1
Figure 1.18
Pour résoudre ce système, nous allons devoir effectuer une coupure. On peut représenter le flux en
n’importe quel point du schéma, par un vecteur qui comporte les variables d’état, les spécifications du
procédé, les quantités de matière : soit par exemple, un vecteur F qui contiendrait,
la température,
la pression,
le débit total,
la composition,
Où faut-il couper ?
On effectuera donc une coupure totale sur tout le flux pour résoudre le système.
Par contre, entre 1 et le flux d’entrée, le débit total et compositions ne varient pas, la pression sera
obtenue par une perte de charge. Le seul paramètre qui va changer est la température et il suffira
d’effectuer une coupure thermique. On réalisera ainsi une économie de calcul car il faut itérer sur 1 seule
variable.
Ces derniers paragraphes mettent en évidence la différence fort importante entre les coupures
totales et partielles (compositions ou température, etc.).
Donc avant d’effectuer une coupure, il faudra toujours examiner s’il n’y a pas moyen d’effectuer
une coupure partielle, ce qui sera toujours intéressant du point de vue temps de calcul.
- 1.12 -
Chapitre 1
air de
procédé
CH
4 Reforming Reforming
H 2O primaire secondaire
CC
Méthanation Décarbonatation Shift
HT - BT
purge
NH3
La synthèse du NH3 passe par différentes étapes : il y a d’abord la préparation du gaz de synthèse
comprenant notamment les reforming primaires et secondaires, la conversion du CO, la décarbonatation et
la méthanation, et ensuite la synthèse proprement dites. Décrivons brièvement l’utilité des différentes
opérations de préparation du gaz de synthèse :
Décarbonatation : elle est destinée à éliminer le CO2 par absorption et réaction avec une solution de
carbonate de potassium chaude et activée.
Méthanation : il s’agit de purifier le gaz de synthèse des traces de CO et de CO2 encore présentes en les
transformant en CH4 ( CO + 3 H2 → CH4 + H2O et CO2 + 4 H2 → CH4 + 2 H2O ).
- 1.13 -
Chapitre 1
6
29
E108
5
R102
COMBUSTION
AIR DE
4
36
M102
R101
3
11
12
E101
13
PROCEDE
34
35
E102
AIR
M103
14
T101
30
E103
28
25
31
24
15
27
35 bar
23
B101
D102
E104
D101
T102
100 bar
33
26
PURGE
E105 16
32
22
21
20
EAU
10
9
17
PROCESS
M101
7
E106
G.N.
8
18
1
COMBUSTION
2
E107
G.N.
19
- 1.14 -
Chapitre 1
Flux
1 - - - - - -
2 1, 18 16 16 16 - -
3 2, 11, 36 11, 16 11, 16 10, 16 30 30
4 3, 35 3, 35 3, 13 3, 10 30 30
5 4 4 4 4 30 30
6 5, 28 4, 28 4, 23 4, 23 30, 24 30
7 - - - - - -
8 7, 17 16 16 16 - -
9 31 31 30 30 30 30
10 8, 9 16, 31 16, 30 16, 30 30 30
11 10, 12 10, 12 10, 12 10 30 30
12 2, 11, 36 11, 16 11, 16 couper 12 - - -
13 10, 12 10, 12 10, 12 10 30 30
14 13, 34 13 13 10 30 30
15 14, 25 13, 25 13, 25 10, 25 24, 30 30
16 15, 26 15, 26 15, 23 15, 23 couper 16 - -
17 16, 20 16 16 16 - -
18 7, 17 16 16 16 - -
19 1, 18 16 16 16 - -
20 - - - - - -
21 16, 20 16 16 16 - -
22 21, 24 21, 24 16, 24 16, 24 24 -
23 21, 24 21, 24 16, 24 16, 24 24 -
24 27, 29 27, 29 27, 29 27, 29 27, 29 couper 24 -
25 21, 24 21, 24 16, 24 16, 24 24 -
26 23 23 23 23 24 -
27 15, 26 15, 23 15, 23 15, 23 15, 24 30
28 23 23 23 23 24 -
29 5, 28 4, 28 4, 23 4, 23 24, 30 30
30 14, 25 13, 25 13, 25 10, 25 24, 30 30 couper 30
31 30 30 30 30 30 30
32 31 31 30 30 30 30
33 32 32 30 30 30 30
34 - - - - - -
35 13, 34 13 13 10 30 30
36 - - - - - -
- 1.15 -
Chapitre 2
CHAPITRE 2
MODELES MATHEMATIQUES DES SYSTEMES
CHIMIQUES ISOLES
Introduction
Dans le cadre de ce cours, nous nous limiterons à la simulation statique des systèmes, la simulation
dynamique faisant l’objet d’un cours à option en dernière année.
La modélisation d’un système pose la question de savoir quel modèle nous allons utiliser à cette fin.
En effet, un grand nombre de modèles existent et donner une liste exhaustive de tous les modèles
concernant l’ensemble des systèmes chimiques n’est pas ’lobjectif de ce cours. Nous en établirons
toutefois quelques-uns ci-après, à l’aide de modèles déterministes, en explicitant la méthode générale des
bilans matériels, énergétiques et de quantité de mouvements.
La modélisation d’un système fait appel à des équations de bilans et à des équations propres à
l’unité opératoire : les équations de simulation.
- 2.1 -
Chapitre 2
D’autre part, un certain nombre de variables caractérisent l’état du système. La différence entre le
nombre de variables du système et le nombre total d’équations est égal au nombre de degré de liberté du
système. Il est alors nécessaire d’imposer la valeur d’autant de variables qu’il y a de degrés de liberté : ce
sont les spécifications du système.
L’objectif de ce cours étant la simulation statique des systèmes, le terme d’accumulation sera nul
puisque le système est supposé avoir atteint son régime stationnaire.
La décomposition des modèles et leur résolution sera vue plus loin (§2.4). Nous ne nous étendrons
donc pas sur celle-ci par la suite.
Les modèles que nous allons décrire seront des modèles à description macroscopique, c’est-à-dire
qu’ils ne nécessitent pas la connaissance locale des variables. Dans les bilans, les variables d’état du
système ont pour valeurs les moyennes correspondant à l’ensemble du volume de ce système.
Il existe également des modèles à description microscopique dont nous verrons un exemple plus
loin dans le cours (§2.3.2.1). Dans les modèles examinés ci-après, on supposera que les grandeurs
caractérisant les flux d’entrée sont connues : elles ne seront pas considérées comme variables.
2.2.1 Le mélangeur
T1,P1,xi1
F1
T,P,xi
F
T2,P2,xi2
F2
Variables :
- 2.2 -
Chapitre 2
Equations :
bilan de matière F.xi = F1.xi1 + F2.xi2 n
bilan thermique F.H(T,P,xi) = F2.H2(T2,P2,xi2) + F1.H1(T1,P1,xi1) 1
bilan d’impulsion remplacé par P = min(P1,P2) 1
n
total n+3
Il n’y a pas de degré de liberté pour le mélangeur si nous connaissons tous les flux entrant dans le
mélangeur, c’est-à-dire : la température Tk , la pression Pk , les débits molaires totaux Fk et les fractions
molaires partielles xik de chacun des flux d’entrée.
Remarques :
♦ si on fixe la température T, il n’est plus nécessaire d’écrire le bilan thermique;
♦ de même, si on fixe la pression P, il n’est plus nécessaire de réaliser un bilan d’impulsion;
♦ on peut supprimer l’équation de normation à condition de remplacer les fractions molaires et les débits
molaires totaux par les débits molaires partiels (Xi=F.xi) et de réaliser le bilan de matière sur ces
derniers. Le modèle comporte alors (n+2) équations et variables et le nombre de degré de liberté est
toujours nul.
2.2.2 Le diviseur
On réalise la division d’un flux à n constituants en plusieurs flux en sortie du diviseur. Nous
choisissons un diviseur séparant un flux en deux branches.
T1,P1,xi1
F1
T,P,xi
F
T2,P2,xi2
F2
- 2.3 -
Chapitre 2
Equations :
bilan de matière F.xi = F1.xi1 + F2.xi2 n
bilan thermique F.H(T,P,xi) = F2.H2(T2,P2,xi2) + F1.H1(T1,P1,xi1) 1
bilan d’impulsion P1 = P 1
bilan d’impulsion P2 = P 1
n
dimensionnement xi1 = xi n
dimensionnement T1 = T 1
total 2n+5
Nous disposons encore d’un degré de liberté, nous devons donc imposer au système une
spécification : le taux de division par l’intermédiaire d’un des débits molaires de sortie (F1 ou F2) ou du
rapport de l’un de ces débits avec celui à l’entrée (F1/F ou F2/F). Remarques : nous pouvons faire les
mêmes que dans le cas du mélangeur.
T1,P1 T2,P2
F2
F1
Hypothèses : il n’y a pas de changement de phase dans la vanne et la détente se fait de manière
adiabatique.
Variables :
température de sortie T2 (K) 1
pression de sortie P2 (bar) 1
débits molaires totaux des flux sortants F2 (kmol/s) 1
fractions molaires des flux sortants xi2 (-) n
total n+3
Equations :
- 2.4 -
Chapitre 2
Nous disposons encore d’un degré de liberté, nous devons donc imposer au système une
spécification : le taux de détente par l’intermédiaire de la pression de sortie P2 ou du rapport de la pression
de sortie à celle de l’entrée P2/P1.
V yi
zi T P
F
Q
Q
L xi
Variables :
température T (K) 1
pression P (bar) 1
débit molaire liquide L (kmol/s) 1
débit molaire vapeur V (kmol/s) 1
fractions molaires liquide et vapeur xi, yi (-) 2n
enthalpie transférée Q (kW) 1
total 2n+5
Equations :
bilan de matière F.zi = L.xi + V.y i n
bilan thermique F.Hf = V.HV(T,P,y i) + L.HL(T,P,xi) + Q 1
n
normation (vapeur) ∑y i =1 1
1
n
normation (liquide) ∑x i =1 1
1
- 2.5 -
Chapitre 2
Nous disposons encore de deux degrés de liberté, nous devons donc imposer au système deux
spécifications : par exemple, la pression et la température dans le séparateur (équilibre à P et T fixés : EPT)
ou la pression et la fraction vaporisée (EPA) ou la température et la fraction vaporisée (ETA) ou encore la
pression et la chaleur transférée.
2.2.5 Le compresseur
W
T2,P2
F2
T1,P1
F1
Variables :
température de sortie T2 (K) 1
pression de sortie P2 (bar) 1
débit molaire de sortie F2 (kmol/s) 1
fractions molaires de sortie xi2 (-) n
travail W (kW) 1
travail de compression isentropique Wis (kW) 1
température de compression isentropique Tis (K) 1
total n+6
Equations :
bilan de matière F2.xi2= F1.xi1 n
bilan thermique F1.H1(T1,P1,xi1) = F2.H2(T2,P2,xi2) - W 1
n
normation ∑x1
i2 =1 1
total n+5
- 2.6 -
Chapitre 2
Nous disposons encore d’un degré de liberté, nous devons donc imposer au système une
spécification : le taux de compression par l’intermédiaire de la pression en sortie du compresseur P2 ou du
rapport de celle-ci avec la pression à l’entrée (P2/P1) ou bien alors le travail mécanique W fourni au
compresseur.
2.2.6 La turbine
On réalise la détente d’un flux à n constituants dans une turbine afin de produire un travail
mécanique. La modélisation de la turbine se fait comme pour le compresseur, excepté pour la première
équation de dimensionnement qui est modifiée comme suit : W=Wis.ηis.
W
T1,P1
F1
T2,P2
F2
Variables :
température de sortie T2 (K) 1
pression de sortie P2 (bar) 1
débit molaire de sortie F2 (kmol/s) 1
fractions molaires de sortie xi2 (-) n
travail W (kW) 1
travail de compression isentropique Wis (kW) 1
température de compression isentropique Tis (K) 1
total n+6
Equations :
bilan de matière F2.xi2 = F1.xi1 n
bilan thermique F1.H1(T1,P1,xi1) = F2.H2(T2,P2,xi2) - W 1
n
normation ∑x1
i2 =1 1
dimensionnement W = W is.ηis 1
dimensionnement W is = His(Tis,P2) - H1(T1,P1,xi1) 1
dimensionnement (entropie) S(Tis,P2) = S(T1,P1) 1
total n+5
- 2.7 -
Chapitre 2
Nous disposons encore d’un degré de liberté, nous devons donc imposer au système une
spécification : le taux de détente par l’intermédiaire de la pression en sortie du compresseur (P2)ou du
rapport de celle-ci avec la pression à l’entrée (P2/P1) ou bien alors le travail mécanique W fourni par la
turbine.
Ce type de modèle ne nécessite pas la connaissance locale des variables et donne lieu à une
description mathématique très simplifiée. Dans les bilans, les variables d’état comme la température et les
concentrations sont des variables dont on applique les valeurs moyennes à tout le volume du système.
Soit la réaction a A → b B (ou A → δ B avec δ = b/a) réalisée dans un RCPM isotherme dont un
schéma simplifié est donné ci-dessous :
0 0 0
T , CA , CB , F
T, C A, C B , F
T , V
Figure 2.1
avec T la température en K,
V le volume en m3,
C la concentration en A ou en B, en mole/kg,
F débit massique en kg/s plutôt qu’en m3/s ou mole/s, car ils restent invariables même si la
température et/ou le nombre de moles varie(nt),
- 2.8 -
Chapitre 2
• le bilan énergétique :
T = T0 car le réacteur est isotherme, (3)
P = P0 si on néglige les pertes de charge, (4)
d’où :
C 0A
CA =
k.V
1+
F
et le problème est alors très simple ;
♦ si la réaction est du premier ordre dans un sens et du second dans l’autre alors :
r = k 1 .CA − k 2 . C2B
et (1) devient :
0 = F.C0A − F.C A − k 1 . V.C A + k 2 . V.C2B
r2
alors :
0 = F.C0A − F.C A − k 1 . V.C A + k 2 . V.C2B − k 3 .C A .C B .V
- 2.9 -
Chapitre 2
2.3.1.2 Adiabatique
Un échange de chaleur avec un fluide circulant dans une double enveloppe apporte encore un
terme supplémentaire au bilan thermique (3) :
0 = F.C P .T0 − F.C P .T + ∑ ( −∆H i ).ri .V - K.S.(T - TW )
i
Il faut attirer l’attention sur les ∆H qui apparaissent dans les bilans thermiques : ce sont les
enthalpies “chimiques ”. Elles sont calculées par rapport à une température de référence T0 et si la
température à laquelle les réactions se déroulent est égale à T, alors on doit appliquer la formule suivante
(cas des gaz idéaux) :
∑ ∆H(T) = ∑ ∆H(T ) + ∫
T
0 ∑ ν .Ci . dT
T0 i P
i i i
N’oublions pas que les ∆H de réaction sont négatifs lorsque le système chimique est exothermique,
ce qui explique les signes dans les équations des paragraphes précédents.
Ici, le système est représenté par un continuum. Nous distinguerons deux cas :
♦ modèles à paramètres globaux (“lumped parameters”), c’est-à-dire valables en tout point du système,
Soit le système isolé constitué par le lit catalytique d’un réacteur tubulaire de rayon R et de
longueur L occupé par le catalyseur. Nous supposerons que le régime d’écoulement est de type “piston”.
- 2.10 -
Chapitre 2
Soient mc la masse (kg) et rc la masse spécifique (kg/m3) du lit catalytique qui constitue le réacteur
représenté ci-dessous :
F
dmc
dl
Figure 2.2
Dans ce cas, les bilans sont calculés sur une tranche très petite dl. Sur celle-ci, le bilan matière du
composant A s’écrit :
0 = F. C A − F.(C A + dC A ) − r. dV. ρ c
tandis que l’équation aux dimensions ne change guère par rapport à celle de (1), si ce n’est que la vitesse
s’exprime en kmole par kg de catalyseur et par seconde.
On a supposé le Cp constant dans l’intervalle dT, cependant, dans le cas d’une réaction très
exothermique, on doit tenir compte de sa variation, on écrit H(T) - H(T+dT) où H représente l’enthalpie
"sensible" plutôt que les termes avec la chaleur spécifique constante. La référence pour le calcul des
enthalpies sensibles ou de réaction se fait toujours à partir d’une température T0 qui peut être égale à T
pour simplifier les expressions. Ajoutons que l’hypothèse des chaleurs spécifiques constantes entraîne une
sorte d’indifférence sur le choix de la température de référence, ce qui d’ailleurs est source de confusion.
- 2.11 -
Chapitre 2
dCi m
= − c .∑rj
dλ F j
Remarque : Il faut vérifier s’il n’y a pas d’équations superflues et envisager alors de réduire la dimension du
système. Ces points font l’objet des paragraphes suivants.
La simulation d’une installation ou même d’un appareil nous amène couramment à résoudre des
systèmes d’équations de dimensions assez importantes. Plutôt que de résoudre celles-ci simultanément, on
a intérêt à organiser le calcul de manière à résoudre en séquence une série de systèmes plus petits.
L’organisation du calcul se déduit de l’examen d’une matrice appelée matrice d’incidence.
Avant d’aborder le cas des équilibres physiques et le modèle du séparateur, nous allons, à partir
d’un exemple très simple, décrire la procédure à suivre :
a. x 1 + c. x 12/2 = 1 (2)
d . x 1 + e. x 3 = m (3)
5. x 1 + 2. x 3 + x 4 = n (4)
Var x1 x2 x3 x4
Eq.1 1 1 0 1
- 2.12 -
Chapitre 2
Eq.2 1 1 0 0
Eq.3 1 0 1 0
Eq.4 1 0 1 1
On peut voir que si on connaît x4, on pourra trouver x1 et x2 au moyen des équations 1 et 2.
Ensuite, avec l’équation 3, on obtiendra x3. L’équation 4 nous donnera x4 à partir de x1 et x3. La séquence
de calcul sera alors la suivante :
(1) x1
Estimer
x4 { { (2) x2
(3) → x
3
(4) → x4
oui
On emploie donc un processus itératif pour résoudre le problème. Si on ne corrige pas la valeur de
x4 donnée par l’équation 4 et que l’on réinjecte cette valeur dans les équations 1 et 2, on emploie la
méthode de substitution simple. En général cependant, on corrigera cette valeur par les méthodes décrites
au chapitre 3, ces méthodes accélèrent le processus de convergence des calculs.
a. x 1 + c. x 2 = 1 (2)
d . x 1 + e. x 3 = m (3)
5. x 1 + 2. x 2 + x 4 = n (4)
la séquence de calcul eut été fort semblable, seule l’évaluation de x3 tombe hors du procédé itératif et cette
inconnue est calculée lorsqu’on sort de la boucle.
- 2.13 -
Chapitre 2
f (variables, paramètres) = 0 ,
équations de bilans et conditions d’équilibre,
• d’autre part, par un choix cohérent de lois thermodynamiques (équations d’état ou corrélation), fixant les
limites d’application du modèle et par l’ensemble des données nécessaires.
Les fugacités partielles des constituants i à T et P du mélange doivent être égales dans les deux
phases :
fiL = fiV
Ces variables s’expriment généralement en fonction du coefficient de fugacité (ϕ) pour la phase
vapeur et en fonction du coefficient d’activité (γ) et de la fugacité de référence ( f * ) pour la phase liquide :
ϕ i . yi . P = γ i . xi . f i*L
Le coefficient d’équilibre du constituant est défini par le rapport de sa fraction molaire en phase
gazeuse à sa fraction molaire en phase liquide :
yi
Ki =
xi
Nous verrons plus loin l’importance du rôle joué par ces variables. Il est dès lors utile d’en
examiner les diverses expressions possibles :
f i*L . γ i
Ki =
P. ϕ i
ϕi = ϕi (T, P, y, Θϕ)
γi = γi (T, P, x, Θγ)
- 2.14 -
Chapitre 2
où les symboles x et y sont des vecteurs de fractions molaires tandis que Θ indices ϕ et γ, sont des
vecteurs de paramètres. L’ensemble de ces vecteurs sera représenté par Θ ci-après. Le nombre et les
valeurs des paramètres dépendent des choix adoptés pour les lois physico-chimiques.
Ki = f (T, P, x, y, Θ)
Rappelons que f i*L est la fugacité du constituant i pur liquide, à la température et à la pression du
mélange ou encore fugacité de référence. Ce terme ne dépend donc que de T et P. Il s’agit là de la
convention symétrique. Si le constituant n’existe pas à l’état liquide, c’est-à-dire s’il est incondensable, la
référence est l’état de dilution infinie. C’est la convention asymétrique.
A pression modérée, on a :
v S .( P − P S )
f i*L = f i*LS .exp i
R. T
f i*LS = PiS . ϕ *i S
Si la pression du système est choisie comme référence, les relations ci-dessus ne doivent pas être
modifiées.
Si l’on choisit l’état de référence de la phase liquide comme étant celui du corps pur à la pression
r
P et à la température du système, on a dans ce cas :
vSi .( P r − P S )
f i
LR
=P * LS
i . ϕ .exp
*S
i
R. T
v Li .( P − P r )
f i
*L
= fi LR
.exp
R. T
Le volume molaire du liquide est généralement considéré comme indépendant de la pression, ce qui
justifie les approximations apparaissant dans les formules ci-dessus. De plus, cette hypothèse se retrouve
implicitement quand on calcule ϕ pour le constituant i. L’avantage de choisir la pression de référence égale
à 0 est que les deux phases possèdent le même état de référence.
On se rend compte que si la température réduite (Tr = T/Tc) du constituant i est > 1, on n’a plus la
possibilité de calculer sa pression de saturation, il faut dès lors prendre une valeur extrapolée ou calculer la
fugacité du liquide d’une autre manière. Ce cas ne sera pas traité dans le cadre de ce cours (convention
asymétrique, revoir ci-dessus).
- 2.15 -
Chapitre 2
Maintenant, nous pouvons donc supposer que nous avons accès à la relation :
Ki = f(T, P, x, y, Θ)
Avant de terminer le bref examen de cette variable, il est utile de rappeler qu’il existe diverses
approximations qui représentent un ensemble de comportements possibles pour la phase vapeur et pour la
phase liquide.
C
o Gaz parfait P si
M
Pi . γ i
m Ki = s
p é P Ki =
s
o l ϕi* = ϕ*i = 1 r
P
r a K = K = f (P ,T)
t n
e g
m e Gaz réel L
e f *i
n Ki = L
i
V V ϕ*i . P f*i . γi
t d fi = yi . f i' Ki =
p é ϕ* . P
i
h a
a
l
f 'i V = ϕi . P
* id
K = K = f(P,T)
s
e
v
a
p Mélange f *i L . γi
e non idéal Impossible Ki =
u ϕ* . P
r i
Tableau 2.1
Nous avons noté f i'L ou f i'V les fugacités du constituant pur dans les conditions de T et P du
mélange, en phase liquide et en phase vapeur respectivement.
Remarquons que Kr (K Raoult) et Kid (K idéal) sont indépendants des compositions des phases en
présence et qu’ils constituent une assez bonne approximation des valeurs de K. Nous les utiliserons par la
suite, notamment comme point de départ des itérations. Kr peut se calculer très simplement et Kid d’une
manière un peu plus compliquée.
- 2.16 -
Chapitre 2
Les paramètres Θ sont fixés par le choix des lois qui conditionnent la connaissance des fugacités
partielles des constituants. Les relations de définition des Ki sont :
y i = Ki . x i avec i = 1, n (2)
yi
xi = avec i = 1, n (2)
Ki
∑x i −1 = 0 (4)
∑y i −1 = 0 (4)
∑x −∑y i i =0 (4’)
Les données du problème d’équilibre comportent les variables F et z, ces dernières satisfaisant à la
relation ∑ z i = 1 . Dès à présent nous considérons que F = 1 mole de mélange et que les zi auront été
normés. On aura donc V = α et L = 1 - α .
- 2.17 -
Chapitre 2
Cependant, si l’on fait la somme des équations (2) et que l’on tient compte de (3), on se rend
compte que les 2 équations (4) ne sont pas indépendantes. L’une d’elles seulement doit être retenue ou
bien uniquement l’équation (4’). Nous noterons cette équation de normalité S(VAR) = 0
La notation “VAR ” développe une des variables considérées précédemment, par exemple α, P,
T, etc. L’équation S(VAR) = 0 désignera l’une quelconque des équations (4) ou (4’). Nous expliciterons la
fonctionnelle S(VAR) à la fin de ce chapitre. Le décompte s’établit donc comme suit :
De plus, on peut désirer calculer une fonction d’état quelconque - celle que l’on considère le plus
souvent dans les équilibres liquide-vapeur est l’enthalpie H - soit pour un constituant i dans le système ou
dans l’une des deux phases, soit pour l’ensemble de ceux-ci.
Il sera donc nécessaire de se fixer deux spécifications supplémentaires. Selon le choix effectué, on
distingue les calculs d’équilibre (ou de vaporisation partielle désignée souvent par le terme anglais flash) :
• à T et P fixés,
• à P et α fixés, cas particuliers : les calculs de T de rosée (α = 1) et T de bulle (α = 0),
• à T et α fixés, cas particuliers : les calculs de P de rosée (α = 1) et P de bulle (α = 0),
• à P et H fixés,
• à P et S fixés.
- 2.18 -
Chapitre 2
x x x x x x x
(2) x x x
x x x
(3) x x x x
x x x x
(4) x x x x
(5) x x x x x x x x
On remarque que seule la relation (5) permet de calculer H. Le système résiduel (1) à (4) constitue
une matrice irréductible de (3n+1)×(3n+3) (entourée en pointillé). La résolution d’un tel système
d’équations non linéaires posera rapidement un problème (par exemple, si n > 5).
Des méthodes existent bien sûr (Newton - Raphson, Marquardt, etc.), mais elles nécessitent une
procédure itérative et sont sujettes à bien des aléas (dépendance par rapport à l’approximation de départ,
relaxation,...). De plus, elles demandent la connaissance des dérivées partielles et le remplissage des
matrices (Jacobien par exemple),… en fonction du problème à traiter.
Examinons dès lors si nous ne pouvons pas réduire la dimension du problème dans les (3n+1)
équations. Pour ce faire, nous choisirons le problème à T et P donnés (EPT). Nous avons vu que nous
pouvons disposer d’une approximation du coefficient K du constituant i par :
et dès lors, si l’on estime α, on pourra calculer x(x) par les relations (3), ensuite y(y) par les relations (2) et
enfin les coefficients K de chaque constituant i par les relations (1). Cette procédure peut être schématisée
par le diagramme de fluence suivant :
Kr , α → x, y → Kr
Nous avons noté x, y car suivant le type de problème traité, on devra utiliser les premières ou les
deuxièmes expressions de (2) et (3).
Les variables K dépendant en général de x et y, nous devrons itérer sur K puis vérifier que la
condition de normalité est satisfaite et modifier α en conséquence On aura donc deux boucles de
convergence imbriquées :
- 2.19 -
Chapitre 2
r ?
T et P : α K → x, y K constante ? → S(α) = 0
c
α
∑ x − ∑y
i i
i i
obtenue pour une valeur de α lorsque les valeurs de K du constituant i sont à convergence. On va se servir
de cette grandeur et d’autres éventuellement pour déterminer la valeur corrigée de α avec laquelle on
espère satisfaire la condition (4). Il faut remarquer que la dimensionnalité a été réduite de manière
spectaculaire puisqu’on ne doit résoudre qu’une équation à la fois.
• Comment calculer la valeur corrigée de VAR (α corrigé dans ce cas) en vue d’en promouvoir la
convergence ?
• Ne peut-on promouvoir aussi la convergence de K ?
• Quelles sont les mesures de "sécurisation" de la méthode, c’est-à-dire telles qu’elles assurent un
maximum de chances d’obtenir le résultat ?
• Est-on sûr par exemple que 0 < α < 1 ?
• La forme S(VAR) = 0 est-elle toujours la même dans tous les cas ?
• Quels sont les tests de convergence ?
Nous y répondrons après avoir dressé les organigrammes simplifiés d’itération correspondant aux
autres types de calcul d’équilibre.
c
P
- 2.20 -
Chapitre 2
?
P et α : T Kr → x, y K constante ? → S(T) = 0
c
T
Le cas suivant est différent puisqu’il fait intervenir l’enthalpie (EPH). Si on se reporte à la matrice
d’occurence, on se rend compte qu’il est nécessaire de passer par une variable auxiliaire. On a le choix
entre α et T. Ces variables peuvent donc être inversées ci-après. Dans la littérature, on préfère le choix
illustré sur le diagramme ci-dessous pour des raisons jamais évoquées.
r ? ?
H et P : α K → x, y K constante ? → S(T) = 0 → H(α) = 0
c
T
c
α
La condition H(α) = 0 est décrite de manière que l’enthalpie du système soit celle qui a été
imposée et appelée Hd :
H(α) = H(T, P, x, y, α) - Hd = 0
A l’aide du mode PT, découvrons tout d’abord un genre de difficulté, qui peut se poser. On a le
choix entre trois expressions pour S(α) :
zi
S1 ( α ) = ∑ x i − 1 = ∑ 1 + α.(K −1
i i i − 1)
Ki . z i
S2 ( α ) = ∑y i −1= ∑ 1 + α.(K − 1)
−1
i i i
(1 − K i ). z i
S3 ( α ) = ∑ x i − ∑ y i = ∑ 1 + α.(K
i i i i − 1)
Pour des valeurs de Ki données, ces trois fonctions évoluent comme l’indique la figure 2.3 ci-
dessous :
- 2.21 -
Chapitre 2
S( α )
S1(α )
S ( α)
2
0.5
S2
0
S1 α
S
- 0.5
Ethane
n-butane
Z1 = Z2 = 0.5
-1 P = 5 bar
T = 280 K
Figure 2.3
Dans ce cas, seule la fonction S est unimodale et elle sera donc préférée. Si l’on a choisi S1 ou S2,
il existe deux solutions et avec certaines méthodes de résolution, on peut être conduit vers α = 0 ou vers
α = 1.
Le choix du critère étant fait, comment trouver la solution de S(α) = 0 ? On peut songer à utiliser la
méthode de Newton, la méthode “regula-falsi ”, la méthode de Wegstein ou encore une méthode
d’interpolation parabolique... Ces méthodes seront vues chapitre 3.
α k +1 − α k < ε 2
Enfin, la promotion de la convergence de la boucle interne doit porter sur chaque Ki. L’expérience
démontre que les itérations sur cette boucle convergent rapidement par simple substitution.
- 2.22 -
Chapitre 2
Il faut être plus prudent dans le cas des systèmes fortement non idéaux où des équations très
complexes (Soave, NRTL, UNIQUAC,...) sont utilisées. Il sera indispensable d’utiliser des méthodes
comme celles de Marquardt ou de Broyden qui seront vues dans la suite du cours.
- 2.23 -
Chapitre 3
CHAPITRE 3
LES PRINCIPALES METHODES MATHEMATIQUES
Introduction
Si nous voulons résoudre les modèles que nous venons de définir au chapitre précédent, nous
devrons disposer de méthodes de résolution de systèmes d’équations simultanées, d’intégration numérique
et de méthodes s’appliquant au calcul itératif.
Dans ce chapitre, nous analyserons quelques-unes des plus importantes méthodes telles que celles
de Newton-Raphson, de Wegstein, de Rubin et de Runge-Kutta.
Nous allons envisager des méthodes pour résoudre deux types d’équations : les équations
explicites f ( x ) = 0 et les équations implicites x = f ( x ) . Pour le premier type, nous décrirons les méthodes
de Newton-Raphson et de la corde tandis que pour le second type, nous décrirons la méthode de
Wegstein.
3.1.1.1 Description
(x − x0 )2
f ( x) = f ( x 0
) + ( x − x ). f ′ ( x ) +
0 0
. f ′′( x 0 )+K
2!
où f ′ , f ′′ , etc. sont les dérivées premières, secondes,... de la fonction f.
L’approximation de Newton consiste à négliger les termes d’ordre supérieur à un en supposant que
x est suffisamment près de la solution x* et à remplacer l’équation initiale par l’équation linéaire
0
approchée suivante :
f ( x 0 ) + ( x * − x 0 ). f ′( x 0 ) ≅ f ( x * ) = 0
f ′( x 0 )
- 3.1 -
Chapitre 3
cette valeur devant être une meilleure estimation de la solution (ce n’est pas toujours le cas !!!). Pour
trouver la solution, on utilisera donc la formule de récurrence :
f (xn )
x n+ 1 = x n −
f ′( x n )
M
n
Mn+1
0 x* xn+1 x n x
Figure 3.1
y − f ( x n ) = f ′( x n ). ( x − x n )
f (xn )
xn − = x n +1
f ′( x n
)
On obtiendra de même xn+2 , xn+3 , de proche en proche en menant les tangentes aux points Mn+1 ,
Mn+2 , ... et en cherchant leur intersection avec Ox.
3.1.1.3 Remarques
• Notons que les valeurs successives des x sont trouvées en tenant compte des signes de f ( x) et de
f ′( x) . Dans ce cas, pour éviter toute divergence, on peut utiliser une seconde formule de récurrence
inspirée de Wegstein (voir plus loin) :
~ x n + (1 − q ). x n+1
x n+ 1 = q. ~ (relaxation)
Cela signifie dans l’exemple donné ci-dessous, que, sur la tangente passant par M 0 , l’on va s’arrêter en
un point défini par la valeur de q.
- 3.2 -
Chapitre 3
Exemple :
y
M1
~
M1
~1
x2 x x*1 x 0 x*2
0 x1 x
M0
Figure 3.2
f(x k )
0 x k+1 x k-1
k+1 xk
f(x )
k-1
f(x )
Figure 3.3
le point xk +1
s’obtient en posant f ( x k +1
) = 0 , d’où l’équation :
- 3.3 -
Chapitre 3
x k +1 = x k − ψ −1. f ( x k )
avec :
f ( x k ) − f ( x k−1 )
ψ= k −1
x −x
k
Cette équation diffère de celle de Newton par la valeur de ψ qui n’est qu’une approximation de
l’inverse de la dérivée de f au point x k .
Remarques :
Cette méthode est très intéressante dans le cas fréquent en chimie où on est amené à résoudre des
équations implicites.
La méthode est également basée sur un processus itératif. Admettons que l’on ait obtenu une valeur
de x après i itérations. Pour obtenir la valeur suivante, on utilise la méthode décrite ci-dessous :
y y
x k+2
x k+1
q 1- q
0 x k+1 ~xk+1 xk x 0 xk x
Figure 3.4
- 3.4 -
Chapitre 3
en continuant de cette manière, on utilise la méthode dite implicite qui peut diverger. De plus, la
convergence est très lente.
Wegstein propose une autre procédure pour éviter certains désagréments de la méthode implicite
et pour accélérer la convergence.
A cet effet, il propose de corriger la valeur de xk +1 en traçant la corde entre les points k et k+1 et
en cherchant son intersection avec la droite y = x .
Pour obtenir cette nouvelle valeur de xk +1 , il faut donc résoudre le système suivant :
y k +1 − y k
y − y = k +1 ~ k . ( x − ~
k
x k ) = ψ .( x − ~x k )
x −x
y= x
avec ψ, le coefficient angulaire de la corde,
y k+1
yk
0 x k+1 ~
x k+1 xk x
Figure 3.5
ce qui revient à chercher q de sorte que :
x k +1 = q . ~x k + (1 − q). x k +1
~
x k +1 − x k +1 = ψ. ( ~
~ xk )
x k +1 − ~
d’où,
. ( x k+1 − ψ. ~
xk )
~ 1
x k +1 =
1− ψ
−ψ 1
par conséquent, on aura q = et 1 − q = .
1− ψ 1− ψ
Dans le cas de la méthode implicite, suivant la valeur du coefficient angulaire de la courbe (tangente
de la courbe), on peut converger de différentes manières ou même diverger.
- 3.5 -
Chapitre 3
y +•
1
-1
-•
0 x
Figure 3.6
−∞ -1 0 1 +∞
divergence convergence convergence divergence
oscillatoire oscillatoire monotone monotone
Wegstein par contre, converge même dans des cas où la méthode implicite diverge. Cependant,
d’après le graphique ci-après, on peut voir que q peut prendre des valeurs absolues très grandes pour 0,75
< ψ < 1,25.
On aura intérêt à limiter la valeur absolue de q pour restreindre l’avancement et ne pas s’éloigner
trop de la solution.
-ψ
q = --------- 0.75
1- ψ
0
1 1.25 ψ
Figure 3.7
- 3.6 -
Chapitre 3
1. on choisit une valeur approchée de la solution x 0 , et ensuite on calcule les deux premiers points :
x1 = f ( x 0 )
x 2 = f ( x1 )
x 3 = f ( ~x 2 )
x3 − x2
ψ = ~2 d ' où ~x 3
x − x1
x4 = f (~
x 3)
K
x k +1 − x k x k +1 − x k
ψ = ~ k ~ k−1 ou bien x k − x k −1
x −x
x k +2 = f ( ~x k+1 )
K
et ainsi de suite jusqu’à la solution. Il est clair qu’à chaque itération un test est fait pour voir si la solution est
atteinte.
Nous allons maintenant aborder la résolution de problèmes à n dimensions. Pour les équations
explicites, nous envisagerons les méthodes de Newton-Raphson et de la sécante généralisées, ainsi que la
méthode de Broyden. En ce qui concerne les équations implicites, nous décrirons la méthode de Rubin.
Soit à résoudre F( x ) = 0 où F est une fonction vecteur, c’est-à-dire, selon les conventions
mathématiques :
f1 ( x ) = f1 ( x 1 , x 2 , K, x n ) = 0
f 2 ( x) = f 2 ( x1 , x 2 ,K , x n ) = 0
f n ( x) = f n ( x 1 , x 2 ,K, x n ) = 0
- 3.7 -
Chapitre 3
δf 1 δf1 δf 1
δx L L
δx jδx n
1
M ∆x 1 f1 ( x ) f 1 ( x)
M O M
0
L L L
δf δf i δf i
i L L . ∆x + f ( x ) = f i ( x)
0
δx1 δx j δx n i i
L L L
M M O M ∆x f ( x 0 ) f ( x)
n n n
δf n δf n δf n
L L
δx1 δx j δx n
où les dérivées partielles sont calculées au point x0 ; cela s’écrit, avantageusement, sous la forme
condensée (et conventionnalisée) ci-dessous :
J .∆x + F( x 0 ) = F( x )
t
On obtient donc,
x1 = x 0 − t J −x10 F( x 0 )
x n+ 1 = x n − t J −x1n F( x n )
Remarques :
• la méthode nécessite une inversion de matrice, il faut donc que la matrice jacobienne J soit non
singulière ;
• autre inconvénient, à chaque itération, toute la matrice J doit être recalculée, ce qui fait chaque fois n×n
dérivées, n fonctions et l’inverse d’une matrice (n×n) ;
• on peut encore appliquer ici un processus de convergence s’inspirant de Wegstein :
- 3.8 -
Chapitre 3
x n+1 = ~
~ x n ). (1 − q )
x n − t J −x1n F( ~
cependant, au début, il y avantage à choisir q grand et à le diminuer par la suite. En fait, loin de la
solution, il faut avancer à petits pas, tandis que près de la solution, on peut progresser plus rapidement.
Nous pouvons tenter de résoudre le système en trouvant les fonctions linéaires qui approximent nos
fonctions non-linéaires. Nous pourrons alors rechercher les zéros de ces fonctions linéaires et espérer qu’ils
sont proches des zéros du système non-linéaire.
x1 e1 = F( x1 )
x2 e2 = F( x2 )
M M
xn en = F( xn )
nous puissions écrire un modèle linéaire qui permet de reproduire ces données :
e* = Ax + b
et donc
e0 = Ax 0 + b
e1 = Ax1 + b
M
en = Axn + b
- 3.9 -
Chapitre 3
Pour résoudre ce système, nous avons (n+1)×n équations linéaires, et donc la solution peut être
trouvée.
∆e1 = e1 − e0 = A ( x1 − x0 ) = A ∆x1
M
∆e n = en − e n−1 = A ( x n − x n−1 ) = A ∆x n
ce qui nous permet d’obtenir le système :
∆E = A ∆X
Et donc
A = ∆E ∆X −1
nous donne A pour autant que la matrice ∆X aie un inverse. Puisque ∆X est entièrement sous notre
contrôle (nous choisissons les x ), nous pouvons garantir un inverse. Les valeurs pour b peuvent être
trouvée avec
b = en − Axn
Nous pouvons maintenant estimer la valeur suivante de x comme étant celle qui rend e* = 0 .
Cette étape induit la résolution d’un système d’équations linéaires :
e* = 0 = Ax n+ 1 + b
ce qui donne
( )
x n+ 1 = − A− 1b = −A −1 e n − Ax n = x n − A −1 e n
L’approche reprise ci-dessus implique qu’a chaque étape il nous faut recalculer la matrice A à
partir des données originales. Il est possible de développer des algorithmes qui modifient A d’une autre
manière.
Supposons que nous disposons d’une estimation de A , appelons-la A1 . Supposons que nous
avons évalué ∆e1 pour un ∆x1 déterminé. Nous aimerions obtenir une matrice A2 telle que
∆e1 = A2 ∆x1
A2 = A1 + u1 t v1
- 3.10 -
Chapitre 3
[
∆e1 = A1 + u1 t v1 ∆x1 ]
Nous pouvons choisir v 1 arbitrairement et obtenir une formule donnant u1 :
∆e 1 − A 1 ∆x1
u =
1
t
v 1 ∆x 1
Tant que v 1 n’est pas orthogonal à ∆x1 , nous avons un vecteur u1 bien déterminé et donc nous
pourrons obtenir une matrice A2 à partir de la matrice A1 .
Tentons maintenant d’obtenir un second point, ∆e 2 pour l’étape ∆x 2 où x 2 peut être par
( )
−1
exemple le résultat de : x 2 = x 1 − A 2 e 1 . On a alors ∆x 2 = x 2 − x 1 . On peut alors chercher à avoir :
[
∆e 2 = A 3 ∆x 2 = A 2 + u 2 t v 2 ∆x 2 ]
On peut aisément trouver u 2 et v 2 comme auparavant, mais maintenant nous voudrions également
que A 3 satisfasse notre premier point, c’est-à-dire :
[
∆e 1 = A 3 ∆x 1 = A 2 + u 2 t v 2 ∆x 1 ]
Si u 2 t v 2 ∆x 1 était égal au vecteur zéro, alors l’équation ci-dessus se réduirait à l’équation de
définition de A2 et serait donc vérifiée. Nous devons donc choisir v 2 orthogonal à ∆x1 . Une solution est
de choisir un vecteur v 2 égal au vecteur ∆x 2 orthogonalisé par rapport à ∆x1 . Dans ce cas, l’équation
pour obtenir v 2 est :
v 2 = ∆x 2 −
[ t
∆x1 ∆x 2 ∆x1 ]
∆x ∆x1
t 1
v2 ∆x 2
∆x1
Figure 3.8
Nous obtenons alors un autre point, ∆e 3 pour l’étape ∆x 3 et imposons encore que :
- 3.11 -
Chapitre 3
∆e 3 = A 4 ∆x 3
avec
∆e 1 = A 4 ∆x1
∆e 2 = A 4 ∆x 2
A i +1
=A i
+
(∆e
t i
v
i
− A i ∆x i )
v ∆x t i i
Nous allons maintenant développer l’algorithme de Broyden. Il existe une très grande similitude
entre ce dernier et la méthode de la sécante généralisée puisqu’une seule étape de l’algorithme les
distinguent. Cependant la méthode de Broyden est meilleure dans son utilisation du temps et de l’espace
mémoire de l’ordinateur.
Au lieu de sélectionner une nouvelle matrice de façon à ce que les étapes précédentes soient
satisfaites, l’algorithme de Broyden requiert que :
A i +1 z = A i z
pour l’ensemble des vecteurs z orthogonaux à ∆x i . L’avantage est que les différents ∆x i précédents ne
devront plus être stockés puisque toute l’information sera conservée dans la matrice A . Nous avons
comme précédemment :
∆e i = A i+1 ∆x i = A i + u i t v i ∆x i [ ]
Nous avons alors :
[A i
]
+ ui t v i z = A i z
pour tout vecteur z ≠ 0 orthogonal à ∆x i . Donc si nous choisissons v i = ∆x i , alors nous aurons
v z = t ∆x i z = 0 si et seulement si z ≠ 0 est orthogonal à ∆x i . Avec ce choix, nous aurons :
t i
∆e i − A i ∆x i
u =
i
∆xi ∆x i
t
et
A i +1
=A +
(∆e − A ∆x )
i
i i i
t
∆x i
t
∆x i ∆x i
- 3.12 -
Chapitre 3
L’avantage de la méthode de Broyden sur la méthode de la sécante généralisée est, comme dit
précédemment, qu’il n’est pas nécessaire de conserver les vecteurs ∆x i . Néanmoins le désavantage est
que la convergence est linéaire alors que la méthode de la sécante converge quadratiquement.
Dans les divers modèles mathématiques examinés précédemment, nous avons vu que certains
d’entre eux se présentaient sous la forme :
x k +1 = ψ ( x k )
où ψ est un opérateur et pas nécessairement une fonction vecteur analytique (ici nous prendrons le cas où
c’est un vecteur, donc ψ ).
Dans les calculs de flowsheet, cette situation se présente fréquemment (voir chapitre 1).
Contentons-nous ici d’en donner un exemple simplifié :
6 7
x k+1 xk DIV
2 3 S
MIX REACTEUR E
P
1
Figure 3.9
Au fur et à mesure qu’on obtient des valeurs pour x, le problème se pose de savoir comment on
peut améliorer la convergence, c’est-à-dire (tout comme dans la procédure de Wegstein), comment arriver
plus vite (ou tout simplement arriver) à la solution.
La méthode est celle de la corde généralisée, mais appliquée à la forme particulière de la fonction
vecteur à résoudre :
x − ψ ( x) = 0
où x et ψ sont respectivement un vecteur et une fonction vecteur. On peut s’attendre à devoir estimer un
Jacobien de cette fonction.
- 3.13 -
Chapitre 3
f ( x ) = x − ψ ( x) = 0
alors en appliquant la méthode de Newton, on a :
x k +1 = x k − { J [f( x ) ]}
t k
−1
f (xk )
ou
{ [ ]} [ x ]
−1
x k +1 = x k − E − t J ψ( x k ) k
− ψ(xk )
par conséquent, la recherche d’une approximation du Jacobien de ψ devient l’objectif. Ecrivons les
développements de Taylor de ces fonctions de récurrence, mais limités au premier terme :
k k
δψ δψ
ψ1( x) = ψ 1( x ) + 1 .( x1 − x1k ) + K + 1 .( x n − x kn )
k
δ x1 δx n
L
δψ j δψ j
k k
ψ j ( x) = ψ j ( x ) +
k
.( x1 − x1k ) + K + .( x n − x kn )
δ x1 δx n
L
k k
δψ n δψ
ψn (x) = ψn (x
k
) + .( x1 − x1k ) + K + n .( x n − x kn )
δ x1 δx n
où k désigne le nombre d’itérations,
j indique la composante,
n est la dimension du problème (nombre de variables).
ψ( x) = ψ ( x k ) + { J [ψ(x )]}∆x
t k k
Cependant, pour un système de n équations, on a n2 inconnues qui sont les dérivées de ψ par
rapport à x (pour tout x et pour tout ψ). Après une itération, on a donc n équations, après n itérations, on
obtient n2 équations et on peut donc obtenir l’expression du Jacobien.
Pour obtenir celui-ci, nous utiliserons deux matrices C et D pour stocker les informations données
par chaque itération.
- 3.14 -
Chapitre 3
ψ( x) − ψ ( x k ) = { J [ψ(x )]}∆x
t k k
ψ 1 ( x1 ) − ψ 1 ( x0 ) L ψ j ( x 1 ) − ψ j (x 0 ) L ψ n ( x 1 ) − ψ n ( x 0 )
M O M M
B = ψ 1 ( x ) − ψ 1 ( x0 )
k
L ψ j ( x k ) − ψ j (x 0 ) L ψ n ( x k ) − ψ n ( x 0 )
M M O M
ψ ( x n ) − ψ ( x 0 ) L ψ j (x ) − ψ j (x ) L ψ n (x ) − ψ n ( x )
n 0 n 0
1 1
D’un point de vue calcul numérique, pour obtenir la matrice Jacobienne transposée, on effectue n
itérations par substitution simple et on stocke l’information dans 2 matrices C et D :
x10 L x 0j L x0n
1
x1 L x1j L x1n
M O M M
C= k
x 1 L xkj L xkn
M M O M
n
x1 L x nj L xnn
ψ 1 ( x0 ) L ψ j ( x 0 ) L ψ n (x 0 )
ψ1( x ) L ψ j ( x1 ) L ψ n ( x1 )
1
M O M M
D=
ψ 1 ( x ) L ψ j ( x k ) L ψ n ( x k )
k
M M O M
ψ 1 (x n ) L ψ j (x n ) L ψ n ( xn )
Ces deux matrices ont chacune (n+1) lignes et n colonnes. Nous obtiendrons alors A et B en
soustrayant dans chaque matrice la première ligne à toutes les autres.
- 3.15 -
Chapitre 3
Cependant, le Jacobien ainsi calculé est celui au point x 0 , il est préférable de calculer celui-ci après
l’itération n. Pour cette raison, les premières informations obtenues seront stockées en commençant par la
dernière ligne (c’est comme si les matrices C et D étaient retournées par rapport à l’horizontal).
( )( )
On a donc J ψ = A−1 B au point x n , la (n+1)ème itération donne xn +1 , par x n+ 1 = ψ ( x n ) , on
{ ( )} [ x ]
−1
− ψ(xn )
t
x n+ 1 = x n − E− A −1 B
~ n
La méthode de Rubin est donc une méthode de Newton-Raphson qui a été modifiée pour
permettre l’estimation du Jacobien car dans le cas du flow-sheet, la fonction ψ( x) n’est pas connue
analytiquement.
Cette méthode s’appelle aussi méthode de la corde généralisée. En effet, le calcul du Jacobien à
l’aide des matrices A et B revient à estimer la pente de la corde entre deux points.
ψ j( xk ) − ψ j( x n )
= pj
xkj − x nj
Remarque :
Le but de la méthode de Runge-Kutta est d’obtenir une solution numérique approchée d’une
équation différentielle ordinaire non linéaire, ou d’un système d’équations différentielles ordinaires non
linéaires.
= y ′ = f [ x , y( x) ]
dy
dx
avec comme conditions initiales :
y( x 0 ) = y 0
x 0 , point initial.
- 3.16 -
Chapitre 3
y
n+1
y
n
y
0 n n+1 x
x x
Figure 3.10
y n = y( x 0 + n. h)
et si on développe en série de Taylor, nous obtenons :
y( x n+ 1 ) = y( x n + h)
h2 h3
= y( x ) + h. y ′( x ) +
n
. y ′′( x ) +
n n
. y ′′′( x n )+K centré au point x n (1)
2! 3!
y ′′′ =
dy ′′ d
dx
=
dx
(
fy . f + f x =
δ
δy
)
f y .f + f x . + (
δy δ
)
f .f + f x
δx δx y
( )
= f xx + 2. f . f xy + f 2 . f yy + f .( f . f + f )
y y x
où l’on a noté :
δf δ2f
fx =
, f xy = , K
δx δx. δy
dy δy
et en remarquant que dans ce cas, =
dx δx
On reporte les valeurs de y ′′ (et y ′′′ éventuellement) dans (1) et l’on obtient :
∆y n +1
=y n +1
− y = h. f +
n h2
. f + fy. f
2! x
( ) (1a)
On recherche alors une expression de y n+1 où n’interviennent que des estimations de la fonction f
en des points particuliers,
soit y n +1 = y n + N 0 . k 0 + N 1 . k 1 + N 2 . k 2 +K
- 3.17 -
Chapitre 3
k 0 = h. f ( x n , y n )
k 1 = h. f ( x n + α 1. h, y n + β10 . k 0 )
où
k 2 = h. f ( x n + α 2 . h, y n + β 20 . k 0 + β 21 . k 1 )
k 3 = h. f ( x n + α 3 . h, y n + β 30 . k 0 + β 31. k 1 + β 32 . k 2 )
(
k1 = h. f + α 1. h. f x + β10 . k 0 . f y )
d’où :
(
∆y n +1 = N0 . h. f + N1. h. f + α 1. h. f x + β10 . h. f . fy ) (2a)
• " " 2
h .f y . f → N1 .β12 = 1
2
On a donc trois relations pour quatre paramètres. Il existe donc une infinité de solutions que l’on
peut écrire sous la forme :
1
N0 = 1 −
2.α 1
1
N1 =
2. α1
β10 = α1
k 0 = h. f ( x n , yn )
k1 = h. f ( xn + h , y n + k 0 )
ce qui fait que :
.( k 0 + k 1 )
1
y n+ 1 = y n +
2
Au troisième degré, nous aurons 8 paramètres pour 6 relations, au quatrième degré, 13 paramètres
pour 10 relations,... La méthode que nous utiliserons est celle qui a été développée par Runge qui est une
méthode du 4ème degré. On a le tableau suivant :
N0 N1 N2 N3 α1 α2 α3 β 10 β 20 β 21 β 30 β 31 β 32
- 3.18 -
Chapitre 3
k 0 = h. f ( x n , y n )
k1 = h. f ( x n + h / 2, y n + k 0 / 2)
k 2 = h. f ( xn + h / 2, yn + k1 / 2 )
k 3 = h. f ( x n + h, y n + k2 )
et
.( k 0 + 2 . k 1 + 2 . k 2 + k 3 )
1
∆y n +1 =
6
Si l’on a plusieurs équations différentielles, le développement sera identique mais il s’appliquera aux
fonctions vecteurs.
Dans ce cas cependant, on aura intérêt à pondérer les équations afin que les variations de chacune
d’elles soient du même ordre de grandeur. Le système à résoudre sera alors :
dy1
α . f1( x ) =
dx
dy 2
β. f2 ( x) =
dx
dy
γ . f 3( x) = 3
dx
avec α, β, γ comme coefficients de pondération.
- 3.19 -
Chapitre 3
Nous allons maintenant, au moyen de quelques exemples numériques, illustrer l’utilisation de certains des
modèles que nous avons décrits dans les pages précédentes.
x=a+bx+cx2 a 1,4
b 0,0417 3,5
Substitution c 0,1583
iter x f(x) 3
1 0 1,4
1,4 1,4 2,5
2 1,4 1,7687
1,7687 1,7687 2
3 1,7687 1,969
1,969 1,969 1,5
4 1,969 2,0959
2,0959 2,0959
1
5 2,0959 2,1828
2,1828 2,1828
6 2,1828 2,2454 0,5
2,2454 2,2454
7 2,2454 2,2918 0
2,2918 2,2918 0 0,5 1 1,5 2 2,5 3 3,5
8 2,2918 2,3271
2,3271 2,3271
9 2,3271 2,3544 3,5
2,3544 2,3544
10 2,3544 2,3758 3
Wegstein 2,5
iter x f(x) psi q x amélioré
1 0 1,4 2
1,4 1,4
2 1,4 1,7687 0,2633 -0,357 1,9005
1,5
1,9005 1,9005
3 1,9005 2,051 0,5642 -1,295 2,246
2,246 2,246 1
4 2,246 2,2923 0,6982 -2,313 2,3994
2,3994 2,3994 0,5
5 2,3994 2,4115 0,7772 -3,488 2,4538
2,4538 2,4538 0
6 2,4538 2,4556 0,8101 -4,266 2,4632 0 0,5 1 1,5 2 2,5 3 3,5
2,4632 2,4632
- 3.20 -
Chapitre 3
Wegstein
iter x f(x) psi q x amélioré 2
1 0 3
3 3 1,5
2 3 0,9 -0,7 0,4118 1,7647
1,7647 1,7647
3 1,7647 1,3287 -0,3471 0,2576 1,441 1
1,441 1,441
4 1,441 1,542 -0,6588 0,3972 1,5019 0,5
1,5019 1,5019
5 1,5019 1,4987 -0,7114 0,4157 1,5
1,5 1,5 0
6 1,5 1,5 -0,6996 0,4116 1,5 0 0,5 1 1,5 2 2,5 3 3,5
1,5 1,5
- 3.21 -
Chapitre 3
Wegstein 3
iter x f(x) psi q x amélioré
2,5
1 1,5 2,425
2,425 2,425
2
2 2,425 1,2294 -1,293 0,5638 1,90349
1,9035 1,9035 1,5
3 1,9035 1,9245 -1,333 0,5713 1,91251
1,9125 1,9125 1
4 1,9125 1,913 -1,282 0,5617 1,91271
1,9127 1,9127 0,5
5 1,9127 1,9127 -1,283 0,5619 1,91271
1,9127 1,9127 0
6 1,9127 1,9127 -1,283 0,5619 1,91271 0 0,5 1 1,5 2 2,5 3 3,5
1,9127 1,9127
- 3.22 -
Chapitre 3
Rubin
x1=1.4 racine(1+x2)-0.4 x1
x2=1.5 racine(x1) -0.5 x2 +1.5
Iter x1 x2 f1 f2
1 4,0000 5,0000 1,8293 2,0000
2 1,8293 2,0000 1,6932 2,5288
3 1,6932 2,5288 1,9526 2,1874
ligne à modifier 2
- 3.23 -
Chapitre 3
f1=x1^2-x2-1
f2=x1-(x2-1)^2
Newton-Raphson
Iter x1 x2 f1 f2 J J-1
1 5,000 5,000 19,000 -11,000 10 -1 0,1013 -0,0127
1 -8 0,0127 -0,1266
- 3.24 -
Chapitre 3
25
20
15
10
F1
5
-5
-10
4,8
4,2
4,8
3,6
4,2
3,6
3
3
2,4
x2
2,4
1,8
1,8
x1
1,2
1,2
0,6
0,6
00
6,00
4,00
2,00
0,00
-2,00
-4,00
F2
-6,00
-8,00
-10,00
-12,00
-14,00
-16,00
4,8
4,8
4
4
3,2
3,2
2,4
x2
2,4
1,6
1,6
x1
0,8
0,8
00
- 3.25 -
Chapitre 4
CHAPITRE 4
OPTIMALISATION EN INGENIERIE DES PROCEDES
4.1 Introduction
Un modèle de simulation statique est un ensemble d’équations reliant les valeurs de toutes les
variables d’état d’un procédé. Le nombre d’équations Ne est inférieur au nombre de variables N v . La
différence N f = N v − N e est le nombre de degrés de liberté du modèle ; N f équations supplémentaires
(les spécifications) doivent être imposées avant de tenter la résolution du modèle.
4.1.1 Glossaire
La fonction objectif doit prendre en compte de manière quantitative toutes les caractéristiques du
procédé qui ont un impact sur la qualité de ce dernier. Des fonctions objectifs typiques peuvent impliquer le
niveau de production, les charges en matières premières et en énergie ou les autres de coûts de production
comme la main d’oeuvre, les catalyseurs, la dépréciation de l’équipement, etc.) Généralement, les différents
facteurs intervenant dans la fonction objectif sont convertis en valeur monétaire dans le but de comparer
plusieurs objectifs.
4.1.1.2 Variables
Les variables, dans un problème d’optimalisation, correspondent à tous les quantités physiques
indépendantes apparaissant dans les équations des modèles. Elles peuvent être soit continues (température,
pression, débits) ou discrètes (nombre de plateaux dans une colonne à distiller, vanne ouverte ou fermée,
équipement en marche ou à l’arrêt).
- 4.1 -
Chapitre 4
4.1.1.3 Contraintes
Les contraintes sont des relations qui limitent le domaine de variations des variables. Elles peuvent
être linéaires ou non linéaires.
Les contraintes d’égalité sont des équations reliant certaines variables entre elles : les équations du
modèles sont des contraintes d’égalité ; la composition des matières premières ou des variables externes
non contrôlables comme la pression atmosphérique sont d’autres exemples de contraintes d’égalité.
Les contraintes d’inégalité définissent des limites aux valeurs de certaines variables ou de certaines
fonctions de variables. Elles apparaissent à cause des caractéristiques des équipements (pression ou
température maximum de fonctionnement d’un appareil), des normes légales (émissions) ou des
spécifications commerciales (pureté d’un produit).
Quand on considère des procédés réels, le comportement purement linéaire est rare. Ceci n’écarte
pas l’utilisation d’approximations linéaires mais la plus grande prudence est requise pour l’interprétation des
résultats. Les problèmes linéaires (fonction objectif linéaire, contraintes d’égalité et d’inégalité linéaires,
limites inférieures et supérieures sur les variables) peuvent être résolues facilement avec les programmes
existants. Les problèmes de plus grande échelle avec plus de 105 variables peuvent l’être avec les meilleurs
algorithmes. Ces algorithmes sont basés sur des opérations sur les rangées et les colonnes d’une matrice de
coefficients d’équations et sont similaires aux algorithmes utilisés pour résoudre les systèmes d’équations
linéaires. La solution est atteinte en un nombre fini d’opérations quand le problème est bien conditionné
(absence de singularité).
Le cas des problèmes non linéaires est plus compliqué. On observe fréquemment la présence de
plusieurs solutions optimales (extrema locaux). La manière dont le problème est formulé (mise à l’échelle
des variables et des équations : “scaling”) et la qualité du point initial affectent l’efficacité de la solution.
[ ]
∀ x1 , x 2 ∈ R, ∀ θ ∈ [ 0,1] : f θ x1 + (1 − θ) x 2 ≥ θ f ( x 1 ) + (1 − θ ) f ( x 2 )
- 4.2 -
Chapitre 4
f(x) f(x)
x1 x2 x x1 x2 x
Malheureusement, cette définition n’est pas pratique pour tester la concavité d’un système.
L’analyse de la dérivée seconde de f(x) est plus appropriée pour les applications quotidiennes. La fonction
à plusieurs variables f(x) est convexe quand la matrice hessienne est définie positive.
∂ 2 f ( x)
H ( x) = ∇ f ( x) =
2
∂x i ∂x j
La matrice hessienne est définie positive quand pour tout x ≠ 0 : x T H x > 0 . Cette condition est
rencontrée quand toutes les valeurs propres de la matrice symétrique H sont strictement positives. Quand
une fonction est convexe, le minimum non contraint est un minimum global.
Plus il y a de variables et plus le problème est difficile. Des méthodes de recherche itérative sont
disponibles pour manipuler des problèmes englobant quelques centaines à quelques milliers de variables.
- 4.3 -
Chapitre 4
ramènent les contraintes violées à l’intérieur de leurs limites. Elles sont généralement plus efficaces en temps
de calcul… quand elles parviennent à une solution !
Les fonctions objectifs ou les contraintes peuvent comporter des discontinuités finies. Par exemple,
le coût d’un équipement d’échangeur de chaleur peut ne pas évoluer monotonément avec la pression, la
température ou la charge (quand celle-ci augmente, il peut être nécessaire de diviser un appareil en unités
parallèles ou d’adopter une technologie différente).
Les problèmes les plus simples n’impliquent pas de contraintes ou juste des limites inférieures et
supérieures sur les variables. Les contraintes d’égalité et d’inégalité impliquent des fonctions non linéaires
de variables, ce qui accroît grandement la complexité du problème. Une solution à trajectoire réalisable
peut être difficile à identifier (dans certains cas, elle peut même ne pas exister...).
De nombreux algorithmes ont été proposés pour résoudre les problèmes d’optimalisation. Ils se
regroupent en trois classes.
Celles-ci sont basées sur une recherche aléatoire autour du point courant dans le but d’estimer un
domaine ou une direction dans lesquels un progrès peut être espéré grâce aux essais précédents. Les
méthodes directes sont faciles à utiliser et sont robustes, mais généralement elles requièrent plus de temps
de calcul. Elles doivent être limitées à des petits problèmes.
4.1.3.2 Méthodes indirectes basées sur des critères d’existence d’un extremum
Elles sont basées sur des critères mathématiques d’existence d’un optimum. Elles tentent
d’identifier les groupes de variables qui collent de mieux en mieux à ces critères. Les méthodes indirectes
sont généralement plus efficaces que les méthodes directes mais elles sont plus complexes et impliquent
plus de mathématiques (par exemple, estimation ou calcul de dérivées).
4.1.3.3 Heuristiques
Les méthodes heuristiques sont basées sur les connaissances disponibles sur certaines classes de
problèmes d’optimalisation et essaient de tirer parti des motifs (“patterns”) dans les solutions optimales. Par
exemple, les algorithmes génétiques représentent les groupes de décisions comme des séquences de codes
d’une manière analogue à celle des gênes codant les êtres vivants. Les algorithmes génétiques appliquent
- 4.4 -
Chapitre 4
des règles de transformations pour simuler l’évolution de population de “gênes”. La reproduction donne
plus de chance de reproduire les schémas fructueux tandis que les mutations autorisent la création aléatoire
de nouveaux motifs. Les algorithmes génétiques sont spécialement appropriés pour travailler avec des
problèmes impliquant des structures (“patterns”) ou des fonctions qui ne sont pas différentiables.
• dans maints problèmes, l’élimination des contraintes par insertion dans une fonction objectif réduit la
dimension du problème à une variable ;
• les techniques pour les optimisations dans un espace multidimensionnel génère généralement une
direction de recherche pour laquelle une optimisation unidimensionnelle est réalisée.
• raffiner la recherche jusqu’à ce que l’optimum soit localisé avec la précision voulue.
Un exemple est donné à la figure suivante. L’optimum de la fonction f = 2000 + ( x − 100) est
2
encadré par cet algorithme : on part de x = 1 et on se déplace vers le minimum en doublant la taille du pas
à chaque essai.
- 4.5 -
Chapitre 4
40000
30000
20000
10000
0
0 50 100 150 200 250 300
Une fois que le minimum de la fonction objectif a été encadré entre xmin et xmax, nous pouvons
calculer deux nouvelles valeurs f1 = f ( x 1 ) et f 2 = f ( x 2 ) , de telle manière que :
En comparant f1 et f2 et en supposant que la fonction est convexe, nous pouvons rejeter une partie
de l’intervalle initial :
f(x) f(x)
f1>f2 f1<f2
Si f1 = f2, on rejette [xmin,x1] et [x2,xmax], on pose xmin = x1 et xmax = x2 pour l’itération suivante.
Si xmin, x1, x2 et xmax sont régulièrement espacés, la longueur de l’intervalle sera réduite d’un tiers à
chaque itération au prix de deux évaluations de fonction. Seule l’une d’elle est encore utilisable à l’itération
- 4.6 -
Chapitre 4
suivante. Si L0 est la taille originale de l’intervalle, elle devient Lk = (2/3)k L0 après k itérations (et 2k
évaluations de la fonction).
Une méthode de recherche plus efficace est obtenue en choisissant x1 et x2 dans la proportion
connue sous le nom de “section du nombre d’or” définie par :
xmax - x2 = x1 - xmin
x1 − x min x − x1 5 −1
= max = ≈ 0,618
x max − x 1 x max − x min 2
Avec cette méthode, le point à l’intérieur du nouvel intervalle peut être conservé à l’itération
suivante et un seul point doit être réévalué à chaque itération. La longueur de l’intervalle devient
L k = ( 0,618) . L 0 après k itérations (k évaluations de fonction).
k
−b
x∗ =
2c
1 ( x 2 − x 3 ) ⋅ f 1 + ( x 3 − x1 ) ⋅ f 2 + ( x 1 − x 2 ) ⋅ f 3
2 2 2 2 2 2
∗
x =
2 ( x 2 − x 3 ) ⋅ f1 + ( x 3 − x1 ) ⋅ f 2 + ( x1 − x 2 ) ⋅ f 3
La fonction objectif est évaluée en ce point et x* remplace x1 ou x3 en s’assurant que les points
restants entoure toujours l’optimum (la fonction objectif pour le point milieu doit être le plus bas à ce
moment).
Remarquons que la procédure ne doit pas être appliquée si le minimum n’a pas été entouré : la
fonction quadratique interpolant les trois points arbitraires peut dégénérer en une droite ou être concave
(dans ce cas, x* localise le maximum ...).
- 4.7 -
Chapitre 4
0
0 1 2 3 4 5
La plupart des problèmes pratiques requièrent l’optimisation d’un modèle à plusieurs variables. La
plupart des méthodes examinées pour les problèmes unidimensionnels peuvent être généralisées aux
problèmes plus complexes.
Pour un problème de programmation non linéaire et non contraint, les conditions nécessaires pour
que x* soit un minimum local sont :
En plus des conditions définies ci-dessus, la condition suffisante pour que x* soit un minimum local
est :
∇ 2 f ( x *) > 0 (c’est-à-dire que la matrice hessienne est définie positive).
Les conditions pour l’existence d’un maximum sont les mêmes, excepté le fait que la matrice
hessienne doit être définie négative.
Des points optima qui ne satisfont pas les conditions nécessaires et suffisante peuvent exister : par
exemple, pour une discontinuité ou lorsque la fonction est continue, mais que ses dérivées ne le sont pas.
- 4.8 -
Chapitre 4
Une simple méthode d’optimisation pour résoudre un problème à n dimensions est de choisir n
directions indépendantes de recherche. La fonction objectif est minimisée le long de chaque direction de
recherche de manière séquentielle en utilisant un algorithme de recherche unidirectionnel. Cette méthode est
inefficace à moins que les directions soient bien choisies (par exemple, parallèles aux crêtes de la fonction
objectif).
Le but de bien des recherches qui ont été effectuées était de générer efficacement une direction de
recherche. L’expérience a montré que les directions conjuguées sont plus efficaces que les directions
arbitraires. Un ensemble de directions linéairement indépendantes s1 ,K, s n sont conjuguées par rapport à
une matrice carrée définie positive Q si :
t
(s i ) Q ( s i ) = 0 pour 0 ≤ i < j ≤ n
Lorsque f(x) est une fonction quadratique, il peut être montré que l’optimum peut être localisé
après exactement n étapes de recherche unidirectionnelle à condition que les directions de recherche soient
conjuguées à la matrice hessienne constante et que la minimisation soit réalisée avec une précision extrême
à chaque étape. Des algorithmes ont été conçus pour générer et mettre à jour automatiquement un
ensemble de directions conjuguées de recherche (Powell 1965, Brent 1973).
Ces méthodes calculent la valeur de la fonction pour des points situés aux sommets d’une figure
géométrique régulière balayant l’espace des variables (un simplex). Les exemples sont le triangle pour 2
dimensions, le tétraèdre pour 3 dimensions... Le sommet correspondant à la valeur de la fonction objectif la
plus mauvaise est supprimé et remplacé par sa réflexion à travers le barycentre des autres sommets. Ainsi,
le simplex se déplace dans l’espace des variables jusqu’à ce qu’il contienne l’optimum.
Nelder et Mead ont modifié la méthode pour permettre au simplex de s’accroître ou de décroître
tout en se déplaçant dans le but de modifier la taille du pas de recherche [voir l’algorithme et son
implémentation dans Himmelblau (1972)].
- 4.9 -
Chapitre 4
Les méthodes indirectes nécessitent le calcul du gradient de la fonction objectif dans le but de
choisir une direction de recherche. Une bonne direction s doit conduire d’un point courant x0 à un point x1
où la fonction objectif se trouve réduite :
f ( x1 ) < f ( x 0 )
Une telle direction est une direction de descente caractérisée par : ∇ T f ( x) . s < 0
La plus simple est la méthode de la plus grande pente où la direction à l’itération k est prise comme
l’opposé du gradient local :
s k = −∇ f ( x k )
x k +1 = x k + λk s k = x k − λk ∇ f ( x k )
λk est un scalaire égal à la longueur du pas. Il peut être soit fixer à une valeur constante ou soit être
déterminé en utilisant une recherche unidirectionnelle. La méthode de la plus grande pente est ainsi basée
sur une approximation linéaire de la fonction objectif.
x*
Xk
La difficulté fondamentale avec la méthode de la plus grande pente est sa grande sensibilité à la
mise à l’échelle de f(x). La convergence peut être très lente et osciller autour de ce qui apparaîtrait comme
une direction efficace de recherche.
La méthode des gradients conjugués (Fletcher et Reeves, 1964) représente une nette amélioration
par rapport à la méthode précédente avec un accroissement faible des calculs nécessités. La méthode des
gradients conjugués combinent les informations sur le gradient local avec les gradients obtenus aux
itérations précédentes. Une recherche unidirectionnelle doit être accomplie avec précision le long de
chaque direction de recherche.
La première itération est similaire à celle de la direction de recherche de la plus grande pente. Les n
itérations suivantes sont basées sur le schéma :
x k + 2 = x k +1 + λk +1s k+ 1
- 4.10 -
Chapitre 4
∇ T f ( x k +1 ). ∇ f ( x k +1 )
s k +1 = −∇f ( x k +1 ) + s k
∇ T f ( x k ). ∇ f ( x k )
Après n itérations, la procédure est recommencée. On peut montrer que les directions successives
de recherche sont conjuguées quand la fonction objectif est quadratique.
Ces méthodes tirent parti de l’information disponible grâce aux dérivées secondes (la matrice
hessienne ou une approximation) pour améliorer la recherche en calculant à la fois une direction et une
longueur de pas.
La fonction objectif est approchée au point courant xk par une série de Taylor limitée au second
ordre.
1
f ( x) ≈ q( x) = f ( x k ) + ∇ T f ( x k ) ∆ x k + ( ∆x k ) T H ( x k ) ( ∆x k )
2
La méthode de Newton prédit à la fois une direction de recherche et une longueur pour le pas.
Quand la fonction objectif est quadratique, le minimum est localisé en un seul pas. Toutefois, pour une
fonction générale, la méthode de Newton ne fournit qu’un meilleur point et une recherche par itérations est
nécessaire; la méthode peut être raffinée en appliquant une recherche le long de la direction obtenue par la
formule de Newton et en évaluant numériquement la longueur du pas λk dans :
x k +1 − x k = ∆x k = − [ H( x k )] −1 ∇f ( x k )
x*
Xk
- 4.11 -
Chapitre 4
De plus, une précaution doit être prise lorsque la fonction objectif n’est pas convexe (ou lorsque la
matrice hessienne n’est pas définie positive) : le pas prédit peut ne pas correspondre à la direction de
descente ou la méthode peut aboutir à un point de selle. Plusieurs auteurs ont proposé de remplacer la
matrice hessienne dans l’algorithme de Newton par une matrice H( x) conditionnée pour rester définie
positive en additionnant une grande constante positive b à tous les éléments diagonaux de la matrice H(x) :
[
H = H( x ) + β I ]
On peut montrer que pour des valeurs élevées de β, le pas calculé correspond un petit pas dans la
direction de la plus grande pente alors que, pour une valeur très faible de β, il y correspond le pas de
Newton. Des règles heuristiques ont été proposées pour ajuster β : il est réduit quand une itération conduit
à une décroissance de la fonction objectif et il est augmenté dans le cas contraire.
trust region
Xk
x*
quadratic
approximation
(forced to be
positive definite)
- 4.12 -
Chapitre 4
espace vectoriel en un autre. Nous pouvons dés lors définir une famille de méthodes d’optimalisation
(quasi-Newton ou une métrique variable) où le pas à l’itération k est donné par :
x k +1 − x k = − λk [ M k ] −1 ∇f ( x k )
La matrice directionnelle [ M k ]
−1
représente une approximation convenable de l’inverse de la
matrice hessienne. Même la méthode de la plus grande pente obéit à ce schéma en posant M = I.
• mise à jour à chaque itération pour rendre compte des informations disponibles à propos de f(x) et de
son gradient ;
• ne requiert pas un calcul explicite des dérivées secondes de f(x) ;
• rester définie positive ;
• être symétrique ;
• converger vers la matrice hessienne réelle à l’optimum ;
• fournir de bonnes propriétés de convergence à l’algorithme d’optimisation.
Une manière d’estimer la matrice hessienne est de remarquer que, pour les fonctions quadratiques,
∇ f ( x k ) − ∇ f ( x 0 ) = H( x k − x 0 )
Si nous posons :
x k = x k+1 − x k et g k = ∇ f ( x k +1 ) − ∇ f ( x k )
Une propriété désirable pour la matrice M serait de satisfaire l’équation suivante à chaque
itération :
M k+1 x k = g k
Même en prenant en compte le fait que Mk+1 doive être symétrique, une infinité de techniques
peuvent être proposées pour calculer Mk+1 après l’itération k. Quelques algorithmes ont prouvé qu’ils
étaient supérieurs en maintenant M définie positive, symétrique et en obtenant de bonnes propriétés de
convergence. Mais des expériences numériques sont nécessaires pour identifier les meilleures techniques de
mise à jour. Celle proposée indépendamment par Broyden, Fletcher, Goldbarb et Shanno en 1970 est
probablement celle la plus couronnée de succès :
- 4.13 -
Chapitre 4
∆g k ( ∆g k ) T M k ∆x k ( ∆x k ) T H k
M k+1 − M k = −
( ∆g k ) T ∆x k ( ∆x k ) T H k ∆x k
La formule de mise à jour peut être développée pour obtenir directement l’inverse de la matrice
M:
k +1 −1 k −1
[ ∆x k - (M k ) -1 ∆g k ] ( ∆x k ) T + ∆x k [ ∆x k - (M k ) -1 ∆g k ]T
(M ) − (M ) =
( ∆g k ) T ∆x k
−
[∆x k
- (M k ) -1 ∆g k ] ∆g k ∆x k ( ∆x k )
T T
[(∆g ) ∆x ][(∆g ) ∆x ]
k T k k T k
Même si la plupart des problèmes chimiques d’ingénierie sont de nature non linéaires, il peut être
utile d’essayer de les linéariser pour pouvoir utiliser des codes d’optimisation robustes et puissants
disponibles pour la résolution de problèmes de programmation linéaire générale du type :
r
minimiser f ( x) = c x =
t
∑c x
i =1
i i avec x i ≥ 0 pour i = 1,K , r
et ∑a xi =1
ij i = bj j = 1,K , m
∑a x
i =1
ij i ≥ bj j = m + 1,K , p
Les contraintes d’inégalité sont converties en contraintes d’égalité en y additionnant des variables
de relaxation (“slack”) s j ≥ 0 de manière à ce que :
r
∑a x − s
i =1
ij i j = bj
- 4.14 -
Chapitre 4
G. Dantzig proposa en 1937 la méthode “Simplex”, un algorithme général pour manipuler les
problèmes de programmation linéaires de ce type. La procédure itérative est basée sur le fait que pour tout
problème linéaire impliquant r variables positives liées par un ensemble convexe de p contraintes,
l’optimum est nécessairement situé à l’intersection des r contraintes ou limites variables. La procédure de
résolution démarre à une telle intersection réalisable (une base) et avance à chaque itération d’un vertex à
un autre adjacent ; elle applique des critères pour quitter les contraintes et entrer dans la base, pendant
qu’elle améliore la fonction objectif et reste à une intersection réalisable des contraintes.
L’importance de la programmation linéaire ans la résolution des problèmes pratiques est due au fait
que les logiciels disponibles sont capables de traiter les problèmes de très grandes dimensions. Même si les
modèles linéaires sont seulement des approximations du monde réel et doivent être correctement bornés
pour éviter les extrapolations en dehors de leurs limites de validité, ils sont encore largement utilisés pour
des problèmes comme le contrôle des opérations sur sites larges, les attributions de ressources et le
mélange des produits (“product blending”).
Les lecteurs intéressés peuvent se référer aux ouvrages sur la programmation linéaire tels que Taha
(1971). Une courte introduction peut également être trouvée dans Edgar et Himmelblau (1988).
Un problème plus général, mais plus difficile peut être décrit de cette manière :
minimiser f(x) [
x = x 1 , x 2 , K, x n ] T
soumis à h j ( x) = 0 j = 1,K , m
g j ( x) ≥ 0 j = m + 1,K , p
Les contraintes d’inégalités peuvent toujours être transformées en contraintes d’égalité par
l’utilisation de variables de relaxation (slack) :
g j ( x) − s 2j = 0 j = m + 1,K , p
Une procédure attrayante serait l’utilisation de l’ensemble des contraintes d’égalité pour éliminer p
variables. Après cette substitution, on terminerait ainsi avec un problème non-contraint pour lequel des
méthodes existent.
Malheureusement, cette méthode, comme telle, ne peut être appliquée en pratique : le choix des
variables qui doivent être éliminées (c’est-à-dire, la sélection d’une base) n’est pas directe. L’ensemble des
équations de contrainte peut avoir plusieurs solutions ou même pire : pas de solution du tout pour certaines
valeurs des variables indépendantes restantes. C’est pourquoi, d’autres algorithmes de résolution ont été
proposés.
- 4.15 -
Chapitre 4
∑ λ h (x) + ∑ λ [g (x) − s
m
L( x, λ) = f ( x) + j j j j j
2
]
j =1 j = m +1
Cette fonction doit être minimisée relativement à x, λ et s (avec un total de n+p+(p-m) variables
indépendantes). La valeur optimum de la fonction lagrangienne est identique à la valeur optimum à celle de
la fonction objectif contrainte originale puisque toutes les équations de contraintes doivent être
identiquement nulles à la solution.
∂L( x ∗ )
=0
∂λ j
∂L( x ∗ )
= 2 λ j sj = 0
∂s j
Les conditions nécessaire et suffisante d’existence d’un optimum dans les problèmes généraux de
programmation non linéaire sont forts complexes et leurs démonstrations peuvent être lues dans les
ouvrages traitant de l’optimalisation (par exemple, Gill et al, 1981). Ils sont résumés dans Edgar et
Himmelblau (1972). Leur description sort du cadre de ce cours.
- 4.16 -
Chapitre 4
Etant donné la complexité et la grande variété de problèmes non linéaires, trouver le meilleur
algorithme d’optimisation est hautement improbable. Des expériences sont nécessaires pour évaluer la
valeur des codes disponibles. Plusieurs approches ont été adoptées dans les codes les plus efficaces
actuellement et sont présentées brièvement dans les sections suivantes [voir Lasdon (1983) pour une étude
plus approfondie].
Après l’introduction des variables de relaxation (“slack” variables) pour transformer toutes les
contraintes en égalités h(x), les algorithmes GRG (“generalized reduced gradient”) utilise les p contraintes
d’égalité pour résoudre p des variables xb (appartenant à l’ensemble de base) en fonction des n-p variables
indépendantes xnb (n'appartenant pas à la base).
Les contraintes peuvent être écrites comme suit et leur jacobien peut être partitionné :
h( x b , x nb ) = 0
∂h ∂h ∂h
= , = ( Bb , B nb )
∂x ∂x b ∂x nb
L’algorithme doit partir d’un point réalisable (“feasible”) et l’ensemble de base devrait être tel que
Bb soit non singulier dans le but de permettre le calcul des variables de base en fonction de l’ensemble
n’appartenant pas à la base. La fonction objectif peut ainsi être exprimée en fonction de xnb :
(
F( x nb ) = f x b ( x nb ), x nb )
et le problème original est transformé en un problème réduit, plus simple, non contraint :
La fonction transformée est appelée fonction objectif réduite (“reduced objective”) et son gradient,
le gradient réduit (“reduced gradient”). Il est calculé à chaque itération comme suit :
∂F ∂f
= − z Bnb
T
∂x nb ∂x nb
où le vecteur z est obtenu en résolvant :
∂f
Bb z =
T
∂x b
Les algorithmes GRG procèdent en résolvant une séquence de problèmes réduits. Les variables
n'appartenant pas à la base et qui ne sont pas à leur limites inférieure ou supérieure sont appelées
“superbasiques”. A chaque itération, le gradient réduit avec les variables n'appartenant pas à la base fixées
- 4.17 -
Chapitre 4
à une de leurs limites permet de vérifier si certaines de ces variables doivent être relaxées et rejoindre
l’ensemble des variables “superbasiques”. Les directions de recherche sont généralement obtenues en
appliquant la méthode du gradient conjugué ou une méthode à métrique variable, basées sur le gradient des
variables “superbasiques” Une minimisation unidimensionnelle est accomplie dans la direction de recherche,
et à chaque pas, les contraintes de liaisons sont utilisées pour recalculer les variables de base. Des
itérations par la méthode de Newton sont employées dans la plupart des cas pour résoudre l’ensemble des
équations dans le cas où il est non linéaire.
L’expérience montre que la stratégie peut être implémentée dans des algorithmes qui sont à la fois
fiables et efficaces. Puisque la méthode essaye toujours de vérifier les contraintes, tous les résultats
intermédiaires sont réalisables et peuvent fournir des informations utiles; cela même si l’optimisation échoue,
puisque l’on attend un progrès par rapport un point de départ de la valeur de la fonction objectif à chaque
itération importante.
Ces méthodes sont basées sur la linéarisation de la fonction objectif non linéaire et des fonctions de
contrainte autour du point courant de la base :
[ ]
f ( x) ≈ f ( x 0 ) + ∇ f ( x 0 ) ∆x
T
[ ]
h j ( x ) ≈ h j ( x 0 ) + ∇ h j ( x 0 ) ∆x
T
Les limites inférieure et supérieure sont imposées sur ∆x pour être certain que les erreurs
d’approximation sont limitées. Le problème de programmation linéaire résultant est alors résolu pour des
variables ∆x et le nouveau point x0+∆x est testé. Si une amélioration est observée, il est accepté et devient
le point de base pour la prochaine itération. Sinon, les limites sur ∆x sont rendues plus étroites et le
problème de programmation linéaire est résolu à nouveau. Les points intermédiaires ne doivent pas être
réalisables : les méthodes SLP (“successive linear programming”) peuvent prendre un chemin irréalisable
vers l’optimum même si le point de base initial de base est réalisable. L’avantage des méthodes SLP est la
disponibilité de codes efficaces pour les problèmes de programmation linéaire de grande échelle dans les
bibliothèques informatiques.
L’idée sous-jacente est semblable à celle des méthodes SLP, mais les méthodes SQP (“successive
quadratic programming”) résolvent une série de programmes quadratiques (c’est-à-dire, une fonction
objectif quadratique avec des contraintes linéaires). La fonction objectif quadratique est :
[ ∇ f ( x )]
0
T
∆x + ( ∆x) Q ∆x
T
- 4.18 -
Chapitre 4
L = f − λT g − µ T h
où λ et m sont les multiplicateurs de Lagrange
Une manière de résoudre le problème est d’appliquer la méthode de Newton à l’ensemble des
équations exprimant le critère d’existence d’un optimum (cf. les conditions de Kuhn-Tucker).
Quand la matrice Q est définie positive, le problème quadratique avec les contraintes linéaires est
convexe et l’optimum global peut être démontré. Toutefois, des problèmes peuvent apparaître quand les
contraintes (linéarisées) sont telles qu’aucune solution réalisable n’existe pour un sous-problème
quadratique. D’autres limitations surgissent de la difficulté de manipuler les matrices Q de grande taille. Le
développement de codes efficaces de programmation quadratique de grande échelle et de formules
efficaces de mise à jour qui conservent les propriétés creuses de l’estimation de la matrice hessienne font
aussi partie du développement actuel.
Certains problèmes d’optimisation sont naturellement formulés avec certaines variables prenant
seulement des valeurs discrètes. Par exemple, les variables continues peuvent représenter des débits,
températures, pressions, etc., alors que les variables entières des types d’équipement ou de décisions,
comme l’existence ou la disponibilité de certains équipements.
Une technique prometteuse repose sur des méthodes duales qui sont appliquées de manière
cyclique. Le problème est d’abord de simplifier (linéarisation) pour permettre l’utilisation de codes de
programmation linéaire mixte (nombres entiers et non-entiers) dans le but d’obtenir un ensemble d’essai de
variables entières. Ensuite, l’ensemble de variables continues est optimisé pour des valeurs fixées des
variables entières en utilisant un code NLP standard. Le processus est recommencé jusqu’à ce que plus
aucun progrès ne soit observé.
- 4.19 -
Chapitre 4
L’expérience est nécessaire pour évaluer la valeur des algorithmes disponibles et de formuler
efficacement par la bonne méthode les problèmes d’optimalisation. Un des problèmes majeurs dans
l’application des techniques d’optimisation dans les procédés chimiques d’ingénierie était d’adapter les
logiciels de calcul de procédés existants pour permettre non seulement les simulations mais également pour
étendre leur aptitude à optimaliser.
La plupart des logiciels de simulation sont basés sur des approches séquentielles modulaires. Le
procédé à modéliser est décomposé en briques standards de construction correspondant aux principaux
types d’opérations unitaires. Les librairies de simulation fournissent des sous-programmes pour modéliser
le comportement de ces unités en se basant sur les bilans de matière, d’énergie et sur quelques équations
empiriques efficaces. Les unités sont résolues de manière séquentielle en suivant le trajet de la matière et de
l’énergie dans le procédé : les sorties des unités sont calculées à partir des entrées et de paramètres. Les
recyclages et les boucles de contrôle sont résolus de manière itérative en commençant avec des valeurs
estimées pour les flux coupés. Des bloques mathématiques sont utilisés pour résoudre les équations de
coupure (avec possibilité de certaines équations supplémentaires) en faisant correspondre les valeurs
estimées avec les résultats obtenus en bouclant à travers la séquence d’unités. Puisque les dérivées sont
rarement disponibles, la promotion de la convergence est généralement basée sur la substitution ou sur des
améliorations basées sur la plus grande valeur propre ou sur l’extrapolation de Wegstein. Les méthodes
semblables à Newton essayant de construire de manière itérative les approximations de la matrice
jacobienne en utilisant une méthode de mise à jour (par exemple, Broyden) ont également été employées
avec succès.
Cette approche souffre deux inconvénients majeurs quand on essaya de résoudre des problèmes
d’optimisation : les dérivées ne sont pas toujours disponibles et la manipulation des contraintes n’est pas
toujours directe.
La première implémentation reposait sur des méthodes directes (Nelder-Mead par exemple). Le
module d’optimisation était traité comme une promotion de convergence ou un bloque de contrôle. Il fut
complété avec des modules d'échantillonnage (pour obtenir la valeur de la fonction objectif à partir des
résultats de simulation) et des modules de consigne (pour copier la valeur des variables optimisées dans les
paramètres de simulation).
Cette approche est une méthode à trajectoire réalisable : à chaque itération, un calcul complet du
flowsheet doit avoir convergé. Puisque les méthodes directes requièrent un grand nombre d’itérations, cette
- 4.20 -
Chapitre 4
Un moyen plus efficace de saisir les modèles de procédé avec les routines d’optimisation est une
approche modulaire simultanée. Quand cette technique est implémentée, une routine de programmation non
linéaire contrainte est appliquée pour simultanément optimiser la fonction objectif, vérifier les contraintes
d’égalités (spécifications) et d’inégalités, et faire converger toutes les variables de flux coupées (égalités
supplémentaires). Les algorithmes SQP ont montré leur succès dans cette application et l’optimalisation
peut généralement être effectuée avec un coût numérique acceptable (3 à 10 équivalents temps de
simulation).
La résolution basée sur des équations est une alternative à développer. Le modèle du procédé est
représenté par un large système d’équations impliquant des bilans de matière et d’énergie, des lois de
fonctionnement des courbes opératoires des équipements, des spécifications et des propriétés physiques si
possible. L’ensemble des équations est résolu comme un tout après un réarrangement possible. Les
dérivées des équations sont généralement disponibles. Appliquer des optimisations à grande échelle à ces
systèmes de modélisation ne requiert pas de modification importante de la structure de la routine : résoudre
un large ensemble d’équations ou les utiliser comme un ensemble de contraintes dans une optimalisation
nécessitant la même information.
L’approche par équation orientée conduit généralement à des calculs très efficaces, mais le
développement et l’utilisation de ces routines nécessitent plus d’expérience que l’approche modulaire. Pour
dire vrai, l'énoncé des équations du modèle et des contraintes peut être fort délicat : les équations doivent
être indépendantes. Une sélection impropre des variables indépendantes peut accroître la non-linéarité.
Certains phénomènes introduisent naturellement des discontinuités (changement de phase, transition d’un
écoulement laminaire à un écoulement turbulent, etc.), et peut même nécessiter de changer le nombre
d’équations. Certains modèles ne se transposent pas aisément en des systèmes d’équations algébriques
(par exemple, les équations différentielles dans les réacteurs où l’intégration numérique à pas variable peut
être nécessaire). Une mise à l’échelle des variables et des équations est très importante pour l’efficacité de
la solution : l’interaction de l’utilisateur pour suppléer l’application de facteurs d’échelle spécifiques est plus
efficace que les méthodes automatiques, mais requiert plus d’expérience. Des estimations initiales doivent
être données pour toutes les variables du modèle, les mauvais choix pouvant entraver la convergence.
Recourir à quelques séries d’élimination dans les équations du modèle peut être opportun pour
l’initialisation (ceci correspond en fait à la première itération qui utilise un calcul séquentiel modulaire).
L’approche modulaire simultanée semble prévaloir dans les logiciels commerciaux actuels puisqu’ils
sont plus faciles à programmer et à “débuguer” que les ensembles d’équations, et à comprendre pour
l’utilisateur. Mais les développements dans l’approche de la résolution d’équations va sûrement les rendre
plus efficaces et flexibles.
- 4.21 -
Chapitre 4
4.4.8 Applications
Le réacteur de synthèse d’ammoniac est exothermique, limité à l’équilibre est favorisé par des
pressions élevées. La réaction a lieu sur un catalyseur solide et sa vitesse est extrêmement dépendante de la
température. Dans une conception de réacteur, le catalyseur est séparé en quatre lits. L’alimentation froide
est également divisée en quatre parts. La première est préchauffée par échange thermique avec l’effluent du
réacteur et doit atteindre une température suffisamment élevée pour que la réaction ait lieu à une vitesse
significative dans le premier lit. La vitesse de réaction décroît suite à l’approche de l’équilibre (la
conversion à l’équilibre est diminuée suite à l’élévation de la température). L’effluent du premier lit est
mélangé avec une alimentation fraîche. Le mélange résultant est plus froid et contient moins d’ammoniac :
ces deux facteurs permettent à davantage de réaction d’avoir lieu dans le second lit jusqu’à ce que la
conversion d’équilibre soit presque atteinte. Un processus d’injections similaire est répété après les
deuxième et troisième lits. L’effluent du dernier étage de réaction quitte le réacteur et préchauffe
l’alimentation du premier étage.
- 4.22 -
Chapitre 4
Les variables continues qui apparaissent en exploitation optimale du modèle sont, pour une
composition d’alimentation donnée, le débit à l’entrée, la pression, la température, la température de
préchauffe et les fractions respectives d’alimentation admises à l’entrée de chacun des quatre lits
catalytiques. La fonction objectif est manifestement la production d’ammoniac et doit être maximisée.
Pour une conception optimale, le nombre de lits est une variable de décision importante. La
quantité de catalyseur à chaque étage est également une variable clé. Elle influera sur la taille du réacteur.
Le dimensionnement du réacteur (rapport de la longueur au diamètre et l’épaisseur des parois) sera
influencée par la quantité de catalyseur, la pression et la température. La géométrie du réacteur influencera
également la chute de pression et, ainsi, sur le coût de la recompression. L’économie de la boucle de
synthèse sera également affectée par le débit de purge et l’efficacité de la section de récupération de
l’ammoniac qui contrôlera la quantité d’inertes et d’ammoniac dans l’alimentation du réacteur. Mais ceci
implique un modélisation plus complète qui prend en compte beaucoup plus que le réacteur lui-même.
Pour élaborer une colonne, la décision fondamentale devra être le choix du nombre d’étages
d’équilibre de la colonne, de la pression de fonctionnement et du taux de reflux. Le premier facteur
affectera les investissements : après la sélection d’une technologie pour la configuration interne (colonne à
plateaux ou à garnissages), cela fixera la hauteur de la colonne. Le taux de reflux déterminera les charges
au bouilleur et au condenseur. Cela influera non seulement sur le besoin en utilitaires (vapeur, eau de
refroidissement), mais aussi sur les investissements à travers la dimension des équipements. Un plus grand
taux de reflux augmentera également le diamètre de la colonne. Un accroissement de la pression réduira le
diamètre de la colonne mais accroîtra la difficulté de la séparation. Toutes les décisions précédentes
influenceront la pureté du produit et sa récupération. Par conséquent, le problème peut être formulé comme
un problème contraint de programmation non-linéaire. Le nombre de plateaux est évidemment une variable
discrète, mais un modèle raccourci peut être résolu en utilisant un nombre d’étages non entier. L’étage
d’alimentation doit aussi être localisé de manière optimale et dépend de la composition de l’alimentation.
Pour les grandes installations, l’énergie est apportée aux différents procédés à travers un réseau
vapeur où des distributeurs offrent la vapeur à différents niveaux de pression. La vapeur est fournie par des
générateurs, mais est également fabriquée avec les calories excédentaires dans des bouilleurs à une vitesse
fixée par le niveau de production. La vapeur est utilisée pour chauffer, mais aussi dans des turbines où elle
produit du travail mécanique en se détendant. L’offre et la demande doivent être égalées à tous les niveaux
de pression soit en utilisant des turbines à contre-pression, soit en détendant de la vapeur haute pression
vers un niveau inférieur. Les moteurs électriques sont une alternative aux turbines à un coût unitaire de
l’énergie différent. Etant donné un niveau de production de tous les procédés, le travail mécanique et
l'apport des calories excédentaires peuvent être calculés. La fonction objectif à minimiser est le coût total
- 4.23 -
Chapitre 4
de l’électricité achetée et du fuel brûlé pour la génération de vapeur. Les contraintes sont le bilan vapeur à
chaque niveau de pression et les demandes en chaleur et énergie. Des équations de modélisation sont
disponibles pour les générateurs de vapeur, les vannes de laminage et les turbines. Les variables binaires de
décision sont affectées par chaque unité qui peut être mise en marche ou arrêtée : ainsi, l'optimaliseur aura à
décider quels sont les générateurs de vapeur à mettre en route et si le travail mécanique pour les différents
appareils sera apportée par un moteur électrique ou une turbine à vapeur.
Ce type de problème peut se résoudre par une méthode d’approximation à deux niveaux (“outer
approximation method”). Un ensemble initial de variables entières est choisi et le problème non-linéaire
résultant est résolu pour des valeurs constantes des variables entières sélectionnées (par exemple, en
utilisant la SQP). Les contraintes et la fonction objectif sont linéarisées autour de la solution sous-optimale
et la formulation résultante est résolue avec un algorithme MILP (par exemple, “branch & bounds”). Le
processus itératif est répété jusqu’à ce que l’ensemble des variables entières ne soit plus modifié par MILP
(“mixed-integer linear programming”). Si la fonction de coût linéarisée sous-estime le coût non-linéaire, la
solution NLP est utilisée comme un une limite supérieure dans la stratégie “branch & bounds” et tous les
solutions linéaires plus grandes peuvent être éliminées.
Références supplémentaires
M.J.D. Powell, « An efficient method for finding the minimum of a function of several variables
without calculating derivatives », Computer Journal 7 :155 (1964) ; 303 (1965).
R.P. Brent, « Algorithms for Minimization Without Derivatives », Prentice-Hall, Englewood Cliffs,
New Jersey, 1973.
- 4.24 -
Chapitre 4
P.E. Gill, W. Murray, M.H. Wright, « Practical Optimization », Academic Press, NY (1981).
L.S. Lasdon, A.D. Warren, « Large scale nonlinear programming », Computers and Chemical
Engineering, 7(5) 595-604 (1983).
(ce sujet est entièrement dévolu à l’optimalisation à grande échelle et contient plusieurs bonnes
revues)
- 4.25 -
Chapitre 5
CHAPITRE 5
RECONCILIATION DES DONNEES : VALIDATION
5.1 Introduction
Les données d’un procédé sont le fondement sur lequel s’appuient tout contrôle et toute évaluation
de ses performances. La fiabilité des données est très importante lorsque celles-ci sont destinées au
monitoring du procédé (contrôle, identification, ligne d’optimalisation). Donc, préalablement à la simulation,
à l’optimalisation ou au revamping d’une grande usine, nous avons besoin de données cohérentes pour
représenter le procédé et en identifier correctement les paramètres.
La VALIDATION ou réconciliation des données est une tâche très importante qui transforme
l’ensemble des données disponibles en un set cohérent définissant l’état du procédé. Récemment, pour
assurer le contrôle des procédés, on a installé beaucoup d’ordinateurs digitaux dans les raffineries et les
complexes chimiques. Ainsi, on dispose à présent d’un grand nombre de données, rassemblées et stockées
sur ordinateur, qui peuvent être validées systématiquement au moyen d’un programme ad hoc, qui accroît
leur précision et assure leur cohérence.
Les mesures d’un procédé ne sont jamais cohérentes. Les principales raisons sont reprises ci-
dessous :
• Il y a des perturbations dues à l’instabilité du procédé même si le système de contrôle est très efficace.
Certaines conditions (comme les conditions atmosphériques) ne peuvent être contrôlées.
• Les appareils de mesure ne sont pas toujours fiables. Il se peut que les biais instrumentaux ne soient pas
compensés de manière adéquate; les appareils de mesure peuvent mal fonctionner.
• Les lectures des mesures et les manipulations (analyses en laboratoires) peuvent introduire des erreurs.
• Le point expérimental peut être influencé par des éléments indésirables et la mesure ne correspond pas
à la variable attendue (mauvaise position d’un thermocouple, influence de la répartition du débit dans un
échangeur de chaleur, effet d’un condensât dans un flux de vapeur, saletés sur un appareil de mesure).
• Des accidents peuvent modifier les bilans attendus d’un procédé (pertes, éclatement d’un échangeur de
chaleur, pertes thermiques,...).
- 5.1 -
Chapitre 5
Définir l’état d’une installation industrielle nécessite de prendre beaucoup de mesures de variables
décrivant le système telles que la température, la pression, le débit, la composition, etc.
L’ingénieur sait très bien que, quand le nombre de mesures est inférieur à un seuil donné (que nous
appellerons nombre de spécifications), il n’est pas possible de définir l’état du système.
Au plus, l’ingénieur est-il alors capable de définir l’état d’un sous-système. Pour autant que ces
mesures soient choisies soigneusement et que leur nombre soit égal au nombre de spécifications, l’ingénieur
peut exploiter les équations de bilan matière et thermique pour calculer les autres variables du système.
Dans de telles circonstances, une erreur systématique de mesure, si minime soit-elle, peut biaiser,
parfois de manière considérable, les calculs des autres variables du système (c’est-à-dire y introduire de
grandes erreurs).
En conséquence, l’ingénieur est forcé de prendre des mesures supplémentaires pour augmenter le
niveau de confiance escompté pour le système.
Il notera alors qu’il n’est plus possible de satisfaire toutes les équations du système, et se reportera
à une technique personnelle d’analyse des mesures.
La méthode de réconciliation des données développée dans le logiciel BELSIM, aide à résoudre
ce problème considérable de manière univoque.
Pour valider les données, l’ingénieur doit définir, dans la Banque de Données du Procédé (BDP), le
procédé, les mesures et les estimations des écarts standard (erreurs) affectant chaque mesure. A cette fin, il
utilise le programme BIP (Belsim Interactive Program).
5.1.3 Illustration
Dans cet exemple, nous considérerons les variables de matière et thermiques; les équations prises
en compte seront respectivement les bilans de matière et thermique. Il n’est pas toujours nécessaire, ni
possible, d’envisager les deux simultanément : cela dépend des données disponibles et de leur précision.
Le mélange de deux flux contenant une substance pure est illustré à la figure 1. La température et la
pression des flux sont différentes. Le nombre de spécifications nécessaires pour définir explicitement l’état
du système est de 7.
- 5.2 -
Chapitre 5
T1 P1 D1
T3 P3 D3
T2 P2 D2
FIGURE 1
Variables :
température (T) 3
pression (P) 3
débit (D) 3
total 9
Equations :
bilan matière 1
bilan thermique 1
total 2
1er cas : 6 variables sont mesurées : P1, P2, P3, T1, T2, D3.
Dans ce cas, il n’est pas possible d’en savoir plus sur le système.
2ème cas : 6 variables sont mesurées : P1, P2, P3, T1, D2, D3.
Il est désormais possible de calculer le débit D1, en utilisant l’équation de bilan matière. Un sous-système
(D1) des variables non mesurées est calculable. Les températures T2 et T3 ne sont pas calculables.
3ème cas : 7 variables sont mesurées : P1, P2, P3, T1, T2, T3, D1.
A l’aide des équations de bilan matière et thermique, nous pouvons calculer les deux variables non
mesurées : D2 et D3. Le système est à présent complètement connu mais une erreur systématique dans la
mesure de la température T3 peut biaiser dans une large mesure la connaissance du système.
- 5.3 -
Chapitre 5
Tableau 1
T3 (K) D2 (kg/s) D3 (kg/s)
310 1 11
305 0.48 10.48
315 1.58 11.58
Une erreur systématique de 5 degrés sur la mesure de T3 nous donnera une très mauvaise
évaluation de D2.
Ce chapitre a pour but de nous fournir un aperçu, aussi clair que possible, des bases théoriques de
la validation. Il explique les techniques et le formalisme utilisés. Les variables utilisées sont explicitées, de
même que la notion d’équation de contrainte et d’équation de liaison. Vous apprendrez à analyser les
matrices ainsi que la méthode de résolution.
5.2.1 Définitions
Les variables d’état sont des variables impliquées dans l’écriture des équations associées aux unités
physiques du procédé. Les équations concernées sont principalement les équations de bilan de matière et
de chaleur.
Dans le logiciel BELSIM, les équations sont exprimées en fonction des variables d’état suivantes :
• P : la pression du mélange, si elle joue un rôle dans le bilan thermique et si elle est considérée comme
telle; très souvent, il n’est pas possible de valider les mesures de pression et celles-ci sont considérées
constantes.
• Uj (j=1,nombre de réactions) : degré d’avancement de la réaction j, si celle-ci intervient dans une unité
physique du système.
• FRA : la fraction d’arbre associée à un flux, pour autant que le flux ne contienne que la fraction d’un
seul arbre (dans la structure de données BELSIM, les débits molaires partiels associés à un flux matière
constituent un “arbre”) ; la variable FRA est effectivement utilisée lorsqu’un flux est divisé en plusieurs
autres de même composition : dans ce cas, les flux de sortie du diviseur auront le même arbre associé
que celui d’entrée, mais leur FRA sera inférieure à 1.
- 5.4 -
Chapitre 5
NOTE : La variable température est avantageusement remplacée par la variable enthalpie molaire
H lorsqu’on se trouve en présence d’un flux biphasique à une seule substance. Cette dernière définit
univoquement l’état thermodynamique d’un tel système.
Toutes les autres grandeurs (enthalpie, fraction molaire, fraction pondérale sur extrait sec, etc.)
peuvent toujours se déduire des variables d’état (pour autant que les méthodes thermodynamiques
décrivant le mélange soient définies).
L’état du système est connu une fois que les valeurs des variables d’état sont connues pour chaque
flux du système.
Tableau 2
Flux Variables Arbres Variables
F1 T,P A1 O2,N2
F2 T,P A2 CH4,N2
F3 T,P A3 O2,N2,CH4
F4.1 T,P A4 O2,N2,CH4,CO2,H2O
F4.2 T,P
F4.3 T,P,FRA
F4.4 T,P,FRA
F5.1 H,P A5 H2O
F5.2 H,P
Les éléments en question sont ceux mesurés dans l’usine. Chaque mesure est accompagnée d’une
estimation de l’écart standard de l’erreur de mesure, et est considéré comme une variable du système.
- 5.5 -
Chapitre 5
Certaines de ces variables sont déjà reprises comme variables d’état du système. Les autres,
appelées variables de liaison, sont reliées aux variables d’état par des équations spécifiques : les équations
de conversion ou équations de liaison. C’est par exemple le cas du débit molaire total DMOL qui est relié
aux débits molaires partiels par l’équation :
DMOL = ∑ C k
k
Pour des applications spécifiques, l’ingénieur peut décider que certains éléments observés soient
considérés comme constants dans le problème de validation. Dans ce cas, les variables concernées sont
éliminées du système.
Les équations de contrainte sont : les équations de bilan matière et d’énergie, les équations de
liaison, mais aussi des équations spéciales (équations d’équilibre liquide-vapeur, équations d’égalité de
pressions ou de températures, etc.).
Le mélangeur illustré à la figure 2 a deux flux d’entrée, dont les températures sont TF1 et TF2. Les
variables O2A1 et O2A2 sont les débits molaires partiels du premier flux d’entrée (arbre A1). Les variables
N2A2 et CH4 A2 représentent les débits molaires partiels du second flux d’entrée (arbre A2). Le premier
flux de sortie est caractérisé par la température TF3 et les débits molaires partiels O2A3, N2A3 et CH4 A3.
Les pressions sont considérées constantes.
L’équation de liaison suivante doit être écrite si la fraction molaire de la substance O2 a été mesurée
dans le flux de sortie.
- 5.6 -
Chapitre 5
Donc, les variables d’état du problème sont : TF1, TF2, TF3, O2A1, N2A1, N2A2, CH4 A2, O2A3,
N2A3, CH4 A3, tandis que FMO2A3 est une variable de liaison.
La technique de réconciliation se base sur l’hypothèse suivante. Toutes les mesures sont entachées
d’erreurs et les valeurs corrigées ou validées diffèrent des valeurs mesurées. D’une part, les valeurs
validées doivent vérifier les équations de contrainte, et, d’autre part, elles doivent minimiser la somme des
carrés des différences entre les valeurs validées et les valeurs mesurées.
Cela va sans dire que de pareilles différences sont pondérées par les écarts standard
correspondants.
D’un point de vue mathématique, ce problème est un problème de minimisation avec contraintes,
qui peut se définir de la manière suivante.
Soient :
P, la matrice de pondération qui permet de quantifier la précision relative des mesures MES. En pratique,
c’est une matrice diagonale, dont chaque élément est l’inverse de la variance si2 de la mesure i.
sous la contrainte : F( X , Y) = 0 .
∑
i
σi
2
i =1
Min ( Y − y) P ( Y − y) avec F( X, Y) = 0
T
X, Y
Min L avec L = ( Y − y ) P (Y − y) + 2 λ F( X, Y)
T
X, Y, λ
- 5.7 -
Chapitre 5
La résolution des équations d’Euler fournit la solution du problème. Les équations d’Euler
s’écrivent :
δL
=0 i=1,MES
δY i
δL
=0 i=1,NMES
δX i
δL
=0 i=1,NEQ
δλ i
Les matrices jacobiennes des variables mesurées et des variables non mesurées du système sont :
δF i δF i
Α ij = Βij =
δY j δX j
(Y − y) T
P + λT A = 0 MES équations
λT B = 0 NMES équations
F( X , Y) = 0 NEQ équations
Considérons la validation des mesures de débit autour du mélangeur de la figure 2. Les valeurs des
mesures et les écarts standard qui leur sont associés sont donnés dans le tableau 3.
Tableau 3
Variables Mesures Ecart. Std.
Y1 O2A1 1 0.01
Y2 N2A1 2 0.01
Y3 N2A2 1 0.01
Y4 CH4 A2 4 0.01
Y5 FMO2A3 0.2 0.01
X1 O2A3 - -
- 5.8 -
Chapitre 5
X2 N2A3 - -
X3 CH4 A3 - -
( Y1 − 1) 2 ( Y2 − 2 ) 2 ( Y3 − 3) 2 ( Y4 − 4) 2 ( Y5 − 0.2) 2
MIN 2 + 2 + 2 + 2 + 2
X, Y 0.01 0. 01 0.01 0.01 0 .01
sous les contraintes
Y1 − X1 = 0 Y2 + Y3 − X2 = 0 Y4 − X3 = 0 Y5∗ ( X1 + X2 + X3) − X1 = 0
1 0 0 0 0 − 1 0 0
0 1 1 0 0 0 −1 0
A= B=
0 0 0 1 0 0 0 − 1
0 0 0 0 ∑ X i
Y5 Y5 Y5
1. Le système accepte un nombre infini de solutions si le nombre de variables non mesurées est supérieur
au nombre d’équations de contrainte (NMES>NEQ). Dans ce cas particulier, la matrice B est
rectangulaire et horizontale (plus de colonnes que de lignes) et la matrice jacobienne est singulière,
puisque les lignes MES+1 à MES+NMES sont systématiquement linéairement dépendantes. Le
système n’est pas soluble.
2. Si le nombre de variables non mesurées est égal au nombre d’équations de contrainte (NMES=NEQ),
la solution du problème est obtenue en considérant les mesures comme des constantes et en calculant
les variables non mesurées à l’aide des équations de contrainte. On dira que le système est juste
calculable car il n’y a pas assez d’équations pour corriger les mesures. La matrice B est carrée.
On peut déjà affirmer qu’il faut, pour qu’il y ait une solution, que la matrice B ne soit pas
rectangulaire horizontale. En fait, il faut que la matrice jacobienne globale ne soit pas singulière, ce qui
arrive par exemple,
• si les mesures sont mal réparties et que certaines parties du procédé restent indéterminées,
• si les variables rendues constantes sont mal choisies et créent des surspécifications.
- 5.9 -
Chapitre 5
Dans la majorité des cas, une analyse soignée de la matrice d’incidence du système permet de
détecter ces problèmes préalablement à la résolution. (La matrice d’incidence d’un système d’équations est
la matrice dont les éléments "ij" valent 1 si la variable "j" intervient dans l’équation "i", 0 sinon).
La matrice d’occurrence des variables mesurées et non mesurées du mélangeur (figure 2, tableau
3) est :
1 0 0 0 0 1 0 0
0 1 1 0 0 0 1 0
AB =
0 0 0 1 0 0 0 1
0 0 0 0 1 1 1 1
ATTENTION : même si cette analyse est satisfaisante, le système d’équations, les points de départ et les
valeurs mesurées peuvent être tels que le programme ne converge pas vers une solution,
soit que celle-ci se trouve en dehors du domaine admissible (défini par les intervalles de
variation physique des variables : températures et débits positifs,...), soit que le système
devienne localement singulier en cours d’itérations. Ce type de problème est explicité
avec plus de détails au chapitre traitant des problèmes de convergence.
Il est évident que l’analyse d’un système d’équations au moyen de sa matrice d’incidence est
délicate. En effet, deux équations identiques apparaîtront comme deux équations faisant intervenir les même
variables et non comme une erreur.
Après génération des mesures et des équations de liaison, les variables sont réparties en trois
catégories :
- 5.10 -
Chapitre 5
Pour déterminer si les mesures permettent, au moins, de déterminer l’état du système, on analyse la
matrice d’incidence “équations-variables non mesurées” correspondant à la matrice B. La technique de
détection consiste à mettre en évidence, par permutation des lignes et des colonnes, un sous-système S2
contenant une sous-matrice B2' et une sous-matrice horizontale B2" (figure 3). La sous-matrice B2" est
horizontale. Il n’y a pas assez d’équations contenant les variables non mesurées relatives à la matrice B2".
Dès lors, les variables non mesurées relatives à B2" ne peuvent être déterminées (elles interviennent dans
trop peu d’équations).
Pour rendre le système calculable, une mesure supplémentaire doit être choisie parmi les variables
de la sous-matrice B2". Cette variable sera ajoutée à l’ensemble des variables mesurées et la colonne
correspondante de la sous-matrice B2" sera éliminée.
Lorsqu’une mesure est choisie, on procède de nouveau à la recherche d’un sous-système non
calculable.
S1
Equations
B1 0 sous-système validable
S1
(B1 vertical)
S2=B2'+B2''
B2'
S2
Considérons maintenant que nous avons effectué un nombre de mesures supplémentaires suffisant
pour que la résolution soit possible (redondance positive ou nulle).
Les variables non mesurées associées à la matrice B2" sont juste calculables puisqu’il y a juste
assez d’équations pour les calculer.
- 5.11 -
Chapitre 5
S1
sous-système validable
S1
B1 0
Equations
(B1 vertical)
S2=B2'+B2''
S2
B2' B2''
sous-sytème juste calculable
(B2'' matrice carrée)
Les variables mesurées restantes ne sont pas validables car leurs valeurs peuvent être fixées
arbitrairement à leurs valeurs mesurées : aucune équation ne permet de les corriger.
Variables Variables
mesurées non mesurées
S1
A1 0 B1 0
S1
sous-système validable
Equations
S2
A2' A2'' B2' B2'' sous-système juste calculable
S2
Exemple
La figure 6 présente un procédé contenant trois unités. Les trois substances sont séparées dans
l’unité A avant d’entrer dans un réacteur B; l’unité C sépare les produits de la réaction. Dans ce cas, nous
- 5.12 -
Chapitre 5
considérons qu’il n’y a pas assez de mesures autour des unités A et C. Nous ne générons alors que le bilan
thermique du réacteur B alors que les bilans de matière sont générés pour toutes les unités.
F5
3 substances : a, b, c
F3 REACTEUR F4
C
B
a+b -> c
F1 F6
A
F2
FIGURE 6
F2
F3
F4
F5
F6
F3
F4
U B
T
T
a
b
a
b
a
b
a
b
a
b
a
b
c
c
a X X X
Bilan Matière A b X X X
c X X X
a X X X
Bilan Matière B b X X X
c X X X
Bilan Thermique B X X X X X X X X
a X X X
Bilan Matière C b X X X
c X X X
FIGURE 7
- 5.13 -
Chapitre 5
F3
F4
F3
F4
F4
F4
F6
F5
F5
F1
F3
F4
F2
F5
F6
B
DMOL
DMOL
FMa
FMa
FMb
FMa
FMb
U
T
T
a
b
a
b
a
b
a
b
a
b
a
b
c
c
Fract.Mol F3 a X X X X
Fract.Mol F4 a X X X X
Fract.Mol F4 b X X X X
Déb.Mol.Tot. F4 X X X X
a X X X
Bilan Therm. B b X X X
c X X X
Bilan Therm. B X X X X X X X X
a X X X
Bilan Therm. A b X X X
c X X X
a X X
Bilan Therm. C b X X
c X X
Déb.Mol.Tot. F6 X X X X
Fract.Mol F5 a X X X X
Fract.Mol F5 b X X X X
FIGURE 8
La figure 8 montre très clairement les mesures non validables quand les variables mesurées sont :
• les débits molaires partiels des substances "a", "b" et "c" dans le flux F1.
Considérons maintenant que nous avons un système dont la résolution semble possible
(redondance positive ou nulle) et dans lequel nous avons introduit des constantes en associant à certaines
mesures un écart standard très petit.
Lors de la résolution, les variables correspondant à ces mesures seront ignorées et considérées
comme de réelles constantes. Toutefois, l’utilisateur a peut-être mal choisi ces constantes et surspécifié le
problème.
- 5.14 -
Chapitre 5
Variables mesurées et
non mesurées
S1
sous-système singulier
S1 AB1 0 (AB1 mat. verticale)
Equations
surspécifié
S2
AB2' AB2''
FIGURE 9
S1
S1
AB2' AB2''
- 5.15 -
Chapitre 5
Variables mesurées et
non-mesurées
S1
0
S1
B1 sous-système juste calculable
Equations
B2' B2''
S2
Les variables associées à cette matrice sont juste calculables puisqu’il y a juste assez d’équations
pour les calculer.
Si parmi ces variables figurent des variables mesurées, leurs valeurs calculées sont tout à fait
indépendantes des valeurs mesurées et ces mesures ne servent à rien. Nous dirons qu’elles génèrent des
redondances triviales.
Lorsqu’une partie du flow-sheet génère un sous-système juste calculable (sous-matrice carrée, voir
figure 4), des variables non mesurées, apparemment juste calculables, peuvent être indéterminables.
C’est le cas des boucles dans lesquelles aucune mesure n’est donnée mais pour lesquelles il est
nécessaire de mesurer un débit de matière ou thermique pour évaluer ce qui “tourne” dans la boucle. Une
boucle est identifiée lorsqu’une suite de flux non orientés forme une boucle. C’est le cas des recyclages
mais également lorsqu’un mélange est effectué sur des flux préalablement séparés.
Mathématiquement, la matrice carrée est numériquement singulière, ce qui ne peut se détecter par
l’analyse des matrices d’incidence. Cette singularité pourrait être mise en évidence en transformant
l’équation de bilan d’une des unités de la boucle en un bilan global autour de toutes les unités de la boucle.
Exemple
- 5.16 -
Chapitre 5
y1 x1 y2
A B
x2
x3
C y3
FIGURE 12
Matrices jacobiennes :
1 0 0 − 1 − 1 0
A = 0 − 1 0 B= 1 0 1
0 0 − 1 0 1 − 1
Matrices jacobiennes :
1 0 0 − 1 − 1 0
A = 0 − 1 0 B= 1 0 1
1 − 1 − 1 0 0 0
Une autre méthode serait de séparer la matrice carrée en blocs triangulaires et de vérifier, pour
chacun d’eux, que toutes les variables et les équations d’un bloc donné ne se rapportent pas un une
“boucle” : ce problème a été résolu pour un recyclage de matière. Toutefois, il faut remarquer que détecter
de telles singularités devient une tâche très difficile quand on est confronté à un recyclage de chaleur et de
matière.
- 5.17 -
Chapitre 5
F6' F6 F5' F5
R2 R1
A6 A5
a+b->c a+b->c
F2 F2'
F1 F4
A1 ECH1
F3 F3'
DIV MEL
3 SUBSTANCES a b c ECH2
10 FLUX 1 2 2' 3 3' 4 5 5' 6 6'
3 ARBRES 1 5 6 FIGURE 13
A6
R1
R2
F5'
F6'
F2'
F3'
F1
F1
F4
F5
F6
F2
F3
F2
F3
Fr
Fr
U
U
T
T
T
T
T
T
T
T
T
T
a
b
a
b
a
b
c
a X X X
R1 Bilan Matière b X X X
c X X X
R1 Bilan Therm. X X X X X X X X
a X X X
R2 Bilan Matière b X X X
c X X X
R2 Bilan Therm. X X X X X X X X
Bilan Therm. 1 X X
DIV Bilan Therm. 2 X X
Bilan Matière X X
ECH1 Bilan Therm. X X X X X X X X X X X
ECH2 Bilan Therm. X X X X X X X X X X X
MEL Bilan Therm. X X X X X X X X
FIGURE 14
Le système est résolu par une méthode DOGLEG. Ceci implique que la correction faite dans
l’évaluation courante de la solution est une combinaison de la correction de Newton et de la direction de la
plus grande pente pour la somme des carrés des résidus des systèmes d’équations.
- 5.18 -
Chapitre 5
Sans entrer dans les détails, on peut dire que le passage vers la direction de la plus grande pente
est d’autant plus important que la réduction de la somme des carrés des résidus dans la direction de
Newton est petite, quand celle-ci n’est pas totalement nulle.
Le calcul de la matrice jacobienne nécessaire pour déterminer ces directions est en partie
numérique et en partie analytique. Pour épargner du temps de calcul, cette matrice n’est pas calculée à
chaque itération mais selon une fréquence choisie. Son calcul dépend aussi de la vitesse à laquelle on
s’approche de la solution. La matrice est emmagasinée dans la mémoire à l’aide d’une technique de
stockage pour les matrices éparses. Seuls les éléments de la matrice différents de zéro sont stockés.
Nous vous rappelons ici que nous négligeons les dérivées secondes des contraintes par rapport aux
variables mesurées et aux variables non mesurées. Si le nouveau point proposé par la méthode se trouve à
l’extérieur du domaine de validité (températures et débits positifs), le programme ramène le point à
l’intérieur du domaine de validité en relaxant le pas proposé.
Selon le cas, toutes les variables sont sujettes à la relaxation, ou seulement celles qui violent les
contraintes physiques.
Dans presque tous les cas, la non-convergence est à attribuer à la mauvaise qualité des mesures, ou
à un manque de mesures qui n’a pas été détecté dans les analyses d’occurrence.
5.3.1 Introduction
min ( Y − y) P ( Y − y)
T
X, Y
sous la contrainte AY + BX + C = 0
Nous avons également vu que le problème avec contraintes peut être transformé en un problème
non contraint en utilisant la formulation de Lagrange :
min L = (Y − y) P (Y − y) + 2 λT ( AY + BX + C)
T
X, Y, λ
- 5.19 -
Chapitre 5
PY + AT λ = Py
BT λ =0
A Y + BX = −C
On peut donc définir une matrice carrée M et des vecteurs V et D tels que :
P 0 AT Y Py
M = 0 0 BT V = X D= 0
A B 0 λ − C
La matrice M −1 est la matrice de sensibilité du système. On remarque que les vecteurs X et Y sont
des combinaisons linéaires des valeurs mesurées y. La matrice de sensibilité nous permet donc d’évaluer de
quelle manière la valeur validée d’une variable dépend de l’ensemble des variables mesurées et de leurs
écarts standards.
En particulier :
m+ n + p
Yi = ∑ (M )
j =1
−1
ij
Dj
m p
= ∑ ( M −1 ) ij Pjj y j − ∑ ( M −1 ) i n + m+ k
Ck
j=1 k =1
m + n+ p
Xi = ∑ (M )
j=1
−1
n+ i j
Dj
m p
= ∑ ( M −1 ) n +i j P jj y j − ∑ ( M −1 ) n+ i n+ m + k
Ck
j =1 k =1
( )
m
var ( Z) = ∑ a 2j var X j
j =1
Nous obtenons donc l’estimation suivante pour la variance des variables mesurées validées :
- 5.20 -
Chapitre 5
{ } var(y )
m
var (Yi ) = ∑ ( M −1 ) ij Pjj
2
j
j=1
{ } ( )
m
var ( Xi ) = ∑ ( M −1 ) n+ i j Pjj
2
var y j
j =1
( )
var y j = 1 P
jj
et donc :
m (M ) −1 2
j =1 ( ) j
m (M ) −1 2
var ( X i ) = ∑
n +i j
j=1 ( )
var y j
5.3.3 Illustration
Considérons un flowsheet simplifié d’une boucle de synthèse d’ammoniac (figure 1). La pression
dans le réacteur passe de 280 à 270 bar et est compensée par le compresseur de recyclage. Nous
supposerons qu’il n’y a aucune autre perte de charge dans le système. Les mesures sont inscrites sur le
flowsheet.
PURGE
T=20°C T=20°C
RECYC
F=63 t/h F=3.2t/h
0.2% CH4
FV 4.8% Ar
7.2% NH3
64.4% H2
23.4% N2
Q3
T=540°C FLV
RCTOUT T=19°C
- 5.21 -
Chapitre 5
L’écart standard est fixé à 10% de valeurs mesurées pour les débits gazeux et à 5% pour les
produits liquides. On prend σ = 2°C pour les températures en-dessous de 100°C et 5°C au-dessus. Pour
la puissance au compresseur, on prend σ = 30kW. L’écart standard est pris égal à 0.1 %mol pour les
fractions molaires en-dessous de 2%, 1 %mol au-dessus de 20% et 0.3 %mol autrement. Le problème de
réconciliation comprend 28 mesures, 33 variables d’état non mesurées, 50 équations de contraintes et
donc 17 redondances. Dix variables sont considérées constantes (toutes les pressions). Les mesures
semblent être acceptables puisqu’aucune n’est corrigée par plus de deux fois l’écart standard lui
correspondant, comme montré dans les résultats (tableau 1).
La connaissance de la variance des variables validées nous permet de détecter les importances
respectives de chacune des mesures pour le problème d’identification de l’état d’un système. En particulier,
certaines mesures peuvent apparaître comme ayant peu d’influence sur le résultat, et peuvent donc être
enlevées de l’analyse. Inversement, d’autres mesures peuvent avoir un impact bien plus important sur les
variables validées et sur leurs variances : ces mesures devront être prises et manipulées avec une attention
toute particulière et il peut s’avérer utile de multiplier les capteurs qui leur correspondent.
Le module d’analyse de la sensibilité génère deux types de rapport. Le premier type contient pour
chaque mesure la valeur mesurée et la valeur validée, l’écart standard supposé (Abs.Acc.) et celui estimé a
- 5.22 -
Chapitre 5
posteriori (Rel.Acc.). Toutes les variables d’état dépendant d’une mesure donnée sont également listées,
avec leur facteur de pondération (Contrib.) indiquant la contribution de la variance de la mesure à la
variance de la valeur validée. Le second type de rapport contient la même information mais triée par
variable d’état : pour chaque variable, on obtient la liste des mesures les plus importantes utilisées pour
estimer sa valeur.
L’exemple suivant illustre le contenu du premier type de rapport. Les informations listées sont
relatives à la mesure de la fraction molaire d’ammoniac dans le flux FL, identifié par son “tag name”
FL1_MFNH3. Cette valeur a été corrigée de 97.800 %mol à 98.005 %mol. La déviation standard de
cette valeur validée est 0.121 %mol (0.12% de la valeur validée), significativement plus faible que la
déviation standard sur la mesure qui est de 1 %mol (1.02% de la valeur expérimentale). Cette mesure
contribue faiblement (presque négligemment) à l’estimation des valeurs validées de 2 autres variables d’état
mesurées. Etonnamment, la variance de la fraction molaire d’ammoniac dans le flux FL est presque
indépendante de la mesure correspondante (à peine 1.48% de contribution).
L’examen du rapport montre qu’aucune variable clé n’est significativement influencée par les
mesures de la composition du condensat, puisque la contribution de ces mesures à la variance des valeurs
validées est plus petite que 10%. On peut en conclure que ces mesures de composition n’apportent que
peu d’informations. Il est vraisemblable que le coût des mesures ne se justifie pas, en comparaison de la
petite vérification permise par la réconciliation des données. Pour vérifier ceci, on peut se référer au
deuxième type de rapport de sensibilité, qui montre comment chaque variable d’état a été validée. Le
rapport contient des entrées séparées pour chaque variable d’état, comme illustré ci-dessous pour la
fraction molaire partielle de l’azote dans le flux FL :
- 5.23 -
Chapitre 5
La première ligne de ce tableau identifie la variable (fraction molaire de N2 dans le flux FL), le “tag
name” de la mesure correspondante, la valeur validée et sa déviation standard, enfin les unités de la
variable. La valeur mesurée et sa déviation standard sont indiquées à la ligne suivante pour comparaison :
l’incertitude a été diminuée d’un facteur 3. Les lignes suivantes montrent quelles sont les mesures les plus
importantes utilisées pour estimer la variable sélectionnée.
Après la suppression de 5 mesures de composition pour le flux FL, la redondance est réduite à 12.
L’utilisation du programme de validation démontre cependant que les variables validées ne sont pas
influencée significativement par cette modification. Ceci peut également être illustré d’une autre manière :
quand la validation est réalisée après l’ajout de bruit aux mesures de composition du flux FL, l’état du
procédé n’est point affecté et les variables perturbées sont correctement ramenée à leurs valeurs
“normales” de validation. Cet exemple nous permet de conclure que les coûts d’échantillonnages et
d’analyse peuvent être réduits en supprimant toutes les mesures “inefficaces”, tout en se concentrant sur
l’amélioration des autres mesures.
Les variables non mesurées sont également dans le rapport de sensibilité, comme indiqué ci-
dessous pour l’avancement de réaction :
La première ligne de ce tableau identifie la variable (paramètre EXTENT dans l’unité REAC).
Puisque cette variable n’est pas directement mesurée, elle n’a pas de “tag name”. Il apparaît que la plus
importante mesure est le débit de condensat (qui est effectivement étroitement lié à la production
d’ammoniac dans le réacteur). Les températures d’entrée et de sortie, combinée au débit massique dans le
réacteur , contribuent à l’estimation de ce paramètre (ils sont liés à la conversion par le bilan énergétique).
Les autres variables jouent un rôle moins évident. On peut remarquer que la mesure du débit massique
- 5.24 -
Chapitre 5
d’entrée du réacteur est en fait une moyenne pondérée de deux valeurs différentes reliées aux flux F06 et
RCTIN.
L’analyse de sensibilité identifie correctement les variables qui sont liés par des contraintes, et sont
en fait des occurrences multiples de la même variable d’état, comme T pour les flux FL, FV, PURGE, et
RECYC. Ceci est parfaitement illustré dans tableau de résultats suivant, qui indique toutes les variables
influencée par la mesure de la température de la purge :
Un autre résultat important obtenu par l’analyse de sensibilité est d’indiquer exactement ce qui a été
gagné par la validation des données. Quand plusieurs variables sont liées par des contraintes à plusieurs
mesures, la redondance peut être exploitée pour diminuer leurs incertitudes : l’efficacité du processus de
validation est démontrée quand la déviation standard a posteriori est significativement inférieure à la
déviation expérimentale (un facteur 2 dans l’exemple précédent).
Quelques autres variables sont limitées par de fortes contraintes : leurs valeurs dépendent plus des
équations de contraintes que des valeurs directement mesurées, qui donc peuvent être éliminée sans perte
d’information. Un exemple typique est une mesure de température pour un flux dont la pression est fixée,
ne contenant qu’un seul composé et étant en équilibre liquide - vapeur : la valeur validée de la température
sera fixée seulement par la contrainte de l’équilibre liquide - vapeur, et ne sera pas influencée par la valeur
mesurée. Une observation similaire est faite à propos de fraction molaire d’ammoniac dans le condensat
FL : la déviation standard a été significativement diminuée par le processus de validation, mais la mesure
directe ne contribue que faiblement à la valeur validée (voir le premier exemple ci-dessus).
D’un autre côté, certaines variables ne sont que peu influencées par les mesures redondantes, et ne
peuvent donc être corrigées par la procédure de réconciliation des données. Leurs valeurs validées
dépendent principalement (ou même seulement) de leurs propre valeur mesurée : une double vérification
des mesures et une calibration minutieuse des capteurs est alors recommandée. La réconciliation des
données peut faire des merveilles, mais pas de miracle, et quelques mesures doivent absolument être
valable : l’analyse de sensibilité permet de les identifier. Un exemple est la puissance du compresseur, dont
l’incertitude n’est point diminuée par la validation lorsqu’on utilise le groupe de mesures dont on se sert
depuis le début :
- 5.25 -
Chapitre 5
Comme conclusion, on peut déduire des règles qui permettent d’identifier les bonnes mesures : elles
ne devront pas être trop modifiée par la réconciliation des données (petite erreur de mesure) mais leur
déviation standard associé devrait diminuer grâce au processus de validation (existence de redondance
améliorant la connaissance de la variable).
La connaissance de la déviation a posteriori pour toutes les variables du procédé nous permet de
calculer l’intervalle de confiance ou bien les marges de sécurité des résultats obtenus (l’écart à la limite
d’explosivité, à la courbe de refoulement du compresseur). Un ensemble bien choisi de mesures
accompagné d’une procédure de réconciliation des données permet de diminuer les marges de sécurité en
ce qui concerne les conditions critiques de fonctionnement, puisque l’outil de réconciliation des données
réduit l’incertitude sur l’état actuel du procédé.
5.3.4 Conclusions
Un des but de la validation est d’améliorer la connaissance des variables d’état du système. Fournir
des valeurs est bien sûr d’une grande aide mais évaluer leur fiabilité est tout aussi important, et c’est dans
cette optique que des déviations standards pour les variables validées et pour celles non mesurées ont été
développée.
Trois types de questions peuvent être analysées par l’utilisation de l’étude de la sensibilité :
• Premièrement, vérifier comment la précision d’un variable d’état donnée est influencée par le groupe de
mesures : Quelles sont les mesures qui contribuent significativement à la variance du résultat
validé pour un groupe de variables d’état ?
• Le second type de problème est de déterminer les variables d’état dont la précision est le plus influencé
par une mesure donnée : Quelles sont les variables d’état dont la variance est influencée
significativement par la précision d’une mesure donnée ?
• Le troisième type de problème est d’étudier comment la valeur d’une variable d’état est influencée par
la valeur et la déviation standard de l’ensemble des mesures.
A partir de ces informations, des décisions peuvent être prises soit en vue de l’analyse des mesures
d’un procédé existant, soit pendant le design d’un système de mesure. Les analyses inutiles peuvent être
éliminées, ou bien effectuées moins fréquemment, ce qui permet ainsi une diminution intéressante des coûts
opératoires. On peut également identifier les mesures clés pour lesquels une amélioration de la précision
permettrait un meilleur suivi du procédé. On peut également déterminer l’emplacement des capteurs
- 5.26 -
Chapitre 5
permettant une bonne estimation de toutes les variables clés du procédé au coût d’investissement le plus
bas.
- 5.27 -
Chapitre 6
CHAPITRE 6
APPLICATION DES METHODES D’OPTIMALISATION
AVEC CONTRAINTES AUX CALCULS D’EQUILIBRES
CHIMIQUES
Introduction
Le problème choisi comme application des méthodes d’optimalisation vues précédemment, est
celui de la minimalisation d’une fonction d’énergie libre. Nous en profiterons pour examiner brièvement de
quelle manière on peut tenir compte de contraintes.
Pour un gaz parfait, les potentiels chimiques sont calculés par les relations :
xi
µ i = µ 0i ( T, P) + RT. ln
x
µ 0i ( T, P) = µ *i ( T, P 0 ) + RT.ln
P
0
P
- 6.1 -
Chapitre 6
Les potentiels chimiques standard µ * sont disponibles dans les tables spécifiques ou peuvent être
obtenus en utilisant les banques de données : ils sont définis pour les gaz parfaits et sous une pression de
référence P 0 = 1 atm . Le problème est le suivant : calculer x à T et P fixés ?
Posons :
µ (T, P )
0
Ci = i
RT
qui sont des constantes calculables. On a alors :
n
xi
G ( x) = ∑ x i . µ 0i ( T, P) + RT.ln
i =1 x
ou sous la forme adimensionnelle :
G( x )
∑ x . (C + ln x i − ln x )
n
f ( x) = = i i
RT i =1
La composition d’équilibre est celle qui minimise f(x) en respectant la loi de conservation des
éléments et le fait que les nombres de moles ne peuvent pas être négatifs. En termes formels :
Les bilans des éléments sont écrits sous forme matricielle. Un exemple concret élucidera cette
notation compacte.
[
x = CH 4 H 2 CO H 2O CO 2
t
] et t
[ ]
b= C H O ,
A x − b = 0 représente les trois équations suivantes :
x1
1 0 1 0 1 x
2 b1
4 2 0 2 0 x3 = b2
0 0 1 1 2
x4 b 3
x 5
- 6.2 -
Chapitre 6
les termes de la matrice A sont les nombres d’atomes des éléments j dans les molécules i; s’il y a n
molécules et m atomes, la dimension de la matrice A est m × n, les termes du vecteur b sont les nombres
d’atomes-grammes des éléments présents dans les systèmes (au nombre de m qui est la longueur d’une
colonne de la matrice A ).
Les données des problèmes sont la température, la pression, les potentiels chimiques de référence,
les molécules présentes et les nombres d’atomes-grammes des éléments.
6.2 Solution
On applique la méthode de Lagrange en tenant compte des contraintes d’égalité. On tient compte
des contraintes d’inégalité au cours de calculs itératifs en rendant positives et négligeables les valeurs des
composantes de x qui seraient devenues négatives; ce point sera explicité ci-après.
(
L( x , λ ) = f ( x) + t λ A x − b )
La différentielle totale de cette fonction est nulle à l’optimum :
[ ]
dL = ∇ f ( x) + t λ A δx + t δλ A x − b = 0 ( )
quelles que soient les variations δx et δλ , donc les conditions d’équilibre sont :
∇ f ( x) + t λ A = 0
Ax− b = 0
la première expression représente un système de n équations à n+m variables, les équations étant non
linéaires; tandis qu’avec la seconde, on retrouve bien sûr les contraintes, qui constituent un système de m
équations linéaires à n variables. Au total, on a autant d’équations que d’inconnues et si elles sont
indépendantes, il existe au moins une solution.
D’un point de vue pratique, le gradient de la fonction f est calculable car on a établi son expression
ci-dessus. La composante i s’écrit :
δf µi
=
δx i RT
puisque :
G( x )
∑ x . (C + ln x i − ln x )
n
f ( x) = = i i
RT i =1
- 6.3 -
Chapitre 6
Un système d’équations non linéaires se résous par itérations successives et nécessite quelques (n3)
opérations par itération. On a donc intérêt à diminuer, si possible, le nombre total n des équations à
considérer simultanément.
Cette méthode est relativement bien connue des chimistes. Voyons rapidement comment on peut la
retrouver. Nous allons éliminer les j coefficients de Lagrange λ et faire apparaître les avancements ξ des r
"réactions" chimiques indépendantes (r = 1, R). Notons au passage qu’il peut paraître surprenant de faire
apparaître le terme “réactions” alors qu’on recherche le minimum d’une fonction d’état : le chemin suivi
(imposé par les réactions chimiques) ne doit pas avoir de répercussion sur le résultat. Les avancements de
réaction (exprimés dans les mêmes unités que les composantes de x ) sont définis par l’équation :
x = x0 +t V ξ − ξ0( )
normalement, les degrés d’avancement ξ 0 sont nuls, la matrice V contient comme éléments, les
coefficients stoechiométriques des réactions chimiques indépendantes au nombre de R. Cette relation
implique que :
δx = t V δξ
Explicitons à nouveau cette notation compacte par l’exemple du reforming du méthane : les
réactions d’équilibre communément écrites sont :
CH4 + H2O → CO + 3 H2
CO + H2O → CO2 + H2
qui peuvent aussi s’écrire :
- CH4 - H2O + CO + 3 H2 = 0
- CO - H2O + CO2 + H2 = 0
avec les bilans classiques :
[H ] = [H ]
2 2
0
+ 3.ξ 1 + ξ 2
[ CO] = [ CO] 0 + ξ1 − ξ 2
etc.
− 1 3 1 −1 0
V=
0 1 −1 −1 1
On pourrait écrire d’autres “réactions” et obtenir une autre matrice de coefficients. On démontre
que (bilans sur les éléments) :
- 6.4 -
Chapitre 6
V t A=t A V = 0
ici, 0 est une matrice m×R et R est le nombre de réactions indépendantes d’ailleurs égal à n (nombre de
molécules) - m (nombre d’atomes).
Utilisons les avancements de réactions pour éliminer les coefficients de Lagrange, pour ce faire,
remplaçons le vecteur δx par son expression en fonction des degrés d’avancement dans la différentielle de
L:
[ ]
dL= t δξ V ∇ f ( x ) + t A λ + t δλ A x − b = 0 ( )
le deuxième terme entre crochets tombe vu que V A = 0 . t
Ax− b = 0 m équations
La dimension du problème (N) a été réduite à n équations. Retrouvons maintenant les expressions
classiques des constantes d’équilibres, elles ne sont rien d’autre qu’une écriture différente des équations :
µ
V ∇ f ( x) = V
RT
qu’on explicite au maximum :
n
µi n
xi
∑ν ri . = ∑ υ ri . C i + ln
RT i=1 x
avec r = 1,R
i =1
ensuite,
ν ri νr i
n
x
n n
x
∑ ν ri . C i = −∑ ln i
x
= − ln ∏ i
x
i =1 i =1 i =1
ou encore
ν ri
x n
n
K = ∏ i
r
= exp − ∑ ν ri . C i
i =1 x i =1
i
cette relation peut aussi s’écrire en termes de pressions partielles, car on sait que, si on admet la loi de
Dalton :
xi
pi = .P
x
on obtient alors le Kp.
- 6.5 -
Chapitre 6
avancements de réactions. Telles qu’elles sont écrites ci-dessus, on doit leur adjoindre les contraintes de
bilan et résoudre ce système directement en x.
Nous venons de voir que les n+m équations à résoudre dans le cas général sont :
∇ f ( x) + t λ A = 0
Ax− b = 0
La méthode de WHITE est basée sur un examen approfondi de la structure de ces équations
linéarisées qui permet de réduire très significativement la dimension du système d’équations irréductible.
Les équations (non) linéaires peuvent être résolues par la méthode de Newton-Raphson.
Rappelons-en rapidement l’essentiel.
k +1
f (xk )
x =x − k
f ′( x k )
En appliquant cette dernière relation au système des n+m équations à résoudre, on doit donc
prendre le Jacobien, de sorte qu’on obtient (on prend la formule sans l’inversion) :
H k t
A x k +1 − x k ∇f ( x k ) + t A λ k
x =
A 0 λ k +1 − λ k A xk − b
n× n|n× m n ×1 n ×1
m× n| m× m m×1 m×1
la matrice H est le Hessien de la fonction f (en effet le Hessien de L se réduit à celui de f), pris au point de
la kème itération, il est issu du Jacobien du gradient de f. En ce qui concerne la fonction f que nous avons
développée, le terme ij (au point de la kème itération) s’écrit :
δij 1
H ij = k −
k
k avec i = 1,n et j = 1,n
xi x
où δ ij est la fonction de Kronecker et vaut 1 si i = j, zéro sinon (si i ≠ j).
- 6.6 -
Chapitre 6
j=1
∑
i =1 x i x
k
j =1
k +1 k
− ∑ a ji . λkj
RT j=1
qui se réduit à :
δ ij 1 k+1 µ ki
k − k . ( x i − x i ) + ∑ a ji . λ j = −
n m
∑
i =1 x i x
k
j =1
k+ 1
RT
Ceci rend facile l’élimination des n valeurs de x de la (k+1)ème itération à l’aide des n équations ci-
dessus, hors des m dernières équations qui ne contiennent plus alors que des termes en λ de l’itération
(k+1). Ces m dernières sont donc résolubles en fonction de λk . En réalité, WHITE, pour des facilités
d’écriture des équations, en ajoute une au système, à savoir :
n
x k +1 = ∑x k +1
i
i =1
Il suffit dès lors de résoudre simultanément (m+1) équations à (m+1) inconnues (les m λ et le x ci-
dessus) et ensuite de calculer les n valeurs de x k +1 à tour de rôle de manière explicite.
- 6.7 -
Chapitre 6
Le développement théorique n’a été donné que pour des gaz idéaux, mais on le généralise
facilement au cas des gaz réels, l’expression des potentiels chimiques se compliquant évidemment.
Dans chacune des méthodes exposées, on calcule les valeurs (k+1) des variables, à partir de leurs
valeurs obtenues à l’itération précédente (k). On connaît en fait le vecteur x k +1 − x k . Avant d’accepter les
valeurs x k +1 , on vérifie qu’elles sont toutes positives. Dans le cas contraire, on garde la direction du
vecteur, mais on en diminue la grandeur de telle manière que les x k +1 négatifs prennent une valeur
négligeable mais positive : il s’agit d’une méthode de relaxation classique. Ce test n’intervient d’ailleurs
qu’après avoir testé si le gradient de la fonction objectif le long du vecteur incrément n’a pas pris une valeur
positive excessive, ce qui indique que l’on doit ici aussi utiliser un facteur de relaxation.
En toute généralité, on a :
x k +1 = x k + δ s k
le vecteur s k est connu en direction, sens et grandeur.
δ est le facteur de relaxation qui est déterminé par une méthode heuristique. Notons encore qu’à
chaque itération, on opère une correction des erreurs d’arrondi; ceci se fait en ne modifiant pas les (n-m)
plus grandes valeurs des composantes de x k +1 et en corrigeant les m valeurs restantes de manière à
satisfaire correctement les contraintes de bilan.
Signalons enfin que le programme relatif à la méthode de White est accessible en mode
conversationnel, tant pour les gaz idéaux que pour les gaz réels (programme THERMO2).
on a le vecteur élément :
t
[H N O ]
Composants existant à 3500 K et 50 bar :
Ci-dessus, les éléments sont mis dans un ordre admis pour la suite.
Donc n = 10 et m = 3.
- 6.8 -
Chapitre 6
Par exemple :
H2 ↔ 2 H
O2 ↔ 2 O
O + H ↔ OH
N2 ↔ 2 N
OH + H ↔ H2O
NO ↔ N + O
2 NH ↔ H2 + N2
1 2 2 0 0 1 0 0 0 1
A = 0 0 0 1 2 1 1 0 0 0 (bilan atomique)
0 0 1 0 0 0 1 1 2 1
2 −1 0 0 0 0 0 0 00
0 0 0 0 0 0 0 2 −1 0
− 1 0 0 0 0 0 0 −1 0 1
(coefficients
V= 0 0 0 2 −1 0 0 0 0 0 stoechiométriques)
0 0 0 1 0 0 −1 1 0 0
− 1 0 1 0 0 0 0 0 0 − 1
1 1
0 2 0 0 2 −1 0 0 0 0
Les trois équations de bilan A x − b = 0 fournissent les valeurs des 3 dernières variables.
Réajustement de x (en relation avec la remarque du paragraphe précédent).
On choisit de toujours corriger les trois composantes de x dont les valeurs sont les plus grandes.
- 6.9 -
Chapitre 6
Dans ce paragraphe, nous allons examiner assez brièvement les caractéristiques et efficacités des
différentes méthodes itératives vues au chapitre 3, en travaillant sur le problème exposé précédemment. La
formule itérative est éventuellement ramenée à l’esprit.
Ax− b = 0
On mentionne des temps de calcul relatifs, puisque ce sont ceux obtenus pour un même ordinateur.
on calcule d’abord la direction du gradient qu’on prend comme direction d’investigation, puis sachant que,
x k +1 = x k + δ ∇ L( x k )
où L est donné par :
(
L( x , λ) = f ( x) + t λ A x − b )
et x comprend toutes les variables (les n x et les m λ), il reste à rechercher la distance δ à parcourir sur
cette direction (du gradient) pour arriver à un optimum.
6.3.2 Newton
x k +1 = x k + h k étape (b)
On calcule donc :
∇ f ( x )+ t A λ k
∇ L( x , λ ) =
A x − b
- 6.10 -
Chapitre 6
[ ]
H L( x , λ ) =
[ ]
H f ( x) t A
A 0
et il reste alors à calculer le gradient et le Hessien de la fonction f ( x)
Le problème à 13 variables a été résolu par cette méthode. Le temps de calcul est choisi comme
référence et nous lui affectons la valeur 100.
Cette méthode fait appel à un formalisme plus compliqué que nous ne reproduirons pas, cependant
elle offre l’avantage de pas nécessiter les dérivées secondes, puisqu’elle génère le Hessien au fur et à
mesure des itérations. Le programme de l’optimalisation est nettement plus lent et la résolution a été arrêtée
avant l’obtention d’une solution convergée.
6.3.4 Newton-Raphson
Résolution complète temps équivalent = 50 (10 équations). Le gain par rapport à la méthode de
Newton est dû principalement au temps d’inversion de la matrice. En effet, Newton exige l’inversion d’une
matrice de 13×13, tandis que Newton-Raphson exige l’inversion d’une matrice de 10×10, à chaque pas (il
en faut une dizaine dans le cas traité).
Cette méthode n’ayant pas encore été exposée, nous le faisons ici.
Un problème tel qu’il est posé au début du paragraphe 6.3 peut être résolu en effectuant
successivement une suite d’optimalisations sans contraintes. Fiacco et Mac Cornick proposent d’adopter
la fonction objectif suivante à minimaliser :
2
[ ]
F( x , r ) = f ( x ) + r . ∑ g k ( x) + . ∑ h l ( x)
K
1 L
k =1 r l=1
Ayant construit la fonction F, on adopte une valeur de r, et on admet qu’on est à l’itération k. On
optimalise F( x , r ) selon une des méthodes citées ci-dessus. Ensuite, on adopte une loi de décroissance
pour les valeurs de r k , par exemple :
rk
r k +1 = ;ρ > 1
ρ
et on répète pour chaque valeur de r, la procédure de minimalisation choisie, accordant ainsi une
importance croissante aux contraintes d’égalité.
- 6.11 -
Chapitre 6
La méthode permet ainsi de cheminer vers l’optimum en ne respectant les contraintes qu’en finale,
comme on peut le voir sur la figure 6.1 :
Contraintes d'égalités
0 x
Figure 6.1
Les points successifs sur la trajectoire d’optimalisation correspondent aux différentes valeurs de r.
( )
n
1 m t
F( x , r ) = f ( x) + r . ∑ k + k . ∑ a j x − b j
k k 1
k= 1 x r j=1
La minimalisation de cette fonction dans un problème à 13 variables par la méthode de Newton est
menée à bien en un temps équivalent de 330. On a ρ = 4 et r 0 = 0,1 ; le point de départ ayant été pris au
hasard.
6.3.6 "Complex"
Résolution complète en 220 (temps équivalent) (13 points). Cette méthode n’utilise pas de
formalisme mathématique, elle se contente des valeurs de la fonction à optimiser. Elle est robuste mais
relativement lente. Cependant, on fait remarquer que la méthode est particulièrement indiquée quand les
contraintes sont linéaires.
Cette méthode est tellement généralisée que nous ne traiterons pas de la méthode comme telle,
mais bien de la transformation du problème posé, de manière à le rendre apte à être résolu par cette
méthode. Des programmes spécialisés sont disponibles et d’un emploi facile.
- 6.12 -
Chapitre 6
La méthode s’applique uniquement à des problèmes linéaires. Elle exige donc la linéarisation des
contraintes et de la fonction objectif.
Linéariser une fonction y = f ( x ) consiste à rendre son expression linéaire en toutes les n variables
du vecteur x .
Admettons des points quelconques de l’hypersurface à (n+1) dimensions (y et x), ces points sont
repérés par l’indice supérieur k, on suppose qu’il y en a m. On approximera cette hypersurface par :
m
x i = ∑ n k . x ki pour i = 1,n
k =1
m
y = ∑ nk . yk (*)
k =1
∑n k
= 1 et n k > 0
k =1
les équations plus haut constituent un système de (n+2) équations à m inconnues, (n+1) au maximum des
variables n sont nulles et elles sont nécessairement consécutives. On en déduit que m > n + 1, il faut plus
d’inconnues que d’équations.
Exemple : Soit y = f ( x1 , x 2 ) . Cette surface à 3 dimensions est représentée sur la figure 6.2 :
x2
x1
Figure 6.2
La linéarisation de la fonction consiste à approximer la surface par des plans (ici par des triangles,
au minimum 3 variables n non nulles).
- 6.13 -
Chapitre 6
Approximons par exemple, au moyen de 4 triangles (6 points d’où 6 variables n) et nous obtenons
la triangulation de la figure ci-dessus (en traits pleins). Une approximation en 3 triangles (4 points d’où 4
variables n) donnerait la triangulation en pointillé.
[ ]
n n n
xi
f ( x) = ∑ x i . Ci + ln x i − ln x = ∑ C i . x i + ∑ x i .ln
i =1 i =1 i =1 x
xi
et on pose en premier lieu : β i = x i .ln
x
Linéarisons les βi suivant des α i (en effet β n’est pas du tout linéaire en fonction des variables x).
Ce problème étant à 2 dimensions, il exige au moins 2 variables n k ; prenons-en 3, ce qui correspond à
linéariser en 2 tronçons comme le montre la figure 6.3 . On a ainsi :
f ( x) = ∑ Ci . x i +∑ β i =∑ Ci . x i +∑ ( n 1i .β1i + n 2i . β 2i + n 3i .β 3i )
n n n n
i =1 i =1 i =1 i =1
le développement de la fonction β (il y en a i), est réalisé selon la formule correspondant à y (se référer aux
3
équations * page précédente), et on a en plus : α i = ∑ n ik . α ki ,
k =1
d’où :
3 3
x i = x . α i = x . ∑ n ki . α ik = ∑ n ki . x ik
k =1 k =1
∑n k
i = 1 pour tout i = 1,n
k =1
x ki
= n ki
x
f ( x) = ∑ Ci . x i + ∑ ∑ .β
i =1 i =1 k =1 x
3
x i = ∑ x ki .α ki
k =1
3
− x + ∑ x ki = 0 pour tout i
k =1
- 6.14 -
Chapitre 6
βi
α α α
i1 i2 i3
α
i
Figure 6.3
x i , x , x ik
Il comprend alors (4n+1) variables, c’est-à-dire n pour x i , 1 pour x, 3n pour x ki . De plus, il est
soumis aux contraintes :
Ax− b = 0 m équations de bilans atomiques
3
− x + ∑ x ki = 0 n équations
k =1
3
x i = ∑ x ki .α ki n équations
k =1
n
x − ∑ xi = 0 1 équation
i =1
Dans le cas du problème énoncé précédemment, cela fait 41 variables et 65 contraintes (41
contraintes d’inégalité et 24 contraintes d’égalité).
Le nombre élevé de variables explique que la résolution complète exige un temps équivalent de
500.
Il est probablement utile de souligner ici l’enseignement que l’on peut tirer des résultats exposés.
De nombreuses techniques ont été testées et on peut donc juger de leur efficacité relative. Un résultat
intéressant peut être obtenu grâce à une analyse poussée de la formulation du problème, mais le travail
- 6.15 -
Chapitre 6
investi ne devient rentable que si la méthode doit être employée un grand nombre de fois. Dans le cas
contraire, on peut se contenter d’une approche mathématique plus sommaire.
On peut également souligner l’efficacité des méthodes du second ordre, de même que l’avantage
obtenu par la réduction du rang de la matrice de travail, c’est-à-dire le nombre de variables considérées
simultanément dans les calculs.
- 6.16 -