IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 用Matlab求解一维非稳态导热问题(显式离散) -> 正文阅读

[数据结构与算法]用Matlab求解一维非稳态导热问题(显式离散)

章熙民的第六版《传热学》里,较为简单的介绍了非稳态导热的数值计算,本文根据此书,以计算一个可视为无限大平壁的复合墙体传热过程为例,讨论一维非稳态导热问题数值求解的问题。

初始条件:一个由四层材料构成的墙体(可视为无限大平壁),已知材料热工性质如下,该墙体的内表面换热系数为8.7W/(m^2*K),外表面换热系数为23W/(m^2*K),室内温度为20℃恒定不变,室外温度随昼夜变化。

现给出一星期的室外温度数据(每小时),求墙体内部温度场。

构造层材料干密度ρ-kg/m^3导热系数λ-W/(m*K)比热容c- J/(Kg*K)厚度mm

热扩散率a=λ/(c*ρ)

m^2/s

1石膏板10500.361050123.2653E-07
2钢筋混凝土25002.049201208.8696E-07
3聚苯乙烯泡沫板200.04613801201.6667E-06
4陶瓷红砖18000.78801204.4192E-07
室外温度第1天第2天第3天第4天第5天第6天第7天
0-25.4-24.5-20.5-19.8-21-23.5-15.5
1-25.4-24.7-21.3-19.8-23.1-23.9-15.9
2-25.4-25-22-19.8-25.1-24.4-16.4
3-25.4-25.2-22.9-19.6-24.4-24.2-17.5
4-25.4-25.5-23.8-19.4-23.6-24-18.6
5-25.4-25.7-24.7-19.2-22.9-23.8-19.7
6-25.4-26.4-25.1-19.2-23.4-23.2-18
7-25-26.4-25-19-23.5-22.4-15.6
8-24-25.4-24.2-18.5-22.9-21-13.2
9-22-22.2-22.3-17.2-20.4-18.6-11.6
10-19.8-18.9-20.2-15.7-17.6-15.8-10.3
11-17.8-16.2-18.2-14.2-14.9-13.2-9.2
12-16.5-15.6-16.9-13-13.3-11.2-8.1
13-15.8-15.7-16.2-12.3-12.7-9.9-7.4
14-15.9-16.3-16.2-12-12.8-9.5-7.2
15-17-16.9-17.1-12.5-14-10.5-7.7
16-18.4-17.7-18.3-13.3-15.2-12.1-8.6
17-20-18.6-19.4-14.3-16.2-13.7-9.9
18-21.3-19.4-19.8-15-16.2-13.9-11.5
19-22-19.3-19.7-15.8-16.8-14.1-13.4
20-23-19.6-19.8-16.5-17.1-14.4-15.1
21-23.4-19.7-19.8-17.3-19.1-14.6-15.8
22-23.8-19.7-19.8-18.2-21-14.8-16.4
23-24.2-19.8-19.8-19-23-15-17.1
  • 前期准备

在《传热学》第四章第三节中,对什么是非稳态导热的给出了如下解释:

因此根据上述场景将该问题提炼为:一个两边是第三类边界条件的无限大平壁的一维非稳态导热问题。这里我们选用显示离散格式(求解上更为简单,但是对步长要求较为严苛)。

内部节点方程式:

稳定条件:

边界节点方程式(第三类边界条件):

?稳定条件:

  • ?问题分析

在经过多次试验之后,将该墙体按间距3mm划分为132层,取时间步长为1s,此时满足稳定条件。由于这里是复合墙体,因此后续计算时也要注意节点的热物性参数会相应改变。

还有一个重要的问题是墙体的初始温度场,显式离散格式的逻辑就是从初始温度出发逐个计算出各个时刻的温度。这里没有给,所以就用初始温度条件(室内20℃,室外-25.4℃)计算这一条件下的稳态温度。

?根据上式求得墙体内初始温度场。

  • ?Matlab求解

在完成上述工作之后,便可以在Matlab中求解了。

clc;
clf;
format short e;
global N delta_x delta_t TN;

h1 = 8.7; %墙体内表面传热系数 W/(m^2*K)
h4 = 23; %墙体外表面传热系数 W/(m^2*K)
D = 0.332; %墙体厚度/m
N = 124; %厚度划分数目
delta_x = 0.003; %划分间距/m
delta_t = 1; %时间步长/s
day = 7; %计算天数
TN = 3600*24*day; %计算时间节点数目
Tn = 20; %室内温度
T = zeros(TN,N+1); %预设数组大小
Tf = zeros(1,TN);

%设置室外空气温度 这一步是因为给的是每小时的温度 换成每秒均等增加的温度值
for hour = 1:24*day %取值范围
    %将第hour小时和hour+1小时的温度等间距分成3600个
    %自定义数组outdoor_air为室外温度
    temp = linspace(outdoor_air(hour),outdoor_air(hour+1),3600); 
    for t = 1:3600
        Tf(3600*(hour-1)+t) = temp(t);%每秒均匀变化的温度
    end
end

%设置初始墙体内温度
for I = 1:N+1
    %自定义数组wall为墙体初始温度
    T(1,I) = wall(I);
end

%第一层:石膏板
a1 = 3.265e-7; %热扩散率 m^2/s
lamb1 = 0.36; %热导率 W/(m*K)
Fo1 = a1*delta_t/(delta_x)^2;
Bi1 = h1*delta_x/lamb1;
c1 = Fo1 - 1/(2*Bi1+2);

%第二层:钢筋混凝土
a2 = 8.870e-7; %热扩散率 m^2/s
lamb2 = 2.04; %热导率 W/(m*K)
Fo2 = a2*delta_t/(delta_x)^2;

%第三层:聚苯乙烯泡沫板
a3 = 1.667e-6; %热扩散率 m^2/s
lamb3 = 0.046; %热导率 W/(m*K)
Fo3 = a3*delta_t/(delta_x)^2;

%第四层:陶瓷红砖
a4 = 4.419e-7; %热扩散率 m^2/s
lamb4 = 0.7; %热导率 W/(m*K)
Fo4 = a4*delta_t/(delta_x)^2;
Bi4 = h4*delta_x/lamb4;
c4 = Fo4 - 1/(2*Bi4+2);

while (Fo1>0.5 || Fo2>0.5 || Fo3>0.5 || Fo4>0.5 || c4>0  || c1>0)
    error('无法收敛');
end

?第一部分主要是输入参数,设置初始条件,判断选择的步长是否满足稳定性条件。

for t = 1:TN
    for i = 1:N+1      
        if i == 1
            T(t+1,i) = 2*Fo1*(T(t,i+1) + Bi1*Tn) + (1 - 2*Bi1*Fo1 - 2*Fo1)*T(t,i);
        end
        
        if (i>=2 && i<= 5)
            T(t+1,i) =  Fo1*(T(t,i-1) + T(t,i+1)) + (1 - 2*Fo1)*T(t,i);
        end
        
        if (i>=6 && i<= 45)
            T(t+1,i) =  Fo2*(T(t,i-1) + T(t,i+1)) + (1 - 2*Fo2)*T(t,i);
        end
        
        if (i>=46 && i<= 85)
            T(t+1,i) =  Fo3*(T(t,i-1) + T(t,i+1)) + (1 - 2*Fo3)*T(t,i);
        end
        
        if (i>=86 && i<= 124)
            T(t+1,i) =  Fo4*(T(t,i-1) + T(t,i+1)) + (1 - 2*Fo4)*T(t,i);
        end
        
        if i == N+1
            T(t+1,i) = 2*Fo4*(T(t,i-1) + Bi4*Tf(t)) + (1 - 2*Bi4*Fo4 - 2*Fo4)*T(t,i);
            %这里给了室外空气温度Tf一个时间函数关系
        end
    end
end

?第二部分就是计算显式离散节点方程了,没有什么好说的,就用了最简单的迭代法,甚至不需要求解方程组,唯一需要注意的就是各个材料层的节点方程式使用的参数不一样。

X = zeros(1,24*day*2);
Y = zeros(1,N+1);
TT = zeros(24*day*2,N+1);

J = 1;
for I = 1:24*day*2
    X(I) = 1800*I; %30分钟一个数
    for J = 1:N+1
        Y(J) = J;
        TT(I,J) = T(X(I),Y(J));
    end
end
 
figure(1)
hold on;
 
% Make a contour with the presence of isolines & texts
[XX,YY] = meshgrid(Y,X);
surfc(YY,XX,TT)

xlabel('Time - AXIS')
ylabel('Thickness - AXIS')
zlabel('T (^{\circ}C)')
title(colorbar,'^{\circ}C')

?第三部分画图,半个小时取一个数,因为一秒钟一个温度数太多了没有必要,画图也不好看。

最后呈现出来的温度-时间-节点的图形就是这样:

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:58:41  更:2021-12-11 15:59:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:51:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码