021_Thermal_Transient_in_Matlab统一偏微分框架之热传导问题

在这里插入图片描述

  • Matlab求解有限元专题系列

固体热传导方程

固体热传导的方程为:

ρ C p ( ∂ T ∂ t + u t r a n s ⋅ ∇ T ) + ∇ ⋅ ( q + q r ) = − α T d S d t + Q \rho C_p \left( \frac{\partial T}{\partial t} + \mathbf{u}_{\mathtt{trans}} \cdot \nabla T \right) + \nabla \cdot (\mathbf{q}+\mathbf{q}_r) = -\alpha T \frac{d \mathbf{S}}{dt} + \mathbf{Q} ρCp(tT+utransT)+(q+qr)=αTdtdS+Q

这里涉及的参数包括:

参数含义
ρ \rho ρ密度, k g / m 3 \mathtt{kg}/\mathtt{m}^3 kg/m3
C p C_p Cp比热容, J / k g ⋅ K \mathtt{J}/\mathtt{kg} \cdot \mathtt{K} J/kgK
T T T温度, K \mathtt{K} K
u t r a n s \mathbf{u}_{\mathtt{trans}} utrans位移速度, m / s \mathtt{m}/\mathtt{s} m/s
q \mathbf{q} q热流密度, W / m 2 \mathtt{W}/\mathtt{m}^2 W/m2
q r \mathbf{q}_r qr辐射热流密度, W / m 2 \mathtt{W}/\mathtt{m}^2 W/m2
α \alpha α热膨胀系数, K − 1 \mathtt{K}^{-1} K1
S \mathbf{S} S第二Piola-Kirchhoff 应力张量, P a \mathtt{Pa} Pa
Q \mathbf{Q} Q额外的热源, W / m 3 \mathtt{W}/\mathtt{m}^3 W/m3

将内部热传导的热流简化为传热系数与温差的乘积:

q = − k ∇ T \mathbf{q} = -k \nabla T q=kT

这里的 k k k是热传导系数,单位是 W / m ⋅ K \mathtt{W}/\mathtt{m} \cdot \mathtt{K} W/mK

忽略热辐射、运动和应力张量等项,上述方程可以简化为:

ρ C p ∂ T ∂ t − ∇ ⋅ ( k ∇ T ) = Q \rho C_p \frac{\partial T}{\partial t} - \nabla \cdot (k \nabla T) = Q ρCptT(kT)=Q

通常只需要考虑以下量值:

参数含义
t t t时间自变量
x \mathbf{x} x空间自变量
T T T温度,传热方程积分应变量
Q Q Q热源,抽象为(通常是边界)单元的热载荷
ρ \rho ρ密度,物性,基本不随温度变化
k k k热传导系数,物性,随温度变化
C p C_p Cp比热容,物性,随温度变化

定义热扩散系数为

α = k ρ C p \alpha = \frac{k}{\rho C_p} α=ρCpk

积分传热方程时,可以考虑把对应的参数都设为1,此时,方程变为:

∂ T ∂ t ∗ − ∇ ⋅ ∇ T = Q / k \frac{\partial T}{\partial t^*} - \nabla \cdot \nabla T = Q/k tTT=Q/k

这里的 t ∗ t^* t是无量纲时间,定义为:

t ∗ = α t t^* = \alpha t t=αt

有限元求解过程

对中间有一个空洞的矩形区域,求解其热传导方程。

通过CSG建模,生成一个矩形区域,然后在中间挖去一个小矩形区域。先建一个函数:

function gg = blockWithCavity

rect1 = [3 4 -0.5 0.5 0.5 -0.5 0.8 0.8 -0.8 -0.8];
rect2 = [3 4 -0.1 0.1 0.1 -0.1 0.4 0.4 -0.4 -0.4];
gd = [rect1', rect2'];
sf = 'R1 - R2';
ns = char('R1', 'R2')';

gg = decsg(gd, sf, ns);

然后在计算程序中调用这个函数产生几何体。

%% model and geometry
g = blockWithCavity;
model = femodel(AnalysisType="thermalTransient",...
    Geometry=g);

h = figure(1);
pdegplot(model,EdgeLabels="on");
xlim([-0.6,0.6])
ylim([-1,1])

在这里插入图片描述

按照前面说所说的,把参数都设为1,这样得到解,只会有时间尺度上的线性差异。

model.MaterialProperties = ...
            materialProperties(ThermalConductivity=1, ...
                               MassDensity=1, ...
                               SpecificHeat=1);

边界同样和初始条件(因为是时变问题)在程序中设定:

%% boundary conditions and initial conditions

model.EdgeBC(6) = edgeBC(Temperature=100);
model.EdgeLoad(1) = edgeLoad(Heat=-10);

model.FaceIC = faceIC(Temperature=-10);

采取默认的网格:

%%
model = generateMesh(model);

figure(2);
pdemesh(model);
title("Mesh with Quadratic Triangular Elements")
xlim([-0.6,0.6])
ylim([-1,1])

在这里插入图片描述

最后,调用fesolve函数求解:

%%

tlist = 0:.1:5.0;
results = solve(model,tlist)

results语句后面没有分号,直接显示得到的结果:

results = 

  TransientThermalResults - 属性:

      Temperature: [1232×51 double]
    SolutionTimes: [0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1 … ] (1×51 double)
       XGradients: [1232×51 double]
       YGradients: [1232×51 double]
       ZGradients: []
             Mesh: [1×1 FEMesh]

最后就是结果的可视化:

[qx,qy] = evaluateHeatFlux(results);

figure(3)
c = pdeplot(results.Mesh,XYData=results.Temperature(:,end), ...
                        Contour="on",...
                        FlowData=[qx(:,end),qy(:,end)], ...
                        ColorMap="hot");
xlim([-0.6,0.6])
ylim([-1,1])
axis equal
title(sprintf("t = %4.2f", results.SolutionTimes(end)))

在这里插入图片描述

实际上,也很容易利用与前面优化过程可视化相同的方法,将结果可视化成动画。

[qx,qy] = evaluateHeatFlux(results);

fn = "cavity.gif";
if exist(fn, 'file')
    delete(fn);
end

figure(3)

for i = 1:size(results.Temperature, 2)
    c = pdeplot(results.Mesh,XYData=results.Temperature(:,i), ...
                         Contour="on",...
                         FlowData=[qx(:,i),qy(:,i)], ...
                         ColorMap="hot");
    xlim([-0.6,0.6])
    ylim([-1,1])
    axis equal
    title(sprintf("t = %4.2f", results.SolutionTimes(i)))
    exportgraphics(gca, fn, Resolution=100, Append=true);    
end

在这里插入图片描述

总结

利用统一框架,求解动态热传导方程的过程与求解静力学方程类似,同样是建立模型、设定参数、求解、可视化结果。

不是特别一样的在于,热传导方程的相似参数就只有一个,通过相似性分析,可以简化设定参数的过程,最后结果反应出来的只是时间尺度上的差异。通常而言, α \alpha α 是一个很小的量,因此传热的过程相对来说是比较慢的,通过无量纲化,计算步长比实际时间要小很多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[计算机网络]第一周

TCP/IP 与OSI TCP/IP TCP/IP 四层模型是一个分层网络通信模型,它将网络通信过程分为四个层次,这四层分别是:网络接口层、互联网层、传输层和应用层。 网络接口层负责在计算机和网络硬件之间传输数据,负责在物理网络上发送和接收…

Cesium 影像加载的TileReplacementQueue技术

本文以分析QuadtreePrimitive及相关影像内容,讨论一些流程和方法。影像和地形是Cesium的基础内容,但是有时候感觉这部分的加载和渲染效率并不高。 TileReplacementQueue是一个非常神奇的类,我自己研究了小半天。虽然结构简单,但是…

鸿蒙HarmonyOS开发:应用权限的基本概念及如何申请应用权限详细介绍

文章目录 一、访问控制二、应用权限1、应用权限管控2、权限使用的基本原则3、授权方式4、权限等级 三、申请应用权限1、选择申请权限的方式2、声明权限3、声明样例4、二次向用户申请授权5、具体实现示例6、效果展示 四、应用权限列表1、system_grant(系统授权&#…

【开源免费】基于SpringBoot+Vue.JS社区团购系统(JAVA毕业设计)

本文项目编号 T 024 ,文末自助获取源码 \color{red}{T024,文末自助获取源码} T024,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

亿发工单,拯救制造企业的时间:工单也能这样高效

在制造企业的日常生产中,工单管理是一项至关重要的任务。它不仅直接关系到生产效率,还影响到整个生产链的运作。然而,许多制造企业在工单处理过程中面临效率低下、沟通不畅、任务分配混乱等诸多问题,这不仅拖慢了生产进度&#xf…

2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(下)23种设计模式(分值10+)

目录 前言阅读前必看 第七章 面向对象技术(下)7.3 设计模式(固定4分)7.3.1 设计模式的要素7.3.2 创建型设计模式7.3.2.1 Abstract Factory(抽象工厂)7.3.2.2 Builder(生成器)7.3.2.3…

软件工程的学习之详细绪论

软件的定义 软件是程序和所有使程序正确运行所需要的相关文档和配置信息。 Software Program Data Document 一、软件危机: 软件开发和维护过程中遇到的一系列严重问题。 二、具体表现: 1、产品不符合用户的实际需要; 2、软件开发生产率…

安装好的 Nginx 增加 nginx-module-vts 模块

目录 1. nginx-module-vts 准备 2.查看已安装的的 nginx 编译参数 3. 重新编译 nginx 添加 nginx-module-vts 模块 4. 验证 1. nginx-module-vts 准备 # 解压 unzip nginx-module-vts-master.zip # 将解压包移动到/usr/local/目录 mv nginx-module-vts-master /usr/local/ …

基于微信小程序的购物系统【附源码、文档】

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

Java生死簿管理小系统(简单实现)

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

Oracle漏洞修复 19.3 补丁包 升级为19.22

1.场景描述 上周末2024-10-12日,服务器扫出漏洞,希望及时修复。其中,oracle的漏洞清单如下,总结了下,基本都是 Oracle Database Server 的 19.3 版本到 19.20 版本和 21.3 版本到 21.11 版本存在安全漏洞,即版本问题。如: Oracle Database Server 安全漏洞(CVE-2023-22…

OpenMediaVault安装插件以及重置web控制台密码

常用插件(可根据实际情况选择安装) openmediavault-flashmemory:加载临时文件到内存,保护硬盘;openmediavault-fail2ban :扫描日志文件并禁止显示恶意迹象的IP-太多的密码错误,寻找漏洞等&…

Java面试宝典-并发编程学习02

目录 21、并行与并发有什么区别? 22、多线程中的上下文切换指的是什么? 23、Java 中用到的线程调度算法是什么? 24、Java中线程调度器和时间分片指的是什么? 25、什么是原子操作?Java中有哪些原子类? 26、w…

(11)(2.1.5) Currawong Velocity CAN ESCs(一)

文章目录 前言 1 哪里买 2 PiccoloCAN设置 前言 Currawong 的 Velocity 系列 ESC(Velocity range of ESCs)为航空航天领域提供了高度可靠的电机控制。 Currawong 的 Velocity 系列 ESC(

[k8s理论知识]3.docker基础(二)隔离技术

容器其实是一种沙盒技术,其核心是通过约束和修改进程的动态表现,为其创建一个边界。这个边界确保了应用与应用之间不会相互干扰,同时可以方便在不同的环境中迁移,这是PaaS最理想的状态。 程序是代码的可执行镜像,通常…

【思维导图】C语言—常见概念

hello,友友们,今天我们进入一个新的专栏——思维导图! 思维导图帮助我们复习知识的同时建构出一个清晰的框架,我往后会不断更新各个专栏的思维导图,关注我,一起加油! 今天我们回顾C语言中的常见…

技术分享:A-23OH型树脂在汽车涂装废溶剂回收中的应用

在当今汽车制造业竞争激烈的环境下,提高生产效率、降低成本的同时,满足环保要求已成为各制造商追求的核心目标。水性涂料因其环保、节能等多重优势,在汽车涂装领域的应用日益广泛。然而,随之而来的喷涂废溶剂处理问题也日益凸显。…

Java 项目如何连接并使用 SFTP 服务的示例详解

文章目录 1、SFTP介绍2、pom依赖3、SFTPUtil4、测试5、测试结果 1、SFTP介绍 SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,是SSH(Secure Shell)协议的一个子协议,设计用于加密和保护文件…

测试代理IP的有效性和可用性:全面方法与技巧

使用代理IP的有效性和可用性直接关系到用户的工作效率,尤其是在进行数据抓取、网络爬虫和保护个人隐私等场景中。然而,如果代理IP的质量不佳,或者无法正常工作,就可能导致操作中断、数据丢失,甚至影响整个项目的进度。…

《OpenCV计算机视觉》——人脸检测__Haar特征、级联分类器

文章目录 Haar特征一、定义与原理二、分类三、计算方法四、应用五、优缺点 级联分类器一、定义与原理二、结构与组成三、举例说明 Haar特征 Haar特征是一种在计算机视觉和图像处理中常用的特征描述方法,特别适用于物体识别,尤其是人脸检测。以下是对Haa…