Télécharger dy_devo3.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dy_devo3.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * Test Dy_devo3.dgibi: Jeux de donn�es *
  5. * ------------------------------------ *
  6. * *
  7. * si GRAPH = N, les graphiques ne sont pas affich�s
  8. * si GRAPH diff�rent de N, tous les graphiques
  9. * sont affich�s
  10. *
  11. GRAPH = 'N' ;
  12. d_pasa = vrai ;
  13. *
  14. SAUT PAGE ;
  15. *-----------------------------------------------------*
  16. * DY_DEVO3 *
  17. *-----------------------------------------------------*
  18. * *
  19. * Tests de l'op{rateur DYNE option DE_VOGELAERE *
  20. * __________________________________________ *
  21. * *
  22. * *
  23. * Une roue de diam�tre 1 m�tre bloqu�e par 2 plans *
  24. * On applique � la roue un moment Mz *
  25. * 2 liaisons CERCLE_PLAN_FROTTEMENT *
  26. * *
  27. *-----------------------------------------------------*
  28. *
  29. OPTION ECHO 0 ;
  30. TEMPS ;
  31. OPTION ELEM SEG2 DIME 3 ;
  32. *
  33. * D�finition g�om�trie
  34. *
  35. P1 = 0. 0. 0. ;
  36. *
  37. * Base modale
  38. *
  39. CHP_M1 =
  40. MANU CHPO 6 P1 'UX' 1.0 'UY' 0.0 'UZ' 0.0
  41. 'RX' 0.0 'RY' 0.0 'RZ' 0.0;
  42. CHP_M2 =
  43. MANU CHPO 6 P1 'UX' 0.0 'UY' 1.0 'UZ' 0.0
  44. 'RX' 0.0 'RY' 0.0 'RZ' 0.0;
  45. CHP_M3 =
  46. MANU CHPO 6 P1 'UX' 0.0 'UY' 0.0 'UZ' 0.0
  47. 'RX' 0.0 'RY' 0.0 'RZ' 1.0;
  48. *
  49. TBAS = TABLE 'BASE_MODALE' ;
  50. TBAS . 'MODES' = TABLE 'BASE_DE_MODES' ;
  51. TBAS . 'MODES' . 'MAILLAGE' = P1 ;
  52. TBAS . 'MODES' . 1 = TABLE 'MODE' ;
  53. TBAS . 'MODES' . 1 . 'POINT_REPERE' = ( 0 0 0 ) ;
  54. TBAS . 'MODES' . 1 . 'FREQUENCE' = 0.0 ;
  55. TBAS . 'MODES' . 1 . 'MASSE_GENERALISEE' = 1.0 ;
  56. TBAS . 'MODES' . 1 . 'DEFORMEE_MODALE' = CHP_M1 ;
  57. ma1 = manu poi1 (0. 0. 0.) ;
  58. mo1 = mode ma1 mecanique elastique modal ;
  59. ca1 = mate mo1 freq 0. mass 1.0 defo chp_m1 ;
  60.  
  61. TBAS . 'MODES' . 2 = TABLE 'MODE' ;
  62. TBAS . 'MODES' . 2 . 'POINT_REPERE' = ( 0 0 0 ) ;
  63. TBAS . 'MODES' . 2 . 'FREQUENCE' = 0.0 ;
  64. TBAS . 'MODES' . 2 . 'MASSE_GENERALISEE' = 1.0 ;
  65. TBAS . 'MODES' . 2 . 'DEFORMEE_MODALE' = CHP_M2 ;
  66. ma2 = manu poi1 (0. 0. 0.) ;
  67. mo2 = mode ma2 mecanique elastique modal ;
  68. ca2 = mate mo2 freq 0. mass 1.0 defo chp_m2 ;
  69.  
  70. TBAS . 'MODES' . 3 = TABLE 'MODE' ;
  71. TBAS . 'MODES' . 3 . 'POINT_REPERE' = ( 0 0 0 ) ;
  72. TBAS . 'MODES' . 3 . 'FREQUENCE' = 0.0 ;
  73. TBAS . 'MODES' . 3 . 'MASSE_GENERALISEE' = 1.0 ;
  74. TBAS . 'MODES' . 3 . 'DEFORMEE_MODALE' = CHP_M3 ;
  75. ma3 = manu poi1 (0. 0. 0.) ;
  76. mo3 = mode ma3 mecanique elastique modal ;
  77. ca3 = mate mo3 freq 0. mass 1.0 defo chp_m3 ;
  78.  
  79. mo_moda = mo1 et mo2 et mo3 ;
  80. ca_moda = ca1 et ca2 et ca3 ;
  81.  
  82. *
  83. * Champ de force
  84. *
  85. XFOR = 1000.0 ;
  86. CHP_F1 = MANU CHPO 3 P1 'MX' 0.0
  87. 'MY' 0.0
  88. 'MZ' XFOR ;
  89. EVO_F1 = EVOL MANU ( PROG -1. 10. ) ( PROG 1. 1. ) ;
  90. CHA_F1 = CHARGE 'FORC' CHP_F1 EVO_F1 ;
  91. TCHARG = TABLE 'CHARGEMENT' ;
  92. TCHARG . 'BASE_A' = PJBA TBAS CHA_F1 ;
  93. cha1 = PJBA TBAS CHA_F1 ;
  94. cha2 = pjba cha_f1 mo_moda ca_moda ;
  95. *
  96. *--- D�finition des liaisons
  97. *
  98. TLIA1 = TABLE 'LIAISON' ;
  99. TLB1 = TABLE 'LIAISON_B' ;
  100. TLIA1 . 'LIAISON_B' = TLB1 ;
  101. *
  102. * Liaison CERCLE_PLAN_FROTTEMENT avec amortissement
  103. *
  104. RAY_SUP = 1.0 ;
  105. XNU = 0.4 ;
  106. XRAID = 4.0E6 ;
  107. RAID_T = ( 10.0 * XRAID ) / ( RAY_SUP ** 2 ) ;
  108. AMOR_T = ( RAID_T * 1.0 ) ** 0.5 ;
  109. TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
  110. TL1.'TYPE_LIAISON' =
  111. MOT 'CERCLE_PLAN_FROTTEMENT' ;
  112. TL1.'SUPPORT' = P1 ;
  113. TL1.'JEU' = -0.00025 ;
  114. TL1.'NORMALE' = ( 0 -1 0 ) ;
  115. TL1.'RAIDEUR' = XRAID ;
  116. TL1.'RAYON_SUPPORT' = RAY_SUP ;
  117. TL1.'COEFFICIENT_GLISSEMENT' = XNU ;
  118. TL1.'COEFFICIENT_ADHERENCE' = XNU ;
  119. TL1.'RAIDEUR_TANGENTIELLE' = RAID_T ;
  120. TL1.'AMORTISSEMENT_TANGENTIEL' = AMOR_T ;
  121. TL1.'AMORTISSEMENT' = 0.0 ;
  122. macepl1 = manu poi1 p1 ;
  123. mocepl1 = mode macepl1 liaison cercle_plan frottement ;
  124. tcepl1= table ; tcepl1 . mocepl1 = vrai ;
  125. cacepl1 = mate mocepl1 NORM (0. -1. 0.) JEU -0.00025
  126. RAID xraid RAYS ray_sup GLIS xnu ADHE xnu RTAN raid_t
  127. ATAN amor_t AMOR 0. SORT tcepl1 ;
  128.  
  129. TL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
  130. TL2.'TYPE_LIAISON' =
  131. MOT 'CERCLE_PLAN_FROTTEMENT' ;
  132. TL2.'SUPPORT' = P1 ;
  133. TL2.'JEU' = -0.00025 ;
  134. TL2.'NORMALE' = ( 0 1 0 ) ;
  135. TL2.'RAIDEUR' = XRAID ;
  136. TL2.'RAYON_SUPPORT' = RAY_SUP ;
  137. TL2.'COEFFICIENT_GLISSEMENT' = XNU ;
  138. TL2.'COEFFICIENT_ADHERENCE' = XNU ;
  139. TL2.'RAIDEUR_TANGENTIELLE' = RAID_T ;
  140. TL2.'AMORTISSEMENT_TANGENTIEL' = AMOR_T ;
  141. TL2.'AMORTISSEMENT' = 0.0 ;
  142. macepl2 = manu poi1 p1 ;
  143. mocepl2 = mode macepl2 liaison cercle_plan frottement ;
  144. cacepl2 = mate mocepl2 NORM (0. 1. 0.) JEU -0.00025
  145. RAID xraid RAYS ray_sup GLIS xnu ADHE xnu RTAN raid_t
  146. ATAN amor_t AMOR 0. ;
  147.  
  148. *
  149. TLB1 . 1 = TL1 ;
  150. TLB1 . 2 = TL2 ;
  151. *
  152. *--- D�finition des r�sultats en sortie
  153. *
  154. TSORT = TABLE 'SORTIE' ;
  155. TSOR1 = TABLE 'SORTIE' ;
  156. TSORT . 'VARIABLE' = TSOR1 ;
  157. TSOR1 . 'DEPLACEMENT' = FAUX ;
  158. TSOR1 . 'VITESSE' = FAUX ;
  159. *
  160. TSOR2 = TABLE 'SORTIE' ;
  161. TSORT . 'LIAISON_B' = TSOR2 ;
  162. TSOR2 . TL1 = VRAI ;
  163. *
  164. * Temps
  165. *
  166. PDT = 4.0E-5 ;
  167. NP1 = 5000 ;
  168. NP2 = 5000 ;
  169. NINS = 20 ;
  170. *
  171. *------ Op�rateur DYNE ------
  172. *
  173. tabdyn = table 'PASAPAS' ;
  174. tabdyn . modele = mo_moda et mocepl1 et mocepl2 ;
  175. tabdyn . caracteristiques = ca_moda et cacepl1 et cacepl2 ;
  176. tabdyn . chargement = cha2 ;
  177.  
  178. si d_pasa ;
  179. tabdyn . dynamique = vrai ;
  180. tabdyn . temps_calcules = prog 0. pas (pdt*10) (np1*pdt) ;
  181. tabdyn . temps_sauves = prog 0. pas (nins*pdt) (np1*pdt) ;
  182. pasapas tabdyn ;
  183.  
  184. t_inter = np1*pdt ;
  185. tabdyn . temps_calcules =
  186. prog t_inter pas (pdt*10) (t_inter +(np2*pdt));
  187. tabdyn . temps_sauves =
  188. prog t_inter pas (nins*pdt) (t_inter +(np2*pdt)) ;
  189. pasapas tabdyn ;
  190.  
  191. o_fn = prog ; o_ft = prog ; o_pu = prog ; o_vx = prog ; o_mz = prog ;
  192. o_rz = prog ; a_t = prog ;
  193.  
  194. repeter b_p ((dime tabdyn . temps) - 1) ;
  195. tuu1 = 'EXTR' ('REDU' tabdyn . variables_internes . &b_p mocepl1)
  196. 'SLIA' 1 1 1 ;
  197.  
  198. a_t = a_t et (prog tabdyn.temps.&b_p) ;
  199. o_fn = o_fn et tuu1.'FORCE_DE_CHOC_NORMALE' ;
  200. o_ft = o_ft et tuu1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  201. o_pu = o_pu et tuu1.'PUISSANCE_USURE_INSTANTANEE' ;
  202. o_vx = o_vx et tuu1.'VX_POINT_CONTACT' ;
  203. o_mz = o_mz et tuu1.'MZ_POINT_FIBRE_NEUTRE' ;
  204. o_rz = o_rz et tuu1.'RZ_POINT_FIBRE_NEUTRE' ;
  205.  
  206.  
  207. fin b_p ;
  208.  
  209. ev_fn = evol vert manu a_t o_fn ;
  210. ev_ft = evol vert manu a_t o_ft ;
  211. ev_pu = evol vert manu a_t o_pu ;
  212. ev_vx = evol vert manu a_t o_vx ;
  213. ev_mz = evol vert manu a_t o_mz ;
  214. ev_rz = evol vert manu a_t o_rz ;
  215.  
  216. sinon ;
  217. tabdyn . sortie = table ;
  218. tabdyn . sortie . vitesses = faux ;
  219. tabdyn . sortie . deplacements = faux ;
  220. tabdyn . sortie . mocepl1 = vrai ;
  221. tabdyn . nombre_pas = np1 ;
  222. tabdyn . pas_de_temps = pdt ;
  223. tabdyn . pas_de_sortie = nins ;
  224. dyne de_vogelaere tabdyn ;
  225.  
  226. ll1 = prog tabdyn . temps . 0 ;
  227. repeter bso (dime tabdyn . temps - 1) ;
  228. ll1 = ll1 et (prog tabdyn . temps . &bso) ;
  229. fin bso ;
  230. tabd = tabdyn . liaisons ;
  231. EV_FN1 =
  232. EVOL MANU LL1 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;
  233. EV_FT1 = EVOL MANU ll1
  234. tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  235. EV_PU1 = EVOL MANU ll1
  236. tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;
  237. EV_VX1 = EVOL MANU ll1
  238. tabd.mocepl1.'VX_POINT_CONTACT' ;
  239. EV_MZ1 = EVOL MANU ll1
  240. tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;
  241. EV_RZ1 = EVOL MANU ll1
  242. tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;
  243. *
  244. tabdyn . init_dyne = tabdyn . reprise_dyne ;
  245. dyne de_vogelaere tabdyn ;
  246. ll2 = prog tabdyn . temps . 0 ;
  247. repeter bso (dime tabdyn . temps - 1) ;
  248. ll2 = ll2 et (prog tabdyn . temps . &bso) ;
  249. fin bso ;
  250.  
  251. EV_FN = EVOL MANU LL2 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;
  252. EV_FT = EVOL MANU ll2
  253. tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  254. EV_PU = EVOL MANU ll2
  255. tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;
  256. EV_VX = EVOL MANU ll2
  257. tabd.mocepl1.'VX_POINT_CONTACT' ;
  258. EV_MZ = EVOL MANU ll2
  259. tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;
  260. EV_RZ = EVOL MANU ll2
  261. tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;
  262. finsi ;
  263.  
  264. TRESU1 = DYNE 'DIFFERENCES_CENTREES' TBAS TCHARG TSORT
  265. *TRESU1 = DYNE 'DE_VOGELAERE' TBAS TCHARG TSORT
  266. TLIA1 NP1 PDT NINS ;
  267. TINIT = TABLE 'INITIAL' ;
  268. TINIT.'REPRISE' = TRESU1.'REPRISE' ;
  269. TRESU2 = DYNE 'DE_VOGELAERE' TBAS TCHARG TSORT TLIA1
  270. TINIT NP2 PDT NINS ;
  271. *
  272. * Trac� des courbes
  273. *
  274. LISTE1 = TRESU1.'TEMPS_DE_SORTIE' ;
  275. LISTE2 = TRESU2.'TEMPS_DE_SORTIE' ;
  276. *
  277. EVO_FN1 =
  278. EVOL MANU LISTE1 TRESU1.TL1.'FORCE_DE_CHOC_NORMALE' ;
  279. EVO_FN2 =
  280. EVOL MANU LISTE2 TRESU2.TL1.'FORCE_DE_CHOC_NORMALE' ;
  281. EVO_FN = CONCAT EVO_FN1 EVO_FN2 ;
  282.  
  283. *
  284. EVO_FT1 = EVOL MANU LISTE1
  285. TRESU1.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  286. EVO_FT2 = EVOL MANU LISTE2
  287. TRESU2.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  288. EVO_FT = CONCAT EVO_FT1 EVO_FT2 ;
  289. *
  290. EVO_PU1 = EVOL MANU LISTE1
  291. TRESU1.TL1.'PUISSANCE_USURE_INSTANTANEE' ;
  292. EVO_PU2 = EVOL MANU LISTE2
  293. TRESU2.TL1.'PUISSANCE_USURE_INSTANTANEE' ;
  294. EVO_PU = CONCAT EVO_PU1 EVO_PU2 ;
  295. *
  296. EVO_VX1 = EVOL MANU LISTE1
  297. TRESU1.TL1.'VX_POINT_CONTACT' ;
  298. EVO_VX2 = EVOL MANU LISTE2
  299. TRESU2.TL1.'VX_POINT_CONTACT' ;
  300. EVO_VX = CONCAT EVO_VX1 EVO_VX2 ;
  301. *
  302. EVO_MZ1 = EVOL MANU LISTE1
  303. TRESU1.TL1.'MZ_POINT_FIBRE_NEUTRE' ;
  304. EVO_MZ2 = EVOL MANU LISTE2
  305. TRESU2.TL1.'MZ_POINT_FIBRE_NEUTRE' ;
  306. EVO_MZ = CONCAT EVO_MZ1 EVO_MZ2 ;
  307. *
  308. EVO_RZ1 = EVOL MANU LISTE1
  309. TRESU1.TL1.'RZ_POINT_FIBRE_NEUTRE' ;
  310. EVO_RZ2 = EVOL MANU LISTE2
  311. TRESU2.TL1.'RZ_POINT_FIBRE_NEUTRE' ;
  312. EVO_RZ = CONCAT EVO_RZ1 EVO_RZ2 ;
  313. *
  314. *
  315. SI ( NEG GRAPH 'N' ) ;
  316. TITRE '***** - TL1- FORCE DE CHOC NORMALE *****' ;
  317. DESS (EVO_FN et ev_fn) 'MIMA' ;
  318. TITRE
  319. '***** - TL1- FORCE DE CHOC TANGENTIELLE *****' ;
  320. DESS (EVO_FT et ev_ft) 'MIMA' ;
  321. TITRE '***** - TL1- PUISSANCE USURE *****' ;
  322. DESS (EVO_PU et ev_pu) 'MIMA' ;
  323. TITRE '***** - TL1- VX POINT DE CONTACT *****' ;
  324. DESS (EVO_VX et ev_vx) 'MIMA' ;
  325. TITRE '***** - TL1- MZ POINT FIBRE NEUTRE *****' ;
  326. DESS (EVO_MZ et ev_mz) 'MIMA' ;
  327. TITRE '***** - TL1- RZ POINT FIBRE NEUTRE *****' ;
  328. DESS (EVO_RZ et ev_rz) 'MIMA' ;
  329. FINSI ;
  330. *
  331. si d_pasa ;
  332. indi2 = 500 ;
  333. sinon ;
  334. indi2 = 501 ;
  335. finsi ;
  336. LIS_RZ = EXTRAIRE EVO_RZ 'ORDO' ;
  337. li_rz = extraire ev_rz ordo ;
  338. LISTEM = EXTRAIRE EVO_RZ 'ABSC' ;
  339. li_tem = extraire ev_rz absc ;
  340. D = EXTRAIRE LIS_RZ 501 ;
  341. dd = extraire li_rz indi2 ;
  342. T = EXTRAIRE LISTEM 501 ;
  343. tt = extraire li_tem indi2 ;
  344. SAUT PAGE ;
  345. MESS 'valeur du temps :' T tt ;
  346. MESS 'valeur de la rotation autour de Z :' D dd ;
  347. SAUT 2 LIGNES ;
  348. *
  349. TEMPS ;
  350. *
  351. * Code de bon fonctionnement
  352. *
  353. DEPREF = 100. * T * T ;
  354. DDPREF = 100. * tt * tt ;
  355. RESI = ABS ( ( D - DEPREF ) / DEPREF ) ;
  356. RESII = ABS ( ( DD - DDPREF ) / DDPREF ) ;
  357. SI (( RESI <EG 1E-2 ) ET ( RESII <EG 1E-2 )) ;
  358. ERRE 0 ;
  359. SINON ;
  360. ERRE 5 ;
  361. FINSI ;
  362.  
  363. *
  364. FIN ;
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  

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