MATLAB一维瞬态导热时间隐式格式

本文档介绍了如何使用MATLAB实现一维常系数导热问题的瞬态解,通过时间隐式格式求解离散方程,详细展示了从网格划分到计算过程的步骤,适用于理解计算传热学的基本原理和数值模拟。
部署运行你感兴趣的模型镜像

代码改编自计算传热学–6-一维瞬态常系数导热离散方程时间隐式格式

%%
clc
clear
Llength = 3;
Tleft = 3;
Tright = 5;
density = 100;
source = 10;
c = 1000;
deltaT = 200;
k=10;
N = 5;
maxstep = 1000;
%%
ae1 = zeros(N+2,1);
aw1 = zeros(N+2,1);
ap0 = zeros(N+2,1);
ap1 = zeros(N+2,1);
b = zeros(N+2,1);
T1 = zeros(N+2,1);
a = zeros(N+2,1);
b1 = zeros(N+2,1);
c1 = zeros(N+2,1);
d = zeros(N+2,1);

Tall = zeros(N+2,maxstep+1);
%%
%内部网格计算
dx = Llength/N;
ae1(3:N,1) = k/dx;
aw1(3:N,1) = k/dx;
ap0(3:N,1) = density*c*dx/deltaT;
ap1(3:N,1) = density*c*dx/deltaT+aw1(3:N,1)+ae1(3:N,1);
b(3:N,1) = source*dx;
%边界网格计算
%第一个
i=2;
ae1(i,1) = k/dx;
aw1(i,1) = k/(dx/2);
ap0(i,1) = density*c*dx/deltaT;
ap1(i,1) = density*c*dx/deltaT+aw1(i,1)+ae1(i,1);
b(i,1) = source*dx;
%最后一个
i=N+1;
ae1(i,1) = k/(dx/2);
aw1(i,1) = k/dx;
ap0(i,1) = density*c*dx/deltaT;
ap1(i,1) = ap0(i,1)+aw1(i,1)+ae1(i,1);
b(i,1) = source*dx;
%初始条件
T0(2:N+1,1) = Llength;
T0(1,1)=Tleft;
T0(N+2,1)=Tright;
T1(1,1) = Tleft;
T1(N+2,1)=Tright;
Tall(:,1) = T0;
%abcd初始化
for i =1:maxstep
  %第一个   
  g=2;
    a(g,1) = ap1(g,1);
    b1(g,1) = -aw1(g,1);
    c1(g,1) = -ae1(g,1);
    d(g,1) = ap0(g,1)*T0(g,1) + aw1(g,1)*T1(g-1,1)+b(g,1);
    
    a(3:N,1) = ap1(3:N,1);
    b1(3:N,1) = -aw1(3:N,1);
    c1(3:N,1) = -ae1(3:N,1);
    d(3:N,1) = ap0(3:N,1).*T0(3:N,1) + b(3:N,1);
      g=N+1;
    a(g,1) = ap1(g,1);
    b1(g,1) = -aw1(g,1);
    c1(g,1) = -ae1(g,1);
    d(g,1) = ae1(g,1)*T1(g+1,1)+ap0(g,1)*T0(g,1) +b(g,1);
    
    %计算T1时刻
    [T1]=TMDA(a,b1,c1,d,N,Tleft,Tright);
    
    T0 = T1;
    Tall(:,i+1) = T0;
end
Tall = Tall';
plot(Tall(:,2:N+1));
lgd =legend('T1','T2','T3','T4','T5');
figure
plot(linspace(0,3,N+2),Tall(end,1:end));

function [x]=TMDA(a,b1,c1,d,N,Tleft,Tright)
p = zeros(N+2,1);
q = zeros(N+2,1);
x = zeros(N+2,1);
i=2;
p(i,1) = -c1(i)/a(i);
q(i) = d(i)/a(i);
%中间
for i=3:N
p(i,1) = -c1(i,1)/(a(i,1)+b1(i,1)*p(i-1,1));
q(i,1) = (d(i,1)-b1(i,1)*q(i-1,1))/(a(i,1)+b1(i,1)*p(i-1,1));
end
%最后一个
i=N+1;
x(i,1) = (d(i,1)-b1(i,1)*q(i-1,1))/(a(i,1)+b1(i,1)*p(i-1,1));
for i=2:N
    x(N+2-i,1) = p(N+2-i,1)*x(N+3-i,1)+q(N+2-i,1);
end
x(1,1) = Tleft;
x(N+2,1)=Tright;
end

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值