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