初識ABAQUS UMAT二次開發(二)

初識ABAQUS UMAT二次開發(二)的圖1

初識ABAQUS UMAT二次開發(二)

初識ABAQUS UMAT二次開發(二)的圖2

       大家好,這一期小編接著上一期(初識ABAQUS UMAT二次開發)繼續向大家介紹ABAQUS軟件的UMAT二次開發功能。上一期我們說過ABAQUS是一款強大的非線性有限元軟件。使用UMAT一般是為了實現ABAQUS材料庫中不包含的本構模型。這一期本來小編想介紹如何使用UMAT實現彈塑性本構關系,可是后來再百度中發現這些東西已經爛大街了。小編索性就自己臆想了一個本構關系,即應力-應變關系曲線符合二次拋物線函數。這樣既有了上升段,也有下降段。通俗的講就是可以實現隨著荷載遞增結構內力先增大,其后降低直至失去承載能力。

      下面小編就帶大家一起看看這種本構關系是如何在ABAQUS中用UMAT實現的。

1

模型簡介

      為了讓大家更好的理解UMAT的使用方法。這一期的模型跟上一期一樣采用最簡單的桁架結構,如圖1所示。模型由三根桿件組成,一根豎桿、兩根斜桿。豎桿長為30,與斜桿的夾角均為45度,截面面積為1。下面三個節點均施加x、y向約束,上部節點施加一個向上的節點位移荷載0.0017。單元仍舊采用Truss單元,每根桿件劃分為1個單元。

初識ABAQUS UMAT二次開發(二)的圖3

圖1  有限元模型及邊界條件示意圖

     材料屬性設置:在User Material中定義兩個參數,一個值是-7244290000,一個值是412000,這兩個數分別是應變-應變二次拋物線函數的兩個系數a和b。通過變量props傳遞給UAMT子程序。應力-應變關系曲線如圖2所示:

初識ABAQUS UMAT二次開發(二)的圖4

圖2  本構關系曲線(應力-應變關系曲線)

     分析步和求解器設置:小編在試算的時候發現,如果將荷載定義為節點力,那么使用abaqus/standard Static General程序求解收斂性不穩定,使用Dynamic/implicit的擬靜態程序求解收斂性會好很多。本例施加的是節點位移荷載,我們選用Static General即可。在增量設置里選用Fixed類型,最大增量步設置為100步,增量步長設置為0.01。求解器類型選用迭代法,其它保持默認即可。

      有關abaqus/standard求解非線性問題的相關介紹或知識,大家可以查看abaqus的幫助文檔或者莊茁老師的《基于abaqus的有限元分析和應用》的第八章,介紹的非常詳細。

2

UMAT子程序設置

      本例用到的UMAT相關知識與上一期基本相同。唯一不同的是多使用了一個變量STRAN。STRAN(NTENS):應變矩陣(或向量),包括NDI個直接分量,NSHR個剪切分量,與應力變量STRESS相對應。整個UAMT子程序如下:

 1    SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
2    1 RPL,DDSDDT,DRPLDE,DRPLDT,
3    2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
4    3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
5    4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
6C
7    INCLUDE 'ABA_PARAM.INC'
8C
9    CHARACTER*80 CMNAME
10    DIMENSION STRESS(NTENS),STATEV(NSTATV),
11    1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
12    2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
13    3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
14    4 JSTEP(4)
15C
16    REAL*8  emod
17c ----------------------------------------------------------------
18c   umat for nonlinear problems
19c   be used for Truss element
20c ----------------------------------------------------------------
21c   props(1) - a
22c   props(2) - b
23c ----------------------------------------------------------------
24c
25    if (ndi.ne.1) then
26        write (7,*) 'This umat may only be used for elements with one direct stress components'
27        call xit
28    endif
29c
30c   elastic properties
31    emod = 2*props(1)*STRAN(1)+props(2)
32c
33c   elastic stiffness
34c
35    ddsdde(1, 1)=emod
36c
37c    calculate stress
38c
39    stress(1) = stress(1)+ ddsdde(1,1)* dstran(1)
40c
41    RETURN
42    END

     代碼1~15行是UMAT的固定代碼。

     第16行定義了一個實數變量emod用于存儲剪切剛度。

     第25~28行,用于單元類型判斷。當單元節點自由度數不等于1時,報錯。

     第31行計算剪切剛度,即應力-應變關系函數的一階導函數。不清楚的可以看一下abaqus幫助文檔中關于非線性求解器的介紹,或者百度一下牛頓迭代法的相關內容。

     第35~42行,與上一期相同,都是用于根據應變增量更新應力。

3

計算結果

      荷載作用下結構各單元的內力變化示意圖:

初識ABAQUS UMAT二次開發(二)的圖5

圖3  結構的內力變化示意圖

    由圖3可知,豎桿的內力變化明顯經歷了兩個過程,從隨荷載的增大而增大到隨荷載的增大而降低。豎桿的應力隨荷載增量的變化曲線,如下圖所示。

初識ABAQUS UMAT二次開發(二)的圖6

圖4  豎桿的應力隨荷載增量的變化曲線

     可以從abaqus計算結果中導出豎桿的應力-應變關系曲線,如下圖所示。

初識ABAQUS UMAT二次開發(二)的圖7

圖5  從abaqus計算結果中導出的豎桿應力-應變曲線

    對比圖5和圖2可知,模型中豎桿的應變-應變曲線與輸入的本構關系完全一致,可見UMAT程序正確。

(本示例UMAT源碼、CAE模型均可在公眾號QQ群文件中免費獲得)

4

結語

       Abaqus UMAT用戶子程序接口功能非常強大,編寫一個漂亮的UMAT子程序需要一定的力學基礎(尤其是有限元、連續介質力學)。本文旨在讓大家對UMAT有一個初步的了解,以及使用UMAT需要用到哪些基本知識,好在今后的學習中有側重點。后續的推文中,小編還會進一步結合我們有限元理論模塊的進度,進一步講解Abaqus UMAT的使用。

       最后歡迎批評指正,小編水平有限,希望大家跟我一起完善這部教材,造福更多的人,謝謝!

初識ABAQUS UMAT二次開發(二)的圖8

陪伴是最長情的告白

學而不思則罔

思而不學則殆

歡迎大家跟我一起學習CAE知識!

QQ群號:517718332

初識ABAQUS UMAT二次開發(二)的圖9

注:相關資料可在QQ群文件中下載

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

34
10
40