0% ont trouvé ce document utile (0 vote)
60 vues7 pages

Simulation Temporelle de Diffusion Thermique

Ce document présente plusieurs méthodes pour résoudre numériquement l'équation de la chaleur en une dimension. Il décrit les schémas aux différences finies explicites et implicites pour la discrétisation spatiale et temporelle de l'équation aux dérivées partielles.

Transféré par

ndn Ngondza
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues7 pages

Simulation Temporelle de Diffusion Thermique

Ce document présente plusieurs méthodes pour résoudre numériquement l'équation de la chaleur en une dimension. Il décrit les schémas aux différences finies explicites et implicites pour la discrétisation spatiale et temporelle de l'équation aux dérivées partielles.

Transféré par

ndn Ngondza
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

% Définition des paramètres

rho = 10;
k = 10;
cap = 10^6;
a = k / (rho * cap);
tpb = 0;
L = 0.02;
tf = 120; % instant final
n = 10; % nombre de volumes de contrôle (VC)
m = 120;
dt = tf / m; % pas de temps
dx = L / n; % pas d'espace

% Initialisation de la matrice de température


tp = zeros(n, m);

% Condition initiale: température à t=0 pour tous les VC


for i = 1:n
tp(i, 1) = 200; % température initiale
end

% Calcul des coefficients pour la discrétisation spatiale


ae = a * dt / dx^2;
aw = a * dt / dx^2;
ap = 1;
aop = ap - 2 * ae;

% Boucle temporelle
for j = 2:m
% Conditions aux limites
% Nœud 1 (CL): température fixée (t=0, i=2, instant précédent=j-1)
tp(1, j) = ae * tp(2, j - 1) + (1 - ae) * tp(1, j - 1);

% Nœud 10 (VL): température fixée (t=0, i=n, instant précédent=j-1)


tp(n, j) = aw * tp(n - 1, j - 1) + (1 - 3 * ae) * tp(n, j - 1);
% Boucle pour les nœuds internes
for i = 2:n-1
tp(i, j) = ae * tp(i + 1, j - 1) + aw * tp(i - 1, j - 1) + aop * tp(i, j - 1);
end
end

% Affichage de la température pour un instant donné (par exemple, le 40e)


x = linspace(0, L, n);
plot(x, tp(:, 40), '+') % 40 pour préciser l'instant
hold on
% Définition des paramètres
rho = 10;
k = 10;
cap = 10^6;
a = k / (rho * cap);
tpb = 0;
L = 0.02;
tf = 120; % instant final
n = 10; % nombre de volumes de contrôle (VC)
m = 120;
dt = tf / m; % pas de temps
dx = L / n; % pas d'espace

% Initialisation de la matrice de température


tp = zeros(n, m);

% Condition initiale: température à t=0 pour tous les VC sauf le dernier


for i = 1:n-1
tp(i, 1) = 200; % température initiale
end

% Calcul des coefficients pour la discrétisation spatiale


ae = a * dt / dx^2;
aw = a * dt / dx^2;
ap = 1;
aop = ap - 2 * ae;

% Boucle temporelle
for j = 2:m
% Conditions aux limites
% Nœud 1 (CL): température fixée (t=0, i=2, instant précédent=j-1)
tp(1, j) = ae * tp(2, j - 1) + (1 - ae) * tp(1, j - 1);

% Nœud 10 (VL): température fixée (t=0, i=n, instant précédent=j-1)


tp(n, j) = aw * tp(n - 1, j - 1) + (1 - 3 * ae) * tp(n, j - 1);

% Boucle pour les nœuds internes


for i = 2:n-1
tp(i, j) = ae * tp(i + 1, j - 1) + aw * tp(i - 1, j - 1) + aop * tp(i, j - 1);
end
end

% Affichage de la température pour un instant donné (par exemple, le 40e)


x = linspace(0, L, n);
plot(x, tp(:, 40), '+') % 40 pour préciser l'instant
hold on
% Demande à l'utilisateur de saisir la valeur du temps
t = input('t=');

% Définition des paramètres physiques


rho = 10;
k = 10;
cap = 10^6;
a = k / (rho * cap);

% Définition des paramètres de discrétisation spatiale


n = 500; % nombre de termes dans la somme
L = 0.02;
x = 0.001:0.002:0.02; % vecteur des positions spatiales
lx = length(x);

% Initialisation de la matrice de température


tp = zeros(1, lx);

% Boucle pour calculer la somme


for i = [Link]n
% Calcul de lambda (2n = 2i)
m = (2 * i - 1) * pi / (2 * L);

% Mise à jour de la température à chaque itération de la somme


tp = tp + (-1)^(i+1) * exp(-a * m^2 * t) * cos(m * x) / (2 * i - 1);
end

% Réajustement de la température
tp = 800 * tp / pi;

% Affichage de la température en fonction de la position


plot(x, tp, '+');
hold on
% Définition des paramètres
tf = 120; % instant final
n = 10; % nombre de VC
m = 120;
dt = tf / m; % pas du temps
dx = L / n; % pas de l'espace

% Initialisation de la matrice de température


tp = zeros(n, m);

% Condition initiale: température à t=0 pour tous les VC sauf le dernier


for i = 1:n-1
tp(i, 1) = 200; % température initiale
end

% Coefficients pour la discrétisation spatiale


ap = 1; % r*c*dx/dt;
ae = a * dt / dx^2;
aw = ae;
aop = ap - 2 * ae;

% Boucle temporelle
for j = 2:m
% Conditions aux limites
% Nœud 1 (CL): température fixée
tp(1, j) = ae * tp(2, j - 1) + (1 - ae) * tp(1, j - 1);

% Nœud 10 (CL): température fixée


tp(n, j) = aw * tp(n - 1, j - 1) + (1 - 3 * ae) * tp(n, j - 1);

% Boucle pour les nœuds internes


for i = 2:n-1
tp(i, j) = ap * tp(i + 1, j - 1) + aw * tp(i - 1, j - 1) + aop * tp(i, j - 1);
end
end

% Génération du vecteur des positions spatiales


X = dx / 2 : dx : L - dx / 2;

% Affichage de la température en fonction de la position pour un instant donné (par exemple,


le 40e)
plot(X, tp(:, 40), '*');
hold on;
clc
clear

% Définition des paramètres physiques


rho = 10;
k = 10; % conductivité
cap = 10^6; % capacité calorifique
a = k / (rho * cap); % diffusivité thermique
tpb = 0;
L = 0.02;
tf = 40; % instant final
n = 10; % nombre de VC
m = 120;
dt = tf / m; % pas de temps
dx = L / n; % pas de l'espace

% Initialisation de la matrice de température


tp = zeros(n, m);

% Condition initiale: température à t=0 pour tous les VC sauf le dernier


for i = 1:n-1
tp(i, 1) = 200; % température initiale
end

% Coefficients pour la discrétisation spatiale


ap = 1; % r * c * dx / dt;
aE = a * dt / dx^2;
aw = aE;
aop = ap - 2 * aE;

% Boucle temporelle
for j = 2:m
% Conditions aux limites
% Nœud 1 (CL): température fixée
tp(1, j) = aE * tp(2, j - 1) + (1 - aE) * tp(1, j - 1);

% Nœud 10 (CL): température fixée


tp(n, j) = aw * tp(n - 1, j - 1) + (1 - 3 * aE) * tp(n, j - 1);

% Boucle pour les nœuds internes


for i = 2:n-1
tp(i, j) = aE * tp(i + 1, j - 1) + aw * tp(i - 1, j - 1) + aop * tp(i, j - 1);
end
end

% Génération du vecteur des positions spatiales


X = dx / 2 : dx : L - dx / 2;
% Affichage de la température en fonction de la position pour un instant donné (par exemple,
le 40e)
plot(X, tp(:, 40), '*');
hold on;

clc
clear

% Définition des paramètres physiques


rho = 10;
k = 10; % conductivité thermique
cap = 10^6; % capacité calorifique
a = k / (rho * cap); % diffusivité thermique
tpb = 0;
L = 0.02;
tf = 120; % instant final
n = 10; % nombre de VC
m = 120;
dt = tf / m; % pas de temps
dx = L / n; % pas de l'espace

% Initialisation de la matrice de température


tp = zeros(n, m);

% Condition initiale: température à t=0 pour tous les VC sauf le dernier


for i = 1:n-1
tp(i, 1) = 200; % température initiale
end

% Coefficients pour la discrétisation spatiale


ap = 1; % r * c * dx / dt;
ae = a * dt / dx^2;
aw = ae;
aop = ap - 2 * ae;

% Boucle temporelle
for j = 2:m
% Conditions aux limites
% Nœud 1 (CL): température fixée
tp(1, j) = ae * tp(2, j - 1) + (1 - ae) * tp(1, j - 1);

% Nœud 10 (CL): température fixée


tp(n, j) = aw * tp(n - 1, j - 1) + (1 - 3 * ae) * tp(n, j - 1);

% Boucle pour les nœuds internes


for i = 2:n-1
tp(i, j) = ap * tp(i + 1, 1) + aw * tp(i - 1, 1) + aop * tp(i, j - 1);
end
end

% Génération du vecteur des positions spatiales


X = dx / 2 : dx : L - dx / 2;

% Affichage de la température en fonction de la position pour un instant donné (par exemple,


le 40e)
plot(X, tp(:, 40), '*');
hold on;

Vous aimerez peut-être aussi