Télécharger dy_devo7.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dy_devo7.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. d_pasa = vrai ; temps ;
  5. ***********************
  6. *
  7. * poutre sous charge mobile
  8. *
  9. **********************
  10. option echo 1;
  11. graph = faux ;
  12. ** barre
  13. option dime 3 elem seg2;
  14. ne = 10;
  15. xl = 1.;
  16. A1 = 0. 0. 0.;
  17. A2 = xl 0. 0 ;
  18. l1 = d ne a1 a2;
  19.  
  20. PSOl1= 0 0 0;
  21. MSOL1= 1.0;
  22. KSOL1= 100.0;
  23. WSOL1= (KSOL1/ MSOL1)**0.5;
  24. FREQSOL1 = wsol1 / (2 * pi ) ;
  25. lx = prog 0. pas ( 1. / ne ) 1.;
  26. xlz = sin ( 180. * lx ) ;
  27. DEFSOL1 = manu chpo (chan 'POI1' l1) 6 ux 0.0 uy 0.0 uz xlz
  28. rx 0.0 ry 0.0 rz 0.0;
  29. *support
  30. b1 = 0. 0. 1e-8;
  31.  
  32. PSOL2 = 0 0 0;
  33. DEFSOL2= manu chpo b1 6 ux 1.0 uy 0.0 uz 0.0
  34. rx 0.0 ry 0.0 rz 0.0;
  35. PSOL3 = 0 0 0;
  36. MSOL2 = .001;
  37. KSOL2 = 0.;
  38. WSOL2 = (KSOL2 / MSOL2)**0.5;
  39. FREQSOL2 = wsol2 / (2 * pi ) ;
  40. DEFSOL3= manu chpo b1 6 ux 0.0 uy 0.0 uz 1.0
  41. rx 0.0 ry 0.0 rz 0.0;
  42.  
  43. **************************
  44. **************************
  45. ** BASE DE MODE GLOBALE **
  46. **************************
  47. **************************
  48.  
  49. TBAS2 = table 'BASE_MODALE';
  50. TAB2 = table 'BASE_DE_MODES';
  51. tab2.maillage = b1 ;
  52. TBAS2.'MODES' = TAB2;
  53.  
  54. TABSOL2 = table 'MODES';
  55. TABSOL2.'POINT_REPERE' = PSOL2;
  56. TABSOL2.'FREQUENCE' = FREQSOL2;
  57. TABSOL2.'MASSE_GENERALISEE' = MSOL2;
  58. TABSOL2.'DEFORMEE_MODALE' = DEFSOl2;
  59. TABSOL2.numero_mode = 1;
  60. TAB2 . 1 = TABSOL2;
  61. mai2 = manu poi1 psol2 ;
  62. mo_mod2 = modele mai2 mecanique elastique modal ;
  63. ca_mod2 = mate mo_mod2 freq freqsol2 mass msol2 defo defsol2 amor 0. ;
  64.  
  65. TABSOL3 = table 'MODES';
  66. TABSOL3.'POINT_REPERE' = PSOL3;
  67. TABSOL3.'FREQUENCE' = FREQSOL2;
  68. TABSOL3.'MASSE_GENERALISEE' = MSOL2;
  69. TABSOL3.'DEFORMEE_MODALE' = DEFSOL3;
  70. TABSOL3.numero_mode = 2;
  71. TAB2 . 2 = TABSOL3;
  72. mai3 = manu poi1 psol3 ;
  73. mo_mod3 = modele mai3 mecanique elastique modal ;
  74. ca_mod3 = mate mo_mod3 freq freqsol2 mass msol2 defo defsol3 amor 0. ;
  75.  
  76.  
  77. TBAS1 = table 'BASE_MODALE';
  78. TAB1 = table 'BASE_DE_MODES';
  79. tab1.maillage = l1 ;
  80. TBAS1.'MODES' = TAB1;
  81.  
  82. TABSOL1 = table 'MODES';
  83. TABSOL1.'POINT_REPERE' = PSOL1;
  84. TABSOL1.'FREQUENCE' = FREQSOL1;
  85. TABSOL1.'MASSE_GENERALISEE' = MSOL1;
  86. TABSOL1.'DEFORMEE_MODALE' = DEFSOL1;
  87. TABSOL1.numero_mode = 1;
  88. TAB1 . 1 = TABSOL1;
  89. mai1 = manu poi1 psol1 ;
  90. mo_mod1 = modele mai1 mecanique elastique modal ;
  91. ca_mod1 = mate mo_mod1 freq freqsol1 mass msol1 defo defsol1 amor 0. ;
  92.  
  93.  
  94. TABTOT = table 'ENSEMBLE_DE_BASES';
  95. TABTOT . 1 = TBAS1;
  96. TABTOT . 2= TBAS2;
  97.  
  98. mo_moda = mo_mod1 et mo_mod2 et mo_mod3 ;
  99. ca_moda = ca_mod1 et ca_mod2 et ca_mod3 ;
  100. ***********************************
  101. ***********************************
  102. ** Definition de l'amortissement **
  103. ***********************************
  104. ***********************************
  105.  
  106. AMORTOT = amor TABTOT (prog 0. 0. 0.) ;
  107.  
  108. TAMOR = table 'AMORTISSEMENT';
  109. TAMOR . 'AMORTISSEMENT' = AMORTOT;
  110.  
  111.  
  112. *****************************
  113. TLIA = table 'LIAISON';
  114.  
  115. TLB = table 'LIAISON_B';
  116. TLIA.'LIAISON_B' = TLB;
  117. raid1 = 1e4 ; amor1 = 2*((raid1*msol2)**.5)/2;
  118. raidn1 = manu 'CHPO' 1 b1 'rain' raid1;
  119. amorn1 = manu 'CHPO' 1 b1 'amon' amor1;
  120. N1 = 0. 1. 0.;
  121. TL1 = table 'LIAISON_ELEMENTAIRE';
  122. TL1.'TYPE_LIAISON' = mot 'LIGNE_LIGNE_FROTTEMENT';
  123. TL1.'LIGNE_MAITRE' = l1;
  124. TL1.'LIGNE_ESCLAVE' = b1;
  125. TL1.'COEFFICIENT_GLISSEMENT' = 0.0;
  126. TL1.'COEFFICIENT_ADHERENCE' = 0.0;
  127. TL1.'RAIDEUR_TANGENTIELLE' = -1;
  128. TL1.'RAIDEURS' = raidn1;
  129. TL1.'AMORTISSEMENT_TANGENTIEL' = 1e-2;
  130. TL1.'AMORTISSEMENTS' =amorn1;
  131. TL1.'NORMALE' = N1;
  132. tlb.1=TL1;
  133. mallf1 = manu poi1 (0. 0. 0.) ;
  134. mollf1 = modele mallf1 liaison ligne_ligne frottement ;
  135. maut1 = manu poi1 b1 ;
  136. callf1 = mate mollf1 lima l1 lies maut1 glis 0. adhe 0. rtan -1
  137. raid raidn1 atan 1.e-2 amor amorn1 norm n1 ;
  138.  
  139. TSORT = TABLE 'SORTIE';
  140. TSORV = TABLE 'VARIABLE';
  141. TSORT.'VARIABLE' = TSORV;
  142. TSORV.'DEPLACEMENT' = vrai;
  143. TSORV.'VITESSE' = vrai;
  144. TSOR2 = TABLE 'SORTIE' ;
  145. TSORT.'LIAISON_B' = TSOR2 ;
  146. tsorv2 = table variable ;
  147. tsorv2.'CHPOINT_FORCE_DE_CHOC'= vrai ;
  148. tsorv2.'UX_POINT_DE_CONTACT'= vrai;
  149. tsorv2.'VITESSE_TANGENTIELLE'= vrai;
  150. tsorv2.'FORCE_DE_CHOC_NORMALE' = vrai ;
  151. tsor2.tl1 = tsorv2 ;
  152.  
  153. tmollf1 = table ; tmollf1 . mollf1 = tsorv2 ;
  154. callf1 = callf1 et (mate mollf1 sort tmollf1) ;
  155. *****************************************
  156. *****************************************
  157. ** Definition des conditions initiales **
  158. *****************************************
  159. *****************************************
  160.  
  161. TINIT = table 'INITIAL';
  162.  
  163. v0 = 1.;
  164. TINIT.'VITESSE' = manu chpo psol2 1 alfa (prog v0) ;
  165. *******************************
  166. PDT = 2e-4;
  167. NP = 5000;
  168. NINS = 50;
  169. *******************************
  170. ** Application du chargement **
  171. *******************************
  172. *******************************
  173.  
  174. FFZ = 1.0/100;
  175. FOA1 = force fx 0.0 fy 0.0 fz (-1 * FFZ) b1;
  176. FOA1P = pjba TBAS2 FOA1;
  177.  
  178. LISTEMPS = prog 0.0
  179. pas PDT
  180. (NP * PDT * 2);
  181.  
  182. LISCHA = prog (dime LISTEMPS) * 1.0;
  183.  
  184. EVCHA = evol manu temps LISTEMPS LISCHA;
  185. *dessin EVCHA;
  186.  
  187. CHAZ = char FOA1P EVCHA;
  188. TCHA1 = TABLE 'CHARGEMENT' ;
  189. TCHA1.'BASE_A' = CHAZ;
  190.  
  191. cha1 = char foa1 evcha ; cha2 = pjba cha1 mo_moda ca_moda ;
  192.  
  193. ********************
  194. ********************
  195. ** Operateur DYNE **
  196. ********************
  197. ********************
  198. tabdyn = table 'PASAPAS' ;
  199. tabdyn . chargement = cha2 ;
  200. tabdyn . vitesses = table ;
  201. tabdyn . vitesses . 0 = manu chpo psol2 1 alfa (prog v0) ;
  202. tabdyn . modele = mo_moda et mollf1 ;
  203. tabdyn . caracteristiques = ca_moda et callf1 ;
  204.  
  205. si d_pasa ;
  206. tabdyn . dynamique = vrai ;
  207. tabdyn . temps_calcules = prog 0. pas (2*pdt) (np*pdt) ;
  208. tabdyn . temps_sauves = prog 0. pas (nins*pdt) (np*pdt) ;
  209. pasapas tabdyn ;
  210.  
  211. sinon ;
  212. tabdyn . sortie = table ;
  213. tabdyn . sortie . mollf1 = tsorv2 ;
  214. tabdyn . pas_de_temps = pdt ;
  215. tabdyn . nombre_pas = np ;
  216. tabdyn . pas_de_sortie = nins ;
  217. dyne de_vogelaere tabdyn ;
  218.  
  219. finsi ;
  220. *
  221. TRESU = DYNE 'DE_VOGELAERE' TABTOT tamor TINIT
  222. tcha1 tSORT TLIA
  223. NP PDT NINS;
  224.  
  225.  
  226. LIS_TEM = TRESU . 'TEMPS_DE_SORTIE';
  227. lis_te1 = prog tabdyn . temps . 0 ;
  228. lis_te1 = prog ;
  229. l_fdcn1 = prog ;
  230. repeter bs ((dime tabdyn . temps) - 1) ;
  231. lis_te1 = lis_te1 et (prog tabdyn . temps . &bs ) ;
  232. si d_pasa ;
  233. ttu1 = 'EXTR' tabdyn . variables_internes . &bs 'SLIA' 4 1 1 ;
  234. l_fdcn1 = l_fdcn1 et ttu1.force_de_choc_normale ;
  235. finsi ;
  236. fin bs ;
  237.  
  238. * solution exacte
  239. omb= pi * v0 / xl;
  240. beta = omb / wsol1;
  241. s1 = sin ( lis_tem * omb * 180. / pi) ;
  242. s2 = sin ( lis_tem * wsol1 * 180. / pi) ;
  243.  
  244. lz0 =( -1 / ksol1) * (1. / ( 1 - (beta*beta))) *
  245. ( s1 - ( beta * s2) ) ;
  246.  
  247. ev0 = (evol jaun manu lis_tem lz0)*ffz ;
  248.  
  249. pp = poin l1 proc ((xl/2) 0 0 ) ;
  250. evz = (evol reco tresu tbas1 depl pp uz) ;
  251. xmax = mini (extr evz ordo);
  252. evvz = evol vert reco tabdyn mo_moda ca_moda depl pp uz ;
  253. xmmax = mini (extr evvz ordo);
  254. xmax0 = (mini lz0)*ffz ;
  255. ecart = ( abs (xmax - xmax0)) / (abs (xmax)) ;
  256. eccart = ( abs (xmmax - xmax0)) / (abs (xmmax)) ;
  257. *
  258.  
  259. * verification du bon fonctionement des sorties
  260. ev1 = evol manu lis_tem tresu.tl1.force_de_choc_normale ;
  261. si d_pasa ;
  262. si ((dime lis_te1) ega ((dime l_fdcn1) - 1)) ;
  263. lis_te1 = (prog 0.) et lis_te1 ;
  264. finsi ;
  265. ev2 = evol vert manu lis_te1 l_fdcn1 ;
  266. sinon ;
  267. ev2 = evol vert manu lis_te1
  268. tabdyn . liaisons . mollf1 . force_de_choc_normale ;
  269. finsi ;
  270. progx = prog ; progy1 = prog ; progy2 = prog ;
  271. progxx = prog ; progyy1 = prog ; progyy2 = prog ;
  272. repeter bou1 (dime lis_tem) ;
  273. t1 = extr lis_tem &bou1 ;
  274. x1= tresu.tl1.'CHPOINT_FORCE_DE_CHOC'.&bou1 ;
  275. x2 = extr x1 b1 norm ;
  276. x3 = extr x1 b1 tang ;
  277. progy1 = progy1 et (prog x2) ;
  278. progy2 = progy2 et (prog x3) ;
  279. progx = progx et (prog t1) ;
  280. tt1 = tabdyn . temps . (&bou1-1) ;
  281. mess 't1' t1 'tt1' tt1 ;
  282. si d_pasa ;
  283. si (&bou1 > 1 ) ;
  284. ttu1 = 'EXTR' tabdyn . variables_internes . (&bou1-1) 'SLIA' 4 1 1 ;
  285. xxx1 = ttu1 . 'CHPOINT_FORCE_DE_CHOC' ;
  286. xx1 = xxx1 . (dime xxx1) ;
  287. finsi ;
  288. sinon ;
  289. xx1 = tabdyn . liaisons . mollf1 . 'CHPOINT_FORCE_DE_CHOC'. &bou1 ;
  290. finsi ;
  291. si (&bou1 > 1) ;
  292. xx2 = extr xx1 b1 norm ;
  293. xx3 = extr xx1 b1 tang ;
  294. progyy1 = progyy1 et (prog xx2) ;
  295. progyy2 = progyy2 et (prog xx3) ;
  296. progxx = progxx et (prog tt1) ;
  297. sinon ;
  298. progxx = 0. ; progyy1 = prog 0. ; progyy2 = 0. ;
  299. finsi ;
  300. fin bou1 ;
  301. ev11 = evol rouge manu progx progy1 ;
  302. ev22 = evol rouge manu progx progy2 ;
  303. evv11 = evol bleu manu progxx progyy1 ;
  304. evv22 = evol bleu manu progxx progyy2 ;
  305. si graph ;
  306. titre ' force choc normale ' ;
  307. dess (ev1 et ev2);
  308. titre ' force choc / normale ' ;
  309. dess (ev11 et evv11);
  310. titre ' force choc / tangente ' ;
  311. dess (ev22 et evv22);
  312. titre ' trajectoire ' ;
  313. dess (evz et ev0 et evvz) ;
  314. finsi ;
  315. temps;
  316. mess 'max theorique ' xmax0 'dyne' xmax 'ecartr' ecart;
  317. mess 'max theorique ' xmax0 'pasapas' xmmax 'ecartr' eccart;
  318.  
  319. si (( ecart > 0.01 )ou ( eccart > 0.01 ));
  320. erre 5;
  321. sinon;
  322. erre 0;
  323. finsi;
  324. fin;
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  

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