zoukankan      html  css  js  c++  java
  • 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 体力(例如重力,向心力,加速度)。

  • 相关阅读:
    leetcode401 二进制手表问题
    HashMap与Hashtable
    ideal配置web项目
    java多线程
    spring boot项目启动报错:Failed to load property source from location 'classpath:/application.yml'
    spring cloud实例Dome详细搭建(一)
    ideal激活方法
    Go学习第三章面向对象
    Go学习第二章内建容器
    Go学习第一章基础语法
  • 原文地址:https://www.cnblogs.com/jiangkejie/p/10231775.html
Copyright © 2011-2022 走看看