Télécharger rotor6.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : rotor6.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. ******************************************************************
  6. * *
  7. * Mots-clés : Vibrations, calcul modal, machines tournantes, *
  8. * 3D, flambage, precontrainte *
  9. * *
  10. * rotor6.dgibi *
  11. * *
  12. * Cas test basé sur rotor2.dgibi [Exemple Lalanne P.13] *
  13. * Modélisation 3D dans le repère tournant *
  14. * Géo : épaisseur du disque + fine (hvol) *
  15. * *
  16. * B. Prabel, janvier 2012 : *
  17. * -teste les matrices en 3D massif créée par KENT KSIG *
  18. * (CORI a ajouter a terme) *
  19. * -teste l'algo de VIBR 'SIMUL' dans les cas ou : *
  20. * + on cycle (grand nombre de modes) *
  21. * + K ou M n'est pas definie positive *
  22. * *
  23. ******************************************************************
  24.  
  25.  
  26. ******************************************************
  27. *** Options ***
  28. ******************************************************
  29. COMPLET = FAUX;
  30. * COMPLET = VRAI;
  31.  
  32. opti dime 3 elem cub8 ;
  33. *opti dime 3 elem cu20 ;
  34. OPTI EPSI LINEAIRE;
  35.  
  36. * tracés
  37. OPTI TRAC PSC EPTR 4;
  38. eye1 = 5. -10. 3. ;
  39.  
  40. *message dans VIBR
  41. iimpi = 6;
  42. * iimpi = 5;
  43. * iimpi = 4;
  44. iimpi = 0;
  45.  
  46. *test de DIAG
  47. FLDIAG = FAUX;
  48.  
  49.  
  50. ******************************************************
  51. *** Maillage ***
  52. ******************************************************
  53. *
  54. Ltot = 0.40 ;
  55. L1 = Ltot/3.;
  56. L2 = 2.*Ltot/3.;
  57. *
  58. Re1 = 0.01 ;
  59. Ri2 = 0.01 ;
  60. Re2 = 0.15 ;
  61. * hvol = 0.03;
  62. * hvol = 0.005;
  63. hvol = 0.002;
  64.  
  65. *
  66. * Sections circulaires de l'arbre et du volant d'inertie
  67. p0 = 0. 0. 0.;
  68. vaxe = 1. 0. 0.;
  69. p1 = 0. Re1 0. ;
  70. p1e = 0. Re2 0. ;
  71. p2 = 0. 0. Re1 ;
  72. p3 = 0. ((-1.)*Re1) 0. ;
  73. p4 = 0. 0. ((-1.)*Re1) ;
  74. * n1 = 2;
  75. n1 = 3;
  76. * n1 = 4;
  77. n2 = 5;
  78. * naxe1 = 8; naxe2 = 2; naxe3 = 8; naxe4 = 8;
  79. naxe1 = 4; naxe2 = 2; naxe3 = 4; naxe4 = 4;
  80. fins;
  81. *
  82. p1axe = p0;
  83. p2axe = p0 plus ((L1 - (0.5*hvol))*vaxe);
  84. p3axe = p0 plus ((L1 + (0.5*hvol))*vaxe);
  85. p4axe = p0 plus ((L2)*vaxe);
  86. p5axe = p0 plus ((Ltot)*vaxe);
  87. pbal = p1e plus ((L1 - (0.5*hvol))*vaxe);
  88.  
  89. *bp : modif du maillage de la section de l arbre
  90. p1p = p0 PLUS (0.2*(p1 MOIN p0)) ;
  91. p2p = p0 PLUS (0.2*(p2 MOIN p0)) ;
  92. p3p = p0 PLUS (0.2*(p3 MOIN p0)) ;
  93. p4p = p0 PLUS (0.2*(p4 MOIN p0)) ;
  94. cer1 = (cer3 (2*n1) p1 p2 p3) ;
  95. cer1p = (cer3 (2*n1) p1p p2p p3p) ;
  96. cer2 = (cer3 (2*n1) p3 p4 p1) ;
  97. cer2p = (cer3 (2*n1) p3p p4p p1p) ;
  98. secarbre = (REGL cer1 cer1p) et (COUT cer1p p0)
  99. et (REGL cer2 cer2p) et (COUT cer2p p0) ;
  100. elim secarbre (1.E-4*Re1) ;
  101. *
  102. secvolan = (rota 360. (4*n1) (d n2 p1 p1e) p0 vaxe) et secarbre;
  103. ELIM secvolan (1.E-4*Re1) ;
  104. *
  105. *opti elem cub8;
  106. vol1 = secarbre volu naxe1 tran ((L1 - (0.5*hvol))*vaxe);
  107. vol2 = (secvolan plus ((L1 - (0.5*hvol))*vaxe))
  108. volu naxe2 tran (hvol*vaxe);
  109. vol3 = (secarbre plus ((L1 + (0.5*hvol))*vaxe))
  110. volu naxe3 tran ((L2 - (L1 + (0.5*hvol)))*vaxe);
  111. vol4 = (secarbre plus (L2*vaxe))
  112. volu naxe4 tran ((Ltot - L2)*vaxe);
  113. voltot = vol1 et vol2 et vol3 et vol4;
  114. elim 0.0001 (voltot et p1axe et p2axe et
  115. p3axe et p4axe et p5axe et pbal);
  116. *
  117. * tracé
  118. rp1 = @REPERE (prog 0.5 0.2 0.2) 'JAUN';
  119. trac eye1 (voltot et rp1) cach;
  120. trac eye1 (voltot) cach;
  121.  
  122.  
  123.  
  124. ******************************************************************
  125. *** Données Matériaux et modèle ***
  126. ******************************************************************
  127.  
  128. * arbre et disque en acier
  129. Ey1 = 2.E+11 ;
  130. Nu1 = 0.3 ;
  131. Rho1 = 7800. ;
  132. Visc1 = 0.00015*Ey1;
  133.  
  134. * modele et materiau
  135. modtot = MODE voltot 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  136. mattot = MATE modtot 'YOUN' Ey1 'NU' Nu1 'RHO' Rho1 'VISQ' Visc1;
  137.  
  138. *axe de rotation
  139. * vaxe deja defini
  140.  
  141.  
  142. ***************************************************
  143. *** Définition des matrices a l'aide de BRASERO ***
  144. ***************************************************
  145. *matrices
  146. RIG1 = RIGI modtot mattot;
  147. MAS1 = MASS modtot mattot;
  148. AMO1 = AMOR modtot mattot;
  149. KCE1 = KENT 'CENTRIFUGE' modtot mattot vaxe 'FLAM';
  150. * on met 'FLAM' pour avoir le type MASSE sachant que ri1 ET ri2 (via fusrig)
  151. * attribue le type RIGIDITE par defaut si ri1.mtymat different de ri2.mtymat
  152.  
  153. *CL
  154. CL1 = BLOQ (p1axe ET p5axe) 'UX' 'UY' 'UZ';
  155. *blocage de la rotation de corps rigide
  156. pbal2 = voltot POIN PROC (pbal MOINS (0. (2.*Re2) 0.));
  157. CL2 = rela 'UZ' pbal - 'UZ' pbal2;
  158.  
  159. *assemblage
  160. CLTOT = CL1 et CL2;
  161. RIGTOT = RIG1 et CLTOT;
  162.  
  163.  
  164. ***************************************************
  165. *** Déformée centrifuge
  166. ***************************************************
  167.  
  168. * force centrifuge
  169. XYZ = (CHAN COMP (COOR 1 voltot) 'UX') ET
  170. (CHAN COMP (COOR 2 voltot) 'UY') ET
  171. (CHAN COMP (COOR 3 voltot) 'UZ');
  172. FCE1 = (-1.) * KCE1 * XYZ;
  173. trac (vect FCE1 'FORC' 'ROUG') voltot;
  174.  
  175. *resolution
  176. uce1 = RESO RIGTOT FCE1;
  177. trac (defo uce1 voltot);
  178.  
  179. * precontrainte centrifuge
  180. sig1 = sigm uce1 modtot mattot;
  181. ksi1 = ksig sig1 modtot mattot 'FLAM';
  182.  
  183.  
  184. ****************************************************
  185. * Calcul des modes propres au repos
  186. ****************************************************
  187. si(COMPLET);
  188. nmod1 = 100 ;
  189. fproc1 = 50.;
  190. nmax1 = 50;
  191. * nmax1 = 50 permet d'avoir un petit trou a boucher...
  192. sino;
  193. nmod1 = 16 ;
  194. fproc1 = 50.;
  195. nmax1 = 4;
  196. fins;
  197. si(FLDIAG); mess (diag RIGTOT) (diag MAS1); fins;
  198.  
  199. opti impi iimpi;
  200. TMOD1 = VIBR 'SIMUL' fproc1 nmod1 RIGTOT MAS1 nmax1;
  201. * on utilise txt1=4 a la fin pour limiter le nombre de modes calculé / cycle a 4
  202. * et ainsi tester rapidement la stratégie de cycle de Lanczos utilisé par VIBR SIMUL
  203. opti impi 0;
  204.  
  205. opti echo 0;
  206. mess '----------- Calcul des modes propres -----------';
  207.  
  208. *... post traitement "a la main"
  209. mess 'mode frequence (Hz)';
  210. frq1p = prog;
  211. imod1 = 0;
  212. repe BMOD1 nmod1; imod1 = imod1 + 1;
  213. frq1 = TMOD1 . 'MODES' . imod1 . 'FREQUENCE';
  214. umod1 = TMOD1 . 'MODES' . imod1 . 'DEFORMEE_MODALE';
  215. mess (chai imod1 ' ' frq1);
  216. toto1 = chai 'mode propre ' imod1 ' Freq=' frq1 'hz' ;
  217. * trac (defo umod1 voltot) 'TITR' toto1 'CACH' ;
  218. frq1p = frq1p et frq1;
  219. fin BMOD1;
  220.  
  221. * -> on remplace par
  222. *... post traitement "via EXPLORER"
  223. EXPLORER TMOD1;
  224. opti echo 1;
  225.  
  226.  
  227. ****************************************************
  228. * Calcul des modes propres en rotation
  229. ****************************************************
  230. nmod2 = 4 ;
  231. fproc2 = 50.;
  232. * on se place apres la 1ere critique (>235Hz)
  233. * de maniere a avoir des freq propres negatives
  234. OMEG1 = 250.;
  235. OMEG2 = (2.*pi*OMEG1)**2;
  236. RIG2 = RIGTOT et (OMEG2 * (KCE1 et ksi1));
  237. si(FLDIAG); mess (diag RIG2) (diag MAS1); fins;
  238.  
  239. opti impi iimpi;
  240. TMOD2 = VIBR 'SIMUL' fproc2 nmod2 RIG2 MAS1 ;
  241. * on ajoute VRAI pour avoir les modes dont la valeur propre est negative
  242. opti impi 0;
  243.  
  244. opti echo 0;
  245. mess '----------- Calcul des modes propres en rotation -----------';
  246. mess 'mode frequence (Hz)';
  247. frq2p = prog;
  248. imod2 = 0;
  249. repe BMOD2 nmod2; imod2 = imod2 + 1;
  250. frq2 = TMOD2 . 'MODES' . imod2 . 'FREQUENCE';
  251. umod2 = TMOD2 . 'MODES' . imod2 . 'DEFORMEE_MODALE';
  252. mess (chai imod2 ' ' frq2);
  253. toto2 = chai 'mode propre en rotation ( a ' OMEG1 'Hz)' imod2
  254. ' Freq=' frq2 'hz' ;
  255. trac (defo umod2 voltot) 'TITR' toto2 'CACH' ;
  256. frq2p = frq2p et frq2;
  257. fin BMOD2;
  258. opti echo 1;
  259.  
  260. ****************************************************
  261. * Calcul des modes critiques
  262. ****************************************************
  263. nmod3 = 4 ;
  264. fproc3 = 50.;
  265. MAS3 = -1.*(KCE1 et ksi1);
  266. si(FLDIAG); mess (diag RIGTOT) (diag MAS3); fins;
  267. * Attention !!! KCE1 et ksi1 matrices de type 'MASSE' (pour VIBR) grace a 'FLAM'
  268.  
  269. opti impi iimpi;
  270. TMOD3 = VIBR 'SIMUL' fproc3 nmod3 RIGTOT MAS3 ;
  271. * on ajoute VRAI pour avoir les modes dont la valeur propre est negative
  272. opti impi 0;
  273.  
  274. opti echo 0;
  275. mess '----------- Calcul des modes critiques -----------';
  276. mess 'mode frequence (Hz)';
  277. frq3p = prog;
  278. imod3 = 0;
  279. repe BMOD3 nmod3; imod3 = imod3 + 1;
  280. frq3 = TMOD3 . 'MODES' . imod3 . 'FREQUENCE';
  281. umod3 = TMOD3 . 'MODES' . imod3 . 'DEFORMEE_MODALE';
  282. mess (chai imod3 ' ' frq3);
  283. toto3 = chai 'mode critique ' imod3 ' Freq=' frq3 'hz' ;
  284. trac (defo umod3 voltot) 'TITR' toto3 'CACH' ;
  285. frq3p = frq3p et frq3;
  286. fin BMOD3;
  287. opti echo 1;
  288.  
  289.  
  290. * opti donn 5 trac x;
  291.  
  292. ****************************************************
  293. * Diagramme de Campbell dans le repère tournant
  294. ****************************************************
  295. *
  296. * a faire + tard pour verifier CORI ...
  297.  
  298.  
  299.  
  300. ******************************************************************
  301. *
  302. * TNR
  303. *
  304. *****************************************************************
  305.  
  306. * valeur de ref calculées au 09/01/2012 en local (pclinux64)
  307. *
  308. xtol = 1.E-3 * 50.;
  309. frq1 = 218.46804975;
  310. frq2 = -81.9993;
  311. frq3 =235.55230677;
  312. frq3b =-292.46499848;
  313. error1 = non (exis frq1p frq1 xtol);
  314. error2 = non (exis frq2p frq2 xtol);
  315. error3 = non (exis frq3p frq3 xtol);
  316. error3b = non (exis frq3p frq3b xtol);
  317. error = error1 ou error2 ou error3 ou error3b;
  318. si(complet);
  319. fr1b = 34361.6036733;
  320. error1b = non (exis frq1p fr1b xtol);
  321. error = error ou error1b;
  322. fins;
  323. * Message
  324. *
  325. TEMP 'IMPR' ;
  326. SI (error) ;
  327. mess (chai error1 ' ' error2 ' ' error3 ' ' error3b);
  328. ERRE 5 ;
  329. SINON ;
  330. MESS 'Aucun probleme detecte !' ;
  331. FINSI ;
  332. *
  333. FIN ;
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  

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