欢迎光临散文网 会员登陆 & 注册

一维常系数瞬态导热计算_时间显式格式

2023-07-06 19:35 作者:笺若曦宁  | 我要投稿

%% 一维常系数瞬态导热计算,时间显式格式

clc

clear

%% 初始参数

rou = 100;  %内能密度

c = 1000;   %比热容

k = 10;     %热流密度系数

s = 10;     %热源强度

Length = 3; %控制体长度3m

T_Left = 3; %左边界温度℃

T_Right = 5;%右边界温度℃

T_initial = 3; %初始温度

%% 划分网格  

nx = 5;    %x方向网格数

dx = Length/nx; %x方向距离步长  

dt = 100;  %时间步长100s

maxstep= 200;  %时间计算步

t_sum = dt*maxstep;      %总计算时间s

%% 初始赋值

T0 = zeros(maxstep+1,nx+2);%初始温度值

T = zeros(maxstep+1,nx+2);%计算温度值

ae0 = zeros(1,nx+2);

aw0 = zeros(1,nx+2);

ap0 = zeros(1,nx+2);

ap1 = zeros(1,nx+2);

b = zeros(1,nx+2);

%% 初始条件和边界条件赋值

for t = 1:maxstep+1

   for i = 2:nx+1

       T0(t,i) = T_initial;

   end

end

T0(:,1) = T_Left;

T0(:,nx+2) = T_Right;

T= T0;

%% 系数计算

%内部网格系数

for i = 3:nx

   ae0(i) = k/dx;%e右,w左

   aw0(i) = k/dx;

   ap0(i) = rou*c*dx/dt-ae0(i)-aw0(i);

   ap1(i)= ae0(i)+aw0(i)+ap0(i);

   b(i) = s*dx;

end

%边界网格系数

i = 2;

   ae0(i) = k/(dx);%e右,w左

   aw0(i) = k/(dx/2);

   ap0(i) = rou*c*dx/dt-ae0(i)-aw0(i);

   ap1(i)= ae0(i)+aw0(i)+ap0(i);

   b(i) = s*dx;

i = nx+1;

   ae0(i) = k/(dx/2);%e右,w左

   aw0(i) = k/(dx);

   ap0(i) = rou*c*dx/dt-ae0(i)-aw0(i);

   ap1(i)= ae0(i)+aw0(i)+ap0(i);

   b(i) = s*dx;

%% 时间步推进

for t = 2:maxstep+1

   % 显式计算

   for i = 2:nx+1

       T(t,i) = (ae0(1,i)*T0(t-1,i+1) + aw0(1,i)*T0(t-1,i-1) + ap0(1,i)*T0(t-1,i) + b(1,i))/ap1(1,i);

   end

   T0(t,:) = T(t,:);

end

%% 画图

x = zeros(1,nx+2);%距离储存矩阵矩阵

x(1,1) = 0;

x(1,end) = Length;

x(1,2:end-1) = dx/2:dx:Length-dx/2;

for i=1:maxstep

   grid on

   ylim([3 6]);

   pause (0.005);

   a = {['运行时间',num2str(i),'s']};

   plot(x,T(i,:));

   title(a)

end

一维常系数瞬态导热计算_时间显式格式的评论 (共 条)

分享到微博请遵守国家法律