找回密码
 注册
Simdroid-非首页
查看: 648|回复: 8

[子程序] 复合材料固化中固化度场—温度场耦合子程序的分析和结论

[复制链接]
发表于 2012-2-26 20:52:51 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 fuyizhi 于 2012-2-26 20:54 编辑

在帖子http://forum.simwe.com/thread-914156-1-1.html中,tony_Vonjuliette调通了固化度场—温度场耦合四子程序,有几个疑问,希望能和各位讨论一下
tony_Von帖子中的四个子程序如下:
子程序一:USDFLD(重新定义材料点上的场变量,不知道这个翻译对不对)
subroutineusdfld(field,statev,pnewdt,direct,t,celent,
     1 time,dtime,cmname,orname,nfield,nstatv,noel,npt,layer,
     2 kspt,kstep,kinc,ndi,nshr,coord,jmac,jmtyp,matlayo,laccfla)
include 'aba_param.inc'
character*80 cmname,orname
character*3  flgray(15)
dimension field(nfield),statev(nstatv),direct(3,3),
     1 t(3,3),time(2)
dimension array(15),jarray(15),jmac(*),coord(*)       !jmatyp(*),
callgetvrm('TEMP',array,jarray,flgray,jrcd,
     $     jmac, jmtyp, matlayo, laccflg)
temp = array(1)
if(kinc.eq.1)then
      statev(1)=1E-4   
      else
      field(1)=statev(1)
      endif
return
end
子程序二:DISP(定义温度边界)
      SUBROUTINEDISP(U,KSTEP,KINC,TIME,NODE,NOEL
1 JDOF,COORDS)
      INCLUDE 'ABA_PARAM.INC'
      DIMENSION U(3), TIME(2),COORDS(3)
IF(TIME(2).LE.2400.)THEN
U(1) = 303.+TIME(2)/24.
      ELSE IF(TIME(2).LE.4200.)THEN
U(1) = 403.
      ELSE IF(TIME(2).LE.5400.)THEN
U(1) = 403.+(TIME(2)-4200.)/24.
      ELSE
U(1) = 453.
      END IF
      RETURN
      END
子程序三:FILM(定义换热系数和环境温度)
      SUBROUTINE FILM(H,SINK,TEMP,JSTEP,JINC,TIME,
1 NOEL,NPT,COORDS,
     1 JLTYP,FIELD,NFIELD,SNAME,JUSERNODE,AREA)
      INCLUDE'ABA_PARAM.INC'
      DIMENSION H(2),COORD(3),TIME(2),FIELD(NFIELD)
      CHARACTER*80 SNAME
C H(1) FILM COEFFICIENT AT THIS POINT.
C SINK : THE SAME TEMPETATURE OF THE CURE CYCLE.
H(1) = 15
IF(TIME(2).LE.2400.)THEN
      SINK = 303.+TIME(2)/24.
      ELSE IF(TIME(2).LE.4200.)THEN
      SINK = 403.
      ELSE IF(TIME(2).LE.5400.)THEN
      SINK = 403.+(TIME(2)-4200.)/24.
      ELSE
      SINK = 453.
      END IF
      RETURN
      END
子程序四:HEATVAL(定义内热以及固化度)
      SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,
1 STATEV,FLUX,PREDEF, DPRED)
      INCLUDE'ABA_PARAM.INC'
      CHARACTER*80 CMNAME
      DIMENSION TEMP(2),STATEV(3),PREDEF(1),TIME(2),
1 FLUX(2),DPRED(1)
IF(TEMP(1).LT.203.)THEN
STATEV(2) = 0.0
      ELSE
C     STATEV(2) = 3270.*EXP(-6820./U(1))* (1.-STATEV(1))
      STATEV(2) = 0.327*(1.-STATEV(1))
STATEV(1) = STATEV(1)+ STATEV(2)* DTIME
      END IF
FLUX(1) = 242971740* STATEV(2)
      RETURN
      END
为了缩短篇幅,将所有注释语句删了。
分析和结论:
1、HAETVAL子程序中的语句STATEV(2) = 3270.*EXP(-6820./U(1))* (1.-STATEV(1))中的U(1)改为TEMP,再将下一语句删除,程序能跑通,这样比较符合树脂基固化动力学方程。
2、 子程序DISP在固化模拟中有什么作用?个人认为,给构件定义一个初始温度(通过预定义场定义不用通过子程序),再通过子程序FILM定义环境温度和对流换热系数,不就可以吗?通过验证,这样是可以的。但是因为在http://forum.simwe.com/thread-914156-1-1.html中和庄茁老师的例子中都有DISP这个程序,所以个人关于能不能删掉这个子程序还有些疑问,是否这个程序里面还有一些隐藏功能。希望和各位讨论讨论。
发表于 2012-3-5 10:41:47 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
是的。做顺序耦合的话,UMAT应该比较容易编的,主要难度在数据导入上,我自己还没玩过这么高级的功能呢。。。uexternaldb可以尝试一下
至于资料嘛,本来做这东西的人就不多,做出来了也是团队内部交流,网上是难找的。终究还得靠自己,唉
回复 1 不支持 0

使用道具 举报

 楼主| 发表于 2012-3-4 16:46:34 | 显示全部楼层 来自 北京
附加问题:我这个分析是热分析,因此在CAE里面我只定义了和热有关的材料常数,然后在field output里面定义 FV(predefined  field  variables)输出固化度,但是结果是输出不了,当我在材料里面加上elastic定义,再定义其number of field variables 为1 的时候才能输出固化度,粗看了一下帮助文档,找不到答案,细看又没什么时间,所以就着一起提问了
回复 不支持

使用道具 举报

发表于 2012-3-4 21:08:37 | 显示全部楼层 来自 江苏南京
我也认为DISP在固化模拟中没用,环境温度的变化直接在FILM中定义就行了。
树脂固化动力学方程原式是简化的而已。
关于number of field variables,我用UMAT做的,没注意,但材料定义时User Defined Field和Depvar 要选出来的.

回复 不支持

使用道具 举报

发表于 2012-3-4 21:11:39 | 显示全部楼层 来自 江苏南京
顺便问下LZ:有没有用该程序做复合材料层合板固化模拟?
层合板功能不支持C3D8T的问题有没有好的方法解决?
回复 不支持

使用道具 举报

 楼主| 发表于 2012-3-4 22:32:31 | 显示全部楼层 来自 北京
SimCaesar 发表于 2012-3-4 21:08
我也认为DISP在固化模拟中没用,环境温度的变化直接在FILM中定义就行了。
树脂固化动力学方程原式是简化的 ...

关于number of field variables的问题,原因刚出来了,必须得在材料参数中任何一个参数中定义一下field。
第二个问题,我也愁啊,固化涉及到温度场和变形,用coupled temp-displacement做事最好的,但是尼玛这个C3D8T不支持层合板啊,我想来想去只有两种方法:1,自己写单元,还没有尝试,不知道工作量和难度,不知道正确性;2,用顺序耦合的方式,先用Heat transfer做固化度-温度场的模拟,然后导到静力分析中做变形的分析,得自己写umat,umat中材料的属性是固化度的函数,如果直接导入热分析的ODB文件不能导入固化度场的话通过其他的一些方法应该还是能导入固化度的,Subroutine uexternaldb子程序就是输入和输出的,这个方法没有验证过,同样也不知道难度。唉,网上没有一个关于全固化的例子,都得自己摸索啊。
回复 不支持

使用道具 举报

发表于 2016-4-18 09:19:25 | 显示全部楼层 来自 上海
这个贴得顶下
回复 不支持

使用道具 举报

发表于 2016-4-25 16:16:56 | 显示全部楼层 来自 山西太原
顶一下,谢谢
回复 不支持

使用道具 举报

发表于 2018-10-6 16:59:36 | 显示全部楼层 来自 天津
有用UMATHT子程序定义材料温度属性的吗?想问一下这个子程序怎么调用
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-1 23:28 , Processed in 0.039902 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表