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. tabdyn . mes_sauvegardes = table ;
  179. tabdyn . mes_sauvegardes . defto = vrai ;
  180. tabdyn . mes_sauvegardes . defin = vrai ;
  181.  
  182. si d_pasa ;
  183. tabdyn . dynamique = vrai ;
  184. tabdyn . temps_calcules = prog 0. pas (pdt*10) (np1*pdt) ;
  185. tabdyn . temps_sauves = prog 0. pas (nins*pdt) (np1*pdt) ;
  186. pasapas tabdyn ;
  187.  
  188. t_inter = np1*pdt ;
  189. tabdyn . temps_calcules =
  190. prog t_inter pas (pdt*10) (t_inter +(np2*pdt));
  191. tabdyn . temps_sauves =
  192. prog t_inter pas (nins*pdt) (t_inter +(np2*pdt)) ;
  193. pasapas tabdyn ;
  194.  
  195. o_fn = prog ; o_ft = prog ; o_pu = prog ; o_vx = prog ; o_mz = prog ;
  196. o_rz = prog ; a_t = prog ;
  197.  
  198. repeter b_p ((dime tabdyn . temps) - 1) ;
  199. tuu1 = 'EXTR' ('REDU' tabdyn . variables_internes . &b_p mocepl1)
  200. 'SLIA' 1 1 1 ;
  201.  
  202. a_t = a_t et (prog tabdyn.temps.&b_p) ;
  203. o_fn = o_fn et tuu1.'FORCE_DE_CHOC_NORMALE' ;
  204. o_ft = o_ft et tuu1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  205. o_pu = o_pu et tuu1.'PUISSANCE_USURE_INSTANTANEE' ;
  206. o_vx = o_vx et tuu1.'VX_POINT_CONTACT' ;
  207. o_mz = o_mz et tuu1.'MZ_POINT_FIBRE_NEUTRE' ;
  208. o_rz = o_rz et tuu1.'RZ_POINT_FIBRE_NEUTRE' ;
  209.  
  210.  
  211. fin b_p ;
  212.  
  213. ev_fn = evol vert manu a_t o_fn ;
  214. ev_ft = evol vert manu a_t o_ft ;
  215. ev_pu = evol vert manu a_t o_pu ;
  216. ev_vx = evol vert manu a_t o_vx ;
  217. ev_mz = evol vert manu a_t o_mz ;
  218. ev_rz = evol vert manu a_t o_rz ;
  219.  
  220. sinon ;
  221. tabdyn . sortie = table ;
  222. tabdyn . sortie . vitesses = faux ;
  223. tabdyn . sortie . deplacements = faux ;
  224. tabdyn . sortie . mocepl1 = vrai ;
  225. tabdyn . nombre_pas = np1 ;
  226. tabdyn . pas_de_temps = pdt ;
  227. tabdyn . pas_de_sortie = nins ;
  228. dyne de_vogelaere tabdyn ;
  229.  
  230. ll1 = prog tabdyn . temps . 0 ;
  231. repeter bso (dime tabdyn . temps - 1) ;
  232. ll1 = ll1 et (prog tabdyn . temps . &bso) ;
  233. fin bso ;
  234. tabd = tabdyn . liaisons ;
  235. EV_FN1 =
  236. EVOL MANU LL1 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;
  237. EV_FT1 = EVOL MANU ll1
  238. tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  239. EV_PU1 = EVOL MANU ll1
  240. tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;
  241. EV_VX1 = EVOL MANU ll1
  242. tabd.mocepl1.'VX_POINT_CONTACT' ;
  243. EV_MZ1 = EVOL MANU ll1
  244. tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;
  245. EV_RZ1 = EVOL MANU ll1
  246. tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;
  247. *
  248. tabdyn . init_dyne = tabdyn . reprise_dyne ;
  249. dyne de_vogelaere tabdyn ;
  250. ll2 = prog tabdyn . temps . 0 ;
  251. repeter bso (dime tabdyn . temps - 1) ;
  252. ll2 = ll2 et (prog tabdyn . temps . &bso) ;
  253. fin bso ;
  254.  
  255. EV_FN = EVOL MANU LL2 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;
  256. EV_FT = EVOL MANU ll2
  257. tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  258. EV_PU = EVOL MANU ll2
  259. tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;
  260. EV_VX = EVOL MANU ll2
  261. tabd.mocepl1.'VX_POINT_CONTACT' ;
  262. EV_MZ = EVOL MANU ll2
  263. tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;
  264. EV_RZ = EVOL MANU ll2
  265. tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;
  266. finsi ;
  267.  
  268. TRESU1 = DYNE 'DIFFERENCES_CENTREES' TBAS TCHARG TSORT
  269. *TRESU1 = DYNE 'DE_VOGELAERE' TBAS TCHARG TSORT
  270. TLIA1 NP1 PDT NINS ;
  271. TINIT = TABLE 'INITIAL' ;
  272. TINIT.'REPRISE' = TRESU1.'REPRISE' ;
  273. TRESU2 = DYNE 'DE_VOGELAERE' TBAS TCHARG TSORT TLIA1
  274. TINIT NP2 PDT NINS ;
  275. *
  276. * Trac� des courbes
  277. *
  278. LISTE1 = TRESU1.'TEMPS_DE_SORTIE' ;
  279. LISTE2 = TRESU2.'TEMPS_DE_SORTIE' ;
  280. *
  281. EVO_FN1 =
  282. EVOL MANU LISTE1 TRESU1.TL1.'FORCE_DE_CHOC_NORMALE' ;
  283. EVO_FN2 =
  284. EVOL MANU LISTE2 TRESU2.TL1.'FORCE_DE_CHOC_NORMALE' ;
  285. EVO_FN = CONCAT EVO_FN1 EVO_FN2 ;
  286.  
  287. *
  288. EVO_FT1 = EVOL MANU LISTE1
  289. TRESU1.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  290. EVO_FT2 = EVOL MANU LISTE2
  291. TRESU2.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  292. EVO_FT = CONCAT EVO_FT1 EVO_FT2 ;
  293. *
  294. EVO_PU1 = EVOL MANU LISTE1
  295. TRESU1.TL1.'PUISSANCE_USURE_INSTANTANEE' ;
  296. EVO_PU2 = EVOL MANU LISTE2
  297. TRESU2.TL1.'PUISSANCE_USURE_INSTANTANEE' ;
  298. EVO_PU = CONCAT EVO_PU1 EVO_PU2 ;
  299. *
  300. EVO_VX1 = EVOL MANU LISTE1
  301. TRESU1.TL1.'VX_POINT_CONTACT' ;
  302. EVO_VX2 = EVOL MANU LISTE2
  303. TRESU2.TL1.'VX_POINT_CONTACT' ;
  304. EVO_VX = CONCAT EVO_VX1 EVO_VX2 ;
  305. *
  306. EVO_MZ1 = EVOL MANU LISTE1
  307. TRESU1.TL1.'MZ_POINT_FIBRE_NEUTRE' ;
  308. EVO_MZ2 = EVOL MANU LISTE2
  309. TRESU2.TL1.'MZ_POINT_FIBRE_NEUTRE' ;
  310. EVO_MZ = CONCAT EVO_MZ1 EVO_MZ2 ;
  311. *
  312. EVO_RZ1 = EVOL MANU LISTE1
  313. TRESU1.TL1.'RZ_POINT_FIBRE_NEUTRE' ;
  314. EVO_RZ2 = EVOL MANU LISTE2
  315. TRESU2.TL1.'RZ_POINT_FIBRE_NEUTRE' ;
  316. EVO_RZ = CONCAT EVO_RZ1 EVO_RZ2 ;
  317. *
  318. *
  319. SI ( NEG GRAPH 'N' ) ;
  320. TITRE '***** - TL1- FORCE DE CHOC NORMALE *****' ;
  321. DESS (EVO_FN et ev_fn) 'MIMA' ;
  322. TITRE
  323. '***** - TL1- FORCE DE CHOC TANGENTIELLE *****' ;
  324. DESS (EVO_FT et ev_ft) 'MIMA' ;
  325. TITRE '***** - TL1- PUISSANCE USURE *****' ;
  326. DESS (EVO_PU et ev_pu) 'MIMA' ;
  327. TITRE '***** - TL1- VX POINT DE CONTACT *****' ;
  328. DESS (EVO_VX et ev_vx) 'MIMA' ;
  329. TITRE '***** - TL1- MZ POINT FIBRE NEUTRE *****' ;
  330. DESS (EVO_MZ et ev_mz) 'MIMA' ;
  331. TITRE '***** - TL1- RZ POINT FIBRE NEUTRE *****' ;
  332. DESS (EVO_RZ et ev_rz) 'MIMA' ;
  333. FINSI ;
  334. *
  335. si d_pasa ;
  336. indi2 = 500 ;
  337. sinon ;
  338. indi2 = 501 ;
  339. finsi ;
  340. LIS_RZ = EXTRAIRE EVO_RZ 'ORDO' ;
  341. li_rz = extraire ev_rz ordo ;
  342. LISTEM = EXTRAIRE EVO_RZ 'ABSC' ;
  343. li_tem = extraire ev_rz absc ;
  344. D = EXTRAIRE LIS_RZ 501 ;
  345. dd = extraire li_rz indi2 ;
  346. T = EXTRAIRE LISTEM 501 ;
  347. tt = extraire li_tem indi2 ;
  348. SAUT PAGE ;
  349. MESS 'valeur du temps :' T tt ;
  350. MESS 'valeur de la rotation autour de Z :' D dd ;
  351. SAUT 2 LIGNES ;
  352. *
  353. TEMPS ;
  354. *
  355. * Code de bon fonctionnement
  356. *
  357. DEPREF = 100. * T * T ;
  358. DDPREF = 100. * tt * tt ;
  359. RESI = ABS ( ( D - DEPREF ) / DEPREF ) ;
  360. RESII = ABS ( ( DD - DDPREF ) / DDPREF ) ;
  361. SI (( RESI <EG 1E-2 ) ET ( RESII <EG 1E-2 )) ;
  362. ERRE 0 ;
  363. SINON ;
  364. ERRE 5 ;
  365. FINSI ;
  366.  
  367. *
  368. FIN ;
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  

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