Vous êtes sur la page 1sur 2

MNA//M1ELM/Génie Electrique

TP1 : Méthode des différences finies (MDF)


(Résolution de l’équation de la chaleur)

Rappel

Dans le cas bidimensionnel (2D) stationnaire, l’équation aux dérivées partielles (EDP) de la chaleur s’écrit:

( , ) ( , )
+ =0 (Dite aussi équation de Laplace)
T(x,y) est la température au point (x,y).

Application

On considère une plaque en Aluminium de dimensions :

lx= 1,2m ; ly= 1m.

lx
A B

Aluminium
ly

lx/3 M
y ly/4
D x C

Avec les conditions aux limites suivantes :


A-B = 0 °C, B-C = 30 °C, C-D = 30 °C, D-A= 150 °C.

Travail demandé

On cherche à déterminer la distribution de la chaleur (T) dans la plaque Aluminium :

1. Résoudre le problème correspondant par la méthode des différences finies (MDF), avec nx=6 et ny=4.
2. Déterminer la température au point M.
3. Tracer la courbe T(x,y) .
4. Augmenter la densité du maillage (nx=10, ny=8) et refaire les étages de 1, 2 et 3.
5. Utiliser la boucle For avec iter=10, et refaire les étages de 1, 2 et 3.
6. Utiliser la boucle For avec iter=100, et refaire les étages de 1, 2 et 3.
7. Utiliser la boucle For avec iter=1000, et refaire les étages de 1, 2 et 3.
8. Conclure.

A. Cheriet
Résolution de l’équation de Laplace 2D par la MDF
(Programme Matlab)

clear all
clc
% données
x(1)=0; xf=2.5e-2; nx=5;
y(1)=0; yf=1e-2; ny=4;
% calcul des pas
dx=(xf-x(1))/nx;
dy=(yf-y(1))/ny;
% calcul des constantes
cst=(2/dx^2)+(2/dy^2); Ici, l’inconnue est ‘u’
k_x=1/(dx.^2*cst);
k_y=1/(dy.^2*cst);
% initialisations
u(nx+1,ny+1)=0;
u_old(nx+1,ny+1)=0;
err=1;
% conditions aux limites
u(nx+1,:)=100;
% calcul de u (itérations)
iter=0
while err > 1e-6
for i=2:nx
for j=2:ny
u(i,j)=k_x*u(i+1,j)+k_x*u(i-1,j)+k_y*u(i,j+1)+k_y*u(i,j-1);
end
end
err=abs(norm(u)-norm(u_old))/norm(u);
u_old=u;
iter=iter+1 ;
end
% tracer la solution u
for i=1:nx
x(i+1)=x(1)+i*dx;
end
for j=1:ny
y(j+1)=y(1)+j*dy;
end
mesh(y,x,u)

Ou avec la boucle For

% calcul de u (itérations)
For n=1:iter
for i=2:nx
for j=2:ny
u(i,j)=k_x*u(i+1,j)+k_x*u(i-1,j)+k_y*u(i,j+1)+k_y*u(i,j-1);
end
end
end

Vous aimerez peut-être aussi