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

You are not logged in.

#1 2019-11-06 20:31:34

PATCH
Member
From: Brno, Czech Republic
Registered: 2017-01-03
Posts: 28

Harmonic analysis - acceleration base excitation

Hi,
I am new in frequency domain analysis in Code_Aster so I would like to create basic analysis. I am working regularly in Abaqus and running *Steady state dynamics to evaluate fixture performance. For this purpose I create MPC to all bolts holes that holds fixture and load control point with acceleration 1g load (9.81 m/s2) and check how fixture amplifies the signal in different locations.

My question is how can I simulate this in Code_Aster? Do you have any examples?

Thank you in advance,
PATCH

Offline

#2 2019-11-15 19:32:38

PATCH
Member
From: Brno, Czech Republic
Registered: 2017-01-03
Posts: 28

Re: Harmonic analysis - acceleration base excitation

Hi everybody,
Can anybody help with this topic? I am enclosing my current progress with this analysis. Currently the analysis runs but gives me zero response which is not correct big_smile.

Thank you in advance.

PATCH


Attachments:
harmonic.zip, Size: 10.89 KiB, Downloads: 186

Offline

#3 2021-05-06 09:57:29

cwf007
Member
From: Malaysia
Registered: 2020-06-05
Posts: 18

Re: Harmonic analysis - acceleration base excitation

Hi all,

Im curious on this also, can we input enforced acceleration as input for harmonic response analysis in CA???

Thank you.
cwf007.

Offline

#4 2021-05-07 07:56:56

sameer21101970
Banned
Registered: 2019-09-06
Posts: 354

Re: Harmonic analysis - acceleration base excitation

Below .comm can give you idea.

DEBUT(LANG='EN')

mesh = LIRE_MAILLAGE(UNITE=20)

model = AFFE_MODELE(AFFE=_F(MODELISATION=('3D', ),
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

mater = DEFI_MATERIAU(ELAS=_F(E=210000.0,
                              NU=0.3,
                              RHO=7.8e-09))

fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ),
                                 TOUT='OUI'),
                         MODELE=model)

listR = DEFI_LIST_REEL(DEBUT=0.0,
                       INTERVALLE=_F(JUSQU_A=150.0,
                                     PAS=0.1))

formula = FORMULE(NOM_PARA=('INST', ),
                  VALE='sin(2*pi*205.0*INST)')

func2d = CALC_FONC_INTERP(FONCTION=formula,
                          INTERPOL=('LIN', ),
                          LIST_PARA=listR,
                          PROL_DROITE='LINEAIRE',
                          PROL_GAUCHE='EXCLU')

load = AFFE_CHAR_MECA(MODELE=model,
                      PESANTEUR=_F(DIRECTION=(0.0, 0.0, -1.0),
                                   GRAVITE=9850.0,
                                   GROUP_MA=('vol', )))

load0 = AFFE_CHAR_MECA(DDL_IMPO=_F(GROUP_MA=('fix', ),
                                   LIAISON='ENCASTRE'),
                       MODELE=model)

load3 = AFFE_CHAR_MECA(FORCE_FACE=_F(FZ=-10000.0,
                                     GROUP_MA=('load', )),
                       MODELE=model)

ASSEMBLAGE(CHAM_MATER=fieldmat,
           CHARGE=(load, load0),
           MATR_ASSE=(_F(MATRICE=CO('ma'),
                         OPTION='MASS_MECA'),
                      _F(MATRICE=CO('ka'),
                         OPTION='RIGI_MECA')),
           MODELE=model,
           NUME_DDL=CO('nddl'),
           VECT_ASSE=_F(CHARGE=(load3, ),
                        OPTION='CHAR_MECA',
                        VECTEUR=CO('fz')))

resharm0 = DYNA_VIBRA(BASE_CALCUL='PHYS',
                      CHAM_MATER=fieldmat,
                      EXCIT=_F(FONC_MULT=func2d,
                               VECT_ASSE=fz),
                      INCREMENT=_F(LIST_INST=listR),
                      MATR_MASS=ma,
                      MATR_RIGI=ka,
                      MODELE=model,
                      SCHEMA_TEMPS=_F(SCHEMA='NEWMARK'),
                      SOLVEUR=_F(METHODE='MUMPS',
                                 NPREC=11,
                                 PCENT_PIVOT=2000,
                                 RENUM='AUTO'),
                      TYPE_CALCUL='TRAN')

restran = REST_SPEC_TEMP(METHODE='PROL_ZERO',
                         NOM_CHAM=('ACCE', ),
                         RESULTAT=resharm0,
                         SYMETRIE='OUI',
                         TOUT_CHAM='OUI')

table = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                INTITULE='dfft',
                                NOM_CHAM='ACCE',
                                OPERATION=('EXTRACTION', ),
                                RESULTANTE=('DZ', ),
                                RESULTAT=restran),
                      TITRE='LISTR=1000')

table1 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                 INTITULE='DISPLACEMENT',
                                 NOM_CHAM='DEPL',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DZ', ),
                                 RESULTAT=resharm0))

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='frequency',
           LEGENDE_Y='amplitude',
           NOM_PARA=('FREQ', 'DZ'),
           PILOTE='EPS',
           TABLE=table,
           UNITE=29)

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='TIME-SEC',
           LEGENDE_Y='DISPL-MM',
           MARQUEUR=0,
           NOM_PARA=('INST', 'DZ'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table1,
           UNITE=10)

FIN()

Offline

#5 2021-05-07 07:58:57

sameer21101970
Banned
Registered: 2019-09-06
Posts: 354

Re: Harmonic analysis - acceleration base excitation

POURSUITE(LANG='EN',
          PAR_LOT='NON')

field = CALC_CHAR_SEISME(DIRECTION=(0.0, 0.0, 1.0),
                         MATR_MASS=MA,
                         MONO_APPUI='OUI')

resharm = DYNA_VIBRA(BASE_CALCUL='PHYS',
                     CHAM_MATER=fieldmat,
                     EXCIT=_F(FONC_MULT=func2d,
                              VECT_ASSE=field),
                     INCREMENT=_F(LIST_INST=listr),
                     MATR_MASS=MA,
                     MATR_RIGI=KA,
                     MODELE=model,
                     SCHEMA_TEMPS=_F(SCHEMA='NEWMARK'),
                     SOLVEUR=_F(METHODE='MUMPS',
                                RENUM='AUTO'),
                     TYPE_CALCUL='TRAN')

table = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                INTITULE='dz',
                                NOM_CHAM='DEPL',
                                OPERATION=('EXTRACTION', ),
                                RESULTANTE=('DZ', ),
                                RESULTAT=resharm))

restran = REST_SPEC_TEMP(METHODE='PROL_ZERO',
                         NOM_CHAM=('DEPL', 'ACCE', 'VITE'),
                         RESULTAT=resharm,
                         TOUT_CHAM='OUI')

table1 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                 INTITULE='dfft',
                                 NOM_CHAM='ACCE',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DZ', ),
                                 RESULTAT=restran))

table0 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                 INTITULE='displ',
                                 NOM_CHAM='DEPL',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DZ', ),
                                 RESULTAT=restran))

table2 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                 INTITULE='VELOCITY',
                                 NOM_CHAM='VITE',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DZ', ),
                                 RESULTAT=restran))

table3 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                 INTITULE='ACCER',
                                 NOM_CHAM='ACCE',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DZ', ),
                                 RESULTAT=resharm))

table4 = POST_RELEVE_T(ACTION=_F(GROUP_NO=('load', ),
                                 INTITULE='VELOCITY',
                                 NOM_CHAM='VITE',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DZ', ),
                                 RESULTAT=resharm))

IMPR_RESU(FORMAT='MED',
          RESU=_F(RESULTAT=resharm),
          UNITE=80)

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='TIME-SEC',
           LEGENDE_Y='DISPLCEMENT',
           MARQUEUR=0,
           NOM_PARA=('INST', 'DZ'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table,
           TITRE='DISPL VS TIME',
           UNITE=13)

IMPR_TABLE(FORMAT='XMGRACE',
           LEGENDE_X='FREQUENCY',
           LEGENDE_Y='AMPLITUDE',
           MARQUEUR=0,
           NOM_PARA=('FREQ', 'DZ'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table1,
           TITRE='ACCELERATION AS INPUT',
           UNITE=29)

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='FREQ',
           LEGENDE_Y='AMPLITUDE',
           MARQUEUR=0,
           NOM_PARA=('FREQ', 'DX'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table0,
           TITRE='DISPLACEMENT AS INPUT',
           UNITE=12)

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='FREQ',
           LEGENDE_Y='AMPLITUDE',
           MARQUEUR=0,
           NOM_PARA=('FREQ', 'DZ'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table2,
           TITRE='VELOCITY AS INPUT',
           UNITE=10)

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='TIME SEC',
           LEGENDE_Y='ACCELERATION -MM/SEC2',
           MARQUEUR=0,
           NOM_PARA=('INST', 'DZ'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table3,
           TITRE='ACCELERATION VS TIME',
           UNITE=11)

IMPR_TABLE(FORMAT='XMGRACE',
           IMPR_FONCTION='OUI',
           LEGENDE_X='TIME-SEC',
           LEGENDE_Y='VELOCITY MM/SEC',
           MARQUEUR=0,
           NOM_PARA=('INST', 'DZ'),
           PILOTE='EPS',
           STYLE=1,
           TABLE=table4,
           TITRE='TIME VS VELOCITY',
           UNITE=14)

FIN()

Offline

#6 2021-05-11 07:57:20

cwf007
Member
From: Malaysia
Registered: 2020-06-05
Posts: 18

Re: Harmonic analysis - acceleration base excitation

Hi sameer,

Thank you for your code.

It is so kind of you.

I found it more convenient to convert the acce to FORCE_NODALE for Aster.
It yield the same FRF.

Thank you.

Warmest Regards,
cwf007.

Offline

#7 2021-05-11 14:14:14

statist
Member
From: Russia, St.-Petersburg
Registered: 2020-11-16
Posts: 17

Re: Harmonic analysis - acceleration base excitation

Hi, cwf007! I'm not good specialist in frequency response in code_aster, but on this youtube channel got helpful information for this type analysis in Code_Aster.
youtube.com/c/DigvijayPatankar/videos

Offline

#8 2021-05-12 02:17:41

cwf007
Member
From: Malaysia
Registered: 2020-06-05
Posts: 18

Re: Harmonic analysis - acceleration base excitation

Hi Statist,

Yes you are right. The link is very helpful.

It gives the idea on how to setup harmonic response (DYNA_VIBRA + REST_GENE_PHYS) from scratch.

Thank you!
cwf007.

Offline

#9 2021-05-12 09:24:49

statist
Member
From: Russia, St.-Petersburg
Registered: 2020-11-16
Posts: 17

Re: Harmonic analysis - acceleration base excitation

You are welcome!

Offline