小木虫 --- 600万学术达人喜爱的学术科研平台

首页 >> 仿真模拟 >>查看话题

【求助】ANSYS移动热源瞬态热分析,仿真结果温度高的离谱,求教大家是什么原因

我用ANSYS模拟在长方体物体表面施加移动的高斯激光热源,分析物体的温度场分布情况,仿真出来结果的温度比预期值高非常多(比如预期的温度是2百多,仿真出来的是四五百度)

另外一个异常是,将网格加密后,温度会显著上升
单元使用的是Solid70,网格为边长相等的立方体
分别按边长为0.2mm、0.1mm、0.05mm进行网格划分,仿真出的最高温度如下表所示

不同网格密度仿真出来的最高温度几乎成倍数地发生变化,正常来说网格变化应该不会引起这么大的差别啊
我自己找原因,发现沿着深度方向,热量只能从一个单元的上层节点传递到本单元下层节点,但从该单元的下层节点就无法传递到与其相邻的更下一层的单元了。如下图所示,除了最上面一层单元有温升外,其他单元的温度均为初始温度

求指导,求帮助~
我金币就这么多了,希望大家不要嫌弃:jok:
有类似问题的朋友也欢迎来交流讨论~
最后附上命令流,为方便阅读删去了定义材料参数和定义热源方程部分,完整的APDL可在附件中下载
/prep7
/unit,si
et,1,solid70
!****材料属性设置****  
!粉末密度445kg/m3
! 比热容:2660J/(kg·K)
! 热导率:0.111W/(m·K)
!*******************
!****模型几何参数设置****
length=2.5e-3    !长5mm
width=0.4e-3     !宽1mm
height=0.5e-3  !高0.5mm
!**********************
block,0, length,0, width,0, height  
Esize,0.1e-3
vmesh,all
!*************************
TUNIF,172 !预热温度
FINISH
/SOL
!****激光参数设置****
P=12          !功率为12W
w0=0.15e-3  !光斑半径为0.15mm
v=3.5    !激光扫描速度为3.5m/s
d=0.12e-3   !激光扫描间距为0.12mm
!**********************
! ****瞬态求解参数设置****
lstep=0.1e-3 !扫描步长为0.1mm
time_step=lstep/v !载荷步时间大小
ANTYPE,4   !定义新分析
TRNOPT,FULL
TOFFST,273, !定义摄氏度的温度偏移量
!*  
TIMINT,1  !打开时间积分选项进行瞬态分析
TINTP, ,0.25250625,0.505, , , , !这条语句是GUI附送的,不知道有没有问题
!*  
!************************
OUTRES,ERASE
OUTRES,ALL,1
my_time=0
XX=0.2e-3    !XX,YY用于定义局部坐标的原点
YY=0.2e-3
!**** 高斯光束能量公式定义(GUI方式自动生成)****
!****GAUSS=2*P/(PI*(w0)^2)*exp(-2*({X}^2+{Y}^2)/(w0)^2)****
LOCAL,11,0,XX,YY,height  !定义局部坐标系11
....
....
! End of equation: 2*P/(PI*(w0)^2)*exp(-2*({X}^2+{Y}^2)/(w0)^2)
!-->
!*************************************************
!****循环求解*******
*DO,i, 0,10,1
LOCAL,11,0,XX,YY,height
!****每个载荷步的求解参数设置****
my_time=my_time+time_step
TIME,my_time
AUTOTS,1
DELTIM,time_step/100, time_step/200, time_step/10,1   
KBC,1   
!*  
TSRES,ERASE
!*
!********************************
!****加载****
SFA,2,1,HFLUX,%GAUSS%
!*************
!****求解,完成后删除载荷****
ALLSEL,ALL
SOLVE
SFADELE,2,1,HFLUX
!****************************
XX=XX+lstep
*ENDDO
最后再次感谢~

用户评论

一开始我非常担心编校质量,因为我从未使用过专业的编校公司。抱着试一试的想法用了朋友向我推荐的专业君论文。 事实证明专业君论文做得很出色!
除了编辑精准的表达和规范专业术语之外,我更欣赏专业君论文高度的敬业精神。
非常吃惊编辑居然为我做了三次免费修改,完全出乎我的意料。
受益于专业君论文 的仔细修订,我的文章最终被Experimental Brain Research接收。虽然影响因子不高,但非常高兴第一次被SCI期刊接收。

导热率 0.111 太小了,属于绝热材料,所以热量传不到里面去,全部用来加热表面单元了。

用的软件不一样,帮不了你的忙,给你加油:D

2楼: Originally posted by shgao20 at 2017-04-19 08:06:32
导热率 0.111 太小了,属于绝热材料,所以热量传不到里面去,全部用来加热表面单元了。
大神,导热系数低可能有影响但我觉得不是导致温度过高的最主要原因
我把导热系数调大100倍(变为11.1W/K·m),仿真得出的结果相比导热系数为0.111的情况温度只下降了不到30度,热量也几乎没传下去

您再帮我分析分析哪里还有问题呗

祝福     祝福

你先选取一个金属材料的球星,仿真看一下结果,在确定是命令流问题还是材料问题

你先选取一个金属材料的球星,仿真看一下结果,在确定是命令流问题还是材料问题

请问下你预期数值是怎么来的?简单的估计可以得到如下结果:
http://pan.baidu.com/s/1bOGCNG
说明你的网格远不够细。

6楼: Originally posted by thingisshit at 2017-04-19 09:58:25
你先选取一个金属材料的球星,仿真看一下结果,在确定是命令流问题还是材料问题
我将材料改成铁的材料参数(导热系数70W/m·K,密度7833kg/m3,比热容448J/kg·K),分别用不同网格大小仿真出的结果如下

温度的变化还是挺大的
而且我在0.1mm网格划分时,分别用功率P=12W和功率P=1000W进行仿真,仿真出来的结果除了温度数值发生变化外,温度分布基本一样
12W时的结果:

1000W时的结果:

在表面温度最高点处沿深度的温度分布比较:

命令流里应该有问题:(

8楼: Originally posted by hsyEsperanto at 2017-04-19 12:36:56
请问下你预期数值是怎么来的?简单的估计可以得到如下结果:
http://pan.baidu.com/s/1bOGCNG
说明你的网格远不够细。
请问您用来估算的是什么公式?没看懂:rol:
不过估算出来是3千多度有点太高了吧
我模拟的是激光烧结尼龙12粉末,尼龙12(PA12)的熔点在180左右,正常烧结时的温度应该不会超过300度,如果温度达到3000多度就碳化或气化了
问题是现在的温度已经过高了,如果网格划分得更细的话温度会更高,离实际情况更远了

各位大神,问题还没有解决,这个帖子不要沉啊:rol::rol::rol:

大家不要被我的问题描述给限制住思路了
跳出我这个模型来讲,有哪些问题可能会导致最后的仿真结果温度过高?
求过来人说一下,卡在这个问题上已经快一个多月了,我现在都没有调试思路了:(:(:(
感激不尽!

利用高斯热源模拟时一定要注意热源区域的网格密度,通常高斯有效加热半径内的网格在20到50之间为佳,

单位系统统一吧?

热学表示不懂,马上改做器件了,也得用ansys模拟,求大神带,不管怎样,帮你顶一下,这么好的话题,可不能沉了

嗯,用的软件不一样估计也帮不上忙,不过从你给的条件来看试验条件下确实会产生一个melting pool,不知道你考虑了没,另一个是时长,还有一个是高斯激光下的non—Fourier heat tansfer  effect

感觉你前一步的结果没有继承下来,每次新的求解,缺少各步结果的叠加。

另一个问题是:你的计算时间只有 0.314E-3,太短了,热量还来不及传进去。

10楼: Originally posted by luoyehsw at 2017-04-19 16:24:01
请问您用来估算的是什么公式?没看懂:rol:
不过估算出来是3千多度有点太高了吧
我模拟的是激光烧结尼龙12粉末,尼龙12(PA12)的熔点在180左右,正常烧结时的温度应该不会超过300度,如果温度达到3000多度就碳化 ...
状态变化ansys不会自动判断

10楼: Originally posted by luoyehsw at 2017-04-19 16:24:01
请问您用来估算的是什么公式?没看懂:rol:
不过估算出来是3千多度有点太高了吧
我模拟的是激光烧结尼龙12粉末,尼龙12(PA12)的熔点在180左右,正常烧结时的温度应该不会超过300度,如果温度达到3000多度就碳化 ...
状态变化ansys不会自动判断

出现固态向液态变化正常需要吸收大量热,但是ansys没有自动判断状态转换

建议你将终止时间设置的长一些,或者干脆做稳态分析,看看温度如何。

大神,你好,我也是做这一块的,我想问一下你的移动热源是怎么让他在你指定的路径上移动的,先谢大神了

不知道你的问题解决了没有。试了一下,就是我前面提到的两个问题:
   1  导热系数 0.111 W/(m*K)  太小了,温度无法传进去;
   2  计算终止时间 0.314E-3 太小了,温度还来不及传进去。
  使用你的模型,采用不同的导热系数和终止时间,算了一些结果,给你参考一下:
  (1)  Kxx=0.111,Time,0.314E-3:
       最高温度结果  419; 最低温度 172;最大温度截面,温度大于 172 的深度占高度的约 8%;
       172 为对流边界的介质温度,下同;
  (2)  Kxx=0.111,Time,0.1:
       最高温度结果  375; 最低温度 172,温度大于 172 的深度占高度的约 10%;
  (3)  Kxx=0.111e1,Time,0.314E-3:
       最高温度结果  415; 最低温度 172,温度大于 172 的深度占高度的约 14%;
  (4)  Kxx=0.111e1,Time,0.1:
       最高温度结果  232; 最低温度 172,温度大于 172 的深度占高度的约 40%;
  (5)  Kxx=0.111e2,Time,0.311E-3:
       最高温度结果  385; 最低温度 172,温度大于 172 的深度占高度的约 17%;
  (6)  Kxx=0.111e2,Time,0.1:
       最高温度结果  178; 最低温度 172,温度大于 172 的深度占高度的约 95%;
    由以上结果可以看到:加大导热系数,温度向内部传递会有所增加,但是修改不如加大终止时间。
    有关的结果图片见网盘:  https://pan.baidu.com/s/1i5R0DsL
    其中 6 个图片分别对应上述结果;一个 txt 文件是计算的命令流。

24楼: Originally posted by shgao20 at 2017-04-24 08:17:40
不知道你的问题解决了没有。试了一下,就是我前面提到的两个问题:
   1  导热系数 0.111 W/(m*K)  太小了,温度无法传进去;
   2  计算终止时间 0.314E-3 太小了,温度还来不及传进去。
  使用你的模型,采用不 ...
非常感谢您这么热心的帮助我:arm::arm:
我把热源模型从平面高斯分布热源改成体热源的双椭球热源模型后,温度就降下来了,最高温度在2百多度左右
双椭球热源模型考虑了熔池的影响,可能之前温度非常高得原因之一就是在仿真时没有把熔池考虑进去
至于您说的将求解时间延长的方法可能不适用于我要仿真的工艺情况,每一步的仿真时间是由激光的扫描速度决定的,而扫描速度是3500mm/s
如果我以0.1mm的距离为步长进行仿真的话,3.5m/s的激光扫过这个步长的时间就只有这么点
要命的是激光的热影响区非常小(激光半径0.15mm),步长距离设的太大两次加热中心之间的区域就可能有部分没被加热到,不符合连续扫描的工艺情况
如果要用平面高斯热源来仿真的话,可能就需要如前面的大神所说的一样,考虑非傅里叶传热的影响了
再次感谢~~~

23楼: Originally posted by 18363858155 at 2017-04-22 19:51:50
大神,你好,我也是做这一块的,我想问一下你的移动热源是怎么让他在你指定的路径上移动的,先谢大神了
我的做法是将热源的方程定义在局部坐标系上,让后再求解的每个载荷步中改变这个局部坐标系的原点位置,就能实现热源的移动了
主要实现这个功能的就是这几句语句:
....
LOCAL,11,0,XX,YY,ZZ  !定义局部坐标系11
....
....
*SET,_FNCCSYS,11  !将方程坐标系设定为自己定义的局部坐标系
*DIM,%_FNCNAME%,TABLE,6,24,1,,,,%_FNCCSYS%
...
然后在后面修改XX、YY、ZZ的值,再执行一次LOCAL,11,0,XX,YY,ZZ就能通过改变局部坐标系的原点来改变热源的位置
具体语句不知道什么意思的话可以看HLEP文件

10楼: Originally posted by luoyehsw at 2017-04-19 16:24:01
请问您用来估算的是什么公式?没看懂:rol:
不过估算出来是3千多度有点太高了吧
我模拟的是激光烧结尼龙12粉末,尼龙12(PA12)的熔点在180左右,正常烧结时的温度应该不会超过300度,如果温度达到3000多度就碳化 ...
恒热流无限大平板。
12W, 0.15mm功率太高了吧?500mW,就Class4 了。

厉害,很好的帖子

24楼: Originally posted by shgao20 at 2017-04-24 08:17:40
不知道你的问题解决了没有。试了一下,就是我前面提到的两个问题:
   1  导热系数 0.111 W/(m*K)  太小了,温度无法传进去;
   2  计算终止时间 0.314E-3 太小了,温度还来不及传进去。
  使用你的模型,采用不 ...
*DO,j,1,2,1
*DO,i,1,10,1
LOCAL,11,0,XX,YY,height
!****每个载荷步的求解参数设置****
my_time=my_time+time_step
TIME,my_time*i*j
AUTOTS,1
DELTIM,time_step/100, time_step/200, time_step/10,1   
KBC,0   
!*  
TSRES,ERASE !Defines an array of key times at which the time-stepping strategy changes.
!*
!********************************
!****加载****
!*  
SFA,2,1,HFLUX,%GAUSS%  
!*************
!****求解,完成后删除载荷****
ALLSEL,ALL
!save
SOLVE
!SFADELE,2,1,HFLUX
!****************************
XX=XX+lstep
*IF,XX,GE,10,then
XX=1
*ENDIF
*ENDDO
YY=YY+lstep
*ENDDO
我给楼主的命令加了个一层循环,想实现多道直线热源移动,
结果显示:present time 6.2875e-5 is less than the previous in a transient analysis
多道直线变成-------------
                                   --------------------
这个样子了,请问 金虫  是什么原因呢

26楼: Originally posted by luoyehsw at 2017-04-26 21:15:42
我的做法是将热源的方程定义在局部坐标系上,让后再求解的每个载荷步中改变这个局部坐标系的原点位置,就能实现热源的移动了
主要实现这个功能的就是这几句语句:
....
LOCAL,11,0,XX,YY,ZZ  !定义局部坐标系 ...
*DO,j,1,2,1
*DO,i,1,10,1
LOCAL,11,0,XX,YY,height
!****每个载荷步的求解参数设置****
my_time=my_time+time_step
TIME,my_time*i*j
AUTOTS,1
DELTIM,time_step/100, time_step/200, time_step/10,1   
KBC,0   
!*  
TSRES,ERASE !Defines an array of key times at which the time-stepping strategy changes.
!*
!********************************
!****加载****
!*  
SFA,2,1,HFLUX,%GAUSS%  
!*************
!****求解,完成后删除载荷****
ALLSEL,ALL
!save
SOLVE
!SFADELE,2,1,HFLUX
!****************************
XX=XX+lstep
*IF,XX,GE,10,then
XX=1
*ENDIF
*ENDDO
YY=YY+lstep
*ENDDO
我给楼主的命令加了个一层循环,想实现多道直线热源移动,
结果显示:present time 6.2875e-5 is less than the previous in a transient analysis
多道直线变成:----------------
                                          ------------------------
这是什么原因呢楼主 :rol::rol::cry::cry:

30楼: Originally posted by 孙共和 at 2017-04-27 14:54:41
*DO,j,1,2,1
*DO,i,1,10,1
LOCAL,11,0,XX,YY,height
!****每个载荷步的求解参数设置****
my_time=my_time+time_step
TIME,my_time*i*j
AUTOTS,1
DELTIM,time_step/100, time_step/200, time_step/10,1    ...
将比较值改为1.2e-3即可
现在问题就是这个时间步的问题 TIME 该怎么设置呢:cry::cry:

31楼: Originally posted by 孙共和 at 2017-04-28 18:28:57
将比较值改为1.2e-3即可
现在问题就是这个时间步的问题 TIME 该怎么设置呢:cry::cry:...
TIME,my_time*i*j中的i*j不需要
my_time本来就是一个自增量,每循环一次值增加一个time_step
用TIME,my_time即可

32楼: Originally posted by luoyehsw at 2017-05-02 14:03:47
TIME,my_time*i*j中的i*j不需要
my_time本来就是一个自增量,每循环一次值增加一个time_step
用TIME,my_time即可...
谢谢楼主:tiger05:

楼主 你好啊           我有个问题请教你:               。。。。。。。。。。。。。。
                                                                                                            。
                                                                     。。。。。。。。。。。。。。
                                                                     。
                                                                     。。。。。。。。。。。。。。
                                                                                                            。
                                                                     。。。。。。。。。。。。。。
如图,这样的命令流该怎么实现呢?:rol::rol: