Vous êtes sur la page 1sur 8

UNIVERSITE DE KINSHASA

FACULTE POLYTECHNIQUE
DEPARTEMENT DE GENIE CIVIL

T.P de Mathématiques Appliquées:


Résolution des équations différentielles avec Matlab.

Par
BAKAJIKA BAKAJIKA HERVE

Supervisé par: Assistant


Ir. BOSIKAWA MOSI

Année académique 2019-2020


QUESTION 1
La plupart de réactions chimiques s’accompagnent des effets de chauffage, et
cela signifie que lors de la modélisation d’un réacteur, il est important de
prendre en compte le transfert thermique. Dans l‘exemple suivant, il est question
de modéliser un réacteur au sein duquel le SO2 s’oxyde pour former le SO3.Après
quelques manipulations, on aboutit aux équations suivantes :

𝑑𝑋
= −50 𝑅′
{ 𝑑𝑧
𝑑𝑇
= 4,1 (𝑇 − 𝑇𝑠𝑢𝑟𝑟 ) + 1,02 ∗ 104 𝑅′
𝑑𝑧

Dans lesquelles la vitesse de réaction est :

1
𝑋 [1−0,167(1−𝑋)] ⁄2−2,2 (1−𝑋)/𝐾𝑒𝑞
R’=
[𝐾1+𝐾2(1−𝑋)]2

11,070
Et ln 𝐾1 = −14,96 +
𝑇
2331
Ln 𝐾2 = −1,331 +
𝑇
Ln 𝐾𝑒𝑞 = −11,02 + 11,570/𝑇

1-X est le taux de conversion et T la température en Kelvin. En considérant les


paramètres suivants : 𝑇𝑠𝑢𝑟𝑟 = 673,2 ; 𝑇(0) = 1 et X(0)=1, tracer le fraction
converted et T en fonction de la position axiale Z 𝜖 [0 ;1] .

 Les étapes de la résolution

Nous avons un système de deux équations différentielles ordinaires d’ordre 1

Nous commençons par le changement des variables :

X=y(1) dX/dz=dy(1)

T=y(2) dT/dz=dy(2)
a. Nous allons créer le premier fichier définissant l’équation, en allant dans la zone
current folder faire un clic droit pour entrer dans new folder, à partir du menu
de new folder nous entrons dans function.

Le nom de mon fichier est glody.m

function dy = christian(z,y)
dy = zeros(2,1);
Tsurr = 673.2;
k1 = exp(-14.96 + 11.070/y(2));
k2 = exp(-1.331 + 2331/y(2));
keq = exp(-11.02 + 11.570/y(2));

% y(1) = X et y(2) = T (T : température en Kelvin )


Num = y(1)*sqrt(1 -0.167*(1 - y(1))) - 2.2*(1 - y(1))/keq;
Den = (k1 + k2*(1 - y(1)))^2;

R = Num/Den;

% dy(1) = dX/dz et dy(2) = dT/dz


dy(1) = -50*R;
dy(2) = -4.1*(y(2) - Tsurr) + 1.02*(10^4)*R;
end

b. Nous allons créer un deuxième fichier pour la résolution du système, en allant


dans la zone current folder .faire un clic droit pour entrer dans new folder à
partir du menu, nous entrons dans script.

Le nom de mon fichier est execute_glody.m

[z,y] = ode45(@christian,[0,1],[1,673.2]); % avec 1 et 673.2 des valeurs


initiales nommées respectivement par X(0) et T(0) dans l'énoncé.

subplot(2,1,1) %le premier graphique occupe la première position


plot(z,1-y(:,1),'g') % 1-Y(1) =1- X (fraction converted) en fonction de
z(position axiale)

%la mise en page du premier graphique


title("Fraction Converted en fonction de la position axiale")
legend("Fraction Converted")
xlabel("position axiale Z")
ylabel("faction converted X")

subplot(2,1,2)%le deuxième graphique occupe la deuxième position


plot(z, y(:, 2),'r') % courbe de Y(2) = T (Température) en fonction de
z(position axiale)

%la mise en page du premier graphique


title("Température en fonction de la position axiale")
legend("Temperature")
xlabel("position axiale")
ylabel("Température")
l’éxécution du programme génère le graphe suivant :

Figure 1-graphe généré comme solution du système après exécution du programme


QUESTION 2
Il existe différentes techniques permettant de
contrôler les vibrations d’une structure afin
d’améliorer le confort de ses utilisateurs voire de
préserver son intégrité. Les plus rependues sont : la
dissipation passive qui consiste à employer les
matériaux viscoélastiques et les techniques des
absorber dynamiques linéaires qui consiste à traiter
une résonance précise d’une structure en l’accordant
sur celle de l’absorbeur.

Depuis une quinzaine d’années, les mécaniciens


spécialistes de la dynamique non-linéaire ont établi
que l’utilisation d’un absorbeur dynamique purement,
composé d’une masse et d’un ressort à raideur non-
linéaire conduit au phénomène de pompage énergétique
(transfert irréversible d’énergie vibratoire de la
structure primaire vers l’absorbeur non-linéaire).

Dans cet exercice, il vous est demande de résoudre


le système d’équations différentielles ordinaires ci-
dessous afin de mettre en évidence ce phénomène de
pompage énergétique.

𝑥̈ + 𝜆1 𝑥̇ + 𝑤12 𝑥 + 𝜖 (𝑥 − 𝑦) = 0
{ 𝑦̈ + 𝜆2 𝑦̇ + 𝛼 𝑦 3 + 𝜖 (𝑦 − 𝑥 ) = 0
𝑥̇ (0) = 1 ; 𝑥 (0) = 0 ; 𝑦̇ (0) = 0 ; 𝑦(0) = 0
𝜖 = 0,05 ; 𝜔1 = 1 ; 𝛼 = 36 ; 𝜆1 = 0,01 𝑒𝑡 𝜆2 = 0,01
 Les étapes de la résolution

Sur papier

Nous avons un système de ordinaires d’ordre 2deux équations différentielles

Le système à résoudre est :

𝑥 ′′ + 𝑙1𝑥 ′ + 𝑤12 𝑥 + 𝑒(𝑥 − 𝑦) = 0


{ 𝑦 ′′ + 𝑙2𝑦 ′ + 𝑎𝑦 3 + 𝑒(𝑦 − 𝑥) = 0
𝑥 ′ (0) = 1; 𝑥 (0) = 0; 𝑦 ′ (0) = 0; 𝑦(0) = 0

Opérons un changement de variables sur les deux équations :

𝑥 = 𝑦(1) , 𝑥 ′ = 𝑦(2) 𝑦 = 𝑦(3) → 𝑦 ′ = 𝑦(3)′


{ Et {
𝑦(2) = 𝑦′(1) → 𝑦(2)′ = 𝑥 ′ ′ 𝑦(4) = 𝑦(3)′ → 𝑦(4)′ = 𝑦 ′′

Le système devient :
𝑦′(1) = 𝑦(2)

𝑦(2) = −𝑙1. 𝑦(2) − 𝑤 2 . 𝑦(1) − 𝑒. (𝑦(1) − 𝑦(3))
𝑦(3)′ = 𝑦(4)
𝑦(4)′ = −𝑙2. 𝑦(4) − 𝑎𝑦(3)3 − 𝑒(𝑦(3) − 𝑦(1))
{

Dans Matlab

a. Nous allons créer le premier fichier définissant l’équation, en allant dans la zone
current folder faire un clic droit pour entrer dans new folder, à partir du menu
de new folder nous entrons dans function. Le nom de mon fichier est energie.m

function dy = energie(t, y)

dy=zéros(4,1);

%Déclarations des constantes

e = 0.05;
w1 = 1;
a = 36;
l1 =0.01;
l2 = 0.01;
%les équations

dy(1) = y(2);
dy(2) = -(l1 * y(2)) - ((w1^2)*y(1)) - e*(y(1)-y(3));
dy(3) = y(4);
dy(4) = -(l2*y(4))- (a*(y(3)^3)) - (e * (y(3) - y(1)));
end
b. Nous allons créer un deuxième fichier pour la résolution du système, en allant
dans la zone current folder .faire un clic droit pour entrer dans new folder à
partir du menu, nous entrons dans script.

% ********************* RESOLUTION DE L'EDO *******************

[t, y] = ode45(@energie,[0,500],[0, 1, 0, 0]);

% ********** Graphique de la Position suivant X *****************


plot (t, y(:,1), 'r')
title ("Position suivant X en fonction du temps")
legend("Position suivant Axe des X")
xlabel ("t")
ylabel ("X")

% ********** Graphique de la Position suivant Y *****************


figure
plot(t, y(:,3), 'black')
title("Position suivant l'axe des Y en fonction du temps")
legend("Position suivant l'axe des Y")
xlabel("t")
ylabel("Y")

% ********* Deuxième graphique **********


figure
plot(t, y(:,1), 'r')
hold on
plot(t, y(:,3), 'black')

title ("Phenomène de pompage après impulsion")


legend ('X','Y')
xlabel("t")
Le graphe obtenu après exécution du précédent code,en appuyant sur ‘’RUN’’ est le suivant :