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 ;
  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. *bp, 2017-10-03 : on interdit dans MATE les frequences<0
  97. *--> petit ajustement :
  98. si (TBasR1 . 'MODES' . i1 . 'FREQUENCE' < 0.);
  99. TBasR1 . 'MODES' . i1 . 'FREQUENCE' = 0.;
  100. finsi;
  101. f_r1 = TBasR1 . 'MODES' . i1 . 'FREQUENCE';
  102. mai4 = manu poi1 p_r1 ;
  103. mo_mod4 = modele mai4 mecanique elastique modal ;
  104. ca_mod4 = mate mo_mod4 freq f_r1 mass m_g1 defo Def1;
  105. SI (EGA i1 1) ;
  106. TInit1.'DEPLACEMENT' = MANU 'CHPO' P_R1 1 'ALFA' qi1 NATURE DIFFUS ;
  107. TInit1.'VITESSE' = MANU 'CHPO' P_R1 1 'ALFA' 0. NATURE DIFFUS ;
  108. mo_1 = mo_mod4 ; ca_1 = ca_mod4 ;
  109. SINON ;
  110. TInit1.'DEPLACEMENT' = TInit1.'DEPLACEMENT' ET
  111. (MANU 'CHPO' P_R1 1 'ALFA' qi1 NATURE DIFFUS) ;
  112. TInit1.'VITESSE' = TInit1.'VITESSE' ET
  113. (MANU 'CHPO' P_R1 1 'ALFA' 0. NATURE DIFFUS) ;
  114. mo_1 = mo_1 et mo_mod4 ; ca_1 = ca_1 et ca_mod4 ;
  115. FINSI ;
  116. FIN bb1 ;
  117. *
  118. * Creation de la table des LIAISONS (paliers)
  119. **********************************************
  120. *
  121. TLiai1 = TABLE 'LIAISON' ;
  122. TLiai1 . LIAISON_B = TABLE 'LIAISON_B' ;
  123. PAL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
  124. PAL1 . TYPE_LIAISON = 'PALIER_FLUIDE' ;
  125. PAL1 . POINT_SUPPORT = P0 ;
  126. PAL1 . LONGUEUR_PALIER = Lpal ;
  127. PAL1 . RAYON_ARBRE = Ra1 ;
  128. PAL1 . VISCOSITE_FLUIDE = mupal ;
  129. PAL1 . RHO_FLUIDE = rhopal ;
  130. PAL1 . PRESSION_ADMISSION = 0. ;
  131. PAL1 . VITESSE_ROTATION = 2 * pi * OMEGHZ;
  132. PAL1 . EPSI = 0.;
  133. PAL1 . PHII = 0. ;
  134. si (FLCOUR);
  135. PAL1 . MODELE_PALIER = 'PALIER_COURT' ;
  136. PAL1 . JEU_USINAGE = xjeu ;
  137. sinon;
  138. PAL1 . MODELE_PALIER = 'RODELI' ;
  139. PAL1 . AFFICHAGE = 0 ;
  140. PAL1 . GEOMETRIE_PALIER = TABLE ;
  141. PAL1 . GEOMETRIE_PALIER . NOMBRE_LOBES = 1 ;
  142. PAL1 . GEOMETRIE_PALIER . CRITERE_ARRET = 1e-6 ;
  143. PAL1 . GEOMETRIE_PALIER . 1 = TABLE ;
  144. PAL1 . GEOMETRIE_PALIER . 1 . ASYMETRIE = 0. ;
  145. PAL1 . GEOMETRIE_PALIER . 1 . JEU_USINAGE = xjeu ;
  146. PAL1 . GEOMETRIE_PALIER . 1 . PRECHARGE = 0. ;
  147. PAL1 . GEOMETRIE_PALIER . 1 . ANGLE_DEBUT = 0. ;
  148. PAL1 . GEOMETRIE_PALIER . 1 . AMPL_ANGLE = 2 * pi ;
  149. PAL1 . GEOMETRIE_PALIER . 1 . COEF_SUR = 1.715 ;
  150. PAL1 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 120 ;
  151. * PAL1 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 360 ;
  152. finsi;
  153. *
  154. si (FLPAP);
  155. maifl1 = manu poi1 p0 ;
  156. mpafl1 = modele maifl1 liaison 'PALIER_FLUIDE' 'RHODE_LI';
  157. tfl1 = table ; tfl1 . mpafl1 = vrai ;
  158. cpafl1 = mate mpafl1 'LONG' Lpal 'RAYO' Ra1 'VISC' mupal 'RHOF' rhopal
  159. 'PADM' 0. 'VROT' (2*pi*OMEGHZ) 'EPSI' 0. 'PHII' 0. 'AFFI' 0
  160. 'TLOB' PAL1 . GEOMETRIE_PALIER 'SORT' tfl1 ;
  161. finsi;
  162. *
  163. PAL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
  164. PAL2 . TYPE_LIAISON = 'PALIER_FLUIDE' ;
  165. PAL2 . POINT_SUPPORT = P2 ;
  166. PAL2 . LONGUEUR_PALIER = Lpal ;
  167. PAL2 . RAYON_ARBRE = Ra1 ;
  168. PAL2 . VISCOSITE_FLUIDE = mupal ;
  169. PAL2 . RHO_FLUIDE = rhopal ;
  170. PAL2 . PRESSION_ADMISSION = 0. ;
  171. PAL2 . VITESSE_ROTATION = 2 * pi * OMEGHZ ;
  172. PAL2 . EPSI = 0.;
  173. PAL2 . PHII = 0. ;
  174. si (FLCOUR);
  175. PAL2 . MODELE_PALIER = 'PALIER_COURT' ;
  176. PAL2 . JEU_USINAGE = xjeu ;
  177. sinon;
  178. PAL2 . MODELE_PALIER = 'RODELI' ;
  179. PAL2 . AFFICHAGE = 0 ;
  180. PAL2 . GEOMETRIE_PALIER = TABLE ;
  181. PAL2 . GEOMETRIE_PALIER . NOMBRE_LOBES = 1 ;
  182. PAL2 . GEOMETRIE_PALIER . CRITERE_ARRET = 1e-6 ;
  183. PAL2 . GEOMETRIE_PALIER . 1 = TABLE ;
  184. PAL2 . GEOMETRIE_PALIER . 1 . ASYMETRIE = 0. ;
  185. PAL2 . GEOMETRIE_PALIER . 1 . JEU_USINAGE = xjeu ;
  186. PAL2 . GEOMETRIE_PALIER . 1 . PRECHARGE = 0. ;
  187. PAL2 . GEOMETRIE_PALIER . 1 . ANGLE_DEBUT = 0. ;
  188. PAL2 . GEOMETRIE_PALIER . 1 . AMPL_ANGLE = 2 * pi ;
  189. PAL2 . GEOMETRIE_PALIER . 1 . COEF_SUR = 1.715 ;
  190. PAL2 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 120 ;
  191. * PAL2 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 360 ;
  192. finsi;
  193. *opti donn 3 ;
  194.  
  195. si (FLPAP);
  196. maifl2 = manu poi1 p2 ;
  197. mpafl2 = modele maifl2 liaison 'PALIER_FLUIDE' 'RHODE_LI';
  198. tfl2 = table ; tfl2 . mpafl2 = vrai ;
  199. cpafl2 = mate mpafl2 'LONG' Lpal 'RAYO' Ra1 'VISC' mupal 'RHOF' rhopal
  200. 'PADM' 0. 'VROT' (2*pi*OMEGHZ) 'EPSI' 0. 'PHII' 0. 'AFFI' 0
  201. 'TLOB' PAL2 . GEOMETRIE_PALIER 'SORT' tfl2 ;
  202. finsi;
  203. *
  204. TLiai1 . LIAISON_B . 1 = PAL1 ;
  205. TLiai1 . LIAISON_B . 2 = PAL2 ;
  206. *
  207. * Creation de la table des VARIABLES DE SORTIE
  208. ***********************************************
  209. TSort1 = TABLE 'SORTIE' ;
  210. TSort1 . 'VARIABLE' = TABLE 'VARIABLE' ;
  211. TSort1 . 'LIAISON_B' = TABLE 'LIAISON_B' ;
  212. TSort1 . 'LIAISON_B' . PAL1 = VRAI ;
  213. TSort1 . 'LIAISON_B' . PAL2 = VRAI ;
  214. tsort1 . 'VARIABLE' . vitesse = vrai ;
  215. tsort1 . 'VARIABLE' . deplacement = vrai ;
  216. *
  217. * Creation de la table du CHARGEMENT (chargement statique)
  218. *************************************
  219. TChar1 = TABLE 'CHARGEMENT' ;
  220. LTps1 = PROG 0.0 'PAS' PTps1 'NPAS' (NPas1+1) ;
  221. FsY1 = 0. ;
  222. FsZ1 = -1.*Wcharg ;
  223. Chp_Fs1 = MANU CHPO 3 (P0 ET P2)
  224. 'FX' 0. 'FY' FsY1 'FZ' FsZ1 ;
  225. Ev_Fs1 = EVOL MANU LTps1 (PROG (NPas1+2) * 1.) ;
  226. Char_Fs1 = CHAR Chp_Fs1 Ev_Fs1 ;
  227. TChar1 . 'BASE_A' = PJBA TBasR1 Char_Fs1 ;
  228. char_fs2 = pjba char_fs1 mo_1 ca_1 ;
  229.  
  230.  
  231. * Calcul temporel : Appel a DYNE avec une table DYNE (calcul original)
  232. ********************************
  233. * opti impi 333;
  234. TResu1 = DYNE 'DE_VOGELAERE' TBasR1 TChar1 TInit1 TSort1
  235. *TResu1 = DYNE 'DIFFERENCES_CENTREES' TBasR1 TChar1 TInit1 TSort1
  236. TLiai1 PTps1 NPas1 NSor1 ;
  237. * opti impi 0;
  238. *
  239. Abs1 = TResu1 . PAL1 . 'UY_ARBRE' / xjeu;
  240. Ord1 = TResu1 . PAL1 .'UZ_ARBRE' / xjeu;
  241. Abs2 = TResu1 . PAL1 . 'FY_PALIER';
  242. Ord2 = TResu1 . PAL1 . 'FZ_PALIER';
  243. tprog = TResu1 . 'TEMPS_DE_SORTIE';
  244.  
  245.  
  246. si (FLPAP);
  247.  
  248. * Creation d'une table PASAPAS (JK)
  249. *************************************
  250. tabdyn = table 'PASAPAS' ;
  251. tabdyn . modele = mo_1 et mpafl1 et mpafl2 ;
  252. tabdyn . caracteristiques = ca_1 et cpafl1 et cpafl2 ;
  253. tabdyn . chargement = char_fs2 ;
  254. tabdyn . deplacements = table ;
  255. tabdyn . vitesses = table ;
  256. tabdyn . deplacements . 0 = tinit1 . deplacement ;
  257. tabdyn . vitesses . 0 = tinit1 . vitesse ;
  258.  
  259.  
  260. * Calcul temporel : Appel a PASAPAS avec une table pasapas
  261. ********************************
  262. tabpap = copi tabdyn;
  263. tabpap . dynamique = vrai ;
  264. * on calcule avec un pas xdt*plus grand sur une duree/8
  265. xdt = 10.;
  266. * xdt = 1.;
  267. *--> resultats faux meme avec un pas de temps egal a l'explicite
  268. dtpap = ptps1*xdt;
  269. tfinpap = (ptps1*NPas1) / 8.;
  270. tabpap . temps_calcules = prog 0. pas dtpap tfinpap ;
  271. * on sauve aux memes instants que DYNE
  272. tabpap . temps_sauves = prog 0. pas (ptps1*NSor1) tfinpap;
  273.  
  274. pasapas tabpap ;
  275.  
  276. Abs12 = prog 0.; Abs22 = prog 0.; Ord12 = prog 0.; Ord22 = prog 0.;
  277. repeter b_p ((dime tabpap . temps) - 1) ;
  278. tuu1 = 'EXTR' ('REDU' tabpap . variables_internes . &b_p mpafl1)
  279. 'SLIA' 1 1 1 ;
  280. Abs12 = Abs12 et tuu1 . 'UY_ARBRE' ;
  281. Ord12 = Abs22 et tuu1 . 'UZ_ARBRE' ;
  282. Abs22 = Abs22 et tuu1 . 'FY_PALIER';
  283. Ord22 = Ord22 et tuu1 . 'FZ_PALIER';
  284. fin b_p ;
  285. Abs12 = Abs12 / xjeu;
  286. Ord12 = Ord12 / xjeu;
  287. tprog2 = tabpap . 'TEMPS_SAUVES';
  288.  
  289. * Calcul temporel : Appel a DYNE avec une table pasapas
  290. ********************************
  291. tabdyn . sortie = table ;
  292. tabdyn . sortie . mpafl1 = vrai ;
  293. tabdyn . sortie . mpafl2 = vrai ;
  294. tabdyn . pas_de_temps = ptps1 ;
  295. tabdyn . nombre_pas = npas1 ;
  296. tabdyn . pas_de_sortie = nsor1 ;
  297.  
  298. dyne de_vogelaere tabdyn ;
  299.  
  300. Abs11 = tabdyn . liaisons . mpafl1 . 'UY_ARBRE' / xjeu;
  301. Ord11 = tabdyn . liaisons . mpafl1 .'UZ_ARBRE' / xjeu;
  302. Abs21 = tabdyn . liaisons . mpafl1 . 'FY_PALIER';
  303. Ord21 = tabdyn . liaisons . mpafl1 . 'FZ_PALIER';
  304. *tprog1 = tabdyn . 'TEMPS_DE_SORTIE';
  305.  
  306. finsi;
  307.  
  308.  
  309. ****************************************************************
  310. * Graphiques
  311. ****************************************************************
  312. SI GRAPH;
  313.  
  314. tt = tabl;
  315. tt . 2 = mot 'TIRR';
  316. tt . 3 = mot 'NOLI MARQ S PLUS';
  317. tt . 'TITRE' = tabl;
  318. tt . 'TITRE' . 1 = mot 'DYNE tables dyne';
  319. tt . 'TITRE' . 2 = mot 'DYNE table PAP';
  320. tt . 'TITRE' . 3 = mot 'PASAPAS';
  321.  
  322. *--- trace de l orbite ---*
  323. ev1yt = evol BLEU manu 't' tprog 'UY/C' Abs1;
  324. ev1zt = evol VIOL manu 't' tprog 'UZ/C' Ord1;
  325. dess (ev1yt et ev1zt) 'TITR' 'UY(bleu) UZ(viol)';
  326. ev1yz = evol BLEU manu 'UY/C' Abs1 'UZ/C' Ord1;
  327. prteta = prog -90. PAS 1. 0.;
  328. evjeu = evol DEFA manu 'UY/C' (cos prteta) 'UZ/C' (sin prteta);
  329.  
  330. si (FLPAP);
  331. ev11yz = evol TURQ manu 'UY/C' Abs11 'UZ/C' Ord11;
  332. ev12yz = evol ROSE manu 'UY/C' Abs12 'UZ/C' Ord12;
  333. dess (ev1yz et ev11yz) tt 'LEGE' NE;
  334. dess (ev1yz et ev11yz et ev12yz) tt 'LEGE' NE;
  335. dess (ev1yz et ev11yz et ev12yz et evjeu) tt 'LEGE' NE;
  336. * bp : le calcul dans DYNE avec une table pasapas fonctionne,
  337. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  338. * --> ev11yz ok, mais ev12yz faux
  339. sinon;
  340. dess (ev1yz);
  341. dess (ev1yz et evjeu) ;
  342. finsi;
  343.  
  344. *--- trace des efforts FY ---*
  345. ev1fy = evol BLEU manu 't' tprog 'FY' Abs2 ;
  346. si (FLPAP);
  347. ev11fy = evol TURQ manu 't' tprog2 'FY' Abs21 ;
  348. ev12fy = evol ROSE manu 't' tprog2 'FY' Abs22 ;
  349. dess (ev1fy et ev11fy et ev12fy) tt;
  350. sinon;
  351. dess (ev1fy) tt;
  352. finsi;
  353.  
  354. *--- trace des efforts FZ ---*
  355. ev1fz = evol BLEU manu 't' tprog 'FZ' ord2 ;
  356. si (FLPAP);
  357. ev11fz = evol TURQ manu 't' tprog2 'FZ' ord21 ;
  358. ev12fz = evol ROSE manu 't' tprog2 'FZ' ord22 ;
  359. dess (ev1fz et ev11fz et ev12fz) tt;
  360. sinon;
  361. dess (ev1fz) tt;
  362. finsi;
  363.  
  364. FINSI;
  365.  
  366.  
  367. ****************************************************************
  368. * Tests de Non Regression
  369. ****************************************************************
  370. opti echo 0;
  371.  
  372. * tolerance
  373. errtol = 0.01;
  374. errpap = 0.02;
  375.  
  376. * reference [Frene et al., Lubrification hydrodynamique, p.139, L/D=1/4]
  377. W1pal = 0.5 * Wcharg;
  378. INTGr = mupal * Lpal * Ra1 * OMEGHZ * ((Ra1/xjeu)**2) / W1pal;
  379. mess 'S='INTGr ;
  380. Sref = prog 16.2 7.57 4.49 2.83 1.78 1.07 0.58 0.263 0.0728 0.0221;
  381. phiref= prog 82.5 75.5 68.5 61.5 54. 47. 39.5 31.5 21.5 15.5;
  382. excref= prog 0.1 pas 0.1 0.9 0.95;
  383. evexc = evol defa manu 'S' Sref '\e' excref;
  384. eth = ipol INTGr Sref excref;
  385. phith = ipol INTGr Sref phiref;
  386. mess ' excentricite et angle de calage';
  387. mess 'theoriques: ' eth phith;
  388.  
  389. * valeurs calculees par DYNE
  390. n34 = dime Abs1;
  391. edyne = (((EXTR Abs1 n34)**2) + ((EXTR Ord1 n34)**2)) ** 0.5;
  392. pdyne = ATG (EXTR Abs1 n34) (-1.*(EXTR Ord1 n34));
  393. mess 'calcules (DYNE):' edyne pdyne;
  394. * erreur relative :
  395. err1 = abs ((eth - edyne) / eth);
  396. err2 = abs ((phith - pdyne) / phith);
  397. mess 'erreurs relatives:' err1 err2;
  398.  
  399. * valeurs calculees par PASAPAS :
  400. si (FLPAP);
  401. n341 = dime Abs11;
  402. edyne1 = (((EXTR Abs11 n341)**2) + ((EXTR Ord11 n341)**2)) ** 0.5;
  403. pdyne1 = ATG (EXTR Abs11 n341) (-1.*(EXTR Ord11 n341));
  404. mess 'calcules (DYNE avec table PAP):' edyne1 pdyne1;
  405. * erreur relative :
  406. err11 = abs ((eth - edyne1) / eth);
  407. err21 = abs ((phith - pdyne1) / phith);
  408. mess 'erreurs relatives:' err11 err21;
  409. si (err11 > err1); err1 = err11; finsi;
  410. si (err21 > err2); err2 = err21; finsi;
  411. * to do
  412. * bp : le calcul dans DYNE avec une table pasapas fonctionne,
  413. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  414. * --> TNR sur ev11yz ok, mais pas sur ev12yz (faux)
  415. finsi;
  416.  
  417. opti echo 1;
  418.  
  419. * TNR
  420. si ((err1 > errtol) ou (err2 > errtol)) ;
  421. erre 5 ;
  422. sinon ;
  423. erre 0 ;
  424. finsi ;
  425.  
  426.  
  427. FIN ;
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  

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