Welcome to the forums. Please post in English or French.

You are not logged in.

#1 2022-02-16 16:46:50

alealbanesi
Member
Registered: 2021-02-11
Posts: 14

Considering pretension of bolts in modal analysis

Hi everyone,

I have the model of a 3D structure (hexahedral mesh), which has a series of bolts with pretension (modeled as beams POU_D_E). This model was successfully simulated with the STAT_NON_LINE command, where the pretension of the bolts was defined as a result with the CREA_RESU command, and such result is loaded as an initial state with the ETAT_INIT command inside the STAT_NON_LINE analysis.

Subsequently, I would like to simulate the dynamic/harmonic analysis to find the response of the structure when it is subjected to a set of forces that are variable in time.

As a first step before the dynamic/harmonic analysis, I'm trying to simulate the modal analysis (eigenvalues and eigenvectors under free vibrations) with the CALC_MODES command. This modal analysis seems to be working, however, I cannot include the pretension of the bolts in such analysis. When observing the results, the bolts seem to relax and I think that results may be wrong.

My questions are:

1) Is there a way to include the pretension of bolts when simulating a modal analysis under free vibrations?

2) What type of analysis should I perform to find the response of the structure when it is subjected to forces variable in time, and consider the pretension of the bolts? I did not find a way to pass an initial state to DYNA_VIBRA analysis.

I would appreciate any comments. Thank you in advance,

Alejandro

Offline

#2 2022-02-17 09:04:18

jeanpierreaubry
Guru
From: nantes (france)
Registered: 2009-03-12
Posts: 3,917

Re: Considering pretension of bolts in modal analysis

hello

i doubt a model analysis can be performed on a structure with non linearity like contact as seems to be the case here with the bolt pretension

in fact does it has a physical meaning?
i do not remember having read any text book dealing with non linearity in modal analysis

from here two possibilities

first
change the model with a glued joint in the bolt area
does this changes anything regarding the global behavior concerned with modal analysis?
in DYNA_VIBRA the keyword BASE_CALCUL='TRAN' allows to not perform a modal analysis
but it still is a linear analysis

second
perform à DYNA_NON_LINE analysis  which allows contact and almost any kind of loading

jean pierre aubry


consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/

Offline

#3 2022-02-17 16:05:52

alealbanesi
Member
Registered: 2021-02-11
Posts: 14

Re: Considering pretension of bolts in modal analysis

Thank you for your answer Jean Pierre Aubry.

In my current model, I'm using a linear contact model (LIAISON_MAIL with DNOR option) in the surfaces in contact due to the bolts. Nevertheless, you are right, I don't think it is possible to include such pretension in a linear analysis.

I will start by gluing the joints and check the results, perhaps the structure becomes stiffer, resulting in higher eigenvalues.

Then, I will try the DYNA_NON_LINE to see how it goes.

Regards,

Alejandro

Last edited by alealbanesi (2022-02-17 16:41:47)

Offline

#4 2022-02-18 17:03:53

alealbanesi
Member
Registered: 2021-02-11
Posts: 14

Re: Considering pretension of bolts in modal analysis

Good news! I was able to simulate the modal analysis considering the pretension of the bolts and an initial temperature field of the structure.

Following the advice of Ioannis Christovasilis, I assembled both the stiffness matrix and the geometric stiffness matrix into a "total stiffness" matrix. This is performed with the command ASSEMBLAGE The same procedure is described on pages 21-214 of the book written by Jean Pierre Aubry. I'm grateful to both of them.

Subsequently, I performed a STAT_NON_LINE analysis, where both the bolt pretension and the thermal field are considered as an initial state with ETAT_INIT. The next steps consist in creating the result field with CREA_CHAMP, extraction of the geometric stiffness matrix with CALC_MATR_ELEM(OPTION = 'RIGI_GEOM'), and adding the stiffness matrix to the geometric stiffness matrix to obtain a "total stiffness" matrix K_TOTAL with COMB_MATR_ASSE.

Finally, we can simulate the modal analysis with the command CALC_MODES(MATR_RIGI=K_TOTAL). My next step is to find the response of the structure when it is subjected to forces variable in time, considering the pretension and thermal field.

The list of commands in the .comm file is shown below.

Regards,

Alejandro


TermT0 = CREA_CHAMP(AFFE=_F(GROUP_MA=('Group',),
                            GROUP_NO=('BOLTS_1TOP',...),
                            NOM_CMP=('TEMP', ),
                            VALE=(50.0, )),
                    MODELE=modelT,
                    OPERATION='AFFE',
                    TYPE_CHAM='NOEU_TEMP_R')

resther = CREA_RESU(reuse=resther,
                    AFFE=_F(CHAM_GD=TermT0,
                            INST=(-1.0, ),
                            MODELE=modelT),
                    NOM_CHAM='TEMP',
                    OPERATION='AFFE',
                    RESULTAT=resther,
                    TYPE_RESU='EVOL_THER')
                    
fieldM = AFFE_MATERIAU(AFFE_VARC=_F(EVOL=resther,
                                    GROUP_MA=('Group'),
                                    NOM_VARC='TEMP',
                                    VALE_REF=50.0),
                       MODELE=modelM)
                 
PREBOLT = CREA_CHAMP(AFFE=(_F(GROUP_MA=('BOLTS_1', ),
                              NOM_CMP=('N', ),
                              VALE=(Preload, )),
                           _F(GROUP_MA=('BOLTS_2',),
                              NOM_CMP=('N', ),
                              VALE=(Preload, ))),
                     MODELE=modelM,
                     OPERATION='AFFE',
                     PROL_ZERO='OUI',
                     TYPE_CHAM='ELGA_SIEF_R')

ETATINIT = CREA_RESU(AFFE=_F(CARA_ELEM=elempro0,
                             CHAM_GD=PREBOLT,
                             CHAM_MATER=fieldM,
                             LIST_INST=InstMecT,
                             MODELE=modelM),
                     NOM_CHAM='SIEF_ELGA',
                     OPERATION='AFFE',
                     TYPE_RESU='EVOL_NOLI')

ASSEMBLAGE(
    MODELE = modelM,
    CARA_ELEM = elempro0,
    CHAM_MATER = fieldM,
    CHARGE = (Loads, Supports ),
    MATR_ASSE = (
        _F(
            MATRICE = CO('K_MAT'),
            OPTION = 'RIGI_MECA'
        ),
        _F(
            MATRICE = CO('M_MAT'),
            OPTION = 'MASS_MECA'
        ),
        _F(
            MATRICE = CO('A_MAT'),
            OPTION = 'AMOR_MECA'
        )
    ),
    NUME_DDL = CO('NUM_DDL')
)

resGeom = STAT_NON_LINE(CARA_ELEM=elempro0,
                        CHAM_MATER=fieldM,
                        COMPORTEMENT=_F(DEFORMATION='PETIT',
                                        RELATION='ELAS',
                                        TOUT='OUI'),
                        CONVERGENCE=_F(ITER_GLOB_MAXI=25,
                                       RESI_GLOB_RELA=0.0001),
                        ETAT_INIT=_F(EVOL_NOLI=ETATINIT,
                                     INST=-1.0),
                        EXCIT=(_F(CHARGE=Loads),
                               _F(CHARGE=Supports)),
                        INCREMENT=_F(LIST_INST=InstMecT),
                        METHODE='NEWTON',
                        MODELE=modelM,
                        NEWTON=_F(REAC_INCR=1,
                                  REAC_ITER=1),
                        SOLVEUR=_F(MATR_DISTRIBUEE='OUI',
                                   METHODE='MUMPS',
                                   RENUM='AUTO'))

elgaGeom = CREA_CHAMP(
    OPERATION = 'EXTR',
    TYPE_CHAM = 'ELGA_SIEF_R',
    RESULTAT = resGeom,
    NOM_CHAM = 'SIEF_ELGA',
    INST=0.0
)

matGeom = CALC_MATR_ELEM(
    OPTION = 'RIGI_GEOM',
    MODELE = modelM,
    CARA_ELEM = elempro0,
    SIEF_ELGA = elgaGeom
)

Kgeom = ASSE_MATRICE(
    MATR_ELEM = matGeom,
    NUME_DDL = NUM_DDL
)

Ktotal = COMB_MATR_ASSE(
    COMB_R = (
        _F(
            MATR_ASSE = K_MAT,
            COEF_R = 1.0
        ),
        _F(
            MATR_ASSE = Kgeom,
            COEF_R = 1.0
        )
    )
)

modes = CALC_MODES(CALC_FREQ=_F(NMAX_FREQ=5),
                   IMPRESSION=_F(CRIT_EXTR='MASS_EFFE_UN',
                                 CUMUL='OUI'),
                   MATR_MASS=M_MAT,
                   MATR_RIGI=Ktotal,
                   OPTION='PLUS_PETITE')

Last edited by alealbanesi (2022-02-18 20:12:00)

Offline