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

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