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