Abaqus中施加移动车辆荷载(待整理)
在工程实际应用中,我们经常会遇到移动载荷的例子,如车辙实验,汽车过桥等。今天就介绍一下用abaqus子程序Dload实现移动载荷。
Dolad:隐式求解算法
Vdload:显示求解算法
(1)Dolad简介
Dload 函数体和各参数物理意义如下:SUBROUTINEDLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,JLTYP,SNAME)
F |
需要自己定义的载荷 |
KSTEP |
载荷步数(如第一个载荷步、第二个载荷步) |
KINC |
增量步数 |
TIME |
Time(1)载荷步时间、Time(2)总时间 |
NOEL |
单元编号 |
NPT |
单元积分点编号 |
LAYER、KSPT |
和LAYER SOILD相关 |
COORDS |
积分点坐标 |
JLTYP |
载荷类型 |
SNAME |
名称 |
(2)案例
如图所示,物体表面作用一个压力载荷P(t),同事这个载荷在面内以一定速度V移动
Dload.for子程序源码
SUBROUTINEDLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
INCLUDE 'ABA_PARAM.INC'
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
PARAMETER(P0=5e4,Dm0=250,Dmiu=0.002,speed=80/3.6,DL=6.0,width=0.2)
Pi=3.1415926535897932384626433832795
omega=2.0*Pi*speed/DL !角速度 speed为移动速度
Disp=TIME(1)*speed !移动距离
xMin=Disp+0.002 !0.002 设置误差范围,积分点坐标和节点坐标不一样
xMax=Disp+width-0.002 ! width 加载宽度
IF(COORDS(1).ge.xMin.and.COORDS(1).lt.xMax)THEN !判断坐标位置
F=P0+Dm0*Dmiu*omega*omega*sin(omega*TIME(1)) !定义载荷大小
ELSE
F=0
END IF
RETURN
END
(3)Abaqus操作
1、用general static 分析步设置成fixed 增量步这样可以等间隔的时间输出结果
2、定义载荷load的时候选pressure 在distribution中选user-defined
3、建立job 在general选项中 添加Dload.for 文件目录
4、结果
(5)总结
Abaqus的Dload子程序让用户可以自定义各种复杂的非均布载荷,比如和坐标或者时间相关的载荷,其实只要知道了Dload各参数的意思,用起来也比较得心应手。
DLOAD子程序说明
————————————————————————————————————
Use this subroutine to define nonuniform, distributed
mechanical loads (pressures and body forces).
使用此子程序定义非均匀的分布式机械负载(压力和体力)。
(
当负载是时间和/或位置的复杂函数时,通常使用用户子程序DLOAD。
通常可以用* AMPLITUDE选项建模简单的时间函数。
子程序也可以用来定义一个随元素号和/或积分点数而变化的负载。
)
————————————————————————————————————
一般用法,在INP文件中定义载荷施加的位置(关键字),求解时让其与子DLOAD子程序关联。
(
当* DLOAD或* DSLOAD选项包含不均匀的加载类型标签时,子程序被调用。
)
*DLOAD 1, P4NU
(Apply nonuniform DLOAD to face 4 of element 1,)
(
“ABAQUS /Standard”手册中给出了可用于任何特定单元的非均匀分布载荷类型列表。
)
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 coding to define F RETURN END
子程序中的各个参数的意义可以参考ABAQUS帮助文档
F——分布负载的大小
KSTEP——分析步
TIME(1)——步进时间的当前值或负载比例因子的当前值
TIME(2)——当前总时间值
NOEL——单元编号
NPT——根据负载类型,在元素或元素表面加载积分点数。
LAYER——层数
KSPT——当前图层中的Section point
COORDS——积分点坐标(数组)
JLTYP——DLOAD调用的载荷类型的标识
SNAME——表面加载定义的表面名称(JLTYP = 0)。 对于身体力或基于单元的表面载荷,表面名称以空白形式传递
供参考的子程序
————————————————————————————————————
SUBROUTINE DLOAD(F, KSTEP, KINC, TIME ,NOEL, NPT, 1 LAYER, KSPT, COORDS, JLTYP, SNAME) C C EXPONENTIAL PRESSURE LOAD C INCLUDE ‘ABA_PARAM.INC’ C DIMENSION COORDS(3),TIME(2) CHARACTER*80 SNAME DATA TEN,ONE,CONST /10.,1.,-23.03/ F=TEN*(ONE-(EXP(CONST*TIME(1)))) IF(NPT.EQ.1) WRITE(6,*) ‘ LOAD APPLIED’,F,’AT TIME=’,TIME(1) RETURN END
————————————————————————————————————
(
用户只能定义变量F 这是分布式负载的大小,单位取决于分布式负载的类型:
FL–1 对于沿一维(梁)单元的线载荷,
FL–2 表面负荷(例如压力)和
FL–3 体力(例如重力,向心力,加速度)。
)
posted on 2019-01-07 10:27 那抹阳光1994 阅读(16425) 评论(0) 编辑 收藏 举报