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

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