Télécharger rotor7.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : rotor7.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***********************************************************************
  5. *
  6. * rotor7.dgibi
  7. *
  8. * Cas test basé sur rotor2.dgibi et rotor6.dgibi [Ex. Lalanne p.13]
  9. * Modélisation 3D : rotor dans le repère tournant
  10. * stator dans le repere fixe
  11. *
  12. * B. Prabel, novembre 2012 :
  13. * -teste le calcul de deformee centrifuge NL :
  14. * forces suiveuses + grands deplacements
  15. * -analyse de stabilité associée
  16. *
  17. ***********************************************************************
  18.  
  19.  
  20. ******************************************************
  21. *** ***
  22. *** PROCEDURES ***
  23. *** ***
  24. ******************************************************
  25.  
  26.  
  27. *=======================================================
  28. *
  29. * procedure : CHARMECA
  30. * chargement centrifuge de type forces suiveuses
  31. * appels : PASAPAS -> UNPAS -> CHARMECA
  32. * creation : BP 15/09/2011
  33. * nomenclature :
  34. * TATA = table PRECED de UNPAS = table PRECED de PASAPAS (entrée/sortie)
  35. * time = temps (entrée)
  36. * addi_second = F a ajouter au second membre
  37. * addi_matrice = dF/du (=dF/dx en grand depl) a ajouter a l'operateur K
  38. * du Newton de unpas
  39. *
  40. *=======================================================
  41. DEBPROC CHARMECA TATA*'TABLE' time*'FLOTTANT';
  42.  
  43. *=== RECUP =============================================
  44.  
  45. * du pas IT
  46. IT = TATA . 'WTABLE' . 'PAS';
  47. * de omega = vitesse de rotation (Hz)
  48. * = paramètre de chargement
  49. * = time
  50. omeg = (2. * pi) * time ;
  51. * mess '====== appel a CHARMECA ======= Omega =' time 'Hz pas' IT;
  52. omeg2 = omeg ** 2 ;
  53.  
  54. * du vecteur rotation (supposé de direction fixe)
  55. VROT = TATA . 'VEC_ROTATION';
  56.  
  57. * du modele, materiau et maillage associé au rotor
  58. MODROT = TATA . 'MODELE_ROTOR';
  59. MATROT = TATA . 'CARACTERISTIQUES_ROTOR';
  60. MESHROT = EXTR MODROT 'MAILLAGE';
  61.  
  62. *=== CALCUL DE KCENT1 ===================================
  63.  
  64. * bp (rem ianis) 13/10/2011 : rho n'est pas constant en grand deplacement
  65. * pour imposer conservation de la masse il faut ecrire qqchose comme :
  66. si (exis TATA 'JACOBIEN');
  67. DJAC0 = redu (TATA . 'JACOBIEN' . 0) MODROT;
  68. * RHO0 = exco MATROT 'RHO' 'RHO' ;
  69. RHO0 = CHAN (exco MATROT 'RHO' 'RHO') MODROT 'MASSE';
  70. DJAC1 = JACO MODROT;
  71. TATA . 'JACOBIEN' . IT = DJAC1;
  72. * DJAC01 = CHAN (DJAC0 / DJAC1) MODROT 'RIGIDITE';
  73. DJAC01 = CHAN (DJAC0 / DJAC1) MODROT 'MASSE';
  74. * RHO1 = RHO0 * DJAC01 ;
  75. * on change DJAC01 en type rigidite pour truander calpaq.eso ...
  76. RHO1 = RHO0 * (CHAN DJAC01 'TYPE' 'RIGIDITE');
  77. KCENT1 = KENT 'CENTRIFUGE' MODROT RHO1 VROT;
  78. sino;
  79. * ici on fait + simple
  80. KCENT1 = KENT 'CENTRIFUGE' MODROT MATROT VROT;
  81. fins;
  82.  
  83. *=== CALCUL DE FCENT ===================================
  84.  
  85. XYZ = (NOMC (COOR 1 MESHROT) 'UX' 'NATURE' 'DIFFUS') ET
  86. (NOMC (COOR 2 MESHROT) 'UY' 'NATURE' 'DIFFUS') ET
  87. (NOMC (COOR 3 MESHROT) 'UZ' 'NATURE' 'DIFFUS');
  88. * FCENT = (-1.*omeg2) * KCENT1 * (XYZ- XYZ0);
  89. FCENT = (-1.*omeg2) * KCENT1 * XYZ;
  90.  
  91. *=== RESULTATS ========================================
  92.  
  93. * on fournit les resultats dans la table TCENT
  94. TCENT = tabl;
  95. TCENT . 'ADDI_SECOND'= FCENT;
  96. * Fournit-on KCENT1 dans ADDI_MATRICE? (oui par défaut...)
  97. si (exis TATA 'ADDI_MATRICE' );
  98. FLMATR= TATA . 'ADDI_MATRICE';
  99. sino;
  100. FLMATR= VRAI;
  101. fins;
  102. si (FLMATR);
  103. TCENT . 'ADDI_MATRICE'= (omeg2 * KCENT1);
  104. fins;
  105.  
  106. *=== MENAGE ===========================================
  107.  
  108. * on detruit ce qui ne sert a rien
  109. si (non FLMATR);
  110. DETR KCENT1 'ELEMENTAIRE';
  111. finsi;
  112. DETR XYZ;
  113.  
  114. FINPROC TCENT;
  115. *=======================================================
  116.  
  117.  
  118.  
  119. *=======================================================
  120. *
  121. * procedure : PERSO1
  122. * procedure d'analyses (calcul des modes reels, complexes ...)
  123. * autour de la position d equilibre NL centrifuge definie par Omega
  124. * appels : BRASERO -> BRASERO2 -> BRASENL -> pasapas -> PERSO1
  125. * creation : BP 15/09/2011
  126. *
  127. *=======================================================
  128. DEBPROC PERSO1 TATA*'TABLE';
  129.  
  130.  
  131. *=== RECUP DE WTAB , CONV, ICHG =======================
  132.  
  133. WTAB = TATA . 'WTABLE';
  134.  
  135. * On commence par créer un indice PAS_CHARGEMENT dans WTABLE
  136. * (initialement à 0)
  137. SI (non (exis WTAB 'PAS_CHARGEMENT'));
  138. WTAB . 'PAS_CHARGEMENT' = WTAB . 'PAS';
  139. ICHG = WTAB . 'PAS_CHARGEMENT';
  140. mess 'on crée WTAB . PAS_CHARGEMENT '
  141. 'initialisé depuis WTAB . PAS =' ICHG;
  142. FINSI;
  143.  
  144. * On ne travaille que sur les pas ayant convergés
  145. SI (WTAB.'CONV');
  146. WTAB . 'PAS_CHARGEMENT' = (WTAB . 'PAS_CHARGEMENT') + 1;
  147. ICHG = WTAB . 'PAS_CHARGEMENT';
  148. mess '== appel a PERSO1 : CONV '
  149. '-> on incremente WTAB . PAS_CHARGEMENT =' ICHG;
  150. *=> ICHG = 1 , 2 , ... NOMEG
  151. SINON;
  152. * * on redémarre l'algo depuis l etat 0
  153. * si (mult WTAB . 'ISOUSPAS' 4);
  154. * mess 'on redemarre l algo depuis l etat 0' ;
  155. * WTAB . 'FOR' = WTAB . 'FOR0';
  156. * * WTAB . 'TEMPS0' = TATA . 'ESTIMATION' . 'TEMPS';
  157. * WTAB . 'TEMPS0' = 0.;
  158. * TATA . 'ESTIMATION' . 'DEPLACEMENTS'
  159. * = 0. * TATA . 'ESTIMATION' . 'DEPLACEMENTS';
  160. * TATA . 'ESTIMATION' . 'CONTRAINTES'
  161. * = 0. * TATA . 'ESTIMATION' . 'CONTRAINTES';
  162. * TATA . 'ESTIMATION' . 'REACTIONS'
  163. * = 0. * TATA . 'ESTIMATION' . 'REACTIONS';
  164. * TATA . 'ESTIMATION' . 'DEFORMATIONS'
  165. * = 0. * TATA . 'ESTIMATION' . 'DEFORMATIONS';
  166. *
  167. * fins;
  168. ICHG = WTAB . 'PAS_CHARGEMENT';
  169. mess '== appel a PERSO1 : NC AU PAS_CHARGEMENT=' ICHG
  170. ' -> on quitte ';
  171. QUIT PERSO1;
  172. FINS;
  173.  
  174.  
  175. *=== RECUP =============================================
  176.  
  177. * pas de temps
  178. time = TATA . 'ESTIMATION' . 'TEMPS';
  179. * ipas = WTAB . 'PAS';
  180. *bp: ce n est pas IPAS qu il faut mais ICHG (défini dans pasapas)
  181. * pour le cas ou on a un pas nonconvergé
  182. si (neg time (extr TATA . 'TEMPS_CALCULES' ICHG));
  183. mess 'pb pour definir le PAS_CHARGEMENT utilisé';
  184. erre 21;
  185. fins;
  186. u1 = TATA . 'ESTIMATION' . 'DEPLACEMENTS';
  187. sig1 = TATA . 'ESTIMATION' . 'CONTRAINTES';
  188.  
  189. * on recupère omega = vitesse de rotation (Hz)
  190. * = paramètre de chargement = time dans notre cas
  191. omeg = (2. * pi) * time ;
  192. omeg2 = omeg ** 2 ;
  193.  
  194. * du vecteur rotation (supposé de direction fixe)
  195. VROT = TATA . 'VEC_ROTATION';
  196.  
  197. * du modele, materiau et maillage associé au rotor
  198. MODROT = TATA . 'MODELE_ROTOR';
  199. MATROT = TATA . 'CARACTERISTIQUES_ROTOR';
  200. MESHROT = EXTR MODROT 'MAILLAGE';
  201. * du modele, materiau et maillage associé au rotor + stator
  202. MODTOT = TATA . 'MODELE';
  203. MATTOT = TATA . 'CARACTERISTIQUES';
  204. MESHTOT = EXTR MODTOT 'MAILLAGE';
  205.  
  206.  
  207. *=== ANALYSES ELEMENTAIRES ==============================
  208. mess ' ANALYSES PAS DE CHARGE=' ICHG ' - Omega=' time 'Hz';
  209. * couleur des courbes
  210. mycoul1 = MOTS VIOL BLEU TURQ VERT ORAN ROUG AZUR
  211. VIOL BLEU TURQ VERT ORAN ROUG AZUR;
  212.  
  213. * on se place sur la configuration deformee
  214. GEOM0 = FORM;
  215. GEOM2 = 'FORM' u1;
  216. * FORM GEOM2;
  217. FLRECA = faux;
  218.  
  219. SI (EXIS TATA 'ANALYSES');
  220.  
  221. TABANA = TATA . 'ANALYSES';
  222.  
  223. *---ANALYSE de DEFO_CENTRIFUGE ---------------------------
  224. si (exis TABANA 'DEFO_CENTRIFUGE');
  225. MESS ' ANALYSE DEFO_CENTRIFUGE';
  226. * -on trace ?
  227. si (exis TABANA . 'DEFO_CENTRIFUGE' 'SAUVDEFO');
  228. si (exis TABANA . 'DEFO_CENTRIFUGE' . 'SAUVDEFO' time);
  229. trac (VMIS sig1 modtot mattot) modtot
  230. 'TITR' (chai 'DEFO CENTRIFUGE - pas' ICHG
  231. ' \W=' time 'Hz - \s_{VM}');
  232. fins;
  233. fins;
  234. * -points de mesure ?
  235. si(exis TABANA . 'DEFO_CENTRIFUGE' 'RESULTATS');
  236. TRES1 = TABANA . 'DEFO_CENTRIFUGE' . 'RESULTATS';
  237. si (exis TRES1 'TEMPS_RESULTATS');
  238. TRES1 . 'TEMPS_RESULTATS'
  239. = TRES1 . 'TEMPS_RESULTATS' et time;
  240. sino;
  241. TRES1 . 'TEMPS_RESULTATS' = prog time;
  242. fins;
  243. NMES1 = dime TRES1;
  244. iMES1 = 0;
  245. repe BMES1 NMES1;
  246. iMES1 = iMES1 + 1;
  247. si (non (exis TRES1 iMES1)); iter BMES1; fins;
  248. xval1 = EXTR u1 TRES1 . iMES1 . 'P_MESURE'
  249. TRES1 . iMES1 . 'DIRECTION';
  250. si (exis TRES1 . iMES1 'RESULTATS');
  251. TRES1 . iMES1 . 'RESULTATS'
  252. = TRES1 . iMES1 . 'RESULTATS' et xval1;
  253. sino;
  254. TRES1 . iMES1 . 'RESULTATS' = prog xval1;
  255. fins;
  256. fin BMES1;
  257. *.......eventuellement tracé des mesures.........................
  258. si (exis TABANA 'TEMPS_AFFICHAGE_RESULTATS');
  259. si (exis TABANA . 'TEMPS_AFFICHAGE_RESULTATS' time );
  260. ev1ux = VIDE 'EVOLUTIO';
  261. ev1uy = VIDE 'EVOLUTIO';
  262. ev1uz = VIDE 'EVOLUTIO';
  263. Tdess1x = tabl; Tdess1x . 'TITRE' = tabl; iMES1x=0;
  264. Tdess1y = tabl; Tdess1y . 'TITRE' = tabl; iMES1y=0;
  265. Tdess1z = tabl; Tdess1z . 'TITRE' = tabl; iMES1z=0;
  266. iMES1 = 0;
  267. repe BMES1 NMES1;
  268. iMES1 = iMES1 + 1;
  269. si (non (exis TRES1 iMES1)); iter BMES1; fins;
  270. TRES1 . iMES1 . 'RESULTATS_EVOL'
  271. = EVOL (extr mycoul1 iMES1) 'MANU'
  272. '\W (Hz)' (TRES1 . 'TEMPS_RESULTATS')
  273. 'u (m)' (TRES1 . iMES1 . 'RESULTATS') ;
  274. si (ega TRES1 . iMES1 . 'DIRECTION' 'UX');
  275. ev1ux = ev1ux et TRES1 . iMES1 . 'RESULTATS_EVOL';
  276. iMES1x = iMES1x + 1;
  277. Tdess1x . 'TITRE' . iMES1x = TRES1 . iMES1 . 'TITRE';
  278. fins;
  279. si (ega TRES1 . iMES1 . 'DIRECTION' 'UY');
  280. ev1uy = ev1uy et TRES1 . iMES1 . 'RESULTATS_EVOL';
  281. iMES1y = iMES1y + 1;
  282. Tdess1y . 'TITRE' . iMES1y = TRES1 . iMES1 . 'TITRE';
  283. fins;
  284. si (ega TRES1 . iMES1 . 'DIRECTION' 'UZ');
  285. ev1uz = ev1uz et TRES1 . iMES1 . 'RESULTATS_EVOL';
  286. iMES1z = iMES1z + 1;
  287. Tdess1z . 'TITRE' . iMES1z = TRES1 . iMES1 . 'TITRE';
  288. fins;
  289. fin BMES1;
  290. mytit1 = chai 'déformée centrifuge au pas ' ICHG ;
  291. dess ev1ux
  292. 'GRIL' 'POINT' 'GRIS' 'TITR' mytit1
  293. 'POSX' 'CENT' 'POSY' 'CENT' 'LEGE' 'NO' Tdess1x;
  294. dess ev1uy
  295. 'GRIL' 'POINT' 'GRIS' 'TITR' mytit1
  296. 'POSX' 'CENT' 'POSY' 'CENT' 'LEGE' 'NO' Tdess1y;
  297. dess ev1uz
  298. 'GRIL' 'POINT' 'GRIS' 'TITR' mytit1
  299. 'POSX' 'CENT' 'POSY' 'CENT' 'LEGE' 'NO' Tdess1z;
  300. fins;
  301. fins;
  302. fins;
  303. fins;
  304.  
  305. *---ANALYSE de MODES_COMPLEXES ---------------------------
  306. si (exis TABANA 'MODES_COMPLEXES');
  307. MESS ' ANALYSE MODES_COMPLEXES';
  308. * -calcul des matrices elementaires
  309. FLRECA = vrai;
  310. * Cas 3D Rotor + stator
  311. * recup des matrices elementaires existantes
  312. si (exis TATA 'RIGIDITE_CONSTANTE');
  313. KCSTTOT = TATA . 'RIGIDITE_CONSTANTE' ;
  314. fins;
  315. liatot = TATA . 'BLOCAGES_MECANIQUES' ;
  316. * calcul des matrices elementaires
  317. RIGTOT = RIGI modtot mattot;
  318. Ksigm1 = KSIG MODROT MATROT sig1;
  319. Kcent1 = KENT 'CENTRIFUGE' MODROT MATROT VROT;
  320. Kcent1 = omeg2 * Kcent1;
  321. MASTOT = MASS modtot mattot ;
  322. Gcori1 = CORI MODROT MATROT VROT;
  323. Gcori1 = omeg * Gcori1;
  324. * assemblage + imped pour mode reel (VIBR) et complexe (VIBC)
  325. RIGVIBR = IMPE
  326. (RIGTOT et KCSTTOT et liatot et Ksigm1 et Kcent1) 'RAIDEUR';
  327. MASVIBR = -1.*(IMPE (MASTOT) 'MASSE');
  328. AMOVIBR = IMPE (Gcori1) 'AMORTISSEMENT';
  329.  
  330. * -calcul des MODES_REELS
  331. MESS ' -MODES_REELS';
  332. * -calcul du MODES_COMPLEXES
  333. MESS ' -MODES_COMPLEXES';
  334.  
  335. fins;
  336.  
  337. *---Analyse BALOURD --------------------------------------
  338.  
  339. *---Analyse TOURNANT --------------------------------------
  340.  
  341. FINSI;
  342.  
  343.  
  344. *=== MENAGE DES MATRICES ELEMENTAIRES inutiles ===========
  345. SI (FLRECA);
  346. DETR RIGTOT; DETR Ksigm1; DETR Kcent1;
  347. DETR MASTOT; DETR Gcori1;
  348. DETR RIGVIBR 'ELEMENTAIRE';
  349. DETR MASVIBR 'ELEMENTAIRE';
  350. DETR AMOVIBR 'ELEMENTAIRE';
  351. FINS;
  352.  
  353.  
  354. *=== CONFIGURATION DE REFERENCE = DEFORMEE ==============
  355. * on revient a la configuration initiale pour pasapas
  356. FORM GEOM0;
  357.  
  358.  
  359. *=== ON FORME LA RIGIDITE_CONSTANTE DU PAS SUIVANT ==============
  360.  
  361. SI ((ICHG + 1) <eg (dime TATA . 'TEMPS_CALCULES'));
  362. txtcst = chai ' CREATION RIGIDITE_CONSTANTE (=';
  363. * Prochaine vitesse de rotation
  364. time2 = extr TATA . 'TEMPS_CALCULES' (ICHG + 1);
  365. omeg = (2. * pi) * time2 ;
  366. omeg2 = omeg ** 2 ;
  367. * Recup des matrices elementaires
  368. * + Formation de la matrice constante (pour OMEGA>0)
  369. * tq : K^dyn(OMEGA) = HKCST2 + OMEGA*HCCST2 + OMEGA**2 * HMCST2
  370. KCSTTOT = mot 'NONDEFINI';
  371. si (exis TATA 'RAIDEUR_CONSTANTE');
  372. HKCST2 = TATA . 'RAIDEUR_CONSTANTE'; KCSTTOT = HKCST2;
  373. txtcst = chai txtcst 'K^cst';
  374. fins;
  375. si (exis TATA 'AMORTISSEMENT_CONSTANT');
  376. HCCST2 = TATA . 'AMORTISSEMENT_CONSTANT';
  377. si (ega KCSTTOT'NONDEFINI'); KCSTTOT = omeg * HCCST2;
  378. sino; KCSTTOT = KCSTTOT et (omeg * HCCST2);
  379. fins;
  380. txtcst = chai txtcst '+ W*C^cst';
  381. fins;
  382. si (exis TATA 'MASSE_CONSTANTE');
  383. HMCST2 = TATA . 'MASSE_CONSTANTE';
  384. si (ega KCSTTOT'NONDEFINI'); KCSTTOT = omeg2 * HMCST2;
  385. sino; KCSTTOT = KCSTTOT et (omeg2 * HMCST2);
  386. fins;
  387. txtcst = chai txtcst '+*M^cst';
  388. fins;
  389. * Matrice constante fournie a PASAPAS
  390. si(neg KCSTTOT 'NONDEFINI');
  391. TATA . 'RIGIDITE_CONSTANTE' = KCSTTOT;
  392. TATA . 'WTABLE' . 'RIGIDITE_CONSTANTE' = KCSTTOT;
  393. fins;
  394. txtcst = chai txtcst ') POUR Omega= ' time2 'Hz'
  395. MESS txtcst;
  396.  
  397. FINSI;
  398.  
  399.  
  400.  
  401. FINPROC;
  402. *=======================================================
  403.  
  404.  
  405.  
  406. ******************************************************
  407. *** ***
  408. *** OPTIONS ***
  409. *** ***
  410. ******************************************************
  411.  
  412. COMPLET = FAUX;
  413. * COMPLET = VRAI;
  414.  
  415. opti dime 3 elem cub8 ;
  416. *opti debug 1;
  417.  
  418. *** inclinaison du disque (dx =0.1m) ***
  419. dxdisq = 0.;
  420. dxdisq = 0.1E-3;
  421. dxdisqE = enti (10000. * dxdisq);
  422. si (COMPLET); prefix = chai 'rotor7_COMPLET';
  423. sinon; prefix = chai 'rotor7';
  424. fins;
  425.  
  426. *** tracés **
  427. GRAPH = VRAI ;
  428. * GRAPH = FAUX ;
  429. OPTI 'TRAC' 'PSC' ;
  430. fic2tra = chai prefix '.ps';
  431. OPTI 'FTRA' fic2tra;
  432. OPTI 'EPTR' 5 'POTR' 'HELVETICA_16';
  433. eye1 = 5. -10. 3. ;
  434. * eye1 = 50. 100. 30.;
  435.  
  436. *** sauvegarde ***
  437. fic2xdr = chai prefix '.xdr';
  438.  
  439.  
  440.  
  441. ***************************************************
  442. *** ***
  443. *** MAILLAGE ***
  444. *** ***
  445. ***************************************************
  446.  
  447. *** géométrie ***
  448. Ltot = 0.40 ;
  449. L1 = Ltot/3.;
  450. L2 = 2.*Ltot/3.;
  451. Re1 = 0.01 ;
  452. Ri2 = 0.01 ;
  453. Re2 = 0.15 ;
  454. * hvol = 0.03;
  455. hvol = 0.005;
  456.  
  457.  
  458. *** arbre + volant ***
  459.  
  460. * Sections circulaires de l'arbre et du volant d'inertie
  461. p0 = 0. 0. 0.;
  462. vaxe = 1. 0. 0.;
  463. p1 = 0. Re1 0. ;
  464. p1e = 0. Re2 0. ;
  465. p2 = 0. 0. Re1 ;
  466. p3 = 0. ((-1.)*Re1) 0. ;
  467. p4 = 0. 0. ((-1.)*Re1) ;
  468.  
  469. *finesse du maillage
  470. n1 = 3; n2 = 5;
  471. naxe1 = 10; naxe2 = 2; naxe3 = 10; naxe4 = 10;
  472.  
  473. p1axe = p0;
  474. p2axe = p0 plus ((L1 - (0.5*hvol))*vaxe);
  475. p3axe = p0 plus ((L1 + (0.5*hvol))*vaxe);
  476. p4axe = p0 plus ((L2)*vaxe);
  477. p5axe = p0 plus ((Ltot)*vaxe);
  478. pbal = p1e plus ((L1 - (0.5*hvol))*vaxe);
  479.  
  480. * Section circulaire de l'arbre
  481. p1p = p0 PLUS (0.2*(p1 MOIN p0)) ;
  482. p2p = p0 PLUS (0.2*(p2 MOIN p0)) ;
  483. p3p = p0 PLUS (0.2*(p3 MOIN p0)) ;
  484. p4p = p0 PLUS (0.2*(p4 MOIN p0)) ;
  485. cer1 = (cer3 (2*n1) p1 p2 p3) ;
  486. cer1p = (cer3 (2*n1) p1p p2p p3p) ;
  487. cer2 = (cer3 (2*n1) p3 p4 p1) ;
  488. cer2p = (cer3 (2*n1) p3p p4p p1p) ;
  489. secarbre = (REGL cer1 cer1p) et (COUT cer1p p0)
  490. et (REGL cer2 cer2p) et (COUT cer2p p0) ;
  491. elim secarbre (1.E-4*Re1) ;
  492.  
  493. * Section circulaire du volant d'inertie
  494. secvolan = (rota 360. (4*n1) (d n2 p1 p1e) p0 vaxe) et secarbre;
  495. ELIM secvolan (1.E-4*Re1) ;
  496. *
  497. *volume obtenu par translation
  498. vol1 = secarbre volu naxe1 tran ((L1 - (0.5*hvol))*vaxe);
  499. vol2 = (secvolan plus ((L1 - (0.5*hvol))*vaxe))
  500. volu naxe2 tran (hvol*vaxe);
  501. vol3 = (secarbre plus ((L1 + (0.5*hvol))*vaxe))
  502. volu naxe3 tran ((L2 - (L1 + (0.5*hvol)))*vaxe);
  503. vol4 = (secarbre plus (L2*vaxe))
  504. volu naxe4 tran ((Ltot - L2)*vaxe);
  505. voltot = vol1 et vol2 et vol3 et vol4;
  506. elim 0.0001 (voltot et p1axe et p2axe et
  507. p3axe et p4axe et p5axe et pbal);
  508. *
  509. *on recupere les aretes necessaires pour les liaisons avec le stator
  510. ligrot1 = ARET secarbre ;
  511. facrot2 = FACE vol4 2 ; ligrot2 = ARET facrot2 ;
  512. facrot3 = FACE vol4 1 ; ligrot3 = ARET facrot3 ;
  513. facrot4 = face vol2 1 ; ligrot4 = aret facrot4 ;
  514.  
  515. * tracé
  516. si (GRAPH);
  517. trac eye1 ( (coul ligrot1 rose) et (coul ligrot2 roug)
  518. et (coul ligrot3 TURQ) et voltot) 'CACH'
  519. 'TITR' 'Maillage du rotor';
  520. rp1 = @REPERE (prog 0.5 0.2 0.2) 'ORAN';
  521. trac eye1 (voltot et rp1) CACH;
  522. fins;
  523.  
  524.  
  525. ***********************************************************
  526. *** ***
  527. *** CREATION D UN DEFAUT DE GEOMETRIE
  528. *** ***
  529. ***********************************************************
  530.  
  531. * creation du chpoint de defaut
  532. y2 = coor vol2 2;
  533. y2max = ABS (maxi y2 'ABS');
  534. u666 = (nomc y2 'UX') * (dxdisq / y2max);
  535. si (GRAPH);
  536. trac eye1 (vect u666 'DEPL') (u666 exco 'UX') (voltot)
  537. TITR 'champ de défaut';
  538. fins;
  539. depl vol2 'PLUS' u666 ;
  540.  
  541.  
  542.  
  543. ***************************************************
  544. *** ***
  545. *** MODELES, MATERIAUX et MATRICES ***
  546. *** ***
  547. ***************************************************
  548.  
  549. ***************************************************
  550. *** Données Matériaux et Supports
  551.  
  552. * arbre et disque en acier
  553. Ey1 = 2.E+11 ;
  554. Nu1 = 0.3 ;
  555. Rho1 = 7800. ;
  556.  
  557. * Raideur et amortissement des supports
  558. bet= 0.0002;
  559. Ky = 50000. ; Kz = 50000.;
  560. Cy = Ky*bet ; Cz = Kz*bet;
  561.  
  562.  
  563. ***************************************************
  564. *** Rotor 3D ***
  565. mod1 = MODE voltot 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  566. mat1 = MATE mod1 'YOUN' Ey1 'NU' Nu1 'RHO' Rho1;
  567. *=> ses matrices seront calculées par PASAPAS
  568.  
  569.  
  570. ***************************************************
  571. *** Stator ***
  572. * on pose le deplacement du stator u^{sta} = (e_X e_Y e_Z) *
  573. * x: 0
  574. * y: UY cos (OMEGA t) - IUY sin (OMEGA t)
  575. * z: UZ cos (OMEGA t) - IUZ sin (OMEGA t)
  576.  
  577. * Palier 1 : point ps10
  578. ps10 = bary ligrot1 ;
  579. * Palier 2 : point ps20
  580. ps20 = bary ligrot2 ;
  581. * on rassemble (possible?)
  582. MESHpal = (MANU 'POI1' ps10) et ps20 ;
  583. NBN1 = nbno MESHpal;
  584.  
  585. *=> on crée les ressorts avec MANU + IMPE
  586. PKAPUI3D = (1./NBN1) * (PROG KY 0. 0. KZ );
  587. LDIRAP = MOTS UY UZ;
  588. RIGAPP = MANU 'RIGI' MESHpal LDIRAP PKAPUI3D;
  589. K_HARM = IMPE RIGAPP 'RAIDEUR' ;
  590. *=> on crée les amortisseurs avec MANU + IMPE
  591. PCAPUI3D = (1./NBN1) * (PROG CY 0. 0. CZ);
  592. DAMA3D = MANU 'RIGI' MESHpal LDIRAP PCAPUI3D;
  593. C_HARM = IMPE DAMA3D 1. 'AMOR' ;
  594. C_CONV = IMPE DAMA3D 'RAIDEUR';
  595.  
  596. * On aura a ajouter dans PASAPAS la raideur "constante" la matrice :
  597. * K_HARM + OMEGA * C_HARM
  598.  
  599.  
  600. ***************************************************
  601. *** Liaison Palier 1 ***
  602. *on crée un point fictif pr10r pour y condenser les deplacements moyens...
  603. *...du rotor
  604. ligrot11 = chan ligrot1 'POI1';
  605. pr10r = bary ligrot11 ;
  606. nrot1 = nbno ligrot11 ;
  607. chprot1x = (MANU 'CHPO' ligrot11 1 'UX' (1./(nrot1)) NATURE DIFFUS)
  608. ET (MANU 'CHPO' pr10r 1 'UX' -1. NATURE DIFFUS);
  609. chprot1y = (MANU 'CHPO' ligrot11 1 'UY' (1./(nrot1)) NATURE DIFFUS)
  610. ET (MANU 'CHPO' pr10r 1 'UY' -1. NATURE DIFFUS);
  611. chprot1z = (MANU 'CHPO' ligrot11 1 'UZ' (1./(nrot1)) NATURE DIFFUS)
  612. ET (MANU 'CHPO' pr10r 1 'UZ' -1. NATURE DIFFUS);
  613. * liarot1 = (RELA chprot1y) et (RELA chprot1z);
  614. liarot1 = (RELA chprot1x) et (RELA chprot1y) et (RELA chprot1z);
  615. * on fait le changement de repere stator / rotor
  616. liasr1 = (rela 'UY' ps10 - 'UY' pr10r)
  617. et (rela 'IUY' ps10 - 'UZ' pr10r)
  618. et (rela 'UZ' ps10 - 'UZ' pr10r)
  619. et (rela 'IUZ' ps10 + 'UY' pr10r) ;
  620. *blocage moteur (RX_M)
  621. xc1 yc1 zc1 = COOR ligrot11 ;
  622. xc0 yc0 zc0 = COOR pr10r ;
  623. xc1 = xc1 - (MANU 'CHPO' ligrot11 1 'SCAL' xc0 'NATURE' 'DIFFUS');
  624. yc1 = yc1 - (MANU 'CHPO' ligrot11 1 'SCAL' yc0 'NATURE' 'DIFFUS');
  625. zc1 = zc1 - (MANU 'CHPO' ligrot11 1 'SCAL' zc0 'NATURE' 'DIFFUS');
  626. REF0 = (xc1**2) + (yc1**2) + (zc1**2);
  627. REF1 = ( 1. /nrot1)*(CHAN COMP (yc1) 'UZ');
  628. REF2 = ((-1.)/nrot1)*(CHAN COMP (zc1) 'UY');
  629. RRX = CHAN 'ATTRIBUT' ((REF1 ET REF2)/REF0) NATURE diffus;
  630. liaRX1 = RELA (RRX ET (MANU CHPO pr10r 1 'RX' -1. NATURE diffus));
  631. bloRX1 = BLOQ pr10r 'RX';
  632.  
  633.  
  634. ***************************************************
  635. *** Liaison Palier 2 ***
  636. *on crée un point fictif pr20r pour y condenser les deplacements moyens...
  637. *...du rotor
  638. ligrot21 = chan ligrot2 'POI1';
  639. pr20r = bary ligrot21 ;
  640. nrot2 = nbno ligrot21 ;
  641. chprot2y = (MANU 'CHPO' ligrot21 1 'UY' (1./(nrot2)) NATURE DIFFUS)
  642. ET (MANU 'CHPO' pr20r 1 'UY' -1. NATURE DIFFUS);
  643. chprot2z = (MANU 'CHPO' ligrot21 1 'UZ' (1./(nrot2)) NATURE DIFFUS)
  644. ET (MANU 'CHPO' pr20r 1 'UZ' -1. NATURE DIFFUS);
  645. liarot2 = (RELA chprot2y) et (RELA chprot2z);
  646. * on fait le changement de repere stator / rotor
  647. liasr2 = (rela 'UY' ps20 - 'UY' pr20r)
  648. et (rela 'IUY' ps20 - 'UZ' pr20r)
  649. et (rela 'UZ' ps20 - 'UZ' pr20r)
  650. et (rela 'IUZ' ps20 + 'UY' pr20r) ;
  651. *blocage moteur (RX_M)
  652. xc1 yc1 zc1 = COOR ligrot21 ;
  653. xc0 yc0 zc0 = COOR pr20r ;
  654. xc1 = xc1 - (MANU 'CHPO' ligrot21 1 'SCAL' xc0 'NATURE' 'DIFFUS');
  655. yc1 = yc1 - (MANU 'CHPO' ligrot21 1 'SCAL' yc0 'NATURE' 'DIFFUS');
  656. zc1 = zc1 - (MANU 'CHPO' ligrot21 1 'SCAL' zc0 'NATURE' 'DIFFUS');
  657. REF0 = (xc1**2) + (yc1**2) + (zc1**2);
  658. REF1 = ( 1. /nrot1)*(CHAN COMP (yc1) 'UZ');
  659. REF2 = ((-1.)/nrot1)*(CHAN COMP (zc1) 'UY');
  660. RRX = CHAN 'ATTRIBUT' ((REF1 ET REF2)/REF0) NATURE diffus;
  661. liaRX2 = RELA (RRX ET (MANU CHPO pr20r 1 'RX' -1. NATURE diffus));
  662. bloRX2 = BLOQ pr20r 'RX';
  663.  
  664. ***************************************************
  665. *** Blocage axial et moteur? ***
  666. blo1x = bloq pr10r 'UX';
  667.  
  668. ***************************************************
  669. *** assemblage des CL et liaisons
  670. liatot = liarot1 et liasr1
  671. et liarot2 et liasr2 et blo1x
  672. et liaRX1 et bloRX1
  673. et liaRX2 et bloRX2;
  674.  
  675. ***********************************************************
  676. *** ***
  677. *** PT DE MESURE ***
  678. *** ***
  679. ***********************************************************
  680. TMES = tabl;
  681. TMES . 1 = TABL;
  682. TMES . 1 . 'P_MESURE' = p1axe ;
  683. TMES . 1 . 'DIRECTION' = mot 'UY';
  684. TMES . 1 . 'TITRE' = mot 'UY (x=0)';
  685. TMES . 2 = TABL;
  686. TMES . 2 . 'P_MESURE' = p1axe ;
  687. TMES . 2 . 'DIRECTION' = mot 'UZ';
  688. TMES . 2 . 'TITRE' = mot 'UZ (x=0)';
  689. TMES . 3 = TABL;
  690. TMES . 3 . 'P_MESURE' = p5axe ;
  691. TMES . 3 . 'DIRECTION' = mot 'UY';
  692. TMES . 3 . 'TITRE' = mot 'UY (x=L)';
  693. TMES . 4 = TABL;
  694. TMES . 4 . 'P_MESURE' = p5axe ;
  695. TMES . 4 . 'DIRECTION' = mot 'UZ';
  696. TMES . 4 . 'TITRE' = mot 'UZ (x=L)';
  697. TMES . 5 = TABL;
  698. TMES . 5 . 'P_MESURE' = pbal ;
  699. TMES . 5 . 'DIRECTION' = mot 'UY';
  700. TMES . 5 . 'TITRE' = mot 'UY (x=L/3)';
  701. TMES . 6 = TABL;
  702. TMES . 6 . 'P_MESURE' = pbal ;
  703. TMES . 6 . 'DIRECTION' = mot 'UZ';
  704. TMES . 6 . 'TITRE' = mot 'UZ (x=L/3)';
  705. TMES . 7 = TABL;
  706. TMES . 7 . 'P_MESURE' = pbal ;
  707. TMES . 7 . 'DIRECTION' = mot 'UX';
  708. TMES . 7 . 'TITRE' = mot 'UX (x=L/3)';
  709. nmes = dime TMES;
  710.  
  711. * tracé
  712. imes = 0;
  713. repe BMES (nmes/2); imes = imes + 2;
  714. si(ega &BMES 1); ptsmes = TMES . imes . 'P_MESURE';
  715. sino; ptsmes = ptsmes et TMES . imes . 'P_MESURE';
  716. fins;
  717. fin BMES;
  718. ptsmes = ptsmes COUL 'ROUG';
  719. si (GRAPH);
  720. trac (voltot et ptsmes)
  721. 'TITR' 'Points de mesure';
  722. fins;
  723.  
  724.  
  725.  
  726.  
  727. ***********************************************************
  728. *** ***
  729. *** ANALYSES NL ***
  730. *** ***
  731. ***********************************************************
  732.  
  733. ***************************************************
  734. * chargement = vitesse de rotation
  735. si (COMPLET);
  736. promeg = prog 0. 1. PAS 1. 30. PAS 5. 170. PAS 10. 1200.;
  737. prodefo = prog 0. 25 26 130 145 700 720 1200.;
  738. proresu = prog 0. 1. 5. 10. 13. 14. 15. 17. 20. PAS 20. 200.
  739. PAS 200. 1200.;
  740. sino;
  741. * promeg = prog 0. 1. PAS 1. 30. PAS 5. 170. PAS 10. 200.;
  742. * promeg = prog 0. PAS 2. 30. PAS 10. 160. PAS 20. 200.;
  743. promeg = prog 0. PAS 2. 24. 25. 26. PAS 2. 30. PAS 10. 110.
  744. 115. PAS 2.5 145. 150.
  745. 160. PAS 20. 200.;
  746. prodefo = prog 0. 24 26 130 145 200 ;
  747. proresu = prog 0. PAS 10. 30. 50. PAS 50. 200.;
  748. fins;
  749.  
  750.  
  751. ***************************************************
  752. * REMPLISSAGE DE LA TABLE PASAPAS
  753.  
  754. TAB2 = tabl 'PASAPAS';
  755.  
  756. TAB2 . 'MODELE' = MOD1;
  757. TAB2 . 'CARACTERISTIQUES' = MAT1;
  758.  
  759. * definition du rotor :
  760. TAB2 . 'MODELE_ROTOR' = MOD1;
  761. TAB2 . 'CARACTERISTIQUES_ROTOR' = MAT1;
  762. TAB2 . 'VEC_ROTATION' = vaxe;
  763. TAB2 . 'JACOBIEN' = tabl ;
  764. TAB2 . 'JACOBIEN' . 0 = jaco MOD1 ;
  765.  
  766. * blocage, liaison et autres matrices
  767. TAB2 . 'BLOCAGES_MECANIQUES'= liatot;
  768. * on initialise RIGIDITE_CONSTANTE pour OMEGA=0,
  769. * puis sera actualisée par PERSO1
  770. TAB2 . 'RIGIDITE_CONSTANTE' = K_HARM;
  771. TAB2 . 'RAIDEUR_CONSTANTE' = K_HARM;
  772. TAB2 . 'AMORTISSEMENT_CONSTANT' = C_HARM;
  773. * TAB2 . 'MASSE_CONSTANTE' = M_HARM;
  774.  
  775. * liste des Omegas (en Hz)
  776. TAB2 . 'TEMPS_CALCULES' = PROMEG;
  777.  
  778. * Fcentrifuges suiveuses + grands deplacements
  779. TAB2 . 'GRANDS_DEPLACEMENTS'= VRAI;
  780. TAB2 . 'PROCEDURE_CHARMECA' = VRAI;
  781. TAB2 . 'K_SIGMA' = VRAI;
  782. * TAB2 . 'K_CENT' = VRAI;
  783.  
  784. * appel a perso1 + demande d'autres analyses
  785. TAB2 . 'PROCEDURE_PERSO1' = VRAI;
  786. TAB2 . 'ANALYSES' = tabl;
  787. TAB2 . 'ANALYSES' . 'DEFO_CENTRIFUGE' = tabl ;
  788. TAB2 . 'ANALYSES' . 'DEFO_CENTRIFUGE' . 'SAUVDEFO' = prodefo;
  789. TAB2 . 'ANALYSES' . 'DEFO_CENTRIFUGE' . 'RESULTATS' = TMES;
  790. TAB2 . 'ANALYSES' . 'TEMPS_AFFICHAGE_RESULTATS' = proresu;
  791. * TAB2 . 'ANALYSES' . 'MODES_COMPLEXES' = 10;
  792.  
  793. * autres parametres de pasapas
  794. * (1E-4 et 200 par defaut dans pasapas, ici on fixe 1.E-6 et 10)
  795. TAB2 . 'PRECISION' = 1E-6;
  796. TAB2 . 'MAXSOUSPAS' = 10;
  797. TAB2 . 'MAXITERATION' = 100;
  798.  
  799. * nouveaux parametres de PV
  800. * TAB2 . 'PREDICTEUR' = mot 'HPP';
  801. * TAB2 . 'STABILITE' = faux;
  802. TAB2 . 'STABILITE' = vrai;
  803. TAB2 . 'LINESEARCH' = faux;
  804. * TAB2 . 'LINESEARCH' = vrai;
  805. * TAB2 . 'PREDICTEUR' = mot 'HPP';
  806.  
  807. * 1er choix de parametres possible :
  808. * on reactualise K^el si dEpsilon > ..(10E-2 par defaut)
  809. * TAB2 . 'REAC_GRANDS' = 1.E-5;
  810. * TAB2 . 'REAC_GRANDS' = 1.E-4;
  811.  
  812. * 2nd choix de parametres possible :
  813. * bp 28/11/2012 : 3 nouvelles options pour pasapas
  814. TAB2 . 'INITIALISATION' = faux;
  815. TAB2 . 'RENORMALISATION' = vrai;
  816. * 1.E-3 est deja la valeur par defaut : on s'assure de la conserver
  817. TAB2 . 'MAXDEFOR' = 1.E-3;
  818. * TAB2 . 'MAXDEFOR' = 1.E-4;
  819. * TAB2 . 'CONVERGENCE_MONOTONE' = vrai;
  820.  
  821.  
  822.  
  823. ***************************************************
  824. * APPEL A PASAPAS
  825.  
  826. PASAPAS TAB2;
  827.  
  828.  
  829. temp impr ;
  830.  
  831.  
  832. ***************************************************
  833. * TEST DE BON FONCTIONNEMENT
  834. ***************************************************
  835.  
  836. * on verifie qu'on a passé 2 (ou 3 si COMPLET) resonances
  837. u1 = tab2 . 'ANALYSES' . 'DEFO_CENTRIFUGE' . 'RESULTATS' . 1
  838. . 'RESULTATS_EVOL';
  839. * promeg = prog 0. 1. PAS 1. 30. PAS 5. 170. PAS 10. 1200.;
  840. profin = prog 0. PAS 0.2 30. PAS 1. (extr promeg (dime promeg));
  841. u1spl = IPOL profin u1 'SPLI';
  842. u1splev = evol manu profin u1spl OCEA;
  843. dess u1splev;
  844.  
  845. * resonance 1 entre 25 et 26Hz
  846. i25 = POSI 25. 'DANS' profin 1.E-8;
  847. i26 = POSI 26. 'DANS' profin 1.E-8;
  848. li25 = lect i25 PAS 1 i26;
  849. pro25 = extr profin li25;
  850. u25 = extr u1spl li25;
  851. Ome25 = IPOL 0. u25 pro25; mess '1^ere resonance a ' Ome25;
  852. Ome25th = 25.608;
  853. errOme = prog (1. - (Ome25 / Ome25th)) ;
  854.  
  855. * resonance 1 entre 130 et 150Hz
  856. i130 = POSI 135. 'DANS' profin 1.E-7;
  857. i150 = POSI 145. 'DANS' profin 1.E-7;
  858. li140 = lect i130 PAS 1 i150;
  859. pro140 = extr profin li140;
  860. u140 = extr u1spl li140;
  861. Ome140 = IPOL 0. u140 pro140; mess '2^eme resonance a ' Ome140;
  862. Ome140th = 138.66;
  863. errOme = errOme et (1. - (Ome140 / Ome140th)) ;
  864.  
  865. SI (COMPLET);
  866. * resonance 1 entre 710 et 720Hz
  867. i710 = POSI 710. 'DANS' profin 1.E-6;
  868. i720 = POSI 720. 'DANS' profin 1.E-6;
  869. li715 = lect i710 PAS 1 i720;
  870. pro715 = extr profin li715;
  871. u715 = extr u1spl li715;
  872. Ome715 = IPOL 0. u715 pro715; mess '3^eme resonance a ' Ome715;
  873. Ome715th = 714.60;
  874. errOme = errOme et (1. - (Ome715 / Ome715th)) ;
  875. FINS;
  876.  
  877. list errOme;
  878. errmax = maxi errOme 'ABS' ;
  879. SI (errmax > 0.03); ERRE 5 ;
  880. SINON ; ERRE 0 ;
  881. FINSI ;
  882.  
  883.  
  884.  
  885. FIN ;
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  

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