2D heat transfer equation with matlab
3 ビュー (過去 30 日間)
古いコメントを表示
Good day all!
I'm solly for my bad english language. I trying to solve the heat transfer equation with matlab in 2D. I have time dependent equation with linear coefficient lambda, Cp, rho. I turned this code. The problem is that the values of Nnew(i, j) filled just over the border and inside equal to H0(i,j). Please, see my code and edit.
clc
clear all
global t Tbf Cth Cf L Wtot Ww V tend dt lamda rho Cp T0 a TU TD TR TL H0
t=0;
Tbf=-0.47+273.15;
Cth=2845;
Cf=1899;
L=45000;
Wtot=0.25;
Ww=0.12;
V=Ww/Wtot;
tend=1000;
dt=0.1;
lamda=57;
rho=7900;
Cp=450;
T0=270.15;
Lx=20;
Nx=20;
Ly=20;
Ny=20;
dx=Lx/(Nx-1);
dy=Ly/(Ny-1);
a=lamda/(rho*Cp);
Kx=(dx)^2/(a*dt);
Ky=(dy)^2/(a*dt);
TU=-12+273.15; %temp up
TD=-3.5+273.15; %temp down
TL=-2.5+273.15; %temp left
TR=60+273.15; %temp right
T=zeros(Nx,Ny);
H=zeros(Nx,Ny);
H0=Cf*(T0-Tbf);
Hnew=H0;
for i=1:1:Nx for j=1:1:Ny H(i,j)=H0; end end
for i=1:1:Nx for j=1:1:Ny T(i,j)=T0; end end
for j=1;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for i=1;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for i=Nx;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
while t<tend t=t+dt; for i=2:1:Nx-1 for j=2:1:Ny-1 Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1)); end end H=Hnew; end
Best Regards, Alexey Ishkov
0 件のコメント
回答 (1 件)
Hadj Merad
2022 年 1 月 10 日
clc
clear all
global t Tbf Cth Cf L Wtot Ww V tend dt lamda rho Cp T0 a TU TD TR TL H0
t=0;
Tbf=-0.47+273.15;
Cth=2845;
Cf=1899;
L=45000;
Wtot=0.25;
Ww=0.12;
V=Ww/Wtot;
tend=1000;
dt=0.1;
lamda=57;
rho=7900;
Cp=450;
T0=270.15;
Lx=20;
Nx=20;
Ly=20;
Ny=20;
dx=Lx/(Nx-1);
dy=Ly/(Ny-1);
a=lamda/(rho*Cp);
Kx=(dx)^2/(a*dt);
Ky=(dy)^2/(a*dt);
TU=-12+273.15; %temp up
TD=-3.5+273.15; %temp down
TL=-2.5+273.15; %temp left
TR=60+273.15; %temp right
T=zeros(Nx,Ny);
H=zeros(Nx,Ny);
H0=Cf*(T0-Tbf);
Hnew=H0;
for j=1;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=1;
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=Nx;
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
for i=1;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+TL)+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for i=Nx;
for j=2:1:Ny-1
Hnew(i,j)=H(i,j)+Kx*(TR-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+T(i,j-1));
end
end
for j=1;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(T(i,j+1)-2*T(i,j)+TD);
end
end
for j=Ny;
for i=2:1:Nx-1
Hnew(i,j)=H(i,j)+Kx*(T(i+1,j)-2*T(i,j)+T(i-1,j))+Ky*(TU-2*T(i,j)+T(i,j-1));
end
end
0 件のコメント
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!