1. 程式人生 > >Abaqus中施加移動車輛荷載(待整理)

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 體力(例如重力,向心力,加速度)。