Abaqus及OpenSees一层一跨混凝土框架拟静力数值模拟对比试验 采用 3 种方法, 2 个软件, 对 1 层 1 跨混凝土框架进行低周反复荷载作用下的 数值模拟。 1 、 Abaqus 梁单元 + 子程序( PQFiber-UConcrete02+USteel02 ) 2 、 Abaqus 梁单元 + 子程序( i FiberLUT-iConcrete05+iSteel05 ) 3 、 OpenSees ( 刚度法 -concrete02+ steel02 )
最近在折腾一层一跨混凝土框架的拟静力数值模拟,用Abaqus和OpenSees两个软件试了三种不同配置,发现不同材料本构和单元算法对滞回曲线的影响比预想中刺激得多。咱们直接上干货聊聊具体操作。
第一种组合:Abaqus梁单元+PQFiber全家桶
先整了个B31梁单元配PQFiber子程序的模型。UConcrete02这个材料模型对混凝土受压软化处理比较直接,但受拉刚度的折减方式有点“暴躁”。在.inp文件里定义材料时得特别注意受压骨架线参数:
*Material, name=Concrete *User Material, constants=15 28, 0.002, 0.006, 2.0, 0.1, 0.8, 0.0002, 0.0005, 30.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0这里第三个参数0.006控制的是受压应力跌到零时的应变值,实际操作中发现当这个值超过0.008时,计算直接崩得亲妈都不认识。钢筋用USteel02倒是稳如老狗,但要注意各向同性强化参数别设太大,否则滞回环会显得过于“饱满”。
第二种玩法:A FiberLUT的魔改方案
换用iConcrete05材料本构时,滞回曲线明显出现捏缩效应。这货的受拉硬化参数有点玄学:
C 混凝土参数传递(子程序片段) varup(1) = eps(1) ! 当前应变 varup(2) = sig ! 当前应力 varup(3) = alpha ! 捏缩效应因子 if (eps(1).gt.0.0) then alpha = alpha + 0.15*(1.0 - exp(-5.0*eps(1))) endif这段Fortran代码里alpha参数控制的是卸载时的刚度退化速度,实测发现当系数从0.15调到0.2时,捏缩效果突然变得像被门夹过的百叶窗。不过iSteel05的循环强化特性确实比USteel02细腻,特别是在大位移反复加载时,Bauschinger效应模拟得更贴近试验数据。
OpenSees的暴力美学
切到OpenSees用刚度法建模时,Tcl脚本的简洁性让人感动哭:
uniaxialMaterial Concrete02 1 -28e6 -0.002 -5e6 -0.006 0.1 0.05 200e6 uniaxialMaterial Steel02 2 400e6 2e11 0.02 18 0.925 0.15 # 单元生成 geomTransf Linear 1 element nonlinearBeamColumn 1 1 2 3 1 1但这里有个巨坑——Concrete02的张力硬化参数(最后那个200e6)要是按手册推荐值设置,混凝土受拉刚度假的能直接捅穿楼板。实测发现改成50e6后,开裂区域的应力分布才正常点。不过OpenSees的计算速度确实能打,同样模型比Abaqus快3倍不止。
滞回曲线的修罗场
三种方法跑出来的骨架曲线在前两圈加载时基本重合,但从第三圈开始分野明显。Abaqus+PQFiber的承载力下降最猛,iFiberLUT方案在位移角4%时突然出现刚度回春现象(怀疑是纤维积分点分配的问题),OpenSees的结果倒是稳得一批,但捏缩效应表现过于“含蓄”。
有个邪门现象:当采用完全相同的网格密度时,Abaqus模型在梁端塑性铰区总会莫名出现应力震荡,后来把积分点从5个加到9个才镇住场子。而OpenSees用forceBeamColumn单元时,积分点数量对结果的影响反而微乎其微——这或许跟两者采用的迭代算法差异有关。
搞完这波对比,最大的感悟是:别信任何本构模型的默认参数,拿试验数据反演调参才是王道。下次试试把iConcrete05的参数移植到OpenSees里,估计又得掉一波头发...