找回密码
 注册
Simdroid-非首页
查看: 460|回复: 3

[子程序] 求教--Dload如何实现在不同载荷步不同加载平面的加载?

[复制链接]
发表于 2020-4-10 22:29:56 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 virgilee 于 2020-4-11 11:36 编辑

各位高手,我想在两个载荷步里分别对模型的不同部分施加动态载荷,请问如何实现,我现在是不知道如何把所需的载荷步和加载面的信息传递到Dload里边,请各位指教。下边的子程序可以编译运行,但是没有应力结果,感觉应该是if里边参数调用的问题,请赐教。


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
C
      PARAMETER(P0=5e4,Dm0=250,Dmiu=0.002,speed=20.0,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(SNAME.EQ.'ASSEMBLY_SURF_Y'.AND.KSTEP.EQ.1) THEN !想实现在surf_y面上在载荷步1中施加载荷
                   if(COORDS(1).ge.xMin.and.COORDS(1).lt.xMax) then
                        F=P0+Dm0*Dmiu*omega*omega*sin(omega*TIME(1)) !定义载荷大小
                    end if
      ELSE
         F=0
      END IF
      IF(SNAME.EQ.'ASSEMBLY_SURF_z'.AND.KSTEP.EQ.2) THEN !想实现在surf_z面上在载荷步2中施加载荷
                 if(COORDS(1).ge.xMin.and.COORDS(1).lt.xMax) then
                     F=P0+Dm0*Dmiu*omega*omega*sin(omega*TIME(1)) !定义载荷大小
                 end if
       ELSE
          F=0
      END IF
        
      RETURN
      END

发表于 2020-7-21 12:33:59 | 显示全部楼层 来自 辽宁沈阳
Simdroid开发平台
请问你的问题解决了么,我也遇到了同样的问题,而且我以后主做Abaqus二次开发,可以交流一下,微信:lty1002845535
回复 不支持

使用道具 举报

发表于 2020-7-28 21:53:57 | 显示全部楼层 来自 辽宁沈阳
答主你好,请问子程序Dload加载不同平面不同分析步的问题,你解决了么?想要请教
回复 不支持

使用道具 举报

发表于 2020-8-5 17:16:15 | 显示全部楼层 来自 中国
dload和vdload有什么区别?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-1 23:44 , Processed in 0.030710 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表