ABAQUS子程序DLOAD应用案例
作者:八归少年
01 工程背景
在工程实际应用中,经常会遇到移动载荷的例子,如车辙实验,汽车过桥等。
此时结构所受载荷是比较复杂的函数时(如与时间、位置等相关),通过界面输入的方式已经难以实现,通常便需要借助于DLOAD子程序来进行加载。下面将就ABAQUS软件的DLOAD子程序进行讲解和应用举例。
02 仿真应用案例
用户子程序接口:
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 coding to define F
RETURN
END
F:分布载荷的大小。表面载荷的单位是FL-2,体力的单位是FL-3。F将作为基于元素或基于表面的分布载荷定义的一部分被传递到程序中,作为载荷的大小。如果没有定义大小,F将被传递为零。对于使用修正的Riks方法的静态分析(静态应力分析),F必须定义为载荷比例系数λ的函数。分布式载荷的大小不能用于输出目的。
KSTEP:分析步编号。
KINC:增量步编号。
TIME(1):在Riks步长中,分析步时间或负载比例系数λ的当前值。
TIME(2):当前总时间。
NPT:元件内或元件表面的载荷集成点编号(积分点编号),取决于载荷类型。(对于承受PENU和PINU载荷类型的管道元件,计算有效轴向力ESF1时的刚度积分点编号。)
COORDS:一个包含载荷积分点坐标的数组。如果在该步骤中考虑了几何非线性因素,这些就是当前的坐标(见定义分析);否则,该数组包含该点的原始坐标。对于允许非轴对称变形的轴对称元素,COORDS(3)是积分点的角度位置,单位是度。
JLTYP:标明调用DLOAD的类型。负载类型可以是一个体力,一个基于表面的负载,或一个基于元素的表面负载。对于基于元素的表面载荷,这个变量标识了这个调用DLOAD的元素面。当几个不同的非均匀分布载荷同时施加在一个元素上时,这个信息很有用。
SNAME:基于表面的载荷定义的表面名称(JLTYP=0)。对于体力或基于元素的表面载荷,表面名称以空白形式传入。
几何模型的构建
虚拟路面长2000mm,宽500mm,高20mm。
材料参数的定义
在property模块中创建结构钢材料,输入弹性,塑性参数。
创建截面
选择均质实体截面。
截面指派
分析步
Riks步长:20 固定步长0.2,输出100帧。
载荷
压强 分布为:用户定义,大小先可以不填。
边界条件
底面选择完全固定U1=U2=U3=UR1=UR2=UR3=0
切换到job模块,创建作业
在“通用”选项里输入编写好的DLOAD子程序。
单向单车道
轮压面积:长50mm,宽32mm ;轮距:260mm,轴距:400mm
前轮压强:5Mpa 后轮压强:5.5Mpa
速度:100mm/s
已知以上参数,就可以写移动载荷的控制方程了。首先定位轮胎竖直方向的位置:y=120,y=380,再一个水平方向移动载荷是随着自变量TIME(1)的变化而变化,写x与t的关系曲线。由于轴距为400mm,因此后轮在4s之后才上路面。程序如下:
双向单车道
轮压面积:长30mm,宽18mm ;轮距:150mm,轴距:250mm
前轮压强:5Mpa 后轮压强:5.5Mpa
速度:100mm/s
已知以上参数,就可以写移动载荷的控制方程了。首先定位轮胎竖直方向的位置:y=50,y=200,y=300,y=450,再一个水平方向移动载荷是随着自变量TIME(1)的变化而变化,写x与t的关系曲线。由于轴距为250mm,因此后轮在2.5s之后才上路面。程序如下:
03 案例小结
①一个增量步程序被调用一次。
②COORDS是基于全局坐标系,因此要把加载移动载荷的表面放在XY坐标面内。
③如果做循环移动载荷,要用循环语句do语句,引入参数i控制循环次数,但本质还是写移动载荷控制方程。
④x-t图像中的直线个数就是参数i的个数。