Abaqus用Dload子程序实现移动载荷

在工程实际应用中,我们经常会遇到移动载荷的例子,如车辙实验,汽车过桥等。今天就介绍一下用abaqus子程序Dload实现移动载荷——“CAE仿真实验室”出品。
(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各参数的意思,用起来也比较得心应手。最后小伙伴们可以长按扫描下面二维码关注我的公众号‘CAE仿真实验室’哦,我们将定期给大家分享有限元仿真干货,谢谢~

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
