* fichier : tristru.dgibi
* test sous-structuration 3 poutres
opti dime 3 elem seg2 ;
d_graph = 'F' ;
* premiere poutre bloquee
d_bloq = faux;
p0 = 0. 0. 0. ; e_z = 0. 0. 1. ;
q1 = 1. 0. 0. ; q2 = 2. 0. 0. ;
lig1 = d 12 q1 q2 ;
MO1= MODL LIG1 MECANIQUE ELASTIQUE POUT ;
MATPL1=MATR MO1 YOUNG 2.E11 NU 0.3 RHO 7800;
CARPL1=CARB MO1 SECT 0.1 INRY 2.08E-7 INRZ 3.33E-8
TORS 2.41E-7;
MATE1=MATPL1 ET CARPL1;
RIGPL1 =RIGI MATE1 MO1 ;
MASPLA1=MASS MATE1 MO1 ;
BLOQ2=BLOQ DEPL ROTA Q2 ;
bloq1r = (bloq rota q1) ; blq1uz = bloq q1 uz ;
blq1ux = bloq q1 ux ; blq1uy = bloq q1 uy ;
*
*---- Recherche des modes propres de la 1�re poutre ---
*
PR=PROG 0.4 ; n_mv = lect 2 ;
MODPLA01=VIBR PROC PR (RIGPL1 ET BLOQ2 et bloq1r et
blq1uz et blq1ux et blq1uy) MASPLA1 ;
modpla0 = vibr proc pr (RIGPL1 ET BLOQ2 et bloq1r et blq1uz) maspla1 ;
pl1 = 0. 0. 0. ;
vl1 = manu mult pl1 q1 ;
bl_co1 = manu rigidite type rigidite vl1
(mots lx) (mots ux xy uz) dual (mots flx) (mots fx fy fz)
(prog 0. 1.5 0. -0.8666 0. 0. 0. 0. 0. 0. ) ;
tblsta = table 'LIAISONS_STATIQUES' ;
tblsta . 1 = table ; tblsta . 1 . point_liaison = q1 ;
si d_bloq ; tblsta . 1 . ddl_liaison = ux ;
sinon ; tblsta . 1 . ddl_liaison = fx ; finsi ;
tblsta . 2 = table ; tblsta . 2 . point_liaison = q1 ;
si d_bloq ; tblsta . 2 . ddl_liaison = uy ;
sinon ; tblsta . 2 . ddl_liaison = fy ; finsi ;
si d_bloq ;
bliaiq1 = bloque tblsta ; depi tblsta ;
sinon ;
force tblsta ;
finsi ;
si d_bloq ;
* modes vibrations
MODPLA1=VIBR PROC PR n_mv (RIGPL1 ET BLOQ2 et bloq1r et
blq1uz et bliaiq1) MASPLA1 tbas;
* solutions statiques
tbsta = resout (RIGPL1 ET BLOQ2 et bloq1r et bliaiq1) tblsta ;
react bliaiq1 tbsta ;
sinon ;
* modes vibrations
MODPLA1=VIBR PROC PR n_mv (RIGPL1 ET BLOQ2 et bloq1r et
blq1uz) MASPLA1 tbas;
* solutions statiques
tbsta = resout (RIGPL1 ET BLOQ2 et bloq1r ) tblsta ;
finsi ;
tbsta maspla1 * ;
repeter bmod ((dime tbsta) - 1) ;
ind1 = &bmod ;
psta1 = manu poi1 tbsta . ind1 . point_repere ;
mostai1 = mode psta1 mecanique elastique statique ;
si d_bloq ;
castai1 = mate mostai1 defo tbsta . ind1 . deformee
made tbsta . ind1 . masse_deformee
ride tbsta . ind1 . reaction ;
sinon ;
castai1 = mate mostai1 defo tbsta . ind1 . deformee
made tbsta . ind1 . masse_deformee
ride tbsta . ind1 . force ;
finsi ;
si (ega 1 ind1) ;
mosta1 = mostai1 ; casta1 = castai1 ;
sinon ;
mosta1 = mosta1 et mostai1 ; casta1 = casta1 et castai1 ;
finsi ;
fin bmod ;
masta1 = masse mosta1 casta1 ;
rista1 = rigi mosta1 casta1 ;
modto1 = mosta1 ; casto1 = casta1 ; tmod = modpla1 . modes ;
repeter bmod ((dime modpla1 . modes) - 2) ;
ind1 = &bmod ;
psta1 = manu poi1 tmod . ind1 . point_repere ;
momoda1 = mode psta1 mecanique elastique modal ;
camoda1 = mate momoda1 freq tmod . ind1 . frequence
mass tmod . ind1 . masse_generalisee
defo tmod . ind1 . deformee_modale ;
modto1 = modto1 et momoda1 ; casto1 = casto1 et camoda1 ;
fin bmod ;
rigto1 = rigi modto1 casto1 ;
masto1 = mass modto1 casto1 ;
* solution statique
chq1ux = depi blq1ux 1. ; chq1uy = depi blq1uy 1. ;
stq1ux = resout (RIGPL1 ET BLOQ2 et bloq1r et blq1uz et blq1ux) chq1ux ;
stq1uy = resout (RIGPL1 ET BLOQ2 et bloq1r et blq1uz et blq1uy) chq1uy ;
* combinaison
evmoq0 = evol chpo (tire modpla0 depl) lig1 uy coul bleu ;
evmoq1 = evol chpo (tire modpla01 depl) lig1 uy ;
evstq1 = evol chpo stq1uy lig1 uy ;
coe_1 = 1. ;
repeter bdes 5 ;
*dess (((coe_1 * evmoq1) + ((1.-coe_1)*evstq1)) et (evmoq0 * (-1.))) ;
coe_1 = coe_1 - 0.25 ;
fin bdes ;
***
modlig1 = vibr proc (prog 0.) (lect 2) rigto1 masto1 tbas ;
dlig1 = reco (modlig1 . modes . 1 . deformee_modale) modpla1 tbsta ;
dlig11 = reco (modlig1 . modes . 1 . deformee_modale) modto1 casto1 ;
deflig1 = defo dlig1 lig1 1. vert ;
deflig11 = defo dlig11 lig1 1. rouge ;
d_lig1 = defo dlig1 lig1 0. ;
si (neg d_graph 'F') ;
trac (0. 0. 1000.) (deflig1 et deflig11 et d_lig1) ;
finsi ;
*
* 2eme poutre
*
q21 q22 lig2 mo2 mate2 = q1 q2 lig1 mo1 mate1 tour 120. p0 e_z ;
RIGPL2 =RIGI MATE2 MO2 ;
MASPLA2=MASS MATE2 MO2 ;
BLOQ22 =BLOQ DEPL ROTA Q22 ;
BLOQ21R= BLOQ ROTA Q21 ; blq21uz = bloq q21 uz ;
blq21ux = bloq q21 ux ; blq21uy = bloq q21 uy ;
*
PR=PROG 0.4 ;
tblsta = table 'LIAISONS_STATIQUES' ;
tblsta . 1 = table ; tblsta . 1 . point_liaison = q21 ;
tblsta . 1 . ddl_liaison = ux ;
tblsta . 2 = table ; tblsta . 2 . point_liaison = q21 ;
tblsta . 2 . ddl_liaison = uy ;
bliaiq21 = bloque tblsta ;
depi tblsta ;
* modes vibrations
MODPLA2=VIBR PROC PR n_mv (RIGPL2 ET BLOQ22 et bloq21r et
blq21uz et bliaiq21) MASPLA2 tbas;
* solutions statiques
tbsta2 = resout (RIGPL2 ET BLOQ22 et bloq21r et bliaiq21) tblsta ;
react bliaiq21 tbsta2 ;
tbsta2 maspla2 * ;
repeter bmod ((dime tbsta2) - 1) ;
ind1 = &bmod ;
psta1 = manu poi1 tbsta2 . ind1 . point_repere ;
mostai2 = mode psta1 mecanique elastique statique ;
castai2 = mate mostai2 defo tbsta2 . ind1 . deformee
made tbsta2 . ind1 . masse_deformee
ride tbsta2 . ind1 . reaction ;
si (ega 1 ind1) ;
mosta2 = mostai2 ; casta2 = castai2 ;
sinon ;
mosta2 = mosta2 et mostai2 ; casta2 = casta2 et castai2 ;
finsi ;
fin bmod ;
masta2 = masse mosta2 casta2 ;
rista2 = rigi mosta2 casta2 ;
modto2 = mosta2 ; casto2 = casta2 ; tmod = modpla2 . modes ;
repeter bmod ((dime modpla2 . modes) - 2) ;
ind1 = &bmod ;
psta1 = manu poi1 tmod . ind1 . point_repere ;
momoda2 = mode psta1 mecanique elastique modal ;
camoda2 = mate momoda2 freq tmod . ind1 . frequence
mass tmod . ind1 . masse_generalisee
defo tmod . ind1 . deformee_modale ;
modto2 = modto2 et momoda2 ; casto2 = casto2 et camoda2 ;
fin bmod ;
rigto21 = rigi modto2 casto2 ;
masto21 = mass modto2 casto2 ;
t_sta = tbsta et tbsta2 ;
modlig2 = vibr proc (prog 0.) (lect 2) rigto21 masto21 tbas ;
dlig2 = reco (modlig2 . modes . 1 . deformee_modale) modpla2 tbsta2 ;
deflig2 = defo dlig2 lig2 1. vert ;
d_lig2 = defo dlig2 lig2 0. ;
si (neg d_graph 'F') ;
trac (0. 0. 1000.) (deflig2 et d_lig2) ;
finsi ;
*
* 3 eme poutre
*
q31 q32 lig3 mo3 mate3 = q21 q22 lig2 mo2 mate2 tour 120. p0 e_z ;
RIGPL3 =RIGI MATE3 MO3 ;
MASPLA3=MASS MATE3 MO3 ;
BLOQ32=BLOQ DEPL ROTA Q32 ;
BLOQ31R = BLOQ ROTA Q31 ; blq31uz = bloq q31 uz ;
blq31ux = bloq q31 ux ; blq31uy = bloq q31 uy ;
PR=PROG 0.4 ;
tblsta = table 'LIAISONS_STATIQUES' ;
tblsta . 1 = table ; tblsta . 1 . point_liaison = q31 ;
tblsta . 1 . ddl_liaison = ux ;
tblsta . 2 = table ; tblsta . 2 . point_liaison = q31 ;
tblsta . 2 . ddl_liaison = uy ;
bliaiq31 = bloque tblsta ;
depi tblsta ;
* modes vibrations
MODPLA3=VIBR PROC PR n_mv (RIGPL3 ET BLOQ32 et bloq31r et
blq31uz et bliaiq31) MASPLA3 tbas;
* solutions statiques
tbsta3 = resout (RIGPL3 ET BLOQ32 et bloq31r et bliaiq31) tblsta ;
ds3_1 = defo tbsta3 . 1 . deformee lig3 1. rouge ;
ds3_2 = defo tbsta3 . 2 . deformee lig3 1. bleu ;
ds3_0 = defo tbsta3 . 1 . deformee lig3 0. ;
si (neg d_graph 'F') ;
trac (0. 0. 1000.) (ds3_1 et ds3_2 et ds3_0) ;
finsi ;
react bliaiq31 tbsta3 ;
tbsta3 maspla3 * ;
repeter bmod ((dime tbsta3) - 1) ;
ind1 = &bmod ;
psta1 = manu poi1 tbsta3 . ind1 . point_repere ;
mostai3 = mode psta1 mecanique elastique statique ;
castai3 = mate mostai3 defo tbsta3 . ind1 . deformee
made tbsta3 . ind1 . masse_deformee
ride tbsta3 . ind1 . reaction ;
si (ega 1 ind1) ;
mosta3 = mostai3 ; casta3 = castai3 ;
sinon ;
mosta3 = mosta3 et mostai3 ; casta3 = casta3 et castai3 ;
finsi ;
fin bmod ;
masta3 = masse mosta3 casta3 ;
rista3 = rigi mosta3 casta3 ;
modto3 = mosta3 ; casto3 = casta3 ; tmod = modpla3 . modes ;
repeter bmod ((dime modpla3 . modes) - 2) ;
ind1 = &bmod ;
psta1 = manu poi1 tmod . ind1 . point_repere ;
momoda3 = mode psta1 mecanique elastique modal ;
camoda3 = mate momoda3 freq tmod . ind1 . frequence
mass tmod . ind1 . masse_generalisee
defo tmod . ind1 . deformee_modale ;
modto3 = modto3 et momoda3 ; casto3 = casto3 et camoda3 ;
fin bmod ;
rigto31 = rigi modto3 casto3 ;
masto31 = mass modto3 casto3 ;
modlig3 = vibr proc (prog 0.) (lect 2) rigto31 masto31 tbas ;
dlig3 = reco (modlig3 . modes . 1 .deformee_modale) modpla3 tbsta3 ;
deflig3 = defo dlig3 lig3 1. vert ;
d_lig3 = defo dlig3 lig3 0. ;
si (neg d_graph 'F') ;
trac (0. 0. 1000.) (deflig3 et d_lig3) ;
finsi ;
t_sta = t_sta et tbsta3 ;
t_vib = modpla1 et modpla2 et modpla3 ;
mo_to = modto1 et modto2 et modto3 ;
ca_to = casto1 et casto2 et casto3 ;
n_te = 1 ;
re_bar1 = ( rela q1 ux + q21 ux + q31 ux )
et ( rela q1 uy + q21 uy + q31 uy ) ;
re_bap1 = pjba re_bar1 mo_to ca_to ;
re_bap0 = pjba re_bar1 t_sta ;
tt1 = idli re_bar1 lig1 ;
tt2 = idli re_bar1 lig2 ;
tt3 = idli re_bar1 lig3 ;
rig_t2 = rigto1 et rigto21 et rigto31 et re_bap1 ;
mas_t2 = masto1 et masto21 et masto31 ;
mod_t2 = vibr proc pr (lect n_te) rig_t2 mas_t2 tbas ;
rig_t1 = rigpl1 et bloq2 et rigpl2 et bloq22 et rigpl3 et bloq32
et bloq1r et blq1uz et bloq21r et blq21uz et bloq31r et blq31uz
et re_bar1 ;
mas_t1 = maspla1 et maspla2 et maspla3 ;
mod_t1 = vibr proc pr (lect n_te) rig_t1 mas_t1 tbas ;
i_te = 0 ;
repeter b_te n_te ;
i_te = i_te + 1 ;
dp1_t2 = reco (mod_t2 . modes . i_te . deformee_modale)
t_sta t_vib ;
dp1_t2 = reco (mod_t2 . modes . i_te . deformee_modale) mo_to ca_to ;
m_t2 = mod_t2 . modes . i_te . masse_generalisee ** 0.5 ;
m_t2 = -1.*m_t2;
df1_t2 = defo (dp1_t2/m_t2) (lig1 et lig2 et lig3) 10. vert ;
dp1_t1 = mod_t1 . modes . i_te . deformee_modale ;
m_t1 = mod_t1 . modes . i_te . masse_generalisee ** 0.5 ;
df1_t1 = defo (dp1_t1 / m_t1) (lig1 et lig2 et lig3) 10. bleu ;
si (neg d_graph 'F') ;
trac (0. 0. 1000.) (df1_t1 et df1_t2) ;
finsi ;
fin b_te ;
err0 = (dp1_t2/m_t2) - (dp1_t1 / m_t1) ;
nerr0= (maxi (abs err0) sans (mots lx)) ;
err2 = (dp1_t2/m_t2) + (dp1_t1 / m_t1) ;
nerr2= (maxi (abs err2) sans (mots lx)) ;
*opti donn 5 ;
si ((nerr0 < 1.e-3) ou (nerr2 < 1.e-3)) ;
erre 0 ; sinon ; erre 5 ; finsi ;
fin ;
© Cast3M 2003 - All rights reserved.
Disclaimer