温度场模拟matlab代码:
clear,clc,clf
L1=8;L2=8;N=9;M=9;% 边长为8cm的正方形划分为8*8的格子
T0=500;Tw=100; % 初始和稳态温度
a=0.05; % 导温系数
tmax=600;dt=0.2; % 时间限10min和时间步长0.2s
dx=L1/(M-1);dy=L2/(N-1);
M1=a*dt/(dx^2);M2=a*dt/(dy^2);
T=T0*ones(M,N);
T1=T0*ones(M,N);
t=0;l=0;k=0;
Tc=zeros(1,600);% 中心点温度,每一秒采集一个点
for i=1:9
for j=1:9
if(i==1|i==9|j==1|j==9)
T(i,j)=Tw;% 边界点温度为100℃
else
T(i,j)=T0;
end
end
end
if(2*M1+2*M2<=1) % 判断是否满足稳定性条件
while(tt=t+dt;
k=k+1;
for i=2:8
for j=2:8
T1(i,j)=M1*(T(i-1,j)+T(i+1,j))+M2*(T(i,j-1)+T(i,j+1))+(1-2*M1-2*M2)*T(i,j);
end
end
for i=2:8
for j=2:8
T(i,j)=T1(i,j);
end
end
if(k==5)
l=l+1;
Tc(l)=T(5,5);
k=0;
end