说明

本人还只是一名编程小白,在本问题中也只是用了自己现有的这点水平,此外,这还是我第一次在此发表我的文章,对于文章中出现的一些错误希望读者能恰当的指出,欢迎在评论区交流。

问题的提出

今年的数学建模国赛A题就是我问题的来源,不过限于我的数学能力,对于问题的求解我只会给出第一问的求解方案。不过从最终的实际效果来看,我在第一问的处理上还是比较合适的,毕竟好歹得了个省奖。
在高温环境下工作时,人们需要穿着专用服装以避免灼伤。专用服装通常由三层织物材料构成,记为I、II、III层,其中I层与外界环境接触,III层与皮肤之间还存在空隙,将此空隙记为IV层。
为设计专用服装,将体内温度控制在37ºC的假人放置在实验室的高温环境中,测量假人皮肤外侧的温度。为了降低研发成本、缩短研发周期,请你们利用数学模型来确定假人皮肤外侧的温度变化情况,并解决以下问题:
(1) 专用服装材料的某些参数值由附件1给出,对环境温度为75ºC、II层厚度为6 mm、IV层厚度为5 mm、工作时间为90分钟的情形开展实验,测量得到假人皮肤外侧的温度。建立数学模型,计算温度分布。

问题的分析

这是个比较常见的热力学问题,只不过这个问题中,将介质分成了四层而已,如果你之前有学习过简单的热传导方程的相关知识,不难得出的是:在问题(Ⅰ)中,你需要把已知的皮肤外界温度分布用上,加入已知条件中,作为一个边界条件,这样,对这个问题,我们就有了两个边界条件:

  1. 第一层与外界环境接触边界温度始终假设为75℃不变;
  2. 假人皮肤外侧的温度分布。

以及一个初始条件,在这里我是这样处理的:假定假人放入75℃环境中的时刻,四层介质温度都为37℃,这样就有了一个初始条件。
为了得到温度的分布,我会使用有限差分的方法来解决这个问题,毕竟对于连续的热传导偏微分方程想要用连续的思想来求解还是挺有难度的。

问题的求解

热传导偏微分方程的建立

对于这个偏微分方程的建立,会需要用到非稳态传热方程:
由于隔层介质是没有热源的,所以qv=0,

以及我们刚开始提到的边界条件和初始条件,另外的连续性条件则说明了热传导的过程中,热量的传导是连续的,(3)中的qi(x,t)代表热流密度。

有限差分方法

好了,通过上面的内容我们已经得到了非稳态热传导的偏微分方程以及必要的几个条件,现在我们需要做的是如何把这样一个连续的方程变成一个离散的方程,所谓的离散,就是让时间和空间位置都离散为一个个的点,我们只需要得出在这个点上的温度。例如用一阶向前差分代替一阶偏导:
按照这样的思路,我们可以得到(2)式的差分形式:
除此之外,需要得到边界条和初始条件的差分方程,这并不难,需要处理的是要将假人皮肤外表面温度分布拟合出来,通过使用matlab自带的NNtool工具箱,选择一种拟合函数,我在这里用的是Gaussian拟合,最终得出的近似边界方程为:
综合前面的所有差分方程,我们得到一个方程组:
有了这个方程组之后,剩下的工作就是编程序了,不过对于这种差分方法,有一个弊端就是:差分会带来一定得误差,并且会传递,导致误差的一个积累,为了使得结果在一定的误差允许范围内,差分时需要满足一个条件:网格傅里叶准则,在本问题当中即进行以下处理:
我这里之所以将空间上的划分为两个部分,目的在于减小运算次数,减少划分出的网格空间。
最后献上我的matlab代码:

%%非稳态热传导差分
clc;clear;
p(1:4)=[ 300   862 74.2    1.18];       %介质密度向量
c(1:4)=[ 1377  2100    1726    1005];         %介质比热容向量
s(1:4)=[ 0.082 0.37    0.045   0.028];   %介质热传导率向量
d(1:4)=[ 0.6   6   3.6 5];     %介质厚度向量
X=15.2*0.001;                             %介质总长度M(1:4)=[7,67,103,108];                  %差分后各个界面的位置
N=540000;                                  %对时间差分的总间隔
dt=0.01;                                   %时间间隔为0.01s
M(1:4)=[7,67,103,108];
dx(1:4)=[0.1*0.001 0.1*0.001 0.1*0.001 1*0.001];%不同介质对x的差分间隔向量
a(1:4)=[1.98499E-07 ,2.04397E-07 ,3.51373E-07 ,2.36108E-05];  %常系数a=s/(c*p)
alpha(1:4)=a*dt/dx.^2;
for i=1:M(4)U(i,1)=37;                                              %初始条件
end
for j=2:N+1U(1,j)=75;                                              %边界条件
end
for i=1:N+1                                                 %Ⅳ层右侧温度分布a1 =        47.44 ;b1 =        5212 ;c1 =        4664  ;a2 =        5.791  ;b2 =        250.6  ;c2 =        428.2  ;a3 =        9.624  ;b3 =        617.6  ;c3 =        899.2 ;a4 =        19.28 ;b4 =        1377 ;c4 =        2036  ;x=i*dt;
U(108,i)= a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2) + a3*exp(-((x-b3)/c3)^2) + a4*exp(-((x-b4)/c4)^2)+0.9;             %拟合函数
end for j=1:Nfor i=2:M(4)-1if(i<=M(1))alpha_use=alpha(1);else if(i>M(1) && i<=M(2))alpha_use=alpha(2);else if(i>M(2) && i<=M(3))alpha_use=alpha(3);else if(i>M(3) && i<=M(4))alpha_use=alpha(4);               %判断不同介质以区分end end end end              U(i,j+1)=U(i,j)+alpha_use*(U(i-1,j)+U(i+1,j)-2*U(i,j));  %差分迭代公式end
end
h(:,:)=U(1:108,1:100:N+1);                                 %存储温度分布数据
i=1:5401;
%做出介质分界面处温度分布
figure(1);
plot(i,h(7,:),'-r',i,h(67,:),'--b',i,h(103,:));
legend('Ⅰ、Ⅱ层分界面温度分布℃','Ⅱ、Ⅲ层分界面温度分布℃','Ⅲ、Ⅳ层分界面温度分布℃');
%做出三维温度分布图
figure(2);
i=1:108;
j=1:5401;
surf(i*0.1,j,h(i,j)');
colorbar;
shading interp;         %取消图像网格线
xlabel('位置(mm)');
ylabel('时间(s)');
zlabel('温度℃');
%做出不同时刻温度随位置变化曲线图
figure(3);
plot(i*0.1,h(:,10),'-r',i*0.1,h(:,50),'-b',i*0.1,h(:,100),'-g');
legend(' 10s时刻不同位置温度分布℃','50s时刻不同位置温度分布℃','100s时刻不同位置温度分布℃');

运行结果图为:


关于假人皮肤外侧热传导问题的差分法求解相关推荐

  1. python有限元传热求解_二维稳态热传导基本方程的有限元求解(2)

    四节点矩形单元 在二维稳态热传导基本方程的有限元求解(1)这篇文章中,我们仅仅给出了有限元单元方程的一种比较标准的推导步骤,并未涉及某种具体的单元.且在式(20)中,单元 上温度 的近似函数表示成节点 ...

  2. C语言利用差分法求解泊松方程

    C语言实现二维泊松方程五点差分法 给定一个泊松方程如下, { − Δ u = f  in  Ω , u =

  3. Newmark方法和中心差分法求解单自由度时程曲线

    首先通过地震波绘制反应谱,随后根据周期为1s时的加速度反应谱值对地震加速度进行调幅,随后进行计算得到结构的位移时程曲线,速度时程曲线以及加速度反应谱 import numpy as np import ...

  4. Python 一维波动方程差分法求解及可视化

    Python 一维波动方程数值解及可视化 一.效果展示 两端固定,初值条件为 φ ( x ) = sin ⁡ ( 3 π x ) \varphi(x) = \sin(3 \pi x) φ(x)=sin ...

  5. matlab离散数据差分法,MATLAB中用差分法求解函数 or 离散数据的一阶导数和二阶导数...

    再进行编程.以下是我的求解程序: clc;clear all h=0.01; %x属于[a,b] a=-5;b=5; x=a:h:b; n=length(x); %定义y y=sin(0.3*x).* ...

  6. matlab差分法求解ppt,Matlab实现电磁场数值计算.ppt

    Matlab实现电磁场数值计算.ppt * 第 2 章 * Matlab在电磁场中的几个应用 Matlab 实现电磁场数值计算 均匀带电线段的电场 均匀带电半圆环圆心的电场 Matlab直观描述复杂的 ...

  7. 2018年国赛高教杯数学建模A题高温作业专用服装设计解题全过程文档及程序

    2018年国赛高教杯数学建模 A题 高温作业专用服装设计 原题再现   在高温环境下工作时,人们需要穿着专用服装以避免灼伤.专用服装通常由三层织物材料构成,记为I.II.III层,其中I层与外界环境接 ...

  8. 2014-2019CUMCM_题型总结

    2014-2019高教社杯题型总结 2014 本科组 A 嫦娥三号软着陆轨道设计与控制策略 嫦娥三号于2013年12月2日1时30分成功发射,12月6日抵达月球轨道.嫦娥三号在着陆准备轨道上的运行质量 ...

  9. 防热服的设计数学建模_2018数学建模A题优秀论文:高温作业专用服装设计

    高温作业专用服装设计 摘 要 本文针对多层材料的高温作业服装的传热问题进行研究,综合考虑多种传热方式建立传热模型,并以此模型为基础解决了服装设计中各层材料最佳厚度的问题. 对于问题一,要求在热物性系数 ...

  10. 历年数学建模特等优秀论文汇总

    2018A 高温作业服设计 高温作业服可以避免高温灼伤,在实际作业中有广泛应用.本文对高温作业服的优 化设计进行研究,分析作业服的传热过程,综合考虑各种传热方式.边界和初始条件, 建立非稳态一维传热模 ...

最新文章

  1. python错了怎么修改密码_如何用python更改windows开机密码?
  2. QT学习-核心类列表-33、QtTest 34、QtUiTools
  3. 【Linux】安装CUDA和cudnn
  4. JavaScript的运动 —— 缓冲运动及其应用篇
  5. 曲面设计步骤pdf_3dmax模渲大师|室外设计师怎么用3dmax疯狂模渲大师制作室内设计效果图的外景天空?...
  6. 打靶法matlab求边值问题代码,数学实验“微分方程组边值问题数值算法(打靶法,有限差分法)”实验报告(内含matlab程序)...
  7. 20162303 实验二 树
  8. 分布式MySQL集群方案,看看京东是怎么做的
  9. js获取request参数值(javascript 获取request参数值的方法)
  10. 特斯拉和SolarCity推出太阳能屋顶瓦片
  11. Linux抓包(wireshark+tcpdump)
  12. PythonC++相互混合调用编程全面实战-24QT按钮事件的Open槽函数中调用python函数
  13. 国产游戏表 (来自游侠)
  14. 后端码农谈前端(CSS篇)第二课:CSS的5个来源
  15. 2018年用户体验设计的10个趋势
  16. 解决2016版OneNote做代码笔记全流程
  17. MySQL中LOCATE()函数的详解
  18. 名编辑电子杂志大师教程 | 如何制作手机版电子杂志
  19. c语言位运算符的应用,c语言位运算(c语言位运算符的用法)
  20. 微软IE7更多细节大揭密(转)

热门文章

  1. 计算机桌面图片查看,在CAD看图中如何快速的打开电脑桌面上的图纸进行预览查看...
  2. 小知识·OTG工作原理
  3. 抓取豆瓣电影时遇到的问题记录
  4. linux vi命令怎么使用方法,Linux下 vi 命令用法
  5. 无刷驱动设计——浅谈MOS驱动电路
  6. shell脚本小程序之特洛伊木马示例
  7. [和秋叶一起学ppt]四步教你变身高富帅ppt(笔记)
  8. “蔡徐坤微博转发过亿”幕后推手一审获刑五年
  9. 【建模算法】基于遗传算法求解TSP问题(Python实现)
  10. 牛客刷题——剑指offer