*______________________________________________* * Machine à deux tores pour flexion equibiaxee * * Premier essai de maillage pour identifier * * les parametres d optimisation * *______________________________________________* 'OPTION' 'ELEM' QUA8 'DIME' 2 'MODE' axis; *____________________* * geometrie * *--------------------* *________________________ *parametres geometriques *------------------------ ep_util = 7e-3 ; ep_tot = 35e-3 ; lg_util = 40e-3 ; lg_racc = 50e-3 ; lg_cong = 10e-3 ; rayontot = 150e-3 ; rayonrou = 8e-3 ; lg_x =(0.80*rayontot) ; lg_y =(0.98*rayontot) ; coefcong = 0.5; coefzu = 1.5 ; ep_fracc = (ep_tot '-' 2e-3 ); angle_1 = 'ATG' (ep_fracc) (lg_racc '+' lg_util) ; ep_futil = lg_util*(('SIN'(angle_1))'/'('COS'(angle_1))); *ep_fracc = (lg_util '+' lg_racc)*(('SIN'(angle_1))'/'('COS'(angle_1))); surepint = ep_tot '-' ep_futil ; *angle_1 = 'ATG' surepint (lg_racc '+' lg_cong) ; *angle_1 = 70; angle_2 = 45; *angle_3 = 45; surep1 = ep_futil '-' ep_util ; surep2 = ((sin(angle_1))'/'(cos(angle_1)))'/'(lg_racc); surep3 = ep_tot '-' (coefcong*ep_util) ; *__________________ *liste des points *------------------ pta = 0. 0. ; ptb = lg_util 0. ; ptc = (lg_util '+' lg_racc) 0. ; ptd = (lg_util '+' lg_racc '+' lg_cong) 0. ; pte = rayontot 0. ; ptf = rayontot ep_tot ; ptg = (lg_util '+' lg_racc '+' lg_cong) ep_tot ; pth = (lg_util '+' lg_racc) ep_fracc; pti = lg_util ep_futil ; ptj = 0. ep_util ; c_util = (lg_util '-'(surep1*(('COS'(angle_1))'/'('SIN'(angle_1))))) ep_util ; yint = (('SIN'(angle_2))'/'('COS'(angle_2)))*(ep_tot '-' surep3); c_conge = (lg_util '+' lg_racc '+' lg_cong '-' yint) ep_tot; capph = lg_x (ep_tot '+' rayonrou) ; gapph = (lg_x '-' rayonrou) (ep_tot '+' rayonrou); dapph = (lg_x '+' rayonrou) (ep_tot '+' rayonrou); cinth = lg_x ep_tot ; int1h = (('COORDONNEE' 1 capph) '-' (0.4*rayonrou)) ('COORDONNEE' 2 capph) ; int2h = ('COORDONNEE' 1 int1h) (('COORDONNEE' 2 int1h) '-' (0.5*rayonrou)); int3h = (('COORDONNEE' 1 capph) '+' (0.4*rayonrou)) ('COORDONNEE' 2 int2h) ; int4h = ('COORDONNEE' 1 int3h) ('COORDONNEE' 2 int1h); cappb = lg_y (-1*rayonrou) ; gappb = (lg_y '-' rayonrou) (-1*rayonrou); dappb = (lg_y '+' rayonrou) (-1*rayonrou); cintb = lg_y 0 ; int1b = (('COORDONNEE' 1 cappb) '-' (0.4*rayonrou)) ('COORDONNEE' 2 cappb) ; int2b = ('COORDONNEE' 1 int1b) (('COORDONNEE' 2 int1b) '+' (0.5*rayonrou)); int3b = (('COORDONNEE' 1 cappb) '+' (0.4*rayonrou)) ('COORDONNEE' 2 int2b) ; int4b = ('COORDONNEE' 1 int3b) ('COORDONNEE' 2 int1b); *___________________________________________* * Calcul automatique du raccord en fonction * * des angles * *-------------------------------------------* Oppos1 = (('SIN'(angle_2))'/'('COS'(angle_2)))*lg_racc ; Hypo = ('SIN'(180 '-' angle_1))'/'('SIN'(180 '-'((180 '-' (90 - angle_2) '+' angle_1))))*(surep2 '-' Oppos1) ; y1 = Hypo*('SIN'(angle_2)); x1 = hypo*('COS'(angle_2)); c_racc = (lg_util '+' x1) (ep_tot '-' y1) ; *________________________ * parametres du maillage *------------------------ mab = 40; mbc = 40; mcd = 10; mde = 40; mep_util = 20; ma_roul1 = 11; ma_roul2 = 20; ma_roul3 = (ma_roul1 '+' ma_roul2 '+' ma_roul1)/2 ; *____________________ *liste des lignes *-------------------- lab = 'DROIT' mab pta ptb ; lbc = 'DROIT' mbc ptb ptc ; lcd = 'DROIT' mcd ptc ptd ; lbd = lbc 'ET' lcd ; lde = 'DROIT' mde ptd pte ; lef = 'DROIT' mep_util pte ptf ; lgf = 'DROIT' mde ptg ptf ; laj = 'DROIT' mep_util pta ptj ; lji = 'PARABOLE'mab ptj c_util pti ; *lih = 'PARABOLE' mbc pti c_racc pth ; lih = 'DROIT' mbc pti pth ; lhg = 'PARABOLE' mcd pth c_conge ptg; lbi = 'DROIT' mep_util ptb pti ; ldg = droit mep_util ptd ptg ; arch1 = 'CERCLE' ma_roul3 gapph capph cinth ; arch2 = 'CERCLE' ma_roul3 cinth capph dapph ; arch = arch1 'ET' arch2 ; l12h = 'DROIT' ma_roul1 int1h int2h ; l23h = 'DROIT' ma_roul2 int2h int3h ; l34h = 'DROIT' ma_roul1 int3h int4h ; larc1h = l12h 'ET' l23h 'ET' l34h ; arcb1 = 'CERCLE' ma_roul3 gappb cappb cintb ; arcb2 = 'CERCLE' ma_roul3 cintb cappb dappb ; arcb = arcb1 'ET' arcb2 ; l12b = 'DROIT' ma_roul1 int1b int2b ; l23b = 'DROIT' ma_roul2 int2b int3b ; l34b = 'DROIT' ma_roul1 int3b int4b ; larc1b = l12b 'ET' l23b 'ET' l34b ; 'TRACER' (lab 'ET' lbc 'ET' lcd 'ET' lde 'ET' lef 'ET' lgf 'ET' laj 'ET' lji 'ET' lih 'ET' lhg 'ET' larc1h 'ET' arch 'ET' larc1b 'ET'arcb); *____________________________ *surfaces *---------------------------- sur1 = lab 'REGLER' mep_util lji; sur2 = lbc 'REGLER' mep_util lih; sur3 = lcd 'REGLER' mep_util lhg ; sur4 = ldg 'REGLER' mde lef ; ************************************** * disque * ************************************** disque = sur1 'ET' sur2 'ET' sur3 'ET' sur4; ***************************** * tore h * ***************************** sint2h = 'REGLER' ma_roul2 l12h ('INVERSE' l34h); sint1h = 'REGLER' 8 larc1h arch ; torh = sint1h 'ET' sint2h ; ***************************** * tore b * ***************************** sint2b = 'REGLER' ma_roul2 l12b ('INVERSE' l34b); sint1b = 'REGLER' 8 larc1b arcb ; torb = sint1b 'ET' sint2b ; ********************************** * destruction des noeuds doubles * ********************************** 'ELIMINATION' 0.0000001 disque; 'ELIMINATION' 0.0000001 torh ; 'ELIMINATION' 0.0000001 torb ; *'TRACER' (disque 'ET' torh 'ET' torb); *_________________________* * conditions aux limites * *_________________________* *_____________________________________ *contacts *------------------------------------- ********************** * appui bas * ********************** *tore bas* gppb = torb 'POIN' proc (gappb); dppb = torb 'POIN' proc (dappb); larcb = 'CONTOUR' torb 'ELEM' 'COMPRIS' dppb gppb ; suptorb = 'CONTOUR' torb 'ELEM' 'COMPRIS' gppb dppb ; suptorb = suptorb 'COULEUR' vert ; *'TRACER' qual (larcb 'ET' suptorb) ; *disque bas* pib = disque 'POIN' proc (ptc); pfb = disque 'POIN' proc (pte); disqb = 'CONTOUR' disque 'ELEM' 'COMPRIS' pib pfb; *'TRACER' (disqb 'ET' torb) ; ************************ * appui haut * ************************ *tore haut* gpph = torh 'POIN' proc (gapph) ; dpph = torh 'POIN' proc (dapph) ; larch = 'CONTOUR' torh 'ELEM' 'COMPRIS' dpph gpph ; suptorh = 'CONTOUR' torh 'ELEM' 'COMPRIS' gpph dpph ; suptorh = suptorh 'COULEUR' bleu ; *tracer qual (larch 'ET' suptorh) ; *disque haut* pih = disque 'POIN' proc (ptg) ; pfh = disque 'POIN' proc (ptf) ; disqh = 'CONTOUR' disque 'ELEM' 'COMPRIS' pfh pih ; *tracer qual (disqh 'ET' torh); righ dh lah = contseg3 disqh larch ; rigb db lab = contseg3 disqb larcb ; dh = 'ORIENTER' dh; lah = 'ORIENTER' lah ; lah = 'INVERSE' lah ; db = 'ORIENTER' db ; lab = 'ORIENTER' lab ; *db = 'INVERSE' db ; tach = impo mail dh lah ; tacb = impo mail db lab ; *_____________* *deplacements * *-------------* ptch = torh 'POIN' proc (capph) ; ptcb = torb 'POIN' proc (cappb) ; clzb = 'BLOQUE' uz suptorb; clrb = 'BLOQUE' ur ptcb ; clzh = rela ense uz suptorh; clrh = 'BLOQUE' ur ptch ; *----------------------------* * conditions limites totales * *----------------------------* Cdlim = clzb 'ET' clrb 'ET' clzh 'ET' clrh; *_________________________* * modele * *_________________________* MO1 = 'MODE' TORH MECANIQUE ELASTIQUE ISOTROPE ; MO2 = 'MODE' TORB MECANIQUE ELASTIQUE ISOTROPE ; MO3 = 'MODE' DISQUE MECANIQUE ELASTIQUE ISOTROPE ; MOTOT = MO1 'ET' MO2 'ET' MO3 ; *_________________________* * materiau * *_________________________* MA1 = 'MATERIAU' MO1 'YOUN' 200E9 'NU' 0.3 'RHO' 7800 ; MA2 = 'MATERIAU' MO2 'YOUN' 200e9 'NU' 0.3 'RHO' 7800 ; MA3 = 'MATERIAU' MO3 'YOUN' 200e9 'NU' 0.3 'RHO' 7800 ; MATOT = MA1 'ET' MA2 'ET' MA3 ; *_________________________* * chargement * *_________________________* f01 = 'PROG' 5000 10000; fp = force fz (-1.) ptch; tps = 'PROG' 1 2; evchar = evol 'MANUEL' 'temps' tps 'force' f01; cha1 = 'CHARGEMENT' meca fp evchar ; *=============================* * PAS A PAS * *=============================* tab2 = table ; tab2.modele = motot ; tab2.caracteristiques = matot ; tab2.blocages_mecaniques = CdLIM ; tab2.chargement = cha1 ; tab2.contact = (tacb 'ET' tach) ; tab2.grands_deplacements = faux ; tab2.grandes_deformations = faux ; tab2.temps_calcules = tps; tab2.temps_sauves = tps; pasapas tab2 ; ********************************** * post traitement * ********************************** ind_i = 'DIME' (tab2.contraintes) ; dep = tab2.deplacements ; sig00 = tab2.contraintes ; i = 0 ; c1 = 0; repeter boucd ind_i; c1 = c1 '+' 1 ; def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 20. jaune ; 'SI' (c1 multi 2); def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 20. vert ; sinon; 'SI' (c1 multi 3); def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 20. bleu ; sinon; 'SI' (c1 multi 5); def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 20. rouge ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'SI' (c1 'EGA' 1) ; defp = def; sinon ; defp = defp 'ET' def ; 'FINSI' ; i = i '+' 1 ; 'FIN' boucd ; 'TRACER' defp ; i = 1; repeter boucs (ind_i '-' 1) ; *repeter boucs 1 ; sig_i = sig00.i; sigrr_i = 'EXCO' smrr sig_i; sigtt_i = 'EXCO' smtt sig_i; sigzz_i = 'EXCO' smzz sig_i; sigrz_i = 'EXCO' smrz sig_i; vm_i = vmis motot sig_i ; tr_i = tres motot sig_i ; LISOV = 'PROG' -5e7 -1E7 -1E6 -1e5 -1e4 -1e3 0 1e3 1e4 1e5 1e6 1e7 5e7 ; 'SI' (i > 0); titre 'smrr temps:' i; 'TRACER' sigrr_i lisov motot ('CONTOUR' disque); titre 'smtt temps:' i; 'TRACER' sigtt_i lisov motot ('CONTOUR' disque); titre 'smzz temps:' i; 'TRACER' sigzz_i lisov motot ('CONTOUR' disque); titre 'smrz temps:' i; 'TRACER' sigrz_i lisov motot ('CONTOUR' disque); titre 'vm temps:' i; 'TRACER' vm_i lisov motot ('CONTOUR' disque); titre 'tr temps:' i; 'TRACER' tr_i lisov motot ('CONTOUR' disque); 'FINSI' ; i = i '+' 1; 'FIN' boucs ; ************************* * prepa util du critere * ************************* *pt_int1 = disque 'POIN' proc (0 ep_util) ; *pt_int2 = disque 'POIN' proc (0 (-1*ep_util)) ; *li12 = 'CONTOUR' disque 'ELEM' 'COMPRIS' pt_int2 pt_int1 ; *'OPTION' 'SAUVER' '2tor.sauvdgibi' ; *'SAUVER' tab2 ep_util lg_util rayontot surep rayonrou lg_racc rayracc *coefcont posappb posapph;