Télécharger dy_dev10.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dy_dev10.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ******************************************************************
  5. *
  6. * Cas-Test de la liaison palier de l'operateur DYNE
  7. *
  8. * Arbre rigide L=1m sur 2 paliers cylindriques
  9. * Chargement statique des paliers Fz = 1000 N
  10. *
  11. * Auteur : Inconnu
  12. * Modifs : - JK, ajout resolution par dyne ou pasapas avec table pasapas
  13. * et modele modal
  14. * : - BP, 2015-01-23: on teste les 3 syntaxes
  15. *
  16. ******************************************************************
  17. *
  18. GRAPH = FAUX;
  19. * GRAPH = VRAI; OPTI TRAC PSC POTR HELVETICA_16 EPTR 6;
  20.  
  21. * FLCOUR=VRAI pour utiliser le modele de palier_court (sinon rodeli)
  22. * FLCOUR = vrai;
  23. FLCOUR = faux;
  24.  
  25. * FLPAP=VRAI pour utiliser pasapas
  26. FLPAP = vrai et (non FLCOUR);
  27. * FLPAP = faux;
  28. *bp : le calcul dans DYNE avec une table pasapas fonctionne,
  29. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  30.  
  31. * COMPLET=VRAI pour atteindre l'etat stationnaire
  32. * COMPLET = VRAI;
  33. COMPLET = FAUX;
  34.  
  35. OPTI 'DIME' 3 'ELEM' SEG2 echo 1;
  36. OPTI EPSI LINEAIRE;
  37. *
  38. * caracteristiques des paliers (identiques)
  39. OMEGHZ = 100. ;
  40. xjeu = 1.E-4;
  41. Wcharg = 1000.;
  42. Lpal = 0.01;
  43. Ra1= 0.02 ;
  44. rhopal = 960.;
  45. mupal = 0.2;
  46.  
  47. * nombre de pas, dt , nbre de sortie, de modes, ...
  48. si (COMPLET); NPas1 = 9600 ;
  49. sinon; NPas1 = 4800 ;
  50. finsi;
  51. PTps1 = 6.25e-5/30. ;
  52. NSor1 = 30 ;
  53. NbMod1 = 6 ;
  54. *
  55. E1 = 2.e+15 ;
  56. Rho1 = 7800. ;
  57. Nu1 = 0.3 ;
  58. *
  59. P0 = 0. 0. 0. ;
  60. P1 = 0.5 0. 0. ;
  61. P2 = 1. 0. 0. ;
  62. *
  63. El1 = DROI P0 P1 1 ;
  64. El2 = DROI P1 P2 1 ;
  65. Mail1 = El1 ET El2 ;
  66. *
  67. Modl1 = MODE Mail1 'MECANIQUE' 'TUYA' ;
  68. *
  69. Cara1 = CARA Modl1 'RAYO' Ra1 'EPAI' Ra1 ;
  70. *
  71. Mate1 = MATE Modl1 'YOUNG' E1 'NU' Nu1 'RHO' Rho1 ;
  72. *
  73. Blo1 = BLOQ 'UX' 'RX' 'RY' 'RZ' Mail1 ;
  74. *
  75. MMass1 = MASS Modl1 (Cara1 ET Mate1) ;
  76. MRigi1 = RIGI Modl1 (Cara1 ET Mate1) ;
  77. *
  78. TBasR1 = VIBR 'SIMU' 10. NbMod1 (MRigi1 ET Blo1) MMass1 'TBAS' ;
  79. NNOR TBasR1.MODES 'AVEC' (MOTS 'UY' 'UZ') ;
  80.  
  81. *
  82. * Creation de la table des CONDITIONS INITIALES
  83. ************************************************
  84. TInit1 = TABLE 'INITIAL' ;
  85. *
  86. UY0 = 0. ;
  87. UZ0 = -0.0001e-3 ;
  88. Dep0 = MANU 'CHPO' Mail1 2 'UY' UY0 'UZ' UZ0 NATURE DIFFUS ;
  89. *
  90. REPE bb1 NbMod1 ;
  91. i1 = &bb1 ;
  92. Def1 = TBasR1 . 'MODES' . i1 . 'DEFORMEE_MODALE' ;
  93. M_G1 = TBasR1 . 'MODES' . i1 . 'MASSE_GENERALISEE' ;
  94. P_R1 = TBasR1 . 'MODES' . i1 . 'POINT_REPERE' ;
  95. qi1 = (YTMX Def1 MMass1 Dep0) / M_G1 ;
  96. f_r1 = TBasR1 . 'MODES' . i1 . 'FREQUENCE';
  97. mai4 = manu poi1 p_r1 ;
  98. mo_mod4 = modele mai4 mecanique elastique modal ;
  99. ca_mod4 = mate mo_mod4 freq f_r1 mass m_g1 defo Def1;
  100. SI (EGA i1 1) ;
  101. TInit1.'DEPLACEMENT' = MANU 'CHPO' P_R1 1 'ALFA' qi1 NATURE DIFFUS ;
  102. TInit1.'VITESSE' = MANU 'CHPO' P_R1 1 'ALFA' 0. NATURE DIFFUS ;
  103. mo_1 = mo_mod4 ; ca_1 = ca_mod4 ;
  104. SINON ;
  105. TInit1.'DEPLACEMENT' = TInit1.'DEPLACEMENT' ET
  106. (MANU 'CHPO' P_R1 1 'ALFA' qi1 NATURE DIFFUS) ;
  107. TInit1.'VITESSE' = TInit1.'VITESSE' ET
  108. (MANU 'CHPO' P_R1 1 'ALFA' 0. NATURE DIFFUS) ;
  109. mo_1 = mo_1 et mo_mod4 ; ca_1 = ca_1 et ca_mod4 ;
  110. FINSI ;
  111. FIN bb1 ;
  112. *
  113. * Creation de la table des LIAISONS (paliers)
  114. **********************************************
  115. *
  116. TLiai1 = TABLE 'LIAISON' ;
  117. TLiai1 . LIAISON_B = TABLE 'LIAISON_B' ;
  118. PAL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
  119. PAL1 . TYPE_LIAISON = 'PALIER_FLUIDE' ;
  120. PAL1 . POINT_SUPPORT = P0 ;
  121. PAL1 . LONGUEUR_PALIER = Lpal ;
  122. PAL1 . RAYON_ARBRE = Ra1 ;
  123. PAL1 . VISCOSITE_FLUIDE = mupal ;
  124. PAL1 . RHO_FLUIDE = rhopal ;
  125. PAL1 . PRESSION_ADMISSION = 0. ;
  126. PAL1 . VITESSE_ROTATION = 2 * pi * OMEGHZ;
  127. PAL1 . EPSI = 0.;
  128. PAL1 . PHII = 0. ;
  129. si (FLCOUR);
  130. PAL1 . MODELE_PALIER = 'PALIER_COURT' ;
  131. PAL1 . JEU_USINAGE = xjeu ;
  132. sinon;
  133. PAL1 . MODELE_PALIER = 'RODELI' ;
  134. PAL1 . AFFICHAGE = 0 ;
  135. PAL1 . GEOMETRIE_PALIER = TABLE ;
  136. PAL1 . GEOMETRIE_PALIER . NOMBRE_LOBES = 1 ;
  137. PAL1 . GEOMETRIE_PALIER . CRITERE_ARRET = 1e-6 ;
  138. PAL1 . GEOMETRIE_PALIER . 1 = TABLE ;
  139. PAL1 . GEOMETRIE_PALIER . 1 . ASYMETRIE = 0. ;
  140. PAL1 . GEOMETRIE_PALIER . 1 . JEU_USINAGE = xjeu ;
  141. PAL1 . GEOMETRIE_PALIER . 1 . PRECHARGE = 0. ;
  142. PAL1 . GEOMETRIE_PALIER . 1 . ANGLE_DEBUT = 0. ;
  143. PAL1 . GEOMETRIE_PALIER . 1 . AMPL_ANGLE = 2 * pi ;
  144. PAL1 . GEOMETRIE_PALIER . 1 . COEF_SUR = 1.715 ;
  145. PAL1 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 120 ;
  146. * PAL1 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 360 ;
  147. finsi;
  148. *
  149. si (FLPAP);
  150. maifl1 = manu poi1 p0 ;
  151. mpafl1 = modele maifl1 liaison 'PALIER_FLUIDE' 'RHODE_LI';
  152. tfl1 = table ; tfl1 . mpafl1 = vrai ;
  153. cpafl1 = mate mpafl1 'LONG' Lpal 'RAYO' Ra1 'VISC' mupal 'RHOF' rhopal
  154. 'PADM' 0. 'VROT' (2*pi*OMEGHZ) 'EPSI' 0. 'PHII' 0. 'AFFI' 0
  155. 'TLOB' PAL1 . GEOMETRIE_PALIER 'SORT' tfl1 ;
  156. finsi;
  157. *
  158. PAL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
  159. PAL2 . TYPE_LIAISON = 'PALIER_FLUIDE' ;
  160. PAL2 . POINT_SUPPORT = P2 ;
  161. PAL2 . LONGUEUR_PALIER = Lpal ;
  162. PAL2 . RAYON_ARBRE = Ra1 ;
  163. PAL2 . VISCOSITE_FLUIDE = mupal ;
  164. PAL2 . RHO_FLUIDE = rhopal ;
  165. PAL2 . PRESSION_ADMISSION = 0. ;
  166. PAL2 . VITESSE_ROTATION = 2 * pi * OMEGHZ ;
  167. PAL2 . EPSI = 0.;
  168. PAL2 . PHII = 0. ;
  169. si (FLCOUR);
  170. PAL2 . MODELE_PALIER = 'PALIER_COURT' ;
  171. PAL2 . JEU_USINAGE = xjeu ;
  172. sinon;
  173. PAL2 . MODELE_PALIER = 'RODELI' ;
  174. PAL2 . AFFICHAGE = 0 ;
  175. PAL2 . GEOMETRIE_PALIER = TABLE ;
  176. PAL2 . GEOMETRIE_PALIER . NOMBRE_LOBES = 1 ;
  177. PAL2 . GEOMETRIE_PALIER . CRITERE_ARRET = 1e-6 ;
  178. PAL2 . GEOMETRIE_PALIER . 1 = TABLE ;
  179. PAL2 . GEOMETRIE_PALIER . 1 . ASYMETRIE = 0. ;
  180. PAL2 . GEOMETRIE_PALIER . 1 . JEU_USINAGE = xjeu ;
  181. PAL2 . GEOMETRIE_PALIER . 1 . PRECHARGE = 0. ;
  182. PAL2 . GEOMETRIE_PALIER . 1 . ANGLE_DEBUT = 0. ;
  183. PAL2 . GEOMETRIE_PALIER . 1 . AMPL_ANGLE = 2 * pi ;
  184. PAL2 . GEOMETRIE_PALIER . 1 . COEF_SUR = 1.715 ;
  185. PAL2 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 120 ;
  186. * PAL2 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 360 ;
  187. finsi;
  188. *opti donn 3 ;
  189.  
  190. si (FLPAP);
  191. maifl2 = manu poi1 p2 ;
  192. mpafl2 = modele maifl2 liaison 'PALIER_FLUIDE' 'RHODE_LI';
  193. tfl2 = table ; tfl2 . mpafl2 = vrai ;
  194. cpafl2 = mate mpafl2 'LONG' Lpal 'RAYO' Ra1 'VISC' mupal 'RHOF' rhopal
  195. 'PADM' 0. 'VROT' (2*pi*OMEGHZ) 'EPSI' 0. 'PHII' 0. 'AFFI' 0
  196. 'TLOB' PAL2 . GEOMETRIE_PALIER 'SORT' tfl2 ;
  197. finsi;
  198. *
  199. TLiai1 . LIAISON_B . 1 = PAL1 ;
  200. TLiai1 . LIAISON_B . 2 = PAL2 ;
  201. *
  202. * Creation de la table des VARIABLES DE SORTIE
  203. ***********************************************
  204. TSort1 = TABLE 'SORTIE' ;
  205. TSort1 . 'VARIABLE' = TABLE 'VARIABLE' ;
  206. TSort1 . 'LIAISON_B' = TABLE 'LIAISON_B' ;
  207. TSort1 . 'LIAISON_B' . PAL1 = VRAI ;
  208. TSort1 . 'LIAISON_B' . PAL2 = VRAI ;
  209. tsort1 . 'VARIABLE' . vitesse = vrai ;
  210. tsort1 . 'VARIABLE' . deplacement = vrai ;
  211. *
  212. * Creation de la table du CHARGEMENT (chargement statique)
  213. *************************************
  214. TChar1 = TABLE 'CHARGEMENT' ;
  215. LTps1 = PROG 0.0 'PAS' PTps1 'NPAS' (NPas1+1) ;
  216. FsY1 = 0. ;
  217. FsZ1 = -1.*Wcharg ;
  218. Chp_Fs1 = MANU CHPO 3 (P0 ET P2)
  219. 'FX' 0. 'FY' FsY1 'FZ' FsZ1 ;
  220. Ev_Fs1 = EVOL MANU LTps1 (PROG (NPas1+2) * 1.) ;
  221. Char_Fs1 = CHAR Chp_Fs1 Ev_Fs1 ;
  222. TChar1 . 'BASE_A' = PJBA TBasR1 Char_Fs1 ;
  223. char_fs2 = pjba char_fs1 mo_1 ca_1 ;
  224.  
  225.  
  226. * Calcul temporel : Appel a DYNE avec une table DYNE (calcul original)
  227. ********************************
  228. * opti impi 333;
  229. TResu1 = DYNE 'DE_VOGELAERE' TBasR1 TChar1 TInit1 TSort1
  230. *TResu1 = DYNE 'DIFFERENCES_CENTREES' TBasR1 TChar1 TInit1 TSort1
  231. TLiai1 PTps1 NPas1 NSor1 ;
  232. * opti impi 0;
  233. *
  234. Abs1 = TResu1 . PAL1 . 'UY_ARBRE' / xjeu;
  235. Ord1 = TResu1 . PAL1 .'UZ_ARBRE' / xjeu;
  236. Abs2 = TResu1 . PAL1 . 'FY_PALIER';
  237. Ord2 = TResu1 . PAL1 . 'FZ_PALIER';
  238. tprog = TResu1 . 'TEMPS_DE_SORTIE';
  239.  
  240.  
  241. si (FLPAP);
  242.  
  243. * Creation d'une table PASAPAS (JK)
  244. *************************************
  245. tabdyn = table 'PASAPAS' ;
  246. tabdyn . modele = mo_1 et mpafl1 et mpafl2 ;
  247. tabdyn . caracteristiques = ca_1 et cpafl1 et cpafl2 ;
  248. tabdyn . chargement = char_fs2 ;
  249. tabdyn . deplacements = table ;
  250. tabdyn . vitesses = table ;
  251. tabdyn . deplacements . 0 = tinit1 . deplacement ;
  252. tabdyn . vitesses . 0 = tinit1 . vitesse ;
  253.  
  254.  
  255. * Calcul temporel : Appel a PASAPAS avec une table pasapas
  256. ********************************
  257. tabpap = copi tabdyn;
  258. tabpap . dynamique = vrai ;
  259. * on calcule avec un pas xdt*plus grand sur une duree/8
  260. xdt = 10.;
  261. * xdt = 1.;
  262. *--> resultats faux meme avec un pas de temps egal a l'explicite
  263. dtpap = ptps1*xdt;
  264. tfinpap = (ptps1*NPas1) / 8.;
  265. tabpap . temps_calcules = prog 0. pas dtpap tfinpap ;
  266. * on sauve aux memes instants que DYNE
  267. tabpap . temps_sauves = prog 0. pas (ptps1*NSor1) tfinpap;
  268.  
  269. pasapas tabpap ;
  270.  
  271. Abs12 = prog 0.; Abs22 = prog 0.; Ord12 = prog 0.; Ord22 = prog 0.;
  272. repeter b_p ((dime tabpap . temps) - 1) ;
  273. tuu1 = 'EXTR' ('REDU' tabpap . variables_internes . &b_p mpafl1)
  274. 'SLIA' 1 1 1 ;
  275. Abs12 = Abs12 et tuu1 . 'UY_ARBRE' ;
  276. Ord12 = Abs22 et tuu1 . 'UZ_ARBRE' ;
  277. Abs22 = Abs22 et tuu1 . 'FY_PALIER';
  278. Ord22 = Ord22 et tuu1 . 'FZ_PALIER';
  279. fin b_p ;
  280. Abs12 = Abs12 / xjeu;
  281. Ord12 = Ord12 / xjeu;
  282. tprog2 = tabpap . 'TEMPS_SAUVES';
  283.  
  284. * Calcul temporel : Appel a DYNE avec une table pasapas
  285. ********************************
  286. tabdyn . sortie = table ;
  287. tabdyn . sortie . mpafl1 = vrai ;
  288. tabdyn . sortie . mpafl2 = vrai ;
  289. tabdyn . pas_de_temps = ptps1 ;
  290. tabdyn . nombre_pas = npas1 ;
  291. tabdyn . pas_de_sortie = nsor1 ;
  292.  
  293. dyne de_vogelaere tabdyn ;
  294.  
  295. Abs11 = tabdyn . liaisons . mpafl1 . 'UY_ARBRE' / xjeu;
  296. Ord11 = tabdyn . liaisons . mpafl1 .'UZ_ARBRE' / xjeu;
  297. Abs21 = tabdyn . liaisons . mpafl1 . 'FY_PALIER';
  298. Ord21 = tabdyn . liaisons . mpafl1 . 'FZ_PALIER';
  299. *tprog1 = tabdyn . 'TEMPS_DE_SORTIE';
  300.  
  301. finsi;
  302.  
  303.  
  304. ****************************************************************
  305. * Graphiques
  306. ****************************************************************
  307. SI GRAPH;
  308.  
  309. tt = tabl;
  310. tt . 2 = mot 'TIRR';
  311. tt . 3 = mot 'NOLI MARQ S PLUS';
  312. tt . 'TITRE' = tabl;
  313. tt . 'TITRE' . 1 = mot 'DYNE tables dyne';
  314. tt . 'TITRE' . 2 = mot 'DYNE table PAP';
  315. tt . 'TITRE' . 3 = mot 'PASAPAS';
  316.  
  317. *--- trace de l orbite ---*
  318. ev1yt = evol BLEU manu 't' tprog 'UY/C' Abs1;
  319. ev1zt = evol VIOL manu 't' tprog 'UZ/C' Ord1;
  320. dess (ev1yt et ev1zt) 'TITR' 'UY(bleu) UZ(viol)';
  321. ev1yz = evol BLEU manu 'UY/C' Abs1 'UZ/C' Ord1;
  322. prteta = prog -90. PAS 1. 0.;
  323. evjeu = evol DEFA manu 'UY/C' (cos prteta) 'UZ/C' (sin prteta);
  324.  
  325. si (FLPAP);
  326. ev11yz = evol TURQ manu 'UY/C' Abs11 'UZ/C' Ord11;
  327. ev12yz = evol ROSE manu 'UY/C' Abs12 'UZ/C' Ord12;
  328. dess (ev1yz et ev11yz) tt 'LEGE' NE;
  329. dess (ev1yz et ev11yz et ev12yz) tt 'LEGE' NE;
  330. dess (ev1yz et ev11yz et ev12yz et evjeu) tt 'LEGE' NE;
  331. * bp : le calcul dans DYNE avec une table pasapas fonctionne,
  332. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  333. * --> ev11yz ok, mais ev12yz faux
  334. sinon;
  335. dess (ev1yz);
  336. dess (ev1yz et evjeu) ;
  337. finsi;
  338.  
  339. *--- trace des efforts FY ---*
  340. ev1fy = evol BLEU manu 't' tprog 'FY' Abs2 ;
  341. si (FLPAP);
  342. ev11fy = evol TURQ manu 't' tprog2 'FY' Abs21 ;
  343. ev12fy = evol ROSE manu 't' tprog2 'FY' Abs22 ;
  344. dess (ev1fy et ev11fy et ev12fy) tt;
  345. sinon;
  346. dess (ev1fy) tt;
  347. finsi;
  348.  
  349. *--- trace des efforts FZ ---*
  350. ev1fz = evol BLEU manu 't' tprog 'FZ' ord2 ;
  351. si (FLPAP);
  352. ev11fz = evol TURQ manu 't' tprog2 'FZ' ord21 ;
  353. ev12fz = evol ROSE manu 't' tprog2 'FZ' ord22 ;
  354. dess (ev1fz et ev11fz et ev12fz) tt;
  355. sinon;
  356. dess (ev1fz) tt;
  357. finsi;
  358.  
  359. FINSI;
  360.  
  361.  
  362. ****************************************************************
  363. * Tests de Non Regression
  364. ****************************************************************
  365. opti echo 0;
  366.  
  367. * tolerance
  368. errtol = 0.01;
  369. errpap = 0.02;
  370.  
  371. * reference [Frene et al., Lubrification hydrodynamique, p.139, L/D=1/4]
  372. W1pal = 0.5 * Wcharg;
  373. INTGr = mupal * Lpal * Ra1 * OMEGHZ * ((Ra1/xjeu)**2) / W1pal;
  374. mess 'S='INTGr ;
  375. Sref = prog 16.2 7.57 4.49 2.83 1.78 1.07 0.58 0.263 0.0728 0.0221;
  376. phiref= prog 82.5 75.5 68.5 61.5 54. 47. 39.5 31.5 21.5 15.5;
  377. excref= prog 0.1 pas 0.1 0.9 0.95;
  378. evexc = evol defa manu 'S' Sref '\e' excref;
  379. eth = ipol INTGr Sref excref;
  380. phith = ipol INTGr Sref phiref;
  381. mess ' excentricite et angle de calage';
  382. mess 'theoriques: ' eth phith;
  383.  
  384. * valeurs calculees par DYNE
  385. n34 = dime Abs1;
  386. edyne = (((EXTR Abs1 n34)**2) + ((EXTR Ord1 n34)**2)) ** 0.5;
  387. pdyne = ATG (EXTR Abs1 n34) (-1.*(EXTR Ord1 n34));
  388. mess 'calcules (DYNE):' edyne pdyne;
  389. * erreur relative :
  390. err1 = abs ((eth - edyne) / eth);
  391. err2 = abs ((phith - pdyne) / phith);
  392. mess 'erreurs relatives:' err1 err2;
  393.  
  394. * valeurs calculees par PASAPAS :
  395. si (FLPAP);
  396. n341 = dime Abs11;
  397. edyne1 = (((EXTR Abs11 n341)**2) + ((EXTR Ord11 n341)**2)) ** 0.5;
  398. pdyne1 = ATG (EXTR Abs11 n341) (-1.*(EXTR Ord11 n341));
  399. mess 'calcules (DYNE avec table PAP):' edyne1 pdyne1;
  400. * erreur relative :
  401. err11 = abs ((eth - edyne1) / eth);
  402. err21 = abs ((phith - pdyne1) / phith);
  403. mess 'erreurs relatives:' err11 err21;
  404. si (err11 > err1); err1 = err11; finsi;
  405. si (err21 > err2); err2 = err21; finsi;
  406. * to do
  407. * bp : le calcul dans DYNE avec une table pasapas fonctionne,
  408. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  409. * --> TNR sur ev11yz ok, mais pas sur ev12yz (faux)
  410. finsi;
  411.  
  412. opti echo 1;
  413.  
  414. * TNR
  415. si ((err1 > errtol) ou (err2 > errtol)) ;
  416. erre 5 ;
  417. sinon ;
  418. erre 0 ;
  419. finsi ;
  420.  
  421.  
  422. FIN ;
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  

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