abaqus模拟案例系列-复合材料热压罐固化残余应力仿真采用顺序耦合数值模拟方法采用子程序hetval、disp、usdfldfilm先计算温度场采用umat、uexpan、usdfld再计算应力场采用CHILEa线弹性模型树脂型号3501-6。复合材料热压罐固化仿真这事儿说难不难说简单也不简单。今天咱们拿Abaqus折腾3501-6树脂基复合材料的固化残余应力手把手看看怎么用顺序耦合方法搞掂温度场和应力场。先说温度场计算这块重点在子程序的配合使用。热分析阶段最核心的是HETVAL子程序处理固化放热。别被ABAQUS官方文档吓到固化反应热计算关键就那几行代码。看这段核心逻辑SUBROUTINE HETVAL(...) REAL*8 :: alpha, dalphaDT alpha 1.0 - exp(-(TIME/3600.0)**2) ! 固化度计算 dalphaDT 2*(TIME/3600.0)*exp(-(TIME/3600.0)**2)/3600.0 H(1) 350.0 * dalphaDT ! 树脂3501-6放热率 DH(1,1) 350.0 * (-2*(TIME/3600.0**2)*exp(-(TIME/3600.0)**2) )这里TIME单位是秒所以用3600做时间换算。固化度公式建议根据DSC测试数据调整别直接照搬我这个指数函数。特别注意DH矩阵的求导搞错了会导致温度场计算发散。边界条件处理用DISP子程序控制热压罐的热对流。有个坑要注意当零件温度超过热压罐设定值时得切换成自然对流系数。代码里加个条件判断就解决IF (TEMP(KSTEP).GT.180.0) THEN FILM(1) 25.0 ! 自然对流系数 ELSE FILM(1) 120.0 ! 强制对流系数 ENDIF温度场算准了才能继续搞应力场。这里有个骚操作用USDFLD把固化度场存到状态变量里后面UMAT直接调用。注意场变量的传递要保证单元类型一致别用C3D8T之类的减缩单元否则数据对不上。abaqus模拟案例系列-复合材料热压罐固化残余应力仿真采用顺序耦合数值模拟方法采用子程序hetval、disp、usdfldfilm先计算温度场采用umat、uexpan、usdfld再计算应力场采用CHILEa线弹性模型树脂型号3501-6。应力计算上UMAT是关键。复合材料的各向异性处理要特别注意特别是纤维方向的刚度变化。看这段弹性矩阵设置DO K11, NTENS DO K21, NTENS DDSDDE(K1,K2) 0.0 ENDDO ENDDO E1 120.0e3 * (1.0 0.2*STATEV(1)) ! 纵向模量随固化度变化 DDSDDE(1,1) E1/(1.0 - NU12*NU21) DDSDDE(2,2) E2/(1.0 - NU12*NU21) ...其余分量省略这里STATEV(1)存的就是固化度。注意树脂模量不是固定值实测3501-6树脂在完全固化时模量能达到4.2GPa得做成场变量函数。化学收缩应变用UEXPAN处理最方便。别傻乎乎地在UMAT里算应变增量直接EXPAN(1) 0.01*STATEV(1) ! 纤维方向 EXPAN(2) 0.35*STATEV(1) ! 横向 EXPAN(3) 0.35*STATEV(1) ! 厚度方向实测数据表明3501-6树脂的横向收缩是纵向的30倍左右这个比例系数得根据具体纤维含量调整。最后说下CHILE模型的应用要点。虽然叫线弹性模型但通过场变量实现了等效固化度影响。在材料定义里要关联多个场变量mdb.models[Model-1].materials[Composite].Elastic( table((120e3, 8.5e3, 8.5e3, 0.3, 0.3, 0.3), ), fieldDepends(ON, ON, ON, OFF, OFF, OFF))三个弹性参数分别对应三个场变量依赖。别忘了在USDFLD里更新这些场变量否则材料参数不会自动变化。算完别急着看云图先检查log文件里的单元状态。复合材料容易因为刚度突变导致单元扭曲特别是固化度从0到1跳变的位置。建议用自动稳定设置加个小量的阻尼step.StabilizationMagnitude0.0002 step.ContinueDampingFactorsON最后提醒温度场和应力场的网格可以不一样但映射精度要控制好。个人习惯用节点温度插值比直接映射单元结果更准。搞不定的话直接沿用相同网格最保险。