Abaqus用户子程序USDFLD实例详解-kxh

案例来自Simwe论坛-kxh86



1 Abaqus用户自定义场USDFLD简介

USDFLD——user defined field,所谓field场,一般是指一种空间或时间的性质,往往用多元函数表示。但这里的用户自定义场变量,不一定和时间和空间相关联,即:其自变量可以是任意的。根据这些变量的值可以规定输出值,这样就定义了一个多个变量的函数关系。

复合材料多为各项异性材料,常用的强度判据需要使用各个方向的应力应变分量来判定。这种多个变量的判据也可以看成函数关系,即:当多个变量的值满足一定关系时,材料就发生破坏,材料参数也就变化。

Abaqus利用USDFLD模拟材料损伤的逻辑是:

image

2 案例分析

2.1 强度准则

在损伤材料模型中,往往根据材料强度参数来判定是否达到损伤,然后改变刚度参数。在这个案例中,利用Tsai-Wu准则来判定材料是否失效,进而进行刚度消减。

蔡-吴准则:

image

2.2 在Abaqus/CAE中

在材料属性中里面建立了6个非独立变量(Depvar——depended variable),这六个非独立变量将使用在材料刚度属性(Elastic)中。

image

image

E1

E2

E3

Nu12

Nu13

Nu23

G12

G13

G23

Field 1

Field 2

Field 3

Field 4

Field 5

Field 6

1

114000

8610

8610

0.3

0.3

0.45

4160

4160

3000

0

0

0

0

0

0

2

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

0

0

0

3

114000

86.1

8610

0.003

0.3

0.0045

41.6

41.6

3000

0

1

0

0

0

0

4

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

0

0

0

5

114000

8610

86.1

0.3

0.003

0.0045

41.6

41.6

3000

0

0

1

0

0

0

6

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

0

0

0

7

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

1

0

0

0

8

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

0

0

0

9

114000

86.1

8610

0.003

0.3

0.0045

41.6

4160

3000

0

0

0

1

0

0

10

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

1

0

0

11

114000

86.1

8610

0.003

0.3

0.0045

41.6

41.6

3000

0

1

0

1

0

0

12

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

1

0

0

13

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

0

1

1

0

0

14

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

1

0

0

15

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

1

1

0

0

16

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

1

0

0

17

114000

8610

86.1

0.3

0.003

0.0045

4160

41.6

3000

0

0

0

0

1

0

18

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

0

1

0

19

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

0

0

1

0

20

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

0

1

0

21

114000

8610

86.1

0.3

0.003

0.0045

41.6

41.6

3000

0

0

1

0

1

0

22

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

0

1

0

23

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

1

0

1

0

24

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

0

1

0

25

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

0

0

1

1

0

26

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

1

1

0

27

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

0

1

1

0

28

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

1

1

0

29

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

0

1

1

1

0

30

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

1

1

0

31

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

1

1

1

0

32

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

1

1

0

33

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

0

0

0

1

34

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

0

0

1

35

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

1

0

0

0

1

36

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

0

0

1

37

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

1

0

0

1

38

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

0

0

1

39

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

1

1

0

0

1

40

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

0

0

1

41

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

0

1

0

1

42

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

1

0

1

43

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

1

0

1

0

1

44

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

1

0

1

45

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

1

1

0

1

46

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

1

0

1

47

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

1

1

0

1

48

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

1

0

1

49

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

0

0

1

1

50

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

0

1

1

51

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

1

0

0

1

1

52

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

0

1

1

53

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

1

0

1

1

54

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

0

1

1

55

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

1

0

1

1

56

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

0

1

1

57

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

0

0

1

1

1

58

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

0

1

1

1

59

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

1

0

1

1

1

60

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

0

1

1

1

61

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

3000

0

0

1

1

1

1

62

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

0

1

1

1

1

63

114000

86.1

86.1

0.003

0.003

0.0045

41.6

41.6

30

0

1

1

1

1

1

64

11.4

0.861

0.861

0.003

0.003

0.0045

0.416

0.416

0.3

1

1

1

1

1

1

表格中,每一排代表中材料状况,一共有64中材料状况。前面定义的6个非独立变量有0,1两种状态,刚好有64种组合。

2.3 在fortran文件中

定义了基本强度参数:

C STRENGTH PARAMETERS
      PARAMETER(Xc=1458.0,Xt=2688.0,Yc=236.0,Yt=69.5,
     $    Zc=175.0,Zt=55.5,S12=136.0,S13=136.0,S23=95.6)
C

初始化-更新6个非独立变量:

C INITIALIZE FAILURE FLAGS FROM STATEV. 
      CR11 = STATEV(1)
      CR22 = STATEV(2)
      CR33 = STATEV(3)
      CR12 = STATEV(4) 
      CR13 = STATEV(5)
      CR23 = STATEV(6)            
C

计算Tsai-Wu准则指标:

C CALCULATE COEFFICIENT OF TSAI-WU
      F1 = 1/Xt-1/Xc
      F2 = 1/Yt-1/Yc
      F3 = 1/Zt-1/Zc
      F11 = 1/(Xt*Xc)
      F22 = 1/(Yt*Yc)
      F33 = 1/(Zt*Zc)
      F44 = 1/S23**2
      F55 = 1/S13**2
      F66 = 1/S12**2
      F12 = -0.5/(Xt*Xc*Yt*Yc)**0.5
      F23 = -0.5/(Yt*Yc*Zt*Zc)**0.5
      F31 = -0.5/(Zt*Zc*Xt*Xc)**0.5
C
C TSAI-WU CRITERION
      CR = F1*ST11 +F2*ST22 + F3*ST33 + F11*ST11**2 + F22*ST22**2 +
     $      F33*ST33**2 + 2*F12*ST11*ST22 + 2*F23*ST22*ST33 + 
     $      2*F31*ST33*ST11 + F44*ST23**2 + F55*ST13**2 + F66*ST12**2
C

判定是否失效,失效模式和进而消减刚度。

C FAILURE TYPE
      IF (CR>=1) THEN
          IF (CR11<1) THEN
              IF (ST11>=Xt .or. ST11<=-Xc) THEN
                  CR11=1
              ELSE
                  CR11=0
              ENDIF
           ENDIF
           IF (CR22<1) THEN
              IF (ST22>=Yt .or. ST22<=-Yc) THEN
                  CR22=1
              ELSE
                  CR22=0
              ENDIF
           ENDIF
           IF (CR33<1) THEN
              IF (ST33>=Zt .or. ST33<=-Zc) THEN
                  CR33=1
              ELSE
                  CR33=0
              ENDIF
           ENDIF
           IF (CR12<1) THEN
              IF (ABS(ST12)>=S12) THEN
                  CR12=1
              ELSE
                  CR12=0
              ENDIF
           ENDIF
           IF (CR13<1) THEN
              IF (ABS(ST13)>=S13) THEN
                  CR13=1
              ELSE
                  CR13=0
              ENDIF
           ENDIF
           IF (CR23<1) THEN
              IF (ABS(ST23)>=S23) THEN
                  CR23=1
              ELSE
                  CR23=0  
              ENDIF
           ENDIF
      ENDIF      
C
C     UPDATE STATEV            
      STATEV(1) = CR11 
      STATEV(2) = CR22
      STATEV(3) = CR33
      STATEV(4) = CR12
      STATEV(5) = CR13
      STATEV(6) = CR23      
C
C     UPDATE FIELD VARIABLES       
      IF (CR11>0) FIELD(1) = 1
      IF (CR22>0) FIELD(2) = 1
      IF (CR33>0) FIELD(3) = 1
      IF (CR12>0) FIELD(4) = 1
      IF (CR13>0) FIELD(5) = 1
      IF (CR23>0) FIELD(6) = 1

代码中的STATEV就是6个非独立变量。Abaqus根据更新后的变量,查询表格得到新的刚度,进而进行下一增量计算。

2.4 模拟结果

image

image

3 总结

  1. Abaqus中的用户子程序不仅仅有USDFLD,其他的常用模拟材料属性的也有UMAT和VUMAT。它们都是用来模拟用户自己定义的材料关系。

  2. 关于复合材料损伤模拟,Abaqus自带Hashin渐进损伤模拟,不用用户写自定义程序。其相关设置以及技术背景可以查看Abaqus帮助文档。

  3. 教程中也有涉及到利用python脚本自动设定材料参数的内容。


本文章使用limfx的vscode插件快速发布