胡兴宇
(土木工程学院(重庆交通大学), 重庆 400041)
在模拟车辆荷载计算时,移动荷载功能是必不可少的。ABAQUS中用户界面可以通过在结构表面通过partution命令创建移动荷载的轨迹,通过相邻的矩形方块组成,根据移动的速度和轨迹距离来激活相应的矩形方块荷载,但是如果轨迹长度非常长,会导致工作相当繁琐,分析步可能会成百上千,俗称“荷载移动带”。子程序可以完全解决这些问题,并且可以根据用户需要的方式继续模拟,大大减少了建模时间,计算结果十分精确,避免了多个分析步造成的错误。
模拟车辆荷载的作用首先需要确定作用面积和速度,然而在ABAQUS软件中,作用面积是不能直接人为选定的,需要用户在模拟荷载时简单创建处荷载整个过程需要经过的轨迹,之后只需要在子程序中赋予每一个车辆的长度即可。
Abaqus已经可以通过python语言进行功能开发了,但本文采用通用数学Fortran语言进行编写。在用户手册中,荷载类型主要用DLOAD和UTRACLOAD两种,在车辆荷载模拟中,DLOAD主要用于模拟车轮竖向荷载,UTRACLOAD用于模拟车轮水平摩擦荷载。
DLOAD和UTRACLOAD编写格式类似,本节以
DLOAD为例编写。
DLOAD实现格式如下:
SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS(3)
CHARACTER*80 SNAME
USER’S CODES
RETURN
END
上述代码中其实部分是子程序的固定模式,F代表的荷载值,KSTEP代表在第几个分析步时被调用,KINC即是代表增量步,TIME(1)和TIME(2)分别代表当前时间和总时间,这对用户控制变化荷载极为有用,NOEL和NPT分别代表单元号和积分点号,COORDS(I)用于激活移动荷载的方向,I=1、2、3分别代表下沿x、y、z方向与移动,用户只用通过IF从句赋予F即可模拟出荷载移动。
车辆通过路面或者桥面时,遇到路面不平整将会产生跳车现象,本节根据这一现象模拟车辆后轮对桥面板的冲击进行模拟。
模型参数:混凝土材料选用C40,桥面板长为10m,宽为4m,厚度为0.4m,钢筋采用HRB335,分布在桥面板上层和下层,跳车车辆荷载峰值取30KN,采用文献中公式推导曲线,作用时间为0.03s。
由于跳车荷载时随着时间不断变化的,本文通过得到的冲击荷载曲线进行公式拟合,得到相应的公式,再通过一下条件语句赋予:
IF((X_NOW.GE.ROLL_1_1).AND.(X_NOE.LE.ROLL_1_0))THEN IF(KSTEP.EQ.1)THEN F=F(t) END IF ELSE F=0.0 END IF
将由于拟合函数的自变量赋予成时间t,可以实现荷载随着时间增长而不断变化,再其余未赋予荷载的路径上均为0。
由于车辆再行驶过程中冲击时间很小,其余时间均属于匀速状态,作用在桥面板的荷载时不变动的,需要在REAL关键字赋予相应的时间TIME1、TIME2等控制荷载移动过程的时间控制,如下所示实现:
Real*6 TIME1、TIME2、TIME3、V_CAR..
V_CAR=10E3 …
IF((X_NOW.GE.ROLL_1_1).AND.(X_NOE.LE.ROLL_1_0))THEN
IF(KSTEP.EQ.1)THEN
F=0.1
ELSE IF(KSTEP.EQ.2)THEN
F=SIN(2*3.14/0.06*(TIME(2)-0.1)) !拟合公式
ELSE IF(KSTEP.EQ.3)THEN
F=0.1
END IF ELSE F=0.0 END IF
上述可以实现车辆匀速过程中突然的跳车冲击,但需要用户在step中赋予三段分析步来描述不同荷载作用状态。
计算过程采用动力隐式模块进行求解,三个分析步分别设置为0.1s、0.03s和0.87s,经计算得到跳车时桥面板跨中的加速度时程曲线。
根据结果得知,车辆荷载在开始到0.1s是匀速前进,到达0.1s时发生跳车现象,跨中竖向加速度增大,振动响应剧烈,0.13s之后,随着车辆继续行驶,加速度开始下降,振动趋势稳定至0.5s,此时车辆荷载到达跨中,此处由于车轮驶过加速度曲线较为密集,0.5s后加速度值逐渐减小。可知子程序模拟移动冲击荷载是有效可行的。
从odb文件中提取得到桥面板的等效应力云图,是可以明显看出车辆冲击的部位出现了明显的压应力,其值为0.2MPa左右。
本文主要介绍了DLOAD子程序的编写和运行过程,UTRACLOAD使用方法与其类似,ABAQUS平台提供了非常人性化的界面与命令,用户可以根据自己的需要对子程序进行编写。通过全文的简单介绍得到了一下几点结论:
1)子程序的使用替代了传统的“荷载移动带”的方法,为设计节约了时间,同时减少了错误的发生,是种有效可行的方法。
2)通过Fortran语言可以解决大部分用户的需求,本文只模拟了一对车轮荷载,如果需要模拟多对车轮荷载,需要对代码进行补充,引入DISTANCE_ROLL参数来赋予前后车轮边之间的距离,便可以实现多个荷载模拟。
3)本文编写的子程序只对静力通用和动力隐式分析有效,但对于动力显示是无效的,由于隐式和显示的求解方程不同,导致子程序格式有些差异。
综上所述,ABAQUS平台功能强大,需要用户对编程语言较为熟悉,这样才能将许多繁琐的工作变得简单。