Télécharger tristru.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : tristru.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. **********************************************************************
  6. * *
  7. * Mots-clés : Vibrations, calcul modal, modes statiques, poutre *
  8. * *
  9. * test sous-structuration 3 poutres *
  10. * auteur : JK *
  11. * *
  12. **********************************************************************
  13.  
  14. opti dime 3 elem seg2 ;
  15. OPTI EPSI LINEAIRE;
  16.  
  17.  
  18. d_graph = 'F' ;
  19. * premiere poutre bloquee
  20. d_bloq = faux;
  21.  
  22. p0 = 0. 0. 0. ; e_z = 0. 0. 1. ;
  23. q1 = 1. 0. 0. ; q2 = 2. 0. 0. ;
  24. lig1 = d 12 q1 q2 ;
  25.  
  26.  
  27. MO1= MODE LIG1 MECANIQUE ELASTIQUE POUT ;
  28.  
  29. MATPL1=MATE MO1 YOUNG 2.E11 NU 0.3 RHO 7800;
  30. CARPL1= 'CARA' MO1 SECT 0.1 INRY 2.08E-7 INRZ 3.33E-8
  31. TORS 2.41E-7;
  32. MATE1=MATPL1 ET CARPL1;
  33.  
  34. RIGPL1 =RIGI MATE1 MO1 ;
  35. MASPLA1=MASS MATE1 MO1 ;
  36. BLOQ2=BLOQ DEPL ROTA Q2 ;
  37. bloq1r = (bloq rota q1) ; blq1uz = bloq q1 uz ;
  38. blq1ux = bloq q1 ux ; blq1uy = bloq q1 uy ;
  39. *
  40. *---- Recherche des modes propres de la 1�re poutre ---
  41. *
  42. PR=PROG 0.4 ; n_mv = lect 2 ;
  43. *bp-2017-09-28 : utilite ? -> mise en commentaire...
  44. * MODPLA01=VIBR PROC PR (RIGPL1 ET BLOQ2 et bloq1r et
  45. * blq1uz et blq1ux et blq1uy) MASPLA1 ;
  46. * modpla0 = vibr proc pr (RIGPL1 ET BLOQ2 et bloq1r et blq1uz) maspla1 ;
  47.  
  48. pl1 = 0. 0. 0. ;
  49. vl1 = manu mult pl1 q1 ;
  50. bl_co1 = manu rigidite type rigidite vl1
  51. (mots lx) (mots ux xy uz) dual (mots flx) (mots fx fy fz)
  52. (prog 0. 1.5 0. -0.8666 0. 0. 0. 0. 0. 0. ) ;
  53.  
  54.  
  55. tblsta = table 'LIAISONS_STATIQUES' ;
  56. tblsta . 1 = table ; tblsta . 1 . point_liaison = q1 ;
  57. si d_bloq ; tblsta . 1 . ddl_liaison = ux ;
  58. sinon ; tblsta . 1 . ddl_liaison = fx ; finsi ;
  59. tblsta . 2 = table ; tblsta . 2 . point_liaison = q1 ;
  60. si d_bloq ; tblsta . 2 . ddl_liaison = uy ;
  61. sinon ; tblsta . 2 . ddl_liaison = fy ; finsi ;
  62.  
  63. si d_bloq ;
  64. bliaiq1 = bloque tblsta ; depi tblsta ;
  65. sinon ;
  66. force tblsta ;
  67. finsi ;
  68. si d_bloq ;
  69. * modes vibrations
  70. MODPLA1=VIBR PROC PR n_mv (RIGPL1 ET BLOQ2 et bloq1r et
  71. blq1uz et bliaiq1) MASPLA1 ;
  72. * solutions statiques
  73. tbsta = resout (RIGPL1 ET BLOQ2 et bloq1r et bliaiq1) tblsta ;
  74. react bliaiq1 tbsta ;
  75. sinon ;
  76. * modes vibrations
  77. MODPLA1=VIBR PROC PR n_mv (RIGPL1 ET BLOQ2 et bloq1r et
  78. blq1uz) MASPLA1 ;
  79. * solutions statiques
  80. tbsta = resout (RIGPL1 ET BLOQ2 et bloq1r ) tblsta ;
  81. finsi ;
  82.  
  83. tbsta maspla1 * ;
  84.  
  85. repeter bmod ((dime tbsta) - 1) ;
  86. ind1 = &bmod ;
  87. psta1 = manu poi1 tbsta . ind1 . point_repere ;
  88. mostai1 = mode psta1 mecanique elastique statique ;
  89. si d_bloq ;
  90. castai1 = mate mostai1 defo tbsta . ind1 . deformee
  91. made tbsta . ind1 . masse_deformee
  92. ride tbsta . ind1 . reaction ;
  93. sinon ;
  94. castai1 = mate mostai1 defo tbsta . ind1 . deformee
  95. made tbsta . ind1 . masse_deformee
  96. ride tbsta . ind1 . force ;
  97. finsi ;
  98. si (ega 1 ind1) ;
  99. mosta1 = mostai1 ; casta1 = castai1 ;
  100. sinon ;
  101. mosta1 = mosta1 et mostai1 ; casta1 = casta1 et castai1 ;
  102. finsi ;
  103. fin bmod ;
  104. masta1 = masse mosta1 casta1 ;
  105. rista1 = rigi mosta1 casta1 ;
  106.  
  107. modto1 = mosta1 ; casto1 = casta1 ; tmod = modpla1 . modes ;
  108.  
  109. repeter bmod ((dime modpla1 . modes) - 2) ;
  110. ind1 = &bmod ;
  111. psta1 = manu poi1 tmod . ind1 . point_repere ;
  112. momoda1 = mode psta1 mecanique elastique modal ;
  113. camoda1 = mate momoda1 freq tmod . ind1 . frequence
  114. mass tmod . ind1 . masse_generalisee
  115. defo tmod . ind1 . deformee_modale ;
  116. modto1 = modto1 et momoda1 ; casto1 = casto1 et camoda1 ;
  117. fin bmod ;
  118.  
  119. rigto1 = rigi modto1 casto1 ;
  120. masto1 = mass modto1 casto1 ;
  121.  
  122. * solution statique
  123. chq1ux = depi blq1ux 1. ; chq1uy = depi blq1uy 1. ;
  124. stq1ux = resout (RIGPL1 ET BLOQ2 et bloq1r et blq1uz et blq1ux) chq1ux ;
  125. stq1uy = resout (RIGPL1 ET BLOQ2 et bloq1r et blq1uz et blq1uy) chq1uy ;
  126.  
  127. *bp-2017-09-28 : utilite ? -> mise en commentaire...
  128. * * combinaison
  129. * evmoq0 = evol chpo (tire modpla0 depl) lig1 uy coul bleu ;
  130. * evmoq1 = evol chpo (tire modpla01 depl) lig1 uy ;
  131. * evstq1 = evol chpo stq1uy lig1 uy ;
  132. * coe_1 = 1. ;
  133. * repeter bdes 5 ;
  134. * *dess (((coe_1 * evmoq1) + ((1.-coe_1)*evstq1)) et (evmoq0 * (-1.))) ;
  135. * coe_1 = coe_1 - 0.25 ;
  136. * fin bdes ;
  137. * ***
  138.  
  139. modlig1 = vibr proc (prog 0.) (lect 2) rigto1 masto1 ;
  140. dlig1 = reco (modlig1 . modes . 1 . deformee_modale) modpla1 tbsta ;
  141. dlig11 = reco (modlig1 . modes . 1 . deformee_modale) modto1 casto1 ;
  142. deflig1 = defo dlig1 lig1 1. vert ;
  143. deflig11 = defo dlig11 lig1 1. rouge ;
  144. d_lig1 = defo dlig1 lig1 0. ;
  145. si (neg d_graph 'F') ;
  146. trac (0. 0. 1000.) (deflig1 et deflig11 et d_lig1) ;
  147. finsi ;
  148. *
  149. * 2eme poutre
  150. *
  151. q21 q22 lig2 mo2 mate2 = q1 q2 lig1 mo1 mate1 tour 120. p0 e_z ;
  152.  
  153. RIGPL2 =RIGI MATE2 MO2 ;
  154. MASPLA2=MASS MATE2 MO2 ;
  155. BLOQ22 =BLOQ DEPL ROTA Q22 ;
  156. BLOQ21R= BLOQ ROTA Q21 ; blq21uz = bloq q21 uz ;
  157. blq21ux = bloq q21 ux ; blq21uy = bloq q21 uy ;
  158.  
  159. *
  160. PR=PROG 0.4 ;
  161.  
  162. tblsta = table 'LIAISONS_STATIQUES' ;
  163. tblsta . 1 = table ; tblsta . 1 . point_liaison = q21 ;
  164. tblsta . 1 . ddl_liaison = ux ;
  165. tblsta . 2 = table ; tblsta . 2 . point_liaison = q21 ;
  166. tblsta . 2 . ddl_liaison = uy ;
  167.  
  168. bliaiq21 = bloque tblsta ;
  169. depi tblsta ;
  170. * modes vibrations
  171. MODPLA2=VIBR PROC PR n_mv (RIGPL2 ET BLOQ22 et bloq21r et
  172. blq21uz et bliaiq21) MASPLA2 ;
  173. * solutions statiques
  174. tbsta2 = resout (RIGPL2 ET BLOQ22 et bloq21r et bliaiq21) tblsta ;
  175. react bliaiq21 tbsta2 ;
  176. tbsta2 maspla2 * ;
  177. repeter bmod ((dime tbsta2) - 1) ;
  178. ind1 = &bmod ;
  179. psta1 = manu poi1 tbsta2 . ind1 . point_repere ;
  180. mostai2 = mode psta1 mecanique elastique statique ;
  181. castai2 = mate mostai2 defo tbsta2 . ind1 . deformee
  182. made tbsta2 . ind1 . masse_deformee
  183. ride tbsta2 . ind1 . reaction ;
  184. si (ega 1 ind1) ;
  185. mosta2 = mostai2 ; casta2 = castai2 ;
  186. sinon ;
  187. mosta2 = mosta2 et mostai2 ; casta2 = casta2 et castai2 ;
  188. finsi ;
  189. fin bmod ;
  190. masta2 = masse mosta2 casta2 ;
  191. rista2 = rigi mosta2 casta2 ;
  192.  
  193. modto2 = mosta2 ; casto2 = casta2 ; tmod = modpla2 . modes ;
  194.  
  195. repeter bmod ((dime modpla2 . modes) - 2) ;
  196. ind1 = &bmod ;
  197. psta1 = manu poi1 tmod . ind1 . point_repere ;
  198. momoda2 = mode psta1 mecanique elastique modal ;
  199. camoda2 = mate momoda2 freq tmod . ind1 . frequence
  200. mass tmod . ind1 . masse_generalisee
  201. defo tmod . ind1 . deformee_modale ;
  202. modto2 = modto2 et momoda2 ; casto2 = casto2 et camoda2 ;
  203. fin bmod ;
  204.  
  205. rigto21 = rigi modto2 casto2 ;
  206. masto21 = mass modto2 casto2 ;
  207.  
  208. t_sta = tbsta et tbsta2 ;
  209. modlig2 = vibr proc (prog 0.) (lect 2) rigto21 masto21 ;
  210. dlig2 = reco (modlig2 . modes . 1 . deformee_modale) modpla2 tbsta2 ;
  211. deflig2 = defo dlig2 lig2 1. vert ;
  212. d_lig2 = defo dlig2 lig2 0. ;
  213. si (neg d_graph 'F') ;
  214. trac (0. 0. 1000.) (deflig2 et d_lig2) ;
  215. finsi ;
  216. *
  217. * 3 eme poutre
  218. *
  219. q31 q32 lig3 mo3 mate3 = q21 q22 lig2 mo2 mate2 tour 120. p0 e_z ;
  220.  
  221. RIGPL3 =RIGI MATE3 MO3 ;
  222. MASPLA3=MASS MATE3 MO3 ;
  223. BLOQ32=BLOQ DEPL ROTA Q32 ;
  224. BLOQ31R = BLOQ ROTA Q31 ; blq31uz = bloq q31 uz ;
  225. blq31ux = bloq q31 ux ; blq31uy = bloq q31 uy ;
  226.  
  227. PR=PROG 0.4 ;
  228. tblsta = table 'LIAISONS_STATIQUES' ;
  229. tblsta . 1 = table ; tblsta . 1 . point_liaison = q31 ;
  230. tblsta . 1 . ddl_liaison = ux ;
  231. tblsta . 2 = table ; tblsta . 2 . point_liaison = q31 ;
  232. tblsta . 2 . ddl_liaison = uy ;
  233.  
  234. bliaiq31 = bloque tblsta ;
  235. depi tblsta ;
  236. * modes vibrations
  237. MODPLA3=VIBR PROC PR n_mv (RIGPL3 ET BLOQ32 et bloq31r et
  238. blq31uz et bliaiq31) MASPLA3 ;
  239. * solutions statiques
  240. tbsta3 = resout (RIGPL3 ET BLOQ32 et bloq31r et bliaiq31) tblsta ;
  241. ds3_1 = defo tbsta3 . 1 . deformee lig3 1. rouge ;
  242. ds3_2 = defo tbsta3 . 2 . deformee lig3 1. bleu ;
  243. ds3_0 = defo tbsta3 . 1 . deformee lig3 0. ;
  244. si (neg d_graph 'F') ;
  245. trac (0. 0. 1000.) (ds3_1 et ds3_2 et ds3_0) ;
  246. finsi ;
  247. react bliaiq31 tbsta3 ;
  248. tbsta3 maspla3 * ;
  249.  
  250. repeter bmod ((dime tbsta3) - 1) ;
  251. ind1 = &bmod ;
  252. psta1 = manu poi1 tbsta3 . ind1 . point_repere ;
  253. mostai3 = mode psta1 mecanique elastique statique ;
  254. castai3 = mate mostai3 defo tbsta3 . ind1 . deformee
  255. made tbsta3 . ind1 . masse_deformee
  256. ride tbsta3 . ind1 . reaction ;
  257. si (ega 1 ind1) ;
  258. mosta3 = mostai3 ; casta3 = castai3 ;
  259. sinon ;
  260. mosta3 = mosta3 et mostai3 ; casta3 = casta3 et castai3 ;
  261. finsi ;
  262. fin bmod ;
  263. masta3 = masse mosta3 casta3 ;
  264. rista3 = rigi mosta3 casta3 ;
  265.  
  266. modto3 = mosta3 ; casto3 = casta3 ; tmod = modpla3 . modes ;
  267.  
  268. repeter bmod ((dime modpla3 . modes) - 2) ;
  269. ind1 = &bmod ;
  270. psta1 = manu poi1 tmod . ind1 . point_repere ;
  271. momoda3 = mode psta1 mecanique elastique modal ;
  272. camoda3 = mate momoda3 freq tmod . ind1 . frequence
  273. mass tmod . ind1 . masse_generalisee
  274. defo tmod . ind1 . deformee_modale ;
  275. modto3 = modto3 et momoda3 ; casto3 = casto3 et camoda3 ;
  276. fin bmod ;
  277.  
  278. rigto31 = rigi modto3 casto3
  279. masto31 = mass modto3 casto3 ;
  280.  
  281. modlig3 = vibr proc (prog 0.) (lect 2) rigto31 masto31 ;
  282. dlig3 = reco (modlig3 . modes . 1 .deformee_modale) modpla3 tbsta3 ;
  283. deflig3 = defo dlig3 lig3 1. vert ;
  284. d_lig3 = defo dlig3 lig3 0. ;
  285.  
  286. si (neg d_graph 'F') ;
  287. trac (0. 0. 1000.) (deflig3 et d_lig3) ;
  288. finsi ;
  289. t_sta = t_sta et tbsta3 ;
  290. t_vib = modpla1 et modpla2 et modpla3 ;
  291. mo_to = modto1 et modto2 et modto3 ;
  292. ca_to = casto1 et casto2 et casto3 ;
  293.  
  294. n_te = 1 ;
  295. re_bar1 = ( rela q1 ux + q21 ux + q31 ux )
  296. et ( rela q1 uy + q21 uy + q31 uy ) ;
  297. re_bap1 = pjba re_bar1 mo_to ca_to ;
  298. re_bap0 = pjba re_bar1 t_sta ;
  299. tt1 = idli re_bar1 lig1 ;
  300. tt2 = idli re_bar1 lig2 ;
  301. tt3 = idli re_bar1 lig3 ;
  302. rig_t2 = rigto1 et rigto21 et rigto31 et re_bap1 ;
  303. mas_t2 = masto1 et masto21 et masto31 ;
  304. mod_t2 = vibr proc pr (lect n_te) rig_t2 mas_t2 ;
  305.  
  306. rig_t1 = rigpl1 et bloq2 et rigpl2 et bloq22 et rigpl3 et bloq32
  307. et bloq1r et blq1uz et bloq21r et blq21uz et bloq31r et blq31uz
  308. et re_bar1 ;
  309. mas_t1 = maspla1 et maspla2 et maspla3 ;
  310. mod_t1 = vibr proc pr (lect n_te) rig_t1 mas_t1 ;
  311.  
  312. i_te = 0 ;
  313. repeter b_te n_te ;
  314. i_te = i_te + 1 ;
  315. dp1_t2 = reco (mod_t2 . modes . i_te . deformee_modale)
  316. t_sta t_vib ;
  317. dp1_t2 = reco (mod_t2 . modes . i_te . deformee_modale) mo_to ca_to ;
  318. m_t2 = mod_t2 . modes . i_te . masse_generalisee ** 0.5 ;
  319. m_t2 = -1.*m_t2;
  320. df1_t2 = defo (dp1_t2/m_t2) (lig1 et lig2 et lig3) 10. vert ;
  321.  
  322. dp1_t1 = mod_t1 . modes . i_te . deformee_modale ;
  323. m_t1 = mod_t1 . modes . i_te . masse_generalisee ** 0.5 ;
  324. df1_t1 = defo (dp1_t1 / m_t1) (lig1 et lig2 et lig3) 10. bleu ;
  325. si (neg d_graph 'F') ;
  326. trac (0. 0. 1000.) (df1_t1 et df1_t2) ;
  327. finsi ;
  328. fin b_te ;
  329. err0 = (dp1_t2/m_t2) - (dp1_t1 / m_t1) ;
  330. nerr0= (maxi (abs err0) sans (mots lx)) ;
  331. err2 = (dp1_t2/m_t2) + (dp1_t1 / m_t1) ;
  332. nerr2= (maxi (abs err2) sans (mots lx)) ;
  333. *opti donn 5 ;
  334. si ((nerr0 < 1.e-3) ou (nerr2 < 1.e-3)) ;
  335. erre 0 ; sinon ; erre 5 ; finsi ;
  336. fin ;
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales