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 = blockWithCavityrect1 = [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 conditionsmodel.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);
endfigure(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 equaltitle(sprintf("t = %4.2f", results.SolutionTimes(i)))exportgraphics(gca, fn, Resolution=100, Append=true);    
end

在这里插入图片描述

总结

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发一个微信小程序要多少钱?

在当今数字化时代,微信小程序成为众多企业和个人拓展业务、提供服务的热门选择。那么,开发一个微信小程序究竟需要多少钱呢? 开发成本主要取决于多个因素。首先是功能需求的复杂程度。如果只是一个简单的信息展示小程序,功能仅限…

Hadoop集群基础搭建

目录 一.虚拟机安装 1.配置虚拟机的ip 2.配置本机的ip 3.新建虚拟机 4.克隆三台虚拟机 二.虚拟机网络配置 1.修改ip配置 2.配置主机名和主机映射 3.配置SSH免密登陆 三.安装JDK 1.tar命令解压JDK安装包 2.配置JDK的环境变量 四.安装Hadoop 1.tar命令解压Hadoop安…

Maven项目打包为jar的几种方式

1.直接打包 通过不打依赖包的方式&#xff0c;仅仅只是打包出项目中的代码到JAR包中。在POM文件合适的位置添加如下plugin即可&#xff0c;随后执行maven install <plugin> <groupId>org.apache.maven.plugins</groupId> &l…

快速了解kubernetes中的存储管理

目录 一 configmap 1.1 configmap的功能 1.2 configmap的使用场景 1.3 configmap创建方式 1.3.1 字面值创建 1.3.2 通过文件创建 1.3.3 通过目录创建 1.3.4 通过yaml文件创建 1.3.5 configmap的使用方式 1.3.5.1 使用configmap填充环境变量 1.3.5.2 通过数据卷使用c…

RestTemplate 学习笔记

简介 RestTemplate是一个执行HTTP请求的同步阻塞式工具类&#xff0c;它仅仅只是在 HTTP 客户端库&#xff08;例如 JDK HttpURLConnection&#xff0c;Apache HttpComponents&#xff0c;okHttp 等&#xff09;基础上&#xff0c;封装了更加简单易用的模板方法 API&#xff0c…

Renesas R7FA8D1BH (Cortex®-M85) 上光电编码器测速功能

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 硬件架构 2.1 硬件框架结构 2.2 测速功能原理介绍 2.2.1 理论描述 2.2.2 实现原理 2.2.3 系统硬件结构 3 软件实现 3.1 FSP配置项目 3.2 代码实现 3.2.1 初始化函数 3.2.2 功能函数 3.…

论文学习——基于Whisper迁移学习的阿尔兹海默症检测方法——音频特征和语义特征的结合

文章目录 引言正文——基于Whisper迁移学习的阿尔茨海默病检测方法&#xff08;使用转述文本作为提示&#xff0c;利用音频段落进行分类&#xff09;摘要1 Introduction介绍ADReSSo 数据集Whisper模型 2 Methods方法Audio Processing音频预处理Transfer Learning&#xff08;TL…

commonjs和esmodule的导入导出细节

CommonJS和ES Module是JavaScript中两种不同的模块系统&#xff0c;它们在导入导出细节上存在差异&#xff0c;以下是两者的具体对比以及方便区分记忆的方法&#xff1a; 1. 导入导出细节 CommonJS 导出&#xff1a;使用module.exports或exports对象来导出模块中的变量、函数…

利用移动式三维扫描技术创建考古文物的彩色纹理网格【上海沪敖3D】

文章来源于蔡司工业质量解决方案&#xff0c;作者蔡司工业质量 在考古环境中&#xff0c;三维扫描技术应用广泛&#xff0c;如存档、保存、复制和分享&#xff08;包括实体和虚拟形式&#xff09;。 文中&#xff0c;通过真实的扫描案例&#xff0c;您将了解到三维光学解决方案…

Lua简介

软考鸭微信小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 在编程语言的浩瀚星空中&#xff0c;Lua以其独特的魅力和广泛的应用场景&#xff0c;成为了众多开发者心中的一颗璀璨明星。作为一篇专注于技术深度与实践应…

Python处理超大json文件的几种方案

目录 专栏导读库的安装方案1代码 方案2代码 方案3代码 总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博客主页&#xff1a;请点击——> 一晌小贪欢的博客主页求关注 &#x…

WordPress任推帮网盘拉新数据统计插件

任推邦是国内一线的APP推广项目分发和流量变现平台&#xff0c;隶属聚名科技集团&#xff08;国家级高新技术企业、AAA重合同守信用企业&#xff0c;安徽百强企业&#xff09;,任推邦目前是阿里、字节、百度、迅雷、美团等品牌一级用户增长服务商&#xff0c;已入驻各类自媒体达…

如何安装MySql

一.卸载MySql 1.1安装版 进入“控制面板”&#xff0c;将有关“mysql”的一切都删除&#xff0c;再到“C:\ProgramData”中&#xff0c;将“mysql”文件夹删除。 1.2压缩版 先在cmd中停止mysql服务 net stop mysql8 再删除解压“mysql”文件夹即可 二.安装MySql 2.2安装版…

Vant 日期时间组件拓展

基于 "vant": "^4.8.3", 效果图 <template><!-- 弹出层 --><van-popupv-model:show"isPicker"position"bottom"><van-pickerref"picker":title"title"v-model"selectedValues"…

软考24.10.15每日一练打卡 - 错题笔记

题目来源&#xff1a;https://ruankaodaren.com/ ##1. M公司将其开发的某软件产品注册商标为S&#xff0c;为确保公司在市场竞争中占据地位&#xff0c;M公司对员工进行了保密约束&#xff0c;此情形下&#xff0c;该公司不享有&#xff08; 商标权&#xff09;。 本题题干中提…

7、Vue2(二) vueRouter3+axios+Vuex3

14.vue-router 3.x 路由安装的时候不是必须的&#xff0c;可以等到使用的时候再装&#xff0c;如果之前没有安装的话&#xff0c;可以再单独安装。之前的终端命令行不要关闭&#xff0c;再重新开一个&#xff0c;还需要再package.json文件的依赖中添加。 如果忘记之前是否有安…

机器学习:opencv--风格迁移

目录 前言 一、代码及步骤解释 1.图片与处理 2.加载模型 3.输出图像 前言 风格迁移&#xff08;Style Transfer&#xff09;是一种计算机视觉技术&#xff0c;旨在将一种图像的艺术风格应用到另一种图像上&#xff0c;同时保持其内容。 一、代码及步骤解释 1.图片与处理 …

滚雪球学Redis[7.1讲]:Redis实战案例

全文目录&#xff1a; &#x1f389;前言&#x1f6a6;1. 使用Redis实现会话管理在Web应用中使用Redis管理会话会话过期与刷新策略安全性考虑与优化 &#x1f9e9;2. 使用Redis实现缓存系统缓存的基本原理Redis缓存的应用场景缓存失效策略与雪崩预防 ✨3. Redis在排行榜系统中的…

VBA技术资料MF210:按顺序号复制工作表中的图片

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

EKS API查询慢排查

EKS API查询异常慢&#xff0c;一次查询得4~5s&#xff0c;命令补全也是需要API查询的&#xff0c;导致执行一次查询命令可能比平常花费10倍时间 现象 1、命令输入后返回慢 2、get edit delete所有操作都慢 排查 1、同样需要查询API的kuboard在执行各项操作时无延迟 2、升级…