Skip to main content

4. 算例分析

下面采用Fatigue对以图4.1中所示铆接连接结构进行疲劳寿命分析为例,介绍如何使用Fatigue程序。该结构在服役过程中受到三个载荷:螺栓预紧力,两个连接口的动载荷F5、F6,分析在这三个载荷作用下结构的疲劳寿命。

图4.1 铆接连接结构

4.1 模型文件

根据Fatigue计算程序的要求,需要提供该结构的有限元网格文件,文件内容参见example/bolted-joint/fem-model.txt,该结构的网格划分如图4.2所示。这是一个由ANSYS生成的网格文件,包含模型的结点和单元信息。Fatigue程序将分析单元和结点之间的拓扑关系,并找出所有的表面结点用于疲劳寿命计算。

图4.2 铆接连接结构的有限元模型

对于该模型文件的读入,可采用以下Fatigue程序的命令:

mesh read model fem-model.txt -style ansys -surface 3d
mesh write model fem-model.tet -style tetgen

第一行命令表示以ANSYS文件格式读入fem-model.txt文件,并告知Fatigue程序这是一个三维体系,需要识别三维模型的表面结点。

第二行命令表示将读入的模型以TETGEN格式输出到文件fem-model.tet,该文件类型可以通过开发者的Moleshow软件进行可视化。

4.2 载荷工况文件

文件内容参见example/bolted-joint/load-cases.json。下面是该文件的内容结构:

{
    "A": {
        "repeats": 750000.0,
        "components": {
            "Pret": {
                "scale": 1.0,
                "data": [ ... ],
                "unit": "x143kN",
                "offset": 0.0
            },
            "F5": {
                "scale": 1.0,
                "data": [ ... ],
                "unit": "x100kN",
                "offset": 0.0
            },
            "F6": {
                "scale": 1.0,
                "data": [ ... ],
                "unit": "x100kN",
                "offset": 0.0
            },
            "Time": {
                "scale": 1.0,
                "data": [ ... ],
                "unit": "s",
                "offset": 0.0
            }
        }
    },
    "B": {
        "repeats": 750000.0,
        "components": {
            "Pret": {
                "scale": 1.0,
                "data": [ ... ],
                "unit": "x143kN",
                "offset": 0.0
            },
            ......
    },
    ......

首先,该载荷文件中包含了4个工况:A、B、C、D,表示该结构将先后经历这4个工况的作用,计算疲劳损伤时,是这4个工况所产生的损伤之和。

4个工况的数据内容都是类似的,以工况A的数据展开说明。其中repeats变量表示A工况会重复750000.0次。例如,如果A工况重复一次表示外部某一旋转部件旋转一圈所造成的载荷-时间数据,那么旋转750000次的情况就可以通过repeats来表示而不需要将数据复制750000次。

A工况包含有4个数据定义:Pret、F5、F6以及Time。其中Time表示载荷数据点对应的时间,而其它3个数据分别表示不同时间点对应的载荷大小。Pret表示预紧载荷,由于预紧载荷是结构在初始状态就存在的,而且后面不随时间变化,所以所有时间点的数据都是1.0。而F5、F6的载荷是随时间变化的。每个数据定义的格式和含义请参见3.4节。

对于该载荷文件的读入,可采用以下Fatigue程序的命令:

loads read cases load-cases.json -style json

该命令表示以JSON数据格式读入载荷工况数据文件。

4.3 应力数据文件

由于结构受到三个载荷作用:螺栓预紧力(Pretension),两个连接口的动载荷F5、F6,需要提前针对每个载荷产生对应的应力文件。

其中螺栓预紧力的应力文件example/bolted-joint/stress-Pretension.fes是通过在结构施加单位螺栓预紧力,开展有限元计算得到的结构应力分布数据。在有限元计算中预紧力的大小不一定要设为1.0,也可以是比较大的载荷。例如,如果真实工况下预紧力为10.0,那么既可以在有限元计算施加1.0的作用力,在载荷定义中Pret的数据值设为10.0;也可以在有限元计算施加2.0的作用力,而在载荷定义中Pret的数据值设为5.0,两者的效果是一样的(也可能通过修改Pret数据的scale值来调整)。其它载荷应力的计算也是类型的。

由于动载荷F5和F6在正和负值条件下产生的应力是不一样的,即存在拉压不对称的情况。因此,针对F5和F6,分别用有限元计算了正负100 kN两种情况下的应力分布数据。这样在进行应力组合时,如果F5在某个时间点为负,则采用负载荷的应力进行计算,反之采用正载荷的应力数据。F5、F6对应的应力文件内容参见example/bolted-joint目录下的stress-F5+100kN.fes、stress-F5-100kN.fes、stress-F6+100kN.fes、stress-F6-100kN.fes。

为了将这些应力文件与载荷工况文件相联系起来,可采用以下Fatigue程序的命令:

loads read stress sPret 1d-linear Pret 1.0 stress-Pretension.fes -style ansys
loads read stress sF5 1d-bilinear F5 -1.0 stress-F5-100kN.fes -style ansys
loads read stress sF5 1d-bilinear F5  1.0 stress-F5+100kN.fes -style ansys
loads read stress sF6 1d-bilinear F6 -1.0 stress-F6-100kN.fes -style ansys
loads read stress sF6 1d-bilinear F6  1.0 stress-F6+100kN.fes -style ansys

第一行命令表示,以ANSYS格式读入stress-Pretension.fes应力文件数据,并与载荷工况文件中的载荷名称“Pret”相关联起来,sPret是对该应力数据给一个名字;1d-linear表示在应力计算中采用线性插值;1.0表示这个应力文件是在螺栓预紧力为1.0的状态下计算得到的。

第二行命令表示,以ANSYS格式读入stress-F5-100kN.fes应力文件数据,并与载荷工况文件中的载荷名称“F5”相关联起来,1d-bilinear表示在应力计算中用一维双线性插值; -1.0表示这个应力文件是在螺栓预紧力为-1.0的状态下计算得到的(这里没有与-100 kN对应,是因为在载荷工况数据中进行了对应的缩放,这里需要用一个负数表示负加载即)。

后面几行的命令功能与第二行的类似。通过这几行命令,Fatigue程序会将应力文件和载荷工况数据联系起来。对于不同的需求,可以对各个载荷文件和应力文件进行不同组合。

4.4 SN数据文件

SN数据文件内容参见example/bolted-joint/sn-steel0.json。文件中变量的具体参数可以参见3.5节说明。SN数据文件的读入采用以下Fatigue程序的命令:

mater read steel0 sn-steel0.json

第一行命令表示读入材料文件sn-steel0.json,并将材料命名为steel0,在后面的疲劳寿命计算中可以针对不同的结构指定不同的材料名称,从面实现采用不同的材料进行计算。

4.5 疲劳寿命计算设置

在疲劳寿命计算中有许多不同的方法可以采用,这些方法的选择可以通过类似以下命令来实现:

life  set surface -mat steel0 -smode pnmax -cmode rainflow
life  run -report 10
life  export result.txt -style text

第一行命令表示,将surface结点集的材料设置为steel0的SN数据,疲劳应力计算方法采用最大主应力方式(pnmax),循环计算采用雨流计数方法(rainflow)。

第二行命令表示开始进行疲劳寿命计算,在计算过程中的输出频率为10。

第三行命令表示将疲劳寿命计算结果以TEXT格式输出到results.txt文件。

图4.3是计算得到的疲劳寿命云图,该云图是采用Moleshow进行显示。

图4.3 计算得到的疲劳寿命云图

4.6 命令流文件

以上计算过程的命令流文件参见example/bolted-joint/script-run.scp