10. Exemples#

10.1. Calcul des 5 modes propres les plus proches d’une fréquence donnée#

mode=CALC_MODES( MATR_RIGI=rigid,

MATR_MASS=masse,

OPTION =‘CENTRE’,

CALC_FREQ=_F( FREQ=100., NMAX_FREQ=5 ) );

10.2. Calcul des charges critiques contenues dans une bande#

mode=CALC_MODES( TYPE_RESU=‘MODE_FLAMB’,

MATR_RIGI=rigid, MATR_RIGI_GEOM=riggeo,

OPTION=‘BANDE’,

CALC_FREQ=_F(

CHAR_CRIT=(-1.E8,1.5E8))

);

10.3. Chaînage INFO_MODE+CALC_MODES (extrait de SDLS504a)#

nbmod1 = INFO_MODE( TYPE_MODE='MODE_FLAMB',

...

CHAR_CRIT=(-1.E+6,-5.E+5,0.0,1.E+5,1.1E+6),)


RESULT0=CALC_MODES( TYPE_RESU='MODE_FLAMB',

...,

OPTION='BANDE',

CALC_CHAR_CRIT=_F( TABLE_CHAR_CRIT=nbmod1,

CHAR_CRIT=(-1.E+06,1.E+05)),

)

10.4. Calcul des fréquences propres contenues dans la bande [50 ; 150] Hz#

avec la méthode des puissances inverses


mode=CALC_MODES( MATR_RIGI=rigidite, MATR_MASS=masse,

OPTION=’AJUSTE’,

CALC_FREQ=_F( FREQ=(50.,150.)) )

10.5. Calcul des fréquences propres les plus proches de 20 et 50 Hz#

avec la méthode des puissances inverses, avec accélération de convergence par le coefficient de Rayleigh


mode= CALC_MODES( MATR_RIGI=rigidite, MATR_MASS=masse,

OPTION=’PROCHE’,

CALC_FREQ=_F( FREQ=(50.,150.)), SOLVEUR_MODAL=_F(OPTION_INV=’RAYLEIGH’) )

10.6. Découpage en plusieurs sous-bandes#

Soit la séquence suivante:


mode=CALC_MODES( MATR_RIGI=rigi,

MATR_MASS=masse,

OPTION=”BANDE”,

CALC_FREQ=_F( FREQ=(1.,3.,5.),) VERI_MODE=_F(),

NORM_MODE=_F(NORME=”TRAN_ROTA”,),

FILTRE_MODE=_F(CRIT_EXTR=”MASS_EFFE_UN”),

IMPRESSION=_F(CUMUL=”OUI”, CRIT_EXTR=”MASS_EFFE_UN”) );

On veut donc chercher tous les modes compris dans la bande globale \([1.,5.]\) Hz en la découpant en deux sous-bandes fréquentielles: \([1.,3.]\) et \([3.,5.]\) .

Une fois interprétée, la macro-commande consiste en l’enchaînement de commandes usuelles décrit ci-dessous.

  • Etape 1: Détermination du nombre de fréquences dans chaque sous-bandes


table1=INFO_MODE( MATR_RIGI=rigi,

MATR_MASS=masse,

FREQ=(1.,3.,5.))

[16]_ : nbmodeth

# Si la bande globale est vide: ALARME ou ERREUR_FATALE suivant la valeur de CALC_FREQ/STOP_BANDE_VIDE.

  • Etape 2: Calcul et normalisation des modes dans chaque sous-bande


[17]_ et, par défaut, on ne fait pas localement à chaque sous-bande le test de Sturm de post-vérification.

# Si la sous-bande locale est vide: ALARMEou ERREUR_FATALE suivant la valeur de CALC_FREQ/STOP_BANDE_VIDE.

mode_1=CALC_MODES(MATR_RIGI=rigi,

MATR_MASS=masse,

OPTION=”BANDE”,

CALC_FREQ=_F( FREQ=(1.,3.),

TABLE_FREQ=table1),),

VERI_MODE(STURM=”NON”)); mode_1=NORM_MODE( MODE=mode_1,

reuse=mode1,

NORME=”TRAN_ROTA”,); mode_2=CALC_MODES(MATR_RIGI=rigi,

MATR_MASS=masse,

OPTION=”BANDE”,

CALC_FREQ=_F( FREQ=(3.,5.),

TABLE_FREQ=table1),),

VERI_MODE(STURM=”NON”)); mode_2=NORM_MODE( MODE=mode_2,

reuse=mode2,

NORME=”TRAN_ROTA”,);

# Vérification par un test de Sturm global du bon nombre de fréquences calculées

# Détermination de la plus petite (resp. grande) fréquence de la première (resp. dernière) sous-bande non vide: freq_ini(resp. freq_fin).

# Calcul du nombre de fréquences comprises dans l’intervalle: \([\text{freq\_ini},\text{freq\_fin}]\): nbmodeef.

table2=INFO_MODE( MATR_RIGI=rigi,

MATR_MASS=masse,

FREQ=(freq_ini,freq_fin))

# Si ce nombre de modes est différent du nombre de modes prévu initialement: ERREUR_FATALE .

  • Étape 3: Filtrage, concaténation et impression des modes calculés.


mode=EXTR_MODE( FILTRE_MODE=_F( MODE=mode_1, CRIT_EXTR=”MASS_EFFE_UN”), FILTRE_MODE=_F( MODE=mode_2, CRIT_EXTR=”MASS_EFFE_UN”), IMPRESSION=_F( CUMUL=”OUI”, CRIT_EXTR=”MASS_EFFE_UN”),

);