10. Examples#

10.1. Calculation of the 5 natural modes closest to a given frequency#

fashion= CALC_MODES (MATR_RIGI =rigid,

MATR_MASS =mass,

OPTION =” CENTRE “,

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

10.2. Calculation of the critical loads contained in a band#

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. Chaining INFO_MODE + CALC_MODES (excerpt from 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. Calculation of the natural frequencies contained in the [50 ; 150] Hz band#

with the inverse power method


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

OPTION =” AJUSTE “,

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

10.5. Calculation of the natural frequencies closest to 20 and 50 Hz#

with the inverse power method, with convergence acceleration by the Rayleigh coefficient


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. Dividing into several sub-bands#

Consider the following sequence:


mode=CALC_MODES( MATR_RIGI=rigi,

MATR_MASS =mass,

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 “) );

We therefore want to search for all the modes included in the global \(\mathrm{[}1.,5.\mathrm{]}\) Hz band by dividing it into two frequency sub-bands: \(\mathrm{[}1.,3.\mathrm{]}\) and \(\mathrm{[}3.,5.\mathrm{]}\).

Once interpreted, the macro-command consists of the sequence of usual commands described below.

  • Step 1: Determining the number of frequencies in each sub-band


table1= INFO_MODE (MATR_RIGI =rigi,

MATR_MASS =mass,

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

[16] _ : nbmodeth

# If the global band is empty: ALARME or ERREUR_FATALE depending on the value of CALC_FREQ/STOP_BANDE_VIDE.

  • Step 2: Calculation and normalization of the modes in each sub-band


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

# If the local sub-band is empty: ALARMEou ERREUR_FATALE according to the value of CALC_FREQ/STOP_BANDE_VIDE.

mode_1= CALC_MODES (MATR_RIGI =rigi,

MATR_MASS =mass,

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 =mass,

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 “,);

# Verification by a global Sturm test of the correct number of frequencies calculated

# Determination of the smallest (resp. large) frequency of the first (resp. last) non-empty sub-band: freq_ini (resp. freq_fin).

# Calculate the number of frequencies in the interval: \(\mathrm{[}\text{freq\_ini},\text{freq\_fin}\mathrm{]}\): nbmodeef.

table2= INFO_MODE (MATR_RIGI =rigi,

MATR_MASS =mass,

FREQ =( freq_ini, freq_end))

# If this number of modes is different from the number of modes originally planned: ERREUR_FATALE.

  • Step 3: Filtering, concatenating, and printing calculated modes.


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 “),

);