Abaqus安全系数的实现——UVARM子程序

Abaqus安全系数的实现——UVARM子程序

在进行结构件强度校核有限元分析时,分析结果中安全系数的显示能够辅助对结构件进行优化设计。然而Abaqus软件后处理不能直接显示安全系数,比较简便的方式为调用UVARM子程序来实现。

UVARM子程序的代码模板如下:

     SUBROUTINE UVARM(UVAR,DIRECT,T,TIME,DTIME,CMNAME,ORNAME,

    1 NUVARM,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,NDI,NSHR,COORD,

    2 JMAC,JMATYP,MATLAYO,LACCFLA)

     INCLUDE 'ABA_PARAM.INC'

C

     CHARACTER*80 CMNAME,ORNAME

     CHARACTER*3 FLGRAY(15)

     DIMENSION UVAR(NUVARM),DIRECT(3,3),T(3,3),TIME(2)

     DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)

C     The dimensions of the variables FLGRAY, ARRAY and JARRAY

C     must be set equal to or greater than 15.

      user coding to define UVAR

      RETURN

     END

        该子程序中要在高亮显示部分定义UVAR(NUVARM)的代码以便在后处理器中显示安全系数场变量。由于安全系数通常为屈服强度与材料实际应力之比。材料实际应力可表示为

QQ截图20220221124249.jpg

因此,需要在代码中通过GETVRM调用相应的应力分量S11S22S33S12S13S23

除此之外,还需要在前处理中设置:

(1) NUVARM为材料属性中定义的Number of user-defined variables at each material point数量设置界面如下图1所示。如NUVARM=3,则在子程序中需要定义UVAR(1)UVAR(2)UVAR(3)

Abaqus安全系数的实现——UVARM子程序的图2

1

(2) 为能够在后处理中显示该自定义变量,还需要在Step模块中场变量输出请求中勾选UVARM,如下图2所示。

Abaqus安全系数的实现——UVARM子程序的图3

2

下面在实例中应用UVARM子程序以在后处理中显示安全系数云图。下图3是由轴承座、轴承和轴组成的装配体,所用的材料有QT600(屈服强度850MPa45钢(355MPa)。Properties中设置UVARM的数量为3个;Step场变量输出请求中勾选UVARM。在轴两端分别施加向下的10000N载荷。

Abaqus安全系数的实现——UVARM子程序的图4

3

如下图4所示的是UARM1云图,其对应的是45钢的安全系数云图,即屈服强度(355)与材料实际应力之比。轴承与轴区域的安全系数显示是正确的。然而,材质为QT600的轴承座安全系数并不正确。

Abaqus安全系数的实现——UVARM子程序的图5

4

如下图5所示的是UARM2云图,其对应的是QT600的安全系数云图,即屈服强度(850)与材料实际应力之比。轴承座区域的安全系数显示的是正确的。然而,材质为45轴承和安全系数并不正确。

Abaqus安全系数的实现——UVARM子程序的图6

5

从上面UARM1UVARM2云图中可以看出,两种材质在不同的安全系数云图中显示数值不一样。因此,需要单独显示相应材质的结构件才能获得正确的安全系数值。

此外,还可以对代码进行修改,通过IF 语句对材料名称(CMNAME)进行判据实现同时对多种材质结构件的安全系数显示。子程序中使用的CMNAME对材料命名方法有规定,材料名的前缀必须为大写字母,且尽量避免ABQ_作为材料名的前缀。

如下图6所示的是采用IF语句对CNAME进行判据后的安全系数云图,能够正确显示不同材料的安全系数。

Abaqus安全系数的实现——UVARM子程序的图7

6



需要注意的是该方法适用于一次单元,二次单元由于插值外推的缘故显示可能不正确。

上述实例和子程序见附件。

该付费内容为:CAE模型文件及安全系数UVARM子程序文件

包含1个附件 20人购买
(3条)
默认 最新
👍🏻👍🏻
评论 点赞 1
学习了
评论 点赞 1

查看更多评论 >

点赞 8 评论 3 收藏 5
关注