USDFLD——user defined field,所谓field场,一般是指一种空间或时间的性质,往往用多元函数表示。但这里的用户自定义场变量,不一定和时间和空间相关联,即:其自变量可以是任意的。根据这些变量的值可以规定输出值,这样就定义了一个多个变量的函数关系。
复合材料多为各项异性材料,常用的强度判据需要使用各个方向的应力应变分量来判定。这种多个变量的判据也可以看成函数关系,即:当多个变量的值满足一定关系时,材料就发生破坏,材料参数也就变化。
Abaqus利用USDFLD模拟材料损伤的逻辑是:
在损伤材料模型中,往往根据材料强度参数来判定是否达到损伤,然后改变刚度参数。在这个案例中,利用Tsai-Wu准则来判定材料是否失效,进而进行刚度消减。
蔡-吴准则:
在材料属性中里面建立了6个非独立变量(Depvar——depended variable),这六个非独立变量将使用在材料刚度属性(Elastic)中。
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种组合。
定义了基本强度参数:
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根据更新后的变量,查询表格得到新的刚度,进而进行下一增量计算。
Abaqus中的用户子程序不仅仅有USDFLD,其他的常用模拟材料属性的也有UMAT和VUMAT。它们都是用来模拟用户自己定义的材料关系。
关于复合材料损伤模拟,Abaqus自带Hashin渐进损伤模拟,不用用户写自定义程序。其相关设置以及技术背景可以查看Abaqus帮助文档。
教程中也有涉及到利用python脚本自动设定材料参数的内容。
本文章使用limfx的vscode插件快速发布