Télécharger dy_devo6.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dy_devo6.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * Test Dy_devo6.dgibi: Jeux de donn�es *
  5. * ------------------------------------ *
  6. * *
  7. *******************************************************
  8. *
  9. * DYNE LIAISON POIN_PLAN
  10. * avec plastification du ressort de choc
  11. *
  12. * il s'agit d'une grande masse anim�e d'un mouvement
  13. * sinusoidale (avec deux amplitudes differentes) qui
  14. * impacte un plan
  15. *
  16. * on teste aussi la reprise de calcul
  17. *
  18. *******************************************************
  19. opti echo 1 ;
  20. graph ='N' ;
  21. dpasa='O' ; complet = 'N' ;
  22. *******************************************************
  23. m1 = 100000 ; comm 'masse impact�e';
  24. ke = 100. ; comm 'raideur de choc';
  25. se1 = 50. ; comm 'limite �lastique';
  26. dt = .01 ; comm 'pas de temps';
  27. t1 = 12 ; comm 'dur�e du calcul';
  28. *******************************************************
  29. pp1 = 0 0 0 ;
  30. p1 = 0 0 0 ;
  31. *
  32. tab1 = table 'BASE_MODALE' ;
  33. TAB2 = TABLE 'BASE_DE_MODES' ;
  34. TAB1 . MODES = TAB2 ;
  35. TAB2 . 1 = TABLE 'MODE' ;
  36. TAB2 . 1 .'POINT_REPERE' = PP1 ;
  37. TAB2 . 1 . 'FREQUENCE' = 0 ;
  38. TAB2 . 1 .'MASSE_GENERALISEE' = M1 ;
  39. TAB2 . 1 .'DEFORMEE_MODALE' = manu chpo p1 1 ux 1. ;
  40.  
  41. ma1 = manu poi1 tab2 . 1 . point_repere ;
  42. mo1 = mode ma1 mecanique elastique modal ;
  43. ca1 = mate mo1 freq tab2 . 1 . frequence
  44. mass tab2 . 1 . masse_generalisee defo tab2 . 1 . deformee_modale ;
  45. *
  46. ** definition du chargement
  47. w0 = .125*2*pi ;
  48. list1 = prog 0. pas dt (t1/2-dt) ;
  49. list2 = prog (t1/2) pas dt t1 ;
  50. lisy1 = prog sinu .125 ampl (w0**2) list1 ;
  51. lisy2 = prog sinu .125 ampl (1.5*(w0**2)) list2 ;
  52. ev1 = evol manu 'temps' (list1 et list2)
  53. 'accel' (lisy1 et lisy2) ;
  54. fx1 = force fx (-1*m1) p1 ;
  55. cha1 = char fx1 ev1 ;
  56. *
  57. ** chargement et cond. initiales en base A
  58. cham1 = pjba tab1 cha1 ;
  59. TCHA1 = TABLE 'CHARGEMENT' ;
  60. TCHA1.'BASE_A' = CHAM1 ;
  61. TINIT = TABLE 'INITIAL' ;
  62. TINIT.'VITESSE' = manu chpo pp1 1 alfa w0 ;
  63. *
  64. ** definition de la liaison
  65. TLIA = TABLE 'LIAISON' ;
  66. TLB = TABLE 'LIAISON_B' ;
  67. TLIA.'LIAISON_B' = TLB ;
  68. TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
  69. TL1.'TYPE_LIAISON' = MOT 'POINT_PLAN';
  70. TL1.'SUPPORT' = P1 ;
  71. TL1.'NORMALE' = (1 0 0);
  72. TL1.'RAIDEUR' = KE ;
  73. TL1.'JEU' = 0.;
  74. tl1.'SEUIL_PLASTIQUE' = se1 ;
  75. TL1.'AMORTISSEMENT'= 0. ;
  76. TLB. 1 = TL1 ;
  77. *
  78. mappb = manu poi1 p1 ;
  79. moppb = modele mappb liaison point_plan ;
  80. tsopb = table ; tsopb . moppb = vrai ;
  81. cappb = mate moppb 'NORM' (1 0 0) 'RAID' ke 'JEU' 0.
  82. 'SPLA' se1 'AMOR' 0. 'SORT' tsopb ;
  83.  
  84. ** nombre de pas
  85. npas0 = (enti (t1/dt)) ;
  86. npas = npas0 / 2 ;
  87. *npas = 2 ;
  88. nins = 1 ;
  89. ** definition de la sortie
  90. TSORT = TABLE 'SORTIE' ;
  91. TSORL = TABLE 'LIAISON_B' ;
  92. TSORT.'LIAISON_B' = TSORL ;
  93. TSORL.TL1 = VRAI ;
  94. *
  95. ** 1er bloc de calcul
  96. *tres1 = dyne differences_centrees tlia tab1 tcha1
  97. * tsort tinit npas dt nins;
  98. tres1 = dyne de_vogelaere tlia tab1 tcha1
  99. tsort tinit npas dt nins;
  100.  
  101. TTL1 = TRES1.TL1 ;
  102. LIS_TEM0 = TRES1.'TEMPS_DE_SORTIE';
  103. lisxp1 = TTL1.'UX' ;
  104. lisyp1 = ttl1 .'FORCE_DE_CHOC' ;
  105. titre 'force - deplacement';
  106. evdf1 = evol manu 'depl' lisxp1 'force' lisyp1 ;
  107. titre 'deplacement plastique - temps' ;
  108. evdp1 = evol manu 'temps' lis_tem0 'dep_pl'
  109. ttl1.deplacement_plastique ;
  110.  
  111. *dess (evdp1 et (ev2dp1 coul vert)) ;
  112. *
  113. *
  114. si (ega dpasa 'O');
  115. *
  116. t_final = npas * dt ;
  117.  
  118. l_cal = prog 0 pas dt t_final ;
  119.  
  120. tabdyn = table 'PASAPAS' ;
  121. tabdyn . dynamique = vrai ;
  122. tabdyn . modele = mo1 et moppb ;
  123. tabdyn . caracteristiques = ca1 et cappb ;
  124. tabdyn . chargement = cham1 ;
  125. tabdyn . vitesses = table ;
  126. tabdyn . vitesses . 0 = manu chpo pp1 1 alfa w0 ;
  127. tabdyn . temps_sauves = l_cal ;
  128.  
  129.  
  130. pasapas tabdyn ;
  131. *opti donn 5 ;
  132. l_t0 = prog 0. tabdyn . temps . 1 ;
  133. tt1 = 'EXTR' tabdyn . variables_internes . 1 'SLIA' 2 1 1 ;
  134. lis3xp1 = tt1.ux ;
  135. lis3yp1 = tt1.force_de_choc ;
  136. lis3dp1 = tt1.deplacement_plastique ;
  137. indi1 = 1 ;
  138.  
  139. repeter bs ((dime tabdyn . temps) - 2) ;
  140. indi1 = indi1 + 1 ;
  141. l_t0 = l_t0 et (prog tabdyn . temps . indi1) ;
  142. ttu1 = 'EXTR' tabdyn . variables_internes . indi1 'SLIA' 2 1 1 ;
  143. lis3xp1 = lis3xp1 et ttu1.ux ;
  144. lis3yp1 = lis3yp1 et ttu1.force_de_choc ;
  145. lis3dp1 = lis3dp1 et ttu1.deplacement_plastique ;
  146. fin bs ;
  147. ev3df1 = evol manu 'depl' lis3xp1 'force' lis3yp1 ;
  148. ev3dp1 = evol manu 'temps' l_t0 'dep_pl'lis3dp1 ;
  149.  
  150. *
  151. sinon ;
  152. *
  153. tabdyn . nombre_pas = npas ;
  154. tabdyn . pas_de_temps = dt ;
  155. tabdyn . pas_de_sortie = nins ;
  156. tabdyn . sortie = table ;
  157. tabdyn . sortie . moppb = vrai ;
  158. dyne de_vogelaere tabdyn ;
  159. *
  160. l_t0 = prog ;
  161. repeter bs (dime tabdyn . temps) ;
  162. l_t0 = l_t0 et (prog tabdyn . temps . (&bs - 1)) ;
  163. fin bs ;
  164.  
  165. lis2xp1 = tabdyn.liaisons.moppb.ux ;
  166. lis2yp1= tabdyn.liaisons.moppb.force_de_choc ;
  167. ev2df1 = evol manu 'depl' lis2xp1 'force' lis2yp1 ;
  168. ev2dp1 = evol manu 'temps' l_t0 'dep_pl'
  169. tabdyn.liaisons.moppb.deplacement_plastique ;
  170. *
  171. finsi ;
  172. *
  173.  
  174. ** reprise de calcul
  175.  
  176. si (ega complet 'O') ;
  177. si (ega dpasa 'O');
  178. *
  179. t_fin0 = npas * dt * 2 ;
  180. l_cal = prog t_final pas dt t_fin0 ;
  181. tabdyn . temps_sauves = l_cal ;
  182.  
  183. pasapas tabdyn ;
  184. *l_t0 = prog 0. tabdyn . temps . 1 ;
  185. tt1 = 'EXTR' tabdyn . variables_internes . 1 'SLIA' 2 1 1 ;
  186. lis3xp1 = tt1.ux ;
  187. lis3yp1 = tt1.force_de_choc ;
  188. lis3dp1 = tt1.deplacement_plastique ;
  189. indi1 = 1 ;
  190.  
  191. repeter bs ((dime tabdyn . temps) - 2) ;
  192. indi1 = indi1 + 1 ;
  193. l_t0 = l_t0 et (prog tabdyn . temps . indi1) ;
  194. ttu1 = 'EXTR' tabdyn . variables_internes . indi1 'SLIA' 2 1 1 ;
  195. lis3xp1 = lis3xp1 et ttu1.ux ;
  196. lis3yp1 = lis3yp1 et ttu1.force_de_choc ;
  197. lis3dp1 = lis3dp1 et ttu1.deplacement_plastique ;
  198. fin bs ;
  199. ev3df1 = evol manu 'depl' lis3xp1 'force' lis3yp1 ;
  200. ev3dp1 = evol manu 'temps' l_t0 'dep_pl'lis3dp1 ;
  201.  
  202. sinon ;
  203. *
  204. tabdyn . init_dyne = tabdyn . reprise_dyne ;
  205. dyne de_vogelaere tabdyn ;
  206.  
  207. si faux ;
  208. t2dyn = table 'PASAPAS' ;
  209. t2dyn . modele = mo1 et moppb ;
  210. t2dyn . caracteristiques = ca1 et cappb ;
  211. t2dyn . chargement = cham1 ;
  212. t2dyn . init_dyne = tabdyn . reprise_dyne ;
  213. t2dyn . nombre_pas = npas ;
  214. t2dyn . pas_de_temps = dt ;
  215. t2dyn . pas_de_sortie = nins ;
  216. t2dyn . sortie = table ;
  217. t2dyn . sortie . moppb = vrai ;
  218.  
  219. dyne de_vogelaere t2dyn ;
  220.  
  221. sinon ;
  222.  
  223. t2dyn = tabdyn ;
  224.  
  225. finsi ;
  226.  
  227. l_t2 = prog ;
  228. repeter bs (dime t2dyn . temps) ;
  229. l_t2 = l_t2 et (prog t2dyn . temps . (&bs - 1)) ;
  230. fin bs ;
  231.  
  232. lis2xp2 = t2dyn.liaisons.moppb.ux ;
  233. lis2yp2= t2dyn.liaisons.moppb.force_de_choc ;
  234. ev2df2 = evol manu 'depl' lis2xp2 'force' lis2yp2 ;
  235. ev2dp2 = evol manu 'temps' l_t2 'dep_pl'
  236. t2dyn.liaisons.moppb.deplacement_plastique ;
  237. *
  238. finsi ;
  239. finsi ;
  240. **
  241. *
  242. tinit = table initial ;
  243. tinit.reprise = tres1.reprise ;
  244. tres2 = dyne de_vogelaere tlia tab1 tcha1 tsort
  245. tinit npas dt nins ;
  246. TTL2 = TRES2.TL1 ;
  247. LIS_TEM2 = TRES2.'TEMPS_DE_SORTIE';
  248. lisxp2 = TTL2.'UX' ;
  249. lisyp2 = ttl2 .'FORCE_DE_CHOC' ;
  250. titre 'force - deplacement';
  251. evdf2 = evol rouge manu 'depl' lisxp2 'force' lisyp2 ;
  252. titre 'deplacement plastique - temps' ;
  253. evdp2 = evol rouge manu 'temps' lis_tem2 'dep_pl'
  254. ttl2.deplacement_plastique;
  255. *
  256. si (neg graph 'N');
  257. titre 'force - deplacement';
  258. dess (evdf1 et evdf2) ;
  259. titre 'deplacement plastique - temps' ;
  260. dess (evdp1 et evdp2) ;
  261. finsi;
  262. *
  263. * maxima des deplacements plastiques theoriques
  264. d11 = .5 ; d22 = 1.5 ;
  265. 'max des depl. plastiques theoriques'd11' ' d22;
  266. d1 = maxi (extr evdp1 ordo) ;
  267. d2 = maxi (extr evdp2 ordo) ;
  268. d31 = maxi (extr ev3dp1 ordo) ;
  269. 'max des depl. plastiques C2000 'd1' ' d2 ' ' d31 ;
  270. er1 = abs(d1/d11 - 1); er2 = abs (d2/d22 - 1);
  271. er3 = abs(d31/d11 - 1) ;
  272. 'erreur 'er1'% 'er2'% 'er3 '% ' ;
  273. err = maxi (prog er1 er2) ;
  274. si (err > .005) ;
  275. erre 5 ;
  276. sinon ;
  277. erre 0 ;
  278. finsi;
  279. fin ;
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  

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